Beispiel #1
0
        /// <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));
            }
        }
Beispiel #2
0
        /// <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));
            }
        }
Beispiel #5
0
        /// <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());
 }