Esempio n. 1
0
        public void CrudProfileFullCycle()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                TrafficManagerManagementClient trafficManagerClient = TrafficManagerHelper.GetTrafficManagerClient();

                string profileName = TestUtilities.GenerateName("hydratestwatmv2profile");
                ResourceGroupExtended resourceGroup = TrafficManagerHelper.CreateResourceGroup();

                // Create the profile
                ProfileCreateOrUpdateResponse createResponse = trafficManagerClient.Profiles.CreateOrUpdate(
                    resourceGroup.Name,
                    profileName,
                    new ProfileCreateOrUpdateParameters
                {
                    Profile = TrafficManagerHelper.GenerateDefaultProfile(profileName)
                });

                Assert.Equal(HttpStatusCode.Created, createResponse.StatusCode);

                // Get the profile
                ProfileGetResponse getResponse = trafficManagerClient.Profiles.Get(
                    resourceGroup.Name,
                    profileName);

                Assert.Equal(HttpStatusCode.OK, getResponse.StatusCode);

                // Delete the profile
                AzureOperationResponse deleteResponse = trafficManagerClient.Profiles.Delete(resourceGroup.Name, profileName);
                Assert.Equal(HttpStatusCode.OK, deleteResponse.StatusCode);
            }
        }
Esempio n. 2
0
        public void UpdateZonePreconditionFailed()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                DnsManagementClient dnsClient = ResourceGroupHelper.GetDnsClient();

                string zoneName = TestUtilities.GenerateName("hydratestdnszone");
                string location = ResourceGroupHelper.GetResourceLocation(ResourceGroupHelper.GetResourcesClient(), "microsoft.network/dnszones");
                ResourceGroupExtended      resourceGroup  = ResourceGroupHelper.CreateResourceGroup();
                ZoneCreateOrUpdateResponse createresponse = ResourceGroupHelper.CreateZone(dnsClient, zoneName, location, resourceGroup);

                ZoneCreateOrUpdateParameters updateParameters = new ZoneCreateOrUpdateParameters {
                    Zone = createresponse.Zone
                };
                updateParameters.Zone.ETag = "somegibberish";

                // expect Precondition Failed 412
                TestHelpers.AssertThrows <CloudException>(
                    () => dnsClient.Zones.CreateOrUpdate(resourceGroup.Name, zoneName, updateParameters),
                    ex => ex.Error.Code == "PreconditionFailed");

                // expect Precondition Failed 412
                TestHelpers.AssertThrows <CloudException>(
                    () => dnsClient.Zones.Delete(resourceGroup.Name, zoneName, new ZoneDeleteParameters {
                    IfMatch = "somemoregib"
                }),
                    ex => ex.Error.Code == "PreconditionFailed");

                dnsClient.Zones.Delete(resourceGroup.Name, zoneName, new ZoneDeleteParameters());
            }
        }
Esempio n. 3
0
        public void ListProfilesByResourceGroup()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                TrafficManagerManagementClient trafficManagerClient = TrafficManagerHelper.GetTrafficManagerClient();

                ResourceGroupExtended resourceGroup = TrafficManagerHelper.CreateResourceGroup();

                for (int i = 0; i < 5; ++i)
                {
                    string profileName = TestUtilities.GenerateName("watmv2profilehydratest");

                    trafficManagerClient.Profiles.CreateOrUpdate(
                        resourceGroup.Name,
                        profileName,
                        new ProfileCreateOrUpdateParameters
                    {
                        Profile = TrafficManagerHelper.GenerateDefaultProfile(profileName)
                    });
                }

                ProfileListResponse listResponse = trafficManagerClient.Profiles.ListAllInResourceGroup(resourceGroup.Name);

                Assert.Equal(5, listResponse.Profiles.Count);
            }
        }
Esempio n. 4
0
 public static void DeleteZones(DnsManagementClient dnsClient, ResourceGroupExtended resourceGroup, string[] zoneNames)
 {
     foreach (string zoneName in zoneNames)
     {
         dnsClient.Zones.Delete(resourceGroup.Name, zoneName, new ZoneDeleteParameters());
     }
 }
Esempio n. 5
0
 public static void DeleteZones(DnsManagementClient dnsClient, ResourceGroupExtended resourceGroup, string[] zoneNames)
 {
     foreach (string zoneName in zoneNames)
     {
         dnsClient.Zones.Delete(resourceGroup.Name, zoneName, ifMatch: null, ifNoneMatch: null);
     }
 }
        /// <summary>
        /// Creates a new resource group and deployment using the passed template file option which
        /// can be user customized or from gallery templates.
        /// </summary>
        /// <param name="parameters">The create parameters</param>
        /// <returns>The created resource group</returns>
        public virtual PSResourceGroup CreatePSResourceGroup(CreatePSResourceGroupParameters parameters)
        {
            bool createDeployment = !string.IsNullOrEmpty(parameters.GalleryTemplateIdentity) || !string.IsNullOrEmpty(parameters.TemplateFile);
            bool resourceExists   = ResourceManagementClient.ResourceGroups.CheckExistence(parameters.ResourceGroupName).Exists;

            ResourceGroupExtended resourceGroup = null;
            Action createOrUpdateResourceGroup  = () =>
            {
                resourceGroup = CreateOrUpdateResourceGroup(parameters.ResourceGroupName, parameters.Location, parameters.Tag);
                WriteVerbose(string.Format("Created resource group '{0}' in location '{1}'", resourceGroup.Name, resourceGroup.Location));

                if (createDeployment)
                {
                    ExecuteDeployment(parameters);
                }
            };

            if (resourceExists && !parameters.Force)
            {
                parameters.ConfirmAction(parameters.Force,
                                         ProjectResources.ResourceGroupAlreadyExists,
                                         ProjectResources.NewResourceGroupMessage,
                                         parameters.DeploymentName,
                                         createOrUpdateResourceGroup);
                resourceGroup = ResourceManagementClient.ResourceGroups.Get(parameters.ResourceGroupName).ResourceGroup;
            }
            else
            {
                createOrUpdateResourceGroup();
            }

            return(resourceGroup.ToPSResourceGroup(this, true));
        }
Esempio n. 7
0
        public void UpdateZonePreconditionFailed()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                DnsManagementClient dnsClient = ResourceGroupHelper.GetDnsClient();

                string zoneName = TestUtilities.GenerateName("hydratestdnszone.com");
                string location = ResourceGroupHelper.GetResourceLocation(ResourceGroupHelper.GetResourcesClient(), "microsoft.network/dnszones");
                ResourceGroupExtended      resourceGroup  = ResourceGroupHelper.CreateResourceGroup();
                ZoneCreateOrUpdateResponse createresponse = ResourceGroupHelper.CreateZone(dnsClient, zoneName, location, resourceGroup);

                ZoneCreateOrUpdateParameters updateParameters = new ZoneCreateOrUpdateParameters {
                    Zone = createresponse.Zone
                };
                updateParameters.Zone.ETag = "somegibberish";

                // expect Precondition Failed 412
                TestHelpers.AssertThrows <CloudException>(
                    () => dnsClient.Zones.CreateOrUpdate(resourceGroup.Name, zoneName, ifMatch: null, ifNoneMatch: null, parameters: updateParameters),
                    ex => ex.Error.Code == "PreconditionFailed");

                var result = dnsClient.Zones.Delete(resourceGroup.Name, zoneName, ifMatch: null, ifNoneMatch: null);
                Assert.Equal(HttpStatusCode.OK, result.StatusCode);

                result = dnsClient.Zones.Delete(resourceGroup.Name, "hiya.com", ifMatch: null, ifNoneMatch: null);
                Assert.Equal(HttpStatusCode.NoContent, result.StatusCode);
            }
        }
Esempio n. 8
0
        public void NameAvailabilityTest_NameNotAvailable()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                TrafficManagerManagementClient trafficManagerClient = TrafficManagerHelper.GetTrafficManagerClient();

                string relativeName = TestUtilities.GenerateName("hydratestrelativename");
                string profileName  = TestUtilities.GenerateName("hydratestwatmv2profile");
                ResourceGroupExtended resourceGroup = TrafficManagerHelper.CreateResourceGroup();

                // Create the profile
                trafficManagerClient.Profiles.CreateOrUpdate(
                    resourceGroup.Name,
                    profileName,
                    new ProfileCreateOrUpdateParameters
                {
                    Profile = TrafficManagerHelper.GenerateDefaultProfile(profileName, relativeName)
                });

                var parameters = new CheckTrafficManagerRelativeDnsNameAvailabilityParameters
                {
                    Name = relativeName,
                    Type = "microsoft.network/trafficmanagerprofiles"
                };

                CheckTrafficManagerRelativeDnsNameAvailabilityResponse response = trafficManagerClient.Profiles.CheckTrafficManagerRelativeDnsNameAvailability(parameters);

                Assert.False(response.NameAvailable);
            }
        }
Esempio n. 9
0
        public WebHostingPlan CreateWebPlan(ResourceGroupExtended group, string servicePlanName)
        {
            var hostingPlan = new WebHostingPlan()
            {
                Location   = this.Location,
                Name       = servicePlanName,
                Properties = new WebHostingPlanProperties()
                {
                    Sku             = SkuOptions.Shared,
                    NumberOfWorkers = 1,
                    WorkerSize      = WorkerSizeOptions.Small,
                }
            };

            var plan   = new WebHostingPlanCreateOrUpdateParameters(hostingPlan);
            var result = this.Client.WebHostingPlans.CreateOrUpdate(group.Name, plan);

            if (result.StatusCode != HttpStatusCode.OK)
            {
                throw null;
            }
            else if (result.WebHostingPlan != null)
            {
                hostingPlan = result.WebHostingPlan;
            }

            return(hostingPlan);
        }
Esempio n. 10
0
        public void CrudZoneSetsTheCurrentAndMaxRecordSetNumbersInResponse()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                DnsManagementClient dnsClient = ResourceGroupHelper.GetDnsClient();

                string zoneName = TestUtilities.GenerateName("hydratestdnszone");
                string location = ResourceGroupHelper.GetResourceLocation(ResourceGroupHelper.GetResourcesClient(), "microsoft.network/dnszones");
                ResourceGroupExtended resourceGroup = ResourceGroupHelper.CreateResourceGroup();

                // Create the zone clean
                ZoneCreateOrUpdateResponse createResponse = dnsClient.Zones.CreateOrUpdate(
                    resourceGroup.Name,
                    zoneName,
                    new ZoneCreateOrUpdateParameters
                {
                    Zone = new Microsoft.Azure.Management.Dns.Models.Zone
                    {
                        Location   = location,
                        Name       = zoneName,
                        Properties = new Microsoft.Azure.Management.Dns.Models.ZoneProperties
                        {
                            MaxNumberOfRecordSets = 42,                 // Test that specifying this value does not break Create (it must be ignored on server side).
                            NumberOfRecordSets    = 65,                 // Test that specifying this value does not break Create (it must be ignored on server side).
                        }
                    }
                });

                // Verify RecordSet numbers in the response.
                Assert.Equal(HttpStatusCode.Created, createResponse.StatusCode);

                // Retrieve the zone after create
                ZoneGetResponse getResponse = dnsClient.Zones.Get(resourceGroup.Name, zoneName);

                // Verify RecordSet numbers in the response.
                Assert.Equal(HttpStatusCode.OK, getResponse.StatusCode);
                Assert.True(getResponse.Zone.Properties.NumberOfRecordSets == 2);

                Zone retrievedZone = getResponse.Zone;
                retrievedZone.Tags = new Dictionary <string, string> {
                    { "tag1", "value1" }
                };
                retrievedZone.Properties.NumberOfRecordSets    = null;
                retrievedZone.Properties.MaxNumberOfRecordSets = null;

                // Update the zone
                ZoneCreateOrUpdateResponse updateResponse = dnsClient.Zones.CreateOrUpdate(resourceGroup.Name, zoneName, new ZoneCreateOrUpdateParameters {
                    Zone = retrievedZone
                });

                // Verify RecordSet numbers in the response.
                Assert.Equal(HttpStatusCode.OK, updateResponse.StatusCode);

                // Delete the zone
                AzureOperationResponse deleteResponse = dnsClient.Zones.Delete(resourceGroup.Name, zoneName, new ZoneDeleteParameters());
                Assert.Equal(HttpStatusCode.OK, deleteResponse.StatusCode);
            }
        }
Esempio n. 11
0
        public static void CreateZones(DnsManagementClient dnsClient, ResourceGroupExtended resourceGroup, string[] zoneNames)
        {
            string location = ResourceGroupHelper.GetResourceLocation(ResourceGroupHelper.GetResourcesClient(), "microsoft.network/dnszones");

            foreach (string zoneName in zoneNames)
            {
                ResourceGroupHelper.CreateZone(dnsClient, zoneName, location, resourceGroup);
            }
        }
        /// <summary>
        /// Updates a resource group.
        /// </summary>
        /// <param name="parameters">The create parameters</param>
        /// <returns>The created resource group</returns>
        public virtual PSResourceGroup UpdatePSResourceGroup(UpdatePSResourceGroupParameters parameters)
        {
            ResourceGroupExtended resourceGroup = ResourceManagementClient.ResourceGroups.Get(parameters.ResourceGroupName).ResourceGroup;

            resourceGroup = CreateOrUpdateResourceGroup(parameters.ResourceGroupName, resourceGroup.Location, parameters.Tag);
            WriteVerbose(string.Format("Updated resource group '{0}' in location '{1}'", resourceGroup.Name, resourceGroup.Location));

            return(resourceGroup.ToPSResourceGroup(this, true));
        }
Esempio n. 13
0
        public void CrudProfileWithoutEndpoints_ThenUpdate()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                TrafficManagerManagementClient trafficManagerClient = TrafficManagerHelper.GetTrafficManagerClient();

                string profileName = TestUtilities.GenerateName("hydratestwatmv2profile");
                ResourceGroupExtended resourceGroup = TrafficManagerHelper.CreateResourceGroup();

                Profile profile = TrafficManagerHelper.GenerateDefaultProfile(profileName);
                profile.Properties.Endpoints = null;

                // Create the profile
                ProfileCreateOrUpdateResponse createResponse = trafficManagerClient.Profiles.CreateOrUpdate(
                    resourceGroup.Name,
                    profileName,
                    new ProfileCreateOrUpdateParameters
                {
                    Profile = profile
                });

                Assert.Equal(HttpStatusCode.Created, createResponse.StatusCode);

                profile.Properties.Endpoints = new[]
                {
                    new Endpoint
                    {
                        Id         = null,
                        Name       = "My external endpoint",
                        Type       = "Microsoft.network/TrafficManagerProfiles/ExternalEndpoints",
                        Properties = new EndpointProperties
                        {
                            TargetResourceId = null,
                            Target           = "foobar.contoso.com",
                            EndpointLocation = "North Europe",
                            EndpointStatus   = "Enabled"
                        }
                    }
                };

                // Update the profile
                ProfileCreateOrUpdateResponse updateResponse = trafficManagerClient.Profiles.CreateOrUpdate(
                    resourceGroup.Name,
                    profileName,
                    new ProfileCreateOrUpdateParameters
                {
                    Profile = profile
                });

                Assert.Equal(HttpStatusCode.OK, updateResponse.StatusCode);
            }
        }
Esempio n. 14
0
        public async Task <IList <AutomationAccount> > GetAutomationAccounts()
        {
            if (currSubscription.Name == null)
            {
                throw new Exception(Properties.Resources.SubscriptionNotSet);
            }

            // Get the token for the tenant on this subscription.
            azureARMAuthResult = AuthenticateHelper.RefreshTokenByAuthority(currSubscription.Authority, Properties.Settings.Default.appIdURI);
            subscriptionCreds  = new TokenCloudCredentials(currSubscription.SubscriptionId, azureARMAuthResult.AccessToken);

            automationManagementClient = new AutomationManagementClient(subscriptionCreds, new Uri(Properties.Settings.Default.appIdURI));

            // Add user agent string to indicate this is coming from the ISE automation client.
            ProductInfoHeaderValue ISEClientAgent = new ProductInfoHeaderValue(Constants.ISEUserAgent, Constants.ISEVersion);

            automationManagementClient.UserAgent.Add(ISEClientAgent);

            //TODO: does this belong here?
            if (accountResourceGroups == null)
            {
                accountResourceGroups = new Dictionary <AutomationAccount, ResourceGroupExtended>();
            }
            else
            {
                accountResourceGroups.Clear();
            }

            IList <AutomationAccount> result = new List <AutomationAccount>();

            // Get ARM automation account resources
            var automationResources = await GetAutomationResources();

            // Retrieve all of the automation accounts found
            foreach (var resource in automationResources.Resources)
            {
                CancellationTokenSource cts = new CancellationTokenSource();
                cts.CancelAfter(TIMEOUT_MS);

                // Find the resource group name from the resource id.
                var startPosition = resource.Id.IndexOf("/resourceGroups/");
                var endPosition   = resource.Id.IndexOf("/", startPosition + 16);
                var resourceGroup = resource.Id.Substring(startPosition + 16, endPosition - startPosition - 16);

                AutomationAccountGetResponse account = await automationManagementClient.AutomationAccounts.GetAsync(resourceGroup, resource.Name, cts.Token);

                result.Add(account.AutomationAccount);
                var accountResourceGroup = new ResourceGroupExtended();
                accountResourceGroup.Name = resourceGroup;
                accountResourceGroups.Add(account.AutomationAccount, accountResourceGroup);
            }
            return(result);
        }
Esempio n. 15
0
        public static ResourceGroupExtended[] GetResourceGroups(SubscriptionCloudCredentials creds)
        {
            var resourceMgmtClient     = new ResourceManagementClient(creds);
            var resourceGroupsResponse = resourceMgmtClient.ResourceGroups.ListAsync(new ResourceGroupListParameters( )).Result;

            int currentGroup = 0, resourceGroupsCount = resourceGroupsResponse.ResourceGroups.Count;

            ResourceGroupExtended[] resourceGroups = new ResourceGroupExtended[resourceGroupsCount];
            foreach (var group in resourceGroupsResponse.ResourceGroups)
            {
                resourceGroups[currentGroup++] = group;
            }

            return(resourceGroups);
        }
Esempio n. 16
0
        public WebSite CreateWebSite(WebHostingPlan hostingPlan, ResourceGroupExtended group, string siteName = null)
        {
            if (String.IsNullOrEmpty(siteName))
            {
                siteName = Regex.Replace(Path.GetRandomFileName(), @"[^a-z0-9]", String.Empty, RegexOptions.IgnoreCase);
            }

            var siteParams = new WebSiteCreateOrUpdateParameters(new WebSiteBase()
            {
                Location   = this.Location,
                Name       = siteName,
                Properties = new WebSiteBaseProperties(hostingPlan.Name)
            });

            return(this.Client.WebSites.CreateOrUpdate(group.Name, siteName, null, siteParams).WebSite);
        }
Esempio n. 17
0
        public void ListAllProfiles()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                TrafficManagerManagementClient trafficManagerClient = TrafficManagerHelper.GetTrafficManagerClient();

                // This tests the list operation at subscription level therefore
                // we can't use any granularity (e.g. resource groups) to isolate test runs
                int numberOfProfilesBeforeTest = trafficManagerClient.Profiles.ListAll().Profiles.Count;

                ResourceGroupExtended resourceGroup1 = TrafficManagerHelper.CreateResourceGroup();
                ResourceGroupExtended resourceGroup2 = TrafficManagerHelper.CreateResourceGroup();

                // Create 2 resource groups with two profiles each
                for (int i = 0; i < 2; ++i)
                {
                    string profileName = TestUtilities.GenerateName("hydratestwatmv2profile");

                    trafficManagerClient.Profiles.CreateOrUpdate(
                        resourceGroup1.Name,
                        profileName,
                        new ProfileCreateOrUpdateParameters
                    {
                        Profile = TrafficManagerHelper.GenerateDefaultProfile(profileName)
                    });

                    trafficManagerClient.Profiles.CreateOrUpdate(
                        resourceGroup2.Name,
                        profileName,
                        new ProfileCreateOrUpdateParameters
                    {
                        Profile = TrafficManagerHelper.GenerateDefaultProfile(profileName)
                    });
                }

                ProfileListResponse listResponse = trafficManagerClient.Profiles.ListAll();

                // At the end of the test we should have 4 profiles more than when we started
                Assert.Equal(numberOfProfilesBeforeTest + 4, listResponse.Profiles.Count);
            }
        }
Esempio n. 18
0
        public IEnumerable <RoleAssignment> CreateAndAssignRoleForGroup(ResourceGroupExtended group, Guid principal, IEnumerable <String> roles)
        {
            var assignments = new List <RoleAssignment>();

            foreach (var roleName in roles)
            {
                var role = ServerRoles.Where(x => String.Equals(x.Properties.RoleName, roleName, StringComparison.OrdinalIgnoreCase)).First();

                var roleCreate = new RoleAssignmentCreateParameters()
                {
                    Properties = new RoleAssignmentProperties()
                    {
                        PrincipalId      = principal,
                        RoleDefinitionId = role.Id
                    }
                };

                try
                {
                    var t = this.Client.RoleAssignments.CreateAsync(group.Id, Guid.NewGuid(), roleCreate);
                    t.Wait();
                    assignments.Add(t.Result.RoleAssignment);
                }
                catch (Exception)
                {
                    IEnumerable <RoleAssignment> userAssignments = this.Client.RoleAssignments.ListForResourceGroup(group.Name, new ListAssignmentsFilterParameters()
                    {
                        PrincipalId = principal
                    }).RoleAssignments;
                    userAssignments = userAssignments.Where(x => x.Properties.RoleDefinitionId == role.Id);

                    if (userAssignments == null || !userAssignments.Any())
                    {
                        throw;
                    }

                    assignments.AddRange(userAssignments);
                }
            }

            return(assignments);
        }
Esempio n. 19
0
        public void ListZonesWithFilterParameter()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                DnsManagementClient dnsClient = ResourceGroupHelper.GetDnsClient();

                var zoneNames = new[] { TestUtilities.GenerateName("hydratestdnszone"), TestUtilities.GenerateName("hydratestdnszone") };
                ResourceGroupExtended resourceGroup = ResourceGroupHelper.CreateResourceGroup();
                ZoneScenarioTests.CreateZones(dnsClient, resourceGroup, zoneNames);

                ZoneListResponse listresponse = dnsClient.Zones.List(resourceGroup.Name, new ZoneListParameters {
                    Filter = string.Format("endswith(Name,'{0}')", zoneNames[0])
                });

                Assert.NotNull(listresponse);
                Assert.Equal(1, listresponse.Zones.Count);

                ZoneScenarioTests.DeleteZones(dnsClient, resourceGroup, zoneNames);
            }
        }
Esempio n. 20
0
        public static PSResourceGroup ToPSResourceGroup(this ResourceGroupExtended resourceGroup, ResourcesClient client, bool detailed)
        {
            var result = new PSResourceGroup
            {
                ResourceGroupName = resourceGroup.Name,
                Location          = resourceGroup.Location,
                ProvisioningState = resourceGroup.ProvisioningState,
                Tags       = TagsConversionHelper.CreateTagHashtable(resourceGroup.Tags),
                ResourceId = resourceGroup.Id
            };

            if (detailed)
            {
                result.Resources = client.FilterResources(new FilterResourcesOptions {
                    ResourceGroup = resourceGroup.Name
                })
                                   .Select(r => r.ToPSResource(client, true)).ToList();
            }

            return(result);
        }
Esempio n. 21
0
        public void ListZonesWithTopParameter()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                DnsManagementClient dnsClient = ResourceGroupHelper.GetDnsClient();

                var zoneNames = new[] { TestUtilities.GenerateName("hydratestdnszone") + ".com", TestUtilities.GenerateName("hydratestdnszone") + ".con" };
                ResourceGroupExtended resourceGroup = ResourceGroupHelper.CreateResourceGroup();
                ZoneScenarioTests.CreateZones(dnsClient, resourceGroup, zoneNames);

                ZoneListResponse listresponse = dnsClient.Zones.List(resourceGroup.Name, new ZoneListParameters {
                    Top = "1"
                });

                Assert.NotNull(listresponse);
                Assert.Equal(1, listresponse.Zones.Count);
                Assert.True(listresponse.Zones.Any(zoneReturned => string.Equals(zoneNames[0], zoneReturned.Name)),
                            "The response of the List request does not meet expectations.");

                ZoneScenarioTests.DeleteZones(dnsClient, resourceGroup, zoneNames);
            }
        }
        public void ListZonesWithTopParameter()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                DnsManagementClient dnsClient = ResourceGroupHelper.GetDnsClient();

                var zoneNames = new[] { TestUtilities.GenerateName("hydratestdnszone") + ".com", TestUtilities.GenerateName("hydratestdnszone") + ".com" };
                ResourceGroupExtended resourceGroup = ResourceGroupHelper.CreateResourceGroup();
                ZoneScenarioTests.CreateZones(dnsClient, resourceGroup, zoneNames);

                ZoneListResponse listresponse = dnsClient.Zones.ListZonesInResourceGroup(resourceGroup.Name, new ZoneListParameters {
                    Top = "1"
                });

                Assert.NotNull(listresponse);
                Assert.Equal(1, listresponse.Zones.Count);
                Assert.True(zoneNames.Any(zoneName => zoneName == listresponse.Zones[0].Name), string.Format(" did not find zone name {0} in list ", listresponse.Zones[0].Name));
                Assert.True(listresponse.Zones[0].Properties.ParentResourceGroupName == resourceGroup.Name, string.Format(" expected resource group name {0} is different from actual {1}", resourceGroup.Name, listresponse.Zones[0].Properties.ParentResourceGroupName));

                ZoneScenarioTests.DeleteZones(dnsClient, resourceGroup, zoneNames);
            }
        }
Esempio n. 23
0
        public void ListZonesWithListNext()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                DnsManagementClient dnsClient = ResourceGroupHelper.GetDnsClient();

                var zoneNames = new[] { TestUtilities.GenerateName("hydratestdnszone.com"), TestUtilities.GenerateName("hydratestdnszone.com") };
                ResourceGroupExtended resourceGroup = ResourceGroupHelper.CreateResourceGroup();
                ZoneScenarioTests.CreateZones(dnsClient, resourceGroup, zoneNames);

                ZoneListResponse listresponse = dnsClient.Zones.ListZonesInResourceGroup(resourceGroup.Name, new ZoneListParameters {
                    Top = "1"
                });

                Assert.NotNull(listresponse.NextLink);

                listresponse = dnsClient.Zones.ListNext(listresponse.NextLink);

                Assert.Equal(1, listresponse.Zones.Count);

                ZoneScenarioTests.DeleteZones(dnsClient, resourceGroup, zoneNames);
            }
        }
Esempio n. 24
0
        public void CrudEndpointsFullCycle()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                TrafficManagerManagementClient trafficManagerClient = TrafficManagerHelper.GetTrafficManagerClient();

                string profileName  = TestUtilities.GenerateName("hydratestwatmv2profile");
                string endpointName = TestUtilities.GenerateName("hydratestwatmv2endpoint");

                ResourceGroupExtended resourceGroup = TrafficManagerHelper.CreateResourceGroup();

                Profile profile = TrafficManagerHelper.GenerateDefaultProfile(profileName);
                profile.Properties.Endpoints = null;

                // Create profile without endpoints
                trafficManagerClient.Profiles.CreateOrUpdate(
                    resourceGroup.Name,
                    profileName,
                    new ProfileCreateOrUpdateParameters
                {
                    Profile = profile
                });

                // Create the endpoint
                EndpointCreateOrUpdateResponse createEndpoint = trafficManagerClient.Endpoints.CreateOrUpdate(
                    resourceGroup.Name,
                    profileName,
                    "ExternalEndpoints",
                    endpointName,
                    new EndpointCreateOrUpdateParameters
                {
                    Endpoint = TrafficManagerHelper.GenerateDefaultEndpoint(endpointName)
                });

                Assert.Equal(HttpStatusCode.Created, createEndpoint.StatusCode);

                EndpointGetResponse getEndpoint = trafficManagerClient.Endpoints.Get(
                    resourceGroup.Name,
                    profileName,
                    "ExternalEndpoints",
                    endpointName);

                Assert.Equal(HttpStatusCode.OK, getEndpoint.StatusCode);

                Endpoint endpointToUpdate = getEndpoint.Endpoint;

                string oldTarget = endpointToUpdate.Properties.Target;
                string newTarget = "another." + oldTarget;
                endpointToUpdate.Properties.Target = newTarget;

                // Create the endpoint
                EndpointUpdateResponse updateEndpoint = trafficManagerClient.Endpoints.Update(
                    resourceGroup.Name,
                    profileName,
                    "ExternalEndpoints",
                    endpointName,
                    new EndpointUpdateParameters
                {
                    Endpoint = endpointToUpdate
                });

                Assert.Equal(HttpStatusCode.Created, updateEndpoint.StatusCode);
                Assert.Equal(newTarget, updateEndpoint.Endpoint.Properties.Target);

                AzureOperationResponse deleteResponse = trafficManagerClient.Endpoints.Delete(
                    resourceGroup.Name,
                    profileName,
                    "ExternalEndpoints",
                    endpointName);

                Assert.Equal(HttpStatusCode.OK, deleteResponse.StatusCode);
            }
        }
Esempio n. 25
0
        private static async Task ProcessResourceGroup(TokenCloudCredentials subscriptionCredential, ResourceGroupExtended resourceGroupExtended, ILogger log, CancellationToken ct)
        {
            log.LogInformation($"Resource Group {resourceGroupExtended.Id}");

            var storageManagementClient    = new StorageManagementClient(credentials: subscriptionCredential);
            var storageAccountListResponse = await storageManagementClient.StorageAccounts.ListByResourceGroupAsync(resourceGroupName : resourceGroupExtended.Name, cancellationToken : ct);

            foreach (var account in storageAccountListResponse.StorageAccounts)
            {
                var keys = await storageManagementClient.StorageAccounts.ListKeysAsync(resourceGroupName : resourceGroupExtended.Name, accountName : account.Name);
                await ProcessStorageAccountAsync(account, keys, log, ct);
            }
        }
Esempio n. 26
0
 private static bool IsBackupResourceGroup(ResourceGroupExtended group) => true;
Esempio n. 27
0
        public static ZoneCreateOrUpdateResponse CreateZone(DnsManagementClient dnsClient, string zoneName, string location, ResourceGroupExtended resourceGroup)
        {
            ZoneCreateOrUpdateResponse response = dnsClient.Zones.CreateOrUpdate(
                resourceGroup.Name,
                zoneName,
                ifMatch: null,
                ifNoneMatch: null,
                parameters: new ZoneCreateOrUpdateParameters
            {
                Zone = new Microsoft.Azure.Management.Dns.Models.Zone
                {
                    Location   = location,
                    Name       = zoneName,
                    ETag       = null,
                    Properties = new Microsoft.Azure.Management.Dns.Models.ZoneProperties
                    {
                    }
                }
            });

            return(response);
        }
Esempio n. 28
0
 public IEnumerable <RoleAssignment> CreateAndAssignRoleForGroup(ResourceGroupExtended group, Guid principal, params string[] roles)
 {
     return(this.CreateAndAssignRoleForGroup(group, principal, (IEnumerable <String>)roles));
 }
        public void RaUserPermissions()
        {
            User newUser = null;
            ResourceGroupExtended resourceGroup = null;
            string roleAssignmentId             = "1BAF0B29-608A-424F-B54F-92FCDB343FFF";
            string userName           = null;
            string userPass           = null;
            string userPermission     = "*/read";
            string roleDefinitionName = "Reader";

            var controllerAdmin = ResourcesController.NewInstance;

            // Generate new user under admin account
            controllerAdmin.RunPsTestWorkflow(
                // scriptBuilder
                () =>
            {
                userName = TestUtilities.GenerateName("aduser");
                userPass = TestUtilities.GenerateName("adpass") + "0#$";

                var upn = userName + "@" + controllerAdmin.UserDomain;

                var parameter = new UserCreateParameters
                {
                    UserPrincipalName       = upn,
                    DisplayName             = userName,
                    AccountEnabled          = true,
                    MailNickname            = userName + "test",
                    PasswordProfileSettings = new UserCreateParameters.PasswordProfile
                    {
                        ForceChangePasswordNextLogin = false,
                        Password = userPass
                    }
                };

                newUser = controllerAdmin.GraphClient.User.Create(parameter).User;

                resourceGroup = controllerAdmin.ResourceManagementClient.ResourceGroups
                                .List(new ResourceGroupListParameters())
                                .ResourceGroups
                                .First();

                // Wait to allow newly created object changes to propagate
                TestMockSupport.Delay(20000);

                return(new[]
                {
                    string.Format(
                        "CreateRoleAssignment '{0}' '{1}' '{2}' '{3}'",
                        roleAssignmentId,
                        newUser.ObjectId,
                        roleDefinitionName,
                        resourceGroup.Name)
                });
            },
                // initialize
                null,
                // cleanup
                null,
                TestUtilities.GetCallingClass(),
                TestUtilities.GetCurrentMethodName() + "_Setup");

            // login as different user and run the test
            var controllerUser = ResourcesController.NewInstance;

            controllerUser.RunPsTestWorkflow(
                // scriptBuilder
                () =>
            {
                return(new[]
                {
                    string.Format(
                        "Test-RaUserPermissions '{0}' '{1}'",
                        resourceGroup.Name,
                        userPermission)
                });
            },
                // initialize
                (testFactory) =>
            {
                if (newUser != null)
                {
                    testFactory.CustomEnvValues[TestEnvironment.UserIdKey]      = userName + "@" + controllerAdmin.UserDomain;
                    testFactory.CustomEnvValues[TestEnvironment.AADPasswordKey] = userPass;
                }
            },
                // cleanup
                null,
                TestUtilities.GetCallingClass(),
                TestUtilities.GetCurrentMethodName() + "_Test");

            // remove created user
            controllerAdmin = ResourcesController.NewInstance;
            controllerAdmin.RunPsTestWorkflow(
                // scriptBuilder
                null,
                // initialize
                null,
                // cleanup
                () =>
            {
                if (newUser != null)
                {
                    controllerAdmin.GraphClient.User.Delete(newUser.ObjectId);
                }
                controllerAdmin.AuthorizationManagementClient.RoleAssignments.Delete(resourceGroup.Id, new Guid(roleAssignmentId));
            },
                TestUtilities.GetCallingClass(),
                TestUtilities.GetCurrentMethodName() + "_Cleanup");
        }
Esempio n. 30
0
        public WebSiteGetPublishProfileResponse.PublishProfile GetPublishingProfile(WebSite site, ResourceGroupExtended group)
        {
            var profile = this.Client.WebSites.GetPublishProfile(group.Name, site.Name, null).Single(x => String.Equals(x.PublishMethod, "FTP"));

            return(profile);
        }