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); } }
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()); } }
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); } }
public static void DeleteZones(DnsManagementClient dnsClient, ResourceGroupExtended resourceGroup, string[] zoneNames) { foreach (string zoneName in zoneNames) { dnsClient.Zones.Delete(resourceGroup.Name, zoneName, new ZoneDeleteParameters()); } }
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)); }
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); } }
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); } }
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); }
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); } }
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)); }
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); } }
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); }
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); }
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); }
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); } }
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); }
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); } }
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); }
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); } }
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); } }
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); } }
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); } }
private static bool IsBackupResourceGroup(ResourceGroupExtended group) => true;
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); }
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"); }
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); }