Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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();
        }
Exemplo n.º 7
0
        public StorageController(
            Uri baseUri,
            CustomLoginCredentials credentials,
            string subscriptionIdentifier)
        {
            this.baseUri          = baseUri;
            this.customCredential = credentials;
            this.subscriotionId   = subscriptionIdentifier;

            GetStorageAccountClient();
        }
Exemplo n.º 8
0
        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();
 }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
0
        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));
            }
        }
Exemplo n.º 15
0
        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));
            }
        }
Exemplo n.º 16
0
        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();
        }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
        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);
        }