public async Task CreateStaticPublicIPAddressTest() { // SET PARAMETERS var location = Environment.GetEnvironmentVariable("AZURE_LOCATION"); var baseUriString = Environment.GetEnvironmentVariable("AZURE_BASE_URL"); var resourceGroupName = Environment.GetEnvironmentVariable("AZURE_RESOURCEGROUP"); var servicePrincipalId = Environment.GetEnvironmentVariable("AZURE_CLIENT_ID"); var servicePrincipalSecret = Environment.GetEnvironmentVariable("AZURE_CLIENT_SECRET"); var azureResourceId = Environment.GetEnvironmentVariable("AZURE_RESOURCE_ID"); var tenantId = Environment.GetEnvironmentVariable("AZURE_TENANT_ID"); var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID"); var ipName = Environment.GetEnvironmentVariable("AZURE_IP_NAME"); var credentials = new CustomLoginCredentials(servicePrincipalId, servicePrincipalSecret, azureResourceId, tenantId); // SET CONTROLLER var resourceController = new ResourcesController(new Uri(baseUriString), credentials, subscriptionId); var networkController = new NetworkController(new Uri(baseUriString), credentials, subscriptionId); // CREATE RESOURCE GROUP var resourceGroup = await resourceController.CreateResourceGroup(resourceGroupName, location); // CREATE RESOURCE GROUP VALIDATION Assert.Equal("OK", resourceGroup.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(resourceGroup.Body); // CREATE IP var ip = await networkController.CreatePublicIpAddress(ipName, resourceGroupName, location, "Static"); // VALIDATION Assert.Equal("OK", ip.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(ip.Body); Assert.NotEmpty(ip.Body.Id); }
public async Task RegisterResourceProviderTest() { // SET PARAMETERS var location = Environment.GetEnvironmentVariable("AZURE_LOCATION"); var baseUriString = Environment.GetEnvironmentVariable("AZURE_BASE_URL"); var resourceGroupName = Environment.GetEnvironmentVariable("AZURE_RESOURCEGROUP"); var servicePrincipalId = Environment.GetEnvironmentVariable("AZURE_CLIENT_ID"); var servicePrincipalSecret = Environment.GetEnvironmentVariable("AZURE_CLIENT_SECRET"); var azureResourceId = Environment.GetEnvironmentVariable("AZURE_RESOURCE_ID"); var tenantId = Environment.GetEnvironmentVariable("AZURE_TENANT_ID"); var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID"); var resourceProvidersName = Environment.GetEnvironmentVariable("AZURE_RESOURCEPROVIDERS"); var credentials = new CustomLoginCredentials(servicePrincipalId, servicePrincipalSecret, azureResourceId, tenantId); // SET CONTROLLER var resourceController = new ResourcesController(new Uri(baseUriString), credentials, subscriptionId); // REGISTER RESOURCE PROVIDER var providers = resourceProvidersName.Split(';'); foreach (var resourceProviderName in providers) { var resourceProvider = await resourceController.RegisterResourceProvider(resourceProviderName); // VALIDATION Assert.Equal("OK", resourceProvider.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(resourceProvider.Body); Assert.Equal("registered", resourceProvider.Body.RegistrationState, ignoreCase: true); } }
public async Task CreateStorageAccountTest() { // SET PARAMETERS var location = Environment.GetEnvironmentVariable("AZURE_LOCATION"); var baseUriString = Environment.GetEnvironmentVariable("AZURE_BASE_URL"); var resourceGroupName = Environment.GetEnvironmentVariable("AZURE_RESOURCEGROUP"); var servicePrincipalId = Environment.GetEnvironmentVariable("AZURE_CLIENT_ID"); var servicePrincipalSecret = Environment.GetEnvironmentVariable("AZURE_CLIENT_SECRET"); var azureResourceId = Environment.GetEnvironmentVariable("AZURE_RESOURCE_ID"); var tenantId = Environment.GetEnvironmentVariable("AZURE_TENANT_ID"); var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID"); var storageNamePrefix = Environment.GetEnvironmentVariable("AZURE_STORAGENAME_PREFIX"); var storageAccountName = string.Format("{0}{1}", storageNamePrefix, new Random().Next(0, 99)); var storageAccountSku = Profile2018Storage.Models.SkuName.StandardLRS; var credentials = new CustomLoginCredentials(servicePrincipalId, servicePrincipalSecret, azureResourceId, tenantId); // SET CONTROLLER var resourceController = new ResourcesController(new Uri(baseUriString), credentials, subscriptionId); var storageController = new StorageController(new Uri(baseUriString), credentials, subscriptionId); // CREATE RESOURCE GROUP var resourceGroup = await resourceController.CreateResourceGroup(resourceGroupName, location); // CREATE RESOURCE GROUP VALIDATION Assert.Equal("OK", resourceGroup.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(resourceGroup.Body); // CREATE STORAGE ACCOUNT var storageAccount = await storageController.CreateStorageAccount(storageAccountName, resourceGroupName, location, storageAccountSku); // VALIDATION Assert.Equal("OK", storageAccount.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(storageAccount.Body); Assert.Equal("Succeeded", storageAccount.Body.ProvisioningState.ToString(), ignoreCase: true); }
public async Task ResourceGroupExistanceCheckTest() { // SET PARAMETERS var location = Environment.GetEnvironmentVariable("AZURE_LOCATION"); var baseUriString = Environment.GetEnvironmentVariable("AZURE_BASE_URL"); var resourceGroupName = Environment.GetEnvironmentVariable("AZURE_RESOURCEGROUP"); var servicePrincipalId = Environment.GetEnvironmentVariable("AZURE_CLIENT_ID"); var servicePrincipalSecret = Environment.GetEnvironmentVariable("AZURE_CLIENT_SECRET"); var azureResourceId = Environment.GetEnvironmentVariable("AZURE_RESOURCE_ID"); var tenantId = Environment.GetEnvironmentVariable("AZURE_TENANT_ID"); var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID"); var credentials = new CustomLoginCredentials(servicePrincipalId, servicePrincipalSecret, azureResourceId, tenantId); // SET CONTROLLER var resourceController = new ResourcesController(new Uri(baseUriString), credentials, subscriptionId); // CREATE RESOURCE GROUP var resourceGroup = await resourceController.CreateResourceGroup(resourceGroupName, location); // CREATE RESOURCE GROUP VALIDATION Assert.Equal("OK", resourceGroup.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(resourceGroup.Body); // CHECK RESOURCE GROUP var resourceGroupExistance = await resourceController.CheckResourceGroupExistance(resourceGroupName); // CHECK RESOURCE GROUP VALIDATION Assert.Equal("OK", resourceGroupExistance.Response.ReasonPhrase, ignoreCase: true); Assert.True(resourceGroupExistance.Body); }
public async Task CreateDataDiskTest() { // SET PARAMETERS var location = Environment.GetEnvironmentVariable("AZURE_LOCATION"); var baseUriString = Environment.GetEnvironmentVariable("AZURE_BASE_URL"); var resourceGroupName = Environment.GetEnvironmentVariable("AZURE_RESOURCEGROUP"); var servicePrincipalId = Environment.GetEnvironmentVariable("AZURE_CLIENT_ID"); var servicePrincipalSecret = Environment.GetEnvironmentVariable("AZURE_CLIENT_SECRET"); var azureResourceId = Environment.GetEnvironmentVariable("AZURE_RESOURCE_ID"); var tenantId = Environment.GetEnvironmentVariable("AZURE_TENANT_ID"); var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID"); var diskName = Environment.GetEnvironmentVariable("AZURE_DISK_NAME"); var credentials = new CustomLoginCredentials(servicePrincipalId, servicePrincipalSecret, azureResourceId, tenantId); // SET CONTROLLER var resourceController = new ResourcesController(new Uri(baseUriString), credentials, subscriptionId); var computerController = new ComputeController(new Uri(baseUriString), credentials, subscriptionId); // CREATE RESOURCE GROUP var resourceGroup = await resourceController.CreateResourceGroup(resourceGroupName, location); // CREATE RESOURCE GROUP VALIDATION Assert.Equal("OK", resourceGroup.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(resourceGroup.Body); // CREATE DISK var disk = await computerController.CreateDisk(resourceGroupName, diskName, 1, location); // CREATE DISK VALIDATION Assert.Equal("OK", disk.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(disk.Body); Assert.Equal("Succeeded", disk.Body.ProvisioningState.ToString(), ignoreCase: true); }
public ResourcesController( Uri baseUri, CustomLoginCredentials credentials, string subscriptionIdentifier) { this.baseUri = baseUri; this.customCredential = credentials; this.subscriotionId = subscriptionIdentifier; GetResourceGroupClient(); }
public StorageController( Uri baseUri, CustomLoginCredentials credentials, string subscriptionIdentifier) { this.baseUri = baseUri; this.customCredential = credentials; this.subscriotionId = subscriptionIdentifier; GetStorageAccountClient(); }
public NetworkController( Uri baseUri, CustomLoginCredentials credentials, string subscriptionIdentifier) { this.baseUri = baseUri; this.customCredential = credentials; this.subscriotionId = subscriptionIdentifier; GetNetworkClient(); }
public NetworkController( Uri baseUri, CustomLoginCredentials credentials, string subscriptionIdentifier, string environment = "azurestack") { this.baseUri = baseUri; this.customCredential = credentials; this.subscriotionId = subscriptionIdentifier; this.environment = environment; GetNetworkClient(); }
public async Task AddSubnetToExistingVnetTest() { // SET PARAMETERS var location = Environment.GetEnvironmentVariable("AZURE_LOCATION"); var baseUriString = Environment.GetEnvironmentVariable("AZURE_BASE_URL"); var resourceGroupName = Environment.GetEnvironmentVariable("AZURE_RESOURCEGROUP"); var servicePrincipalId = Environment.GetEnvironmentVariable("AZURE_CLIENT_ID"); var servicePrincipalSecret = Environment.GetEnvironmentVariable("AZURE_CLIENT_SECRET"); var azureResourceId = Environment.GetEnvironmentVariable("AZURE_RESOURCE_ID"); var tenantId = Environment.GetEnvironmentVariable("AZURE_TENANT_ID"); var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID"); var vnetName = Environment.GetEnvironmentVariable("AZURE_VNET_NAME"); var vnetAddressSpace = Environment.GetEnvironmentVariable("AZURE_VNET_ADDRESSES"); var newSubnetName = "test-dotnet-newsubnet"; var newSubnetAddress = "10.0.16.0/24"; var credentials = new CustomLoginCredentials(servicePrincipalId, servicePrincipalSecret, azureResourceId, tenantId); // SET CONTROLLERS var resourceController = new ResourcesController(new Uri(baseUriString), credentials, subscriptionId); var networkController = new NetworkController(new Uri(baseUriString), credentials, subscriptionId); // CREATE RESOURCE GROUP var resourceGroup = await resourceController.CreateResourceGroup(resourceGroupName, location); // RESOURCE GROUP CREATION VALIDATION Assert.Equal("OK", resourceGroup.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(resourceGroup.Body); // CREATE VNET var vnetAddressSpaces = vnetAddressSpace.Split(';'); var vnet = await networkController.CreateVirtualNetwork(vnetName, vnetAddressSpaces, resourceGroupName, location); // VNET CREATION VALIDATION Assert.Equal("OK", vnet.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(vnet.Body); // ADD NEW SUBNET var subnet = await networkController.AddSubnet(newSubnetName, vnetName, newSubnetAddress, resourceGroupName); // SUBNET CREATION VALIDATION Assert.Equal("OK", subnet.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(subnet.Body); Assert.Equal("Succeeded", subnet.Body.ProvisioningState, ignoreCase: true); Assert.Equal(newSubnetName, subnet.Body.Name); Assert.NotEmpty(subnet.Body.Id); }
public async Task CreateVnetWithSubnetTest() { // SET PARAMETERS var location = Environment.GetEnvironmentVariable("AZURE_LOCATION"); var baseUriString = Environment.GetEnvironmentVariable("AZURE_BASE_URL"); var resourceGroupName = Environment.GetEnvironmentVariable("AZURE_RESOURCEGROUP"); var servicePrincipalId = Environment.GetEnvironmentVariable("AZURE_CLIENT_ID"); var servicePrincipalSecret = Environment.GetEnvironmentVariable("AZURE_CLIENT_SECRET"); var azureResourceId = Environment.GetEnvironmentVariable("AZURE_RESOURCE_ID"); var tenantId = Environment.GetEnvironmentVariable("AZURE_TENANT_ID"); var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID"); var vnetName = Environment.GetEnvironmentVariable("AZURE_VNET_NAME"); var subnetNames = Environment.GetEnvironmentVariable("AZURE_SUBNET_NAMES"); var subnetAddresses = Environment.GetEnvironmentVariable("AZURE_SUBNET_ADDRESSES"); var vnetAddresses = Environment.GetEnvironmentVariable("AZURE_VNET_ADDRESSES"); var credentials = new CustomLoginCredentials(servicePrincipalId, servicePrincipalSecret, azureResourceId, tenantId); // SET CONTROLLER var resourceController = new ResourcesController(new Uri(baseUriString), credentials, subscriptionId); var networkController = new NetworkController(new Uri(baseUriString), credentials, subscriptionId); // CREATE RESOURCE GROUP var resourceGroup = await resourceController.CreateResourceGroup(resourceGroupName, location); // CREATE RESOURCE GROUP VALIDATION Assert.Equal("OK", resourceGroup.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(resourceGroup.Body); // CREATE VNET var vnetAddressSpaces = vnetAddresses.Split(';'); var subNames = subnetNames.Split(';'); var suAddresses = subnetAddresses.Split(';'); var subnets = new Dictionary <string, string>(); for (int i = 0; i < subNames.Length; i++) { subnets.Add(subNames[i], suAddresses[i]); } var vnet = await networkController.CreateVirtualNetwork(vnetName, vnetAddressSpaces, resourceGroupName, location, subnets); // VALIDATION Assert.Equal("OK", vnet.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(vnet.Body); Assert.NotEmpty(vnet.Body.Id); }
public async Task DeleteResourceGroupTest() { // SET PARAMETERS var baseUriString = Environment.GetEnvironmentVariable("AZURE_BASE_URL"); var resourceGroupName = Environment.GetEnvironmentVariable("AZURE_RESOURCEGROUP"); var servicePrincipalId = Environment.GetEnvironmentVariable("AZURE_CLIENT_ID"); var servicePrincipalSecret = Environment.GetEnvironmentVariable("AZURE_CLIENT_SECRET"); var azureResourceId = Environment.GetEnvironmentVariable("AZURE_RESOURCE_ID"); var tenantId = Environment.GetEnvironmentVariable("AZURE_TENANT_ID"); var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID"); var credentials = new CustomLoginCredentials(servicePrincipalId, servicePrincipalSecret, azureResourceId, tenantId); // SET CONTROLLER var resourceController = new ResourcesController(new Uri(baseUriString), credentials, subscriptionId); // DELETE RESOURCE GROUP var resourceGroup = await resourceController.DeleteResourceGroup(resourceGroupName); // VALIDATION Assert.True(resourceGroup.IsSuccessStatusCode); }
private static Profile2018Storage.StorageManagementClient GetStorageClient(Uri baseUri, CustomLoginCredentials customCredential, string subscriptionId) { var client = new Profile2018Storage.StorageManagementClient(baseUri: baseUri, credentials: customCredential) { SubscriptionId = subscriptionId }; client.SetUserAgent(ComponentName); return(client); }
static void Main(string[] args) { //Set variables var location = "redmond"; var baseUriString = "https://management.redmond.ext-n22r1002.masd.stbtest.microsoft.com/"; var resourceGroupName = "testrg"; var servicePrincipalId = "6656e01b-b5ce-43be-99b6-2f109e255343"; var servicePrincipalSecret = "e69Tve6T4XvtQUrvFXVR1B5X4ZYBS+QNY3zKQ5s2JHA="; var azureResourceId = "https://management.azurestackci07.onmicrosoft.com/29ae84a9-c761-4678-8cf6-0c28b6952a41"; var tenantId = "2b3697e6-a7a2-4cdd-a3d4-f4ef6505cd4f"; var subscriptionId = "7b5e2e72-d4ca-49de-b45f-b814d2b3aa07"; var vmName = "virtualMachineName"; var vnetName = "virtualNetworkName"; var subnetName = "subnetName"; var subnetAddress = "10.0.0.0/24"; var vnetAddresses = "10.0.0.0/16"; var ipName = "ipName"; var nicName = "networkInterfaceName"; var storagePrefix = "redmond.ext-n22r1002.masd.stbtest.microsoft.com"; var storageAccountName = "storageaccountt"; Console.WriteLine("Get credential token"); var credentials = new CustomLoginCredentials(servicePrincipalId, servicePrincipalSecret, azureResourceId, tenantId); try { Console.WriteLine("Instantiate resource management client"); var rmClient = GetResourceManagementClient(new Uri(baseUriString), credentials, subscriptionId); Console.WriteLine("Create resource group"); var rmTask = rmClient.ResourceGroups.CreateOrUpdateWithHttpMessagesAsync( resourceGroupName, new Profile2018ResourceManager.Models.ResourceGroup { Location = location }); rmTask.Wait(); } catch (Exception ex) { Console.WriteLine(String.Format("Could not create resource group. Exception: {0}", ex.Message)); } Console.WriteLine("Instantiate network client"); var networkClient = GetNetworkClient(new Uri(baseUriString), credentials, subscriptionId); var subnet = new Profile2018Network.Models.Subnet(); try { Console.WriteLine("Create vitual network"); var vnet = new Profile2018Network.Models.VirtualNetwork { Location = location, AddressSpace = new Profile2018Network.Models.AddressSpace { AddressPrefixes = new List <string> { vnetAddresses } }, Subnets = new List <Profile2018Network.Models.Subnet> { new Profile2018Network.Models.Subnet { AddressPrefix = subnetAddress, Name = subnetName } } }; var vnetTask = networkClient.VirtualNetworks.CreateOrUpdateWithHttpMessagesAsync( resourceGroupName, vnetName, vnet); vnetTask.Wait(); subnet = vnetTask.Result.Body.Subnets[0]; } catch (Exception ex) { Console.WriteLine(String.Format("Could not create virtual network. Exception: {0}", ex.Message)); } var ip = new Profile2018Network.Models.PublicIPAddress(); try { Console.WriteLine("Create IP"); var ipProperties = new Profile2018Network.Models.PublicIPAddress { Location = location, PublicIPAllocationMethod = Profile2018Network.Models.IPAllocationMethod.Dynamic, }; var ipTask = networkClient.PublicIPAddresses.CreateOrUpdateWithHttpMessagesAsync( resourceGroupName, ipName, ipProperties); ipTask.Wait(); ip = ipTask.Result.Body; } catch (Exception ex) { Console.WriteLine(String.Format("Could not create IP. Exception: {0}", ex.Message)); } var nic = new Profile2018Network.Models.NetworkInterface(); try { Console.WriteLine("Create network interface"); var nicProperties = new Profile2018Network.Models.NetworkInterface { Location = location, IpConfigurations = new List <Profile2018Network.Models.NetworkInterfaceIPConfiguration> { new Profile2018Network.Models.NetworkInterfaceIPConfiguration { Name = string.Format("{0}-ipconfig", nicName), PrivateIPAllocationMethod = "Dynamic", PublicIPAddress = ip, Subnet = subnet } } }; var nicTask = networkClient.NetworkInterfaces.CreateOrUpdateWithHttpMessagesAsync( resourceGroupName, nicName, nicProperties); nicTask.Wait(); nic = nicTask.Result.Body; } catch (Exception ex) { Console.WriteLine(String.Format("Could not create network interface. Exception: {0}", ex.Message)); } var storage = new Profile2018Storage.Models.StorageAccount(); var storageClient = GetStorageClient(new Uri(baseUriString), credentials, subscriptionId); try { Console.WriteLine("Create storage account"); var storageProperties = new Profile2018Storage.Models.StorageAccountCreateParameters { Location = location, Kind = Profile2018Storage.Models.Kind.Storage, Sku = new Profile2018Storage.Models.Sku(Profile2018Storage.Models.SkuName.StandardLRS) }; var storageTask = storageClient.StorageAccounts.CreateWithHttpMessagesAsync(resourceGroupName, storageAccountName, storageProperties); storageTask.Wait(); storage = storageTask.Result.Body; } catch (Exception ex) { Console.WriteLine(String.Format("Could not create network interface. Exception: {0}", ex.Message)); } try { Console.WriteLine("Instantiate compute client"); var computeClient = GetComputeClient(new Uri(baseUriString), credentials, subscriptionId); Console.WriteLine("Create virtual machine"); var vmParameters = new Profile2018Compute.Models.VirtualMachine { Location = location, NetworkProfile = new Profile2018Compute.Models.NetworkProfile { NetworkInterfaces = new List <Profile2018Compute.Models.NetworkInterfaceReference> { new Profile2018Compute.Models.NetworkInterfaceReference { Id = nic.Id, Primary = true } } }, StorageProfile = new Profile2018Compute.Models.StorageProfile { OsDisk = new Profile2018Compute.Models.OSDisk { Name = "osDisk", Vhd = new Profile2018Compute.Models.VirtualHardDisk { Uri = string.Format(vhdURItemplate, storageAccountName, storagePrefix, vmName) }, CreateOption = Profile2018Compute.Models.DiskCreateOptionTypes.FromImage }, ImageReference = new Profile2018Compute.Models.ImageReference { Publisher = "Canonical", Offer = "UbuntuServer", Sku = "16.04-LTS", Version = "latest" } }, OsProfile = new Profile2018Compute.Models.OSProfile { ComputerName = vmName, AdminUsername = "******", AdminPassword = "******" }, HardwareProfile = new Profile2018Compute.Models.HardwareProfile { VmSize = "Standard_A1" } }; var vmTask = computeClient.VirtualMachines.CreateOrUpdateWithHttpMessagesAsync( resourceGroupName, vmName, vmParameters); vmTask.Wait(); } catch (Exception ex) { Console.WriteLine(String.Format("Could not create virtual machine. Exception: {0}", ex.Message)); } }
static void Main(string[] args) { //Set variables var location = "location"; var baseUriString = "baseUriString"; var resourceGroupName = "resourceGroupName"; var servicePrincipalId = "servicePrincipalID"; var servicePrincipalSecret = "servicePrincipalSecret"; var azureResourceId = "resourceID"; var tenantId = "tenantID"; var subscriptionId = "subscriptionID"; var vmName = "virtualMachineName"; var vnetName = "virtualNetworkName"; var subnetName = "subnetName"; var subnetAddress = "10.0.0.0/24"; var vnetAddresses = "10.0.0.0/16"; var ipName = "ipName"; var nicName = "networkInterfaceName"; var diskName = "diskName"; Console.WriteLine("Get credential token"); var credentials = new CustomLoginCredentials(servicePrincipalId, servicePrincipalSecret, azureResourceId, tenantId); try { Console.WriteLine("Instantiate resource management client"); var rmClient = GetResourceManagementClient(new Uri(baseUriString), credentials, subscriptionId); Console.WriteLine("Create resource group"); var rmTask = rmClient.ResourceGroups.CreateOrUpdateWithHttpMessagesAsync( resourceGroupName, new Profile2018ResourceManager.Models.ResourceGroup { Location = location }); rmTask.Wait(); } catch (Exception ex) { Console.WriteLine(String.Format("Could not create resource group. Exception: {0}", ex.Message)); } Console.WriteLine("Instantiate network client"); var networkClient = GetNetworkClient(new Uri(baseUriString), credentials, subscriptionId); var subnet = new Profile2018Network.Models.Subnet(); try { Console.WriteLine("Create vitual network"); var vnet = new Profile2018Network.Models.VirtualNetwork { Location = location, AddressSpace = new Profile2018Network.Models.AddressSpace { AddressPrefixes = new List <string> { vnetAddresses } }, Subnets = new List <Profile2018Network.Models.Subnet> { new Profile2018Network.Models.Subnet { AddressPrefix = subnetAddress, Name = subnetName } } }; var vnetTask = networkClient.VirtualNetworks.CreateOrUpdateWithHttpMessagesAsync( resourceGroupName, vnetName, vnet); vnetTask.Wait(); subnet = vnetTask.Result.Body.Subnets[0]; } catch (Exception ex) { Console.WriteLine(String.Format("Could not create virtual network. Exception: {0}", ex.Message)); } var ip = new Profile2018Network.Models.PublicIPAddress(); try { Console.WriteLine("Create IP"); var ipProperties = new Profile2018Network.Models.PublicIPAddress { Location = location, PublicIPAllocationMethod = Profile2018Network.Models.IPAllocationMethod.Dynamic, }; var ipTask = networkClient.PublicIPAddresses.CreateOrUpdateWithHttpMessagesAsync( resourceGroupName, ipName, ipProperties); ipTask.Wait(); ip = ipTask.Result.Body; } catch (Exception ex) { Console.WriteLine(String.Format("Could not create IP. Exception: {0}", ex.Message)); } var nic = new Profile2018Network.Models.NetworkInterface(); try { Console.WriteLine("Create network interface"); var nicProperties = new Profile2018Network.Models.NetworkInterface { Location = location, IpConfigurations = new List <Profile2018Network.Models.NetworkInterfaceIPConfiguration> { new Profile2018Network.Models.NetworkInterfaceIPConfiguration { Name = string.Format("{0}-ipconfig", nicName), PrivateIPAllocationMethod = "Dynamic", PublicIPAddress = ip, Subnet = subnet } } }; var nicTask = networkClient.NetworkInterfaces.CreateOrUpdateWithHttpMessagesAsync( resourceGroupName, nicName, nicProperties); nicTask.Wait(); nic = nicTask.Result.Body; } catch (Exception ex) { Console.WriteLine(String.Format("Could not create network interface. Exception: {0}", ex.Message)); } try { Console.WriteLine("Instantiate compute client"); var computeClient = GetComputeClient(new Uri(baseUriString), credentials, subscriptionId); var diskProperties = new Profile2018Compute.Models.Disk { CreationData = new Profile2018Compute.Models.CreationData { CreateOption = Profile2018Compute.Models.DiskCreateOption.Empty, }, Location = location, Sku = new Profile2018Compute.Models.DiskSku { Name = Profile2018Compute.Models.StorageAccountTypes.StandardLRS }, DiskSizeGB = 1, }; var diskTask = computeClient.Disks.CreateOrUpdateWithHttpMessagesAsync( resourceGroupName, diskName, diskProperties); diskTask.Wait(); Console.WriteLine("Create virtual machine"); var vmProperties = new Profile2018Compute.Models.VirtualMachine { Location = location, NetworkProfile = new Profile2018Compute.Models.NetworkProfile { NetworkInterfaces = new List <Profile2018Compute.Models.NetworkInterfaceReference> { new Profile2018Compute.Models.NetworkInterfaceReference { Id = nic.Id, Primary = true } } }, StorageProfile = new Profile2018Compute.Models.StorageProfile { DataDisks = new List <Profile2018Compute.Models.DataDisk> { new Profile2018Compute.Models.DataDisk { CreateOption = Profile2018Compute.Models.DiskCreateOptionTypes.Attach, ManagedDisk = new Profile2018Compute.Models.ManagedDiskParameters { StorageAccountType = Profile2018Compute.Models.StorageAccountTypes.StandardLRS, Id = diskTask.Result.Body.Id } } }, OsDisk = new Profile2018Compute.Models.OSDisk { Name = "osDisk", CreateOption = Profile2018Compute.Models.DiskCreateOptionTypes.FromImage }, ImageReference = new Profile2018Compute.Models.ImageReference { Publisher = "Canonical", Offer = "UbuntuServer", Sku = "16.04-LTS", Version = "latest" } }, OsProfile = new Profile2018Compute.Models.OSProfile { ComputerName = vmName, AdminUsername = "******", AdminPassword = "******" }, HardwareProfile = new Profile2018Compute.Models.HardwareProfile { VmSize = "Standard_A1" } }; var vmTask = computeClient.VirtualMachines.CreateOrUpdateWithHttpMessagesAsync( resourceGroupName, vmName, vmProperties); vmTask.Wait(); } catch (Exception ex) { Console.WriteLine(String.Format("Could not create virtual machine. Exception: {0}", ex.Message)); } }
static void Main(string[] args) { //Set Azure environment variables var azureLocation = "westus"; var azureBaseUrl = "https://management.azure.com/"; var azureResourceGroupName = "test-hybrid-dotnet-azure-resourcegroup"; var azureCredentials = SdkContext.AzureCredentialsFactory.FromFile(Environment.GetEnvironmentVariable("AZURE_AUTH_LOCATION")); var azureVnetName = Environment.GetEnvironmentVariable("AZURE_VNET_NAME"); var azureSubnetName = Environment.GetEnvironmentVariable("AZURE_SUBNET_NAMES"); var azureSubnetAddressSpace = Environment.GetEnvironmentVariable("AZURE_SUBNET_ADDRESSES"); var azureVnetAddress = Environment.GetEnvironmentVariable("AZURE_VNET_ADDRESSES"); var azureIpName = Environment.GetEnvironmentVariable("AZURE_IP_NAME"); var azureNicName = Environment.GetEnvironmentVariable("AZURE_NIC_NAME"); var azureVmName = Environment.GetEnvironmentVariable("AZURE_VM_NAME"); //Set Azure stack environment variables var stackLocation = "redmond"; var stackResourceGroupName = "test-hybrid-dotnet-stack-resourcegroup"; var stackBaseUriString = Environment.GetEnvironmentVariable("AZURE_BASE_URL"); var stackServicePrincipalId = Environment.GetEnvironmentVariable("AZURE_CLIENT_ID"); var stackServicePrincipalSecret = Environment.GetEnvironmentVariable("AZURE_CLIENT_SECRET"); var stackResourceId = Environment.GetEnvironmentVariable("AZURE_RESOURCE_ID"); var stackTenantId = Environment.GetEnvironmentVariable("AZURE_TENANT_ID"); var stackSubscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID"); var stackCredentials = new CustomLoginCredentials( stackServicePrincipalId, stackServicePrincipalSecret, stackResourceId, stackTenantId); var stackDiskName = Environment.GetEnvironmentVariable("AZURE_DISK_NAME"); //Set controllers var stackResourceController = new ResourcesController(new Uri(stackBaseUriString), stackCredentials, stackSubscriptionId); var azureResourceController = new ResourcesController(new Uri(azureBaseUrl), azureCredentials, "azure"); var azureNetworkController = new NetworkController(new Uri(azureBaseUrl), azureCredentials, "azure"); var stackComputeController = new ComputeController(new Uri(stackBaseUriString), stackCredentials, stackSubscriptionId); var azureComputeController = new ComputeController(new Uri(azureBaseUrl), azureCredentials, "azure"); //Create resource group in Azure var azureRgTask = azureResourceController.CreateResourceGroup(azureResourceGroupName, azureLocation); azureRgTask.Wait(); //Create resource group in Azure Stack var stackRgTask = stackResourceController.CreateResourceGroup(stackResourceGroupName, stackLocation); stackRgTask.Wait(); //Create NIC on Azure var nicTask = azureNetworkController.CreateNetworkInterface( azureNicName, azureResourceGroupName, azureVnetName, azureVnetAddress, azureSubnetName, azureSubnetAddressSpace, azureIpName, azureLocation); nicTask.Wait(); //Create disk on Azure Stack var diskTask = stackComputeController.CreateDisk( stackResourceGroupName, stackDiskName, 1, stackLocation); diskTask.Wait(); //Create a VM on Azure with its data on Azure Stack var vmTask = azureComputeController.CreateVirtialMachineWithManagedDisk( azureResourceGroupName, azureVmName, nicTask.Result.Body, diskTask.Result.Body, azureLocation); vmTask.Wait(); }
public async Task CreateLinuxVirtualMachineTest() { // SET PARAMETERS var location = Environment.GetEnvironmentVariable("AZURE_LOCATION"); var baseUriString = Environment.GetEnvironmentVariable("AZURE_BASE_URL"); var resourceGroupName = Environment.GetEnvironmentVariable("AZURE_RESOURCEGROUP"); var servicePrincipalId = Environment.GetEnvironmentVariable("AZURE_CLIENT_ID"); var servicePrincipalSecret = Environment.GetEnvironmentVariable("AZURE_CLIENT_SECRET"); var azureResourceId = Environment.GetEnvironmentVariable("AZURE_RESOURCE_ID"); var tenantId = Environment.GetEnvironmentVariable("AZURE_TENANT_ID"); var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID"); var vmName = Environment.GetEnvironmentVariable("AZURE_VM_NAME"); var vnetName = Environment.GetEnvironmentVariable("AZURE_VNET_NAME"); var subnetNames = Environment.GetEnvironmentVariable("AZURE_SUBNET_NAMES"); var subnetAddresses = Environment.GetEnvironmentVariable("AZURE_SUBNET_ADDRESSES"); var vnetAddresses = Environment.GetEnvironmentVariable("AZURE_VNET_ADDRESSES"); var ipName = Environment.GetEnvironmentVariable("AZURE_IP_NAME"); var nicName = Environment.GetEnvironmentVariable("AZURE_NIC_NAME"); var storageNamePrefix = Environment.GetEnvironmentVariable("AZURE_STORAGENAME_PREFIX"); var storageEndpoint = Environment.GetEnvironmentVariable("AZURE_STORAGE_ENDPOINT"); var storageAccountName = string.Format("{0}{1}", storageNamePrefix, new Random().Next(0, 99)); var storageAccountSku = Profile2018Storage.Models.SkuName.StandardLRS; var credentials = new CustomLoginCredentials(servicePrincipalId, servicePrincipalSecret, azureResourceId, tenantId); // SET CONTROLLER var resourceController = new ResourcesController(new Uri(baseUriString), credentials, subscriptionId); var networkController = new NetworkController(new Uri(baseUriString), credentials, subscriptionId); var storageController = new StorageController(new Uri(baseUriString), credentials, subscriptionId); var computerController = new ComputeController(new Uri(baseUriString), credentials, subscriptionId); // CREATE RESOURCE GROUP var resourceGroup = await resourceController.CreateResourceGroup(resourceGroupName, location); // CREATE RESOURCE GROUP VALIDATION Assert.Equal("OK", resourceGroup.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(resourceGroup.Body); // CREATE VNET var vnetAddressSpaces = vnetAddresses.Split(';'); var subNames = subnetNames.Split(';'); var suAddresses = subnetAddresses.Split(';'); var subnets = new Dictionary <string, string>(); for (int i = 0; i < subNames.Length; i++) { subnets.Add(subNames[i], suAddresses[i]); } var vnet = await networkController.CreateVirtualNetwork(vnetName, vnetAddressSpaces, resourceGroupName, location, subnets); // CREATE VNET VALIDATION Assert.Equal("OK", vnet.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(vnet.Body); // CREATE IP var ip = await networkController.CreatePublicIpAddress(ipName, resourceGroupName, location); // CREATE IP VALIDATION Assert.Equal("OK", ip.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(ip.Body); // CREATE NIC var nic = await networkController.CreateNetworkInterface(nicName, resourceGroupName, vnetName, subNames[0], ipName, location); // CREATE NIC VALIDATION Assert.Equal("OK", nic.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(nic.Body); Assert.Equal("Succeeded", nic.Body.ProvisioningState, ignoreCase: true); // CREATE STORAGE ACCOUNT var storageAccount = await storageController.CreateStorageAccount(storageAccountName, resourceGroupName, location, storageAccountSku); // STORAGE ACCOUNT VALIDATION Assert.Equal("OK", storageAccount.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(storageAccount.Body); Assert.Equal("Succeeded", storageAccount.Body.ProvisioningState.ToString(), ignoreCase: true); // CREATE VM var vm = await computerController.CreateVirtialMachine(resourceGroupName, vmName, storageAccountName, storageEndpoint, nic.Body.Id, location); // VALIDATION Assert.Equal("OK", vm.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(vm.Body); Assert.Equal("Succeeded", vm.Body.ProvisioningState.ToString(), ignoreCase: true); }
public async Task CreateLinuxVirtualMachineWithManagedDiskTest() { // SET PARAMETERS var location = Environment.GetEnvironmentVariable("AZURE_LOCATION"); var baseUriString = Environment.GetEnvironmentVariable("AZURE_BASE_URL"); var resourceGroupName = Environment.GetEnvironmentVariable("AZURE_RESOURCEGROUP"); var servicePrincipalId = Environment.GetEnvironmentVariable("AZURE_CLIENT_ID"); var servicePrincipalSecret = Environment.GetEnvironmentVariable("AZURE_CLIENT_SECRET"); var azureResourceId = Environment.GetEnvironmentVariable("AZURE_RESOURCE_ID"); var tenantId = Environment.GetEnvironmentVariable("AZURE_TENANT_ID"); var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID"); var vmName = Environment.GetEnvironmentVariable("AZURE_VM_NAME"); var vnetName = Environment.GetEnvironmentVariable("AZURE_VNET_NAME"); var subnetNames = Environment.GetEnvironmentVariable("AZURE_SUBNET_NAMES"); var subnetAddresses = Environment.GetEnvironmentVariable("AZURE_SUBNET_ADDRESSES"); var vnetAddresses = Environment.GetEnvironmentVariable("AZURE_VNET_ADDRESSES"); var ipName = Environment.GetEnvironmentVariable("AZURE_IP_NAME"); var nicName = Environment.GetEnvironmentVariable("AZURE_NIC_NAME"); var diskName = Environment.GetEnvironmentVariable("AZURE_DISK_NAME"); var credentials = new CustomLoginCredentials(servicePrincipalId, servicePrincipalSecret, azureResourceId, tenantId); // SET CONTROLLER var resourceController = new ResourcesController(new Uri(baseUriString), credentials, subscriptionId); var networkController = new NetworkController(new Uri(baseUriString), credentials, subscriptionId); var computerController = new ComputeController(new Uri(baseUriString), credentials, subscriptionId); // CREATE RESOURCE GROUP var resourceGroup = await resourceController.CreateResourceGroup(resourceGroupName, location); // CREATE RESOURCE GROUP VALIDATION Assert.Equal("OK", resourceGroup.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(resourceGroup.Body); // CREATE VNET var vnetAddressSpaces = vnetAddresses.Split(';'); var subNames = subnetNames.Split(';'); var suAddresses = subnetAddresses.Split(';'); var subnets = new Dictionary <string, string>(); for (int i = 0; i < subNames.Length; i++) { subnets.Add(subNames[i], suAddresses[i]); } var vnet = await networkController.CreateVirtualNetwork(vnetName, vnetAddressSpaces, resourceGroupName, location, subnets); // CREATE VNET VALIDATION Assert.Equal("OK", vnet.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(vnet.Body); // CREATE IP var ip = await networkController.CreatePublicIpAddress(ipName, resourceGroupName, location); // CREATE IP VALIDATION Assert.Equal("OK", ip.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(ip.Body); // CREATE NIC var nic = await networkController.CreateNetworkInterface(nicName, resourceGroupName, vnetName, subNames[0], ipName, location); // CREATE NIC VALIDATION Assert.Equal("OK", nic.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(nic.Body); Assert.Equal("Succeeded", nic.Body.ProvisioningState, ignoreCase: true); // CREATE DISK var disk = await computerController.CreateDisk(resourceGroupName, diskName, 1, location); // CREATE DISK VALIDATION Assert.Equal("OK", disk.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(disk.Body); Assert.Equal("Succeeded", disk.Body.ProvisioningState.ToString(), ignoreCase: true); // CREATE VM var vm = await computerController.CreateVirtialMachineWithManagedDisk(resourceGroupName, vmName, nic.Body.Id, disk.Body.Id, location); // VALIDATION Assert.Equal("OK", vm.Response.ReasonPhrase, ignoreCase: true); Assert.NotNull(vm.Body); Assert.Equal("Succeeded", vm.Body.ProvisioningState.ToString(), ignoreCase: true); }