use of com.azure.resourcemanager.compute.models.VirtualMachine.DefinitionStages.WithCreate in project azure-maven-plugins by microsoft.
the class DraftVirtualMachine method create.
VirtualMachine create(final AzureVirtualMachine module) {
this.module = module;
final NetworkInterface.DefinitionStages.WithCreate interfaceWithCreate = module.getVirtualMachinesManager(subscriptionId).manager().networkManager().networkInterfaces().define(name + "-interface-" + Utils.getTimestamp()).withRegion(this.getRegion().getName()).withExistingResourceGroup(this.getResourceGroup()).withExistingPrimaryNetwork(this.getNetworkClient()).withSubnet(subnet.getName()).withPrimaryPrivateIPAddressDynamic();
if (ipAddress != null) {
final com.azure.resourcemanager.network.models.PublicIpAddress publicIpAddressClient = getPublicIpAddressClient();
if (publicIpAddressClient.hasAssignedNetworkInterface()) {
AzureMessager.getMessager().warning(AzureString.format("Can not assign public ip %s to vm %s, which has been assigned to %s", ipAddress.getName(), name, publicIpAddressClient.getAssignedNetworkInterfaceIPConfiguration().name()));
} else {
interfaceWithCreate.withExistingPrimaryPublicIPAddress(getPublicIpAddressClient());
}
}
if (securityGroup != null) {
interfaceWithCreate.withExistingNetworkSecurityGroup(getSecurityGroupClient());
}
final NetworkInterface networkInterface = interfaceWithCreate.create();
final WithProximityPlacementGroup withProximityPlacementGroup = module.getVirtualMachinesManager(subscriptionId).define(this.getName()).withRegion(this.getRegion().getName()).withExistingResourceGroup(this.getResourceGroup()).withExistingPrimaryNetworkInterface(networkInterface);
final WithCreate withCreate = configureImage(withProximityPlacementGroup);
if (StringUtils.isNotEmpty(availabilitySet)) {
withCreate.withExistingAvailabilitySet(getAvailabilitySetClient());
}
if (storageAccount != null) {
withCreate.withExistingStorageAccount(getStorageAccountClient());
}
if (azureSpotConfig != null) {
final VirtualMachineEvictionPolicyTypes evictionPolicyTypes = azureSpotConfig.getPolicy() == StopAndDeallocate ? DEALLOCATE : DELETE;
withCreate.withSpotPriority(evictionPolicyTypes).withMaxPrice(azureSpotConfig.getMaximumPrice());
}
try {
this.remote = withCreate.create();
} catch (Exception e) {
// clean up resource once creation failed
networkInterface.manager().networkInterfaces().deleteById(networkInterface.id());
throw e;
}
refreshStatus();
module.refresh();
return this;
}
Aggregations