/// <summary> /// Validates the prerequisites. /// </summary> /// <param name="client">The client.</param> /// <param name="parameters">The parameters.</param> protected override void ValidatePrerequisites(AzureStackClient client, ProviderRegistrationCreateOrUpdateParameters parameters) { ArgumentValidator.ValidateNotNull("client", client); ArgumentValidator.ValidateNotNull("parameters", parameters); client.ResourceGroups.CreateOrUpdate(new ResourceGroupCreateOrUpdateParameters() { ResourceGroup = new ResourceGroupDefinition() { Location = this.ArmLocation, Name = this.ResourceGroup, } }); var name = parameters.ProviderRegistration.Properties.Name; var location = parameters.ProviderRegistration.Properties.Location; if (client.ProviderRegistrations.List(this.ResourceGroup).ProviderRegistrations .Any(p => string.Equals(p.Properties.Manifest.Namespace, name, StringComparison.OrdinalIgnoreCase) && string.Equals(p.Properties.Location, location, StringComparison.OrdinalIgnoreCase))) { throw new PSInvalidOperationException(Resources.ProviderRegistrationAlreadyExists.FormatArgs(name, location)); } }
/// <summary> /// Executes the API call(s) against Azure Resource Management API(s). /// </summary> protected override object ExecuteCore() { using (var client = this.GetAzureStackClient(this.SubscriptionId)) { var parameters = new ProviderRegistrationCreateOrUpdateParameters() { ProviderRegistration = this.ProviderRegistration ?? new ProviderRegistrationModel() { Name = this.Name, Location = this.ArmLocation, Properties = new ProviderRegistrationDefinition() { Name = this.Name, DisplayName = this.DisplayName, Enabled = true, Location = this.Location, ManifestEndpoint = new ResourceProviderEndpoint() { EndpointUri = this.ManifestEndpoint.AbsoluteUri, AuthenticationUsername = this.UserName, AuthenticationPassword = this.Password, } } } }; this.WriteVerbose(Resources.AddingResourceProviderRegistration.FormatArgs(parameters.ProviderRegistration.Properties.Name)); this.ValidatePrerequisites(client, parameters); return(client.ProviderRegistrations .CreateOrUpdate(this.ResourceGroup, parameters) .ProviderRegistration); } }
/// <summary> /// Executes the API call(s) against Azure Resource Management API(s). /// </summary> protected override void ExecuteCore() { if (this.MyInvocation.InvocationName.Equals("Set-AzureRmResourceProviderRegistration", StringComparison.OrdinalIgnoreCase)) { this.WriteWarning("Alias Set-AzureRmResourceProviderRegistration will be deprecated in a future release. Please use the cmdlet Set-AzsResourceProviderManifest instead"); } if (ShouldProcess(this.ProviderRegistration.Name, VerbsCommon.Set)) { using (var client = this.GetAzureStackClient()) { var parameters = new ProviderRegistrationCreateOrUpdateParameters() { ProviderRegistration = this.ProviderRegistration }; this.WriteVerbose( Resources.AddingResourceProviderManifest.FormatArgs( parameters.ProviderRegistration.Properties.DisplayName)); this.ValidatePrerequisites(client, parameters); var result = client.ProviderRegistrations .CreateOrUpdate(this.ResourceGroupName, parameters) .ProviderRegistration; WriteObject(result); } } }
/// <summary> /// Validates the prerequisites. /// </summary> /// <param name="client">The client.</param> /// <param name="parameters">The parameters.</param> protected virtual void ValidatePrerequisites(AzureStackClient client, ProviderRegistrationCreateOrUpdateParameters parameters) { ArgumentValidator.ValidateNotNull("client", client); ArgumentValidator.ValidateNotNull("parameters", parameters); if (!client.ResourceGroups.List().ResourceGroups.Any(r => string.Equals(r.Name, this.ResourceGroupName, StringComparison.OrdinalIgnoreCase))) { throw new PSInvalidOperationException(Resources.ResourceGroupDoesNotExist.FormatArgs(this.ResourceGroupName)); } }
/// <summary> /// Validates the prerequisites. /// </summary> /// <param name="client">The client.</param> /// <param name="parameters">The parameters.</param> protected virtual void ValidatePrerequisites(AzureStackClient client, ProviderRegistrationCreateOrUpdateParameters parameters) { ArgumentValidator.ValidateNotNull("client", client); ArgumentValidator.ValidateNotNull("parameters", parameters); if (!client.ResourceGroups.List().ResourceGroups.Any(r => string.Equals(r.Name, this.ResourceGroup, StringComparison.OrdinalIgnoreCase))) { throw new PSInvalidOperationException(Resources.ResourceGroupDoesNotExist.FormatArgs(this.ResourceGroup)); } var name = parameters.ProviderRegistration.Properties.Name; var location = parameters.ProviderRegistration.Properties.Location; if (!client.ProviderRegistrations.List(this.ResourceGroup).ProviderRegistrations .Any(p => string.Equals(p.Properties.Manifest.Namespace, name, StringComparison.OrdinalIgnoreCase) && string.Equals(p.Properties.Location, location, StringComparison.OrdinalIgnoreCase))) { throw new PSInvalidOperationException(Resources.ProviderRegistrationDoesNotExist.FormatArgs(name, location)); } }
/// <summary> /// Executes the API call(s) against Azure Resource Management API(s). /// </summary> protected override void ExecuteCore() { if (ShouldProcess(this.Name, VerbsCommon.Add)) { using (var client = this.GetAzureStackClient()) { if (this.MyInvocation.InvocationName.Equals("Add-AzureRmResourceProviderRegistration", StringComparison.OrdinalIgnoreCase)) { this.WriteWarning( "Alias Add-AzureRmResourceProviderRegistration will be deprecated in a future release. Please use the cmdlet Add-AzsResourceProviderManifest instead"); } ProviderRegistrationCreateOrUpdateParameters registrationParams = null; // Todo: Remove the parameter sets in the next major release if (this.ParameterSetName.Equals("SingleExtension", StringComparison.OrdinalIgnoreCase)) { WriteWarning( "ExtensionName and ExtensionUri parameters will be deprecated in a future release, Use the Extensions parameter to specify the extesnions registration as a json string"); registrationParams = new ProviderRegistrationCreateOrUpdateParameters() { ProviderRegistration = new ProviderRegistrationModel() { Name = this.Name, Location = this.ArmLocation, Properties = new ManifestPropertiesDefinition() { DisplayName = this.DisplayName, Namespace = this.Namespace, RoutingResourceManagerType = this.ResourceManagerType, Enabled = true, ProviderLocation = this.ProviderLocation, // Todo: Remove this HACK, hardcoded versions to have backward compatibility ExtensionCollection = new ExtensionCollectionDefinition() { Version = "0.1.0.0", Extensions = new ExtensionDefinition[] { new ExtensionDefinition() { Name = this.ExtensionName, Uri = (this.ExtensionUri == null) ? null : this.ExtensionUri.AbsoluteUri } } }, ResourceTypes = this.ResourceTypes.FromJson <List <ResourceType> >(), Signature = this.Signature } } }; } else { registrationParams = new ProviderRegistrationCreateOrUpdateParameters() { ProviderRegistration = new ProviderRegistrationModel() { Name = this.Name, Location = this.ArmLocation, Properties = new ManifestPropertiesDefinition() { DisplayName = this.DisplayName, Namespace = this.Namespace, // Note: The default value is set to Admin ARM to have backward compatibility with existing deployment scripts // The default value will get changed to User ARM in future. RoutingResourceManagerType = this.ResourceManagerType, Enabled = true, ProviderLocation = this.ProviderLocation, ExtensionCollection = (this.Extensions == null) ? null : this.Extensions.FromJson <ExtensionCollectionDefinition>(), ResourceTypes = this.ResourceTypes.FromJson <List <ResourceType> >(), Signature = this.Signature } } }; } this.WriteVerbose( Resources.AddingResourceProviderManifest.FormatArgs( registrationParams.ProviderRegistration.Properties.DisplayName)); this.ValidatePrerequisites(client, registrationParams); var result = client.ProviderRegistrations .CreateOrUpdate(this.ResourceGroupName, registrationParams) .ProviderRegistration; WriteObject(result); } } }
/// <summary> /// Your documentation here. (see /// http://msdn.microsoft.com/en-us/library/windowsazure/XXXXX.aspx /// for more information) /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.AzureStack.Management.IProviderRegistrationOperations. /// </param> /// <param name='resourceGroupName'> /// Required. Your documentation here. /// </param> /// <param name='parameters'> /// Required. Your documentation here. /// </param> /// <returns> /// Your documentation here. /// </returns> public static Task <ProviderRegistrationCreateOrUpdateResult> CreateOrUpdateAsync(this IProviderRegistrationOperations operations, string resourceGroupName, ProviderRegistrationCreateOrUpdateParameters parameters) { return(operations.CreateOrUpdateAsync(resourceGroupName, parameters, CancellationToken.None)); }
/// <summary> /// Your documentation here. (see /// http://msdn.microsoft.com/en-us/library/windowsazure/XXXXX.aspx /// for more information) /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.AzureStack.Management.IProviderRegistrationOperations. /// </param> /// <param name='resourceGroupName'> /// Required. Your documentation here. /// </param> /// <param name='parameters'> /// Required. Your documentation here. /// </param> /// <returns> /// Your documentation here. /// </returns> public static ProviderRegistrationCreateOrUpdateResult CreateOrUpdate(this IProviderRegistrationOperations operations, string resourceGroupName, ProviderRegistrationCreateOrUpdateParameters parameters) { return(Task.Factory.StartNew((object s) => { return ((IProviderRegistrationOperations)s).CreateOrUpdateAsync(resourceGroupName, parameters); } , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult()); }