Example #1
0
        public override void ExecuteCmdlet()
        {
            if (this.IsParameterBound(c => c.ResourceId))
            {
                var resourceIdentifier = new ResourceIdentifier(this.ResourceId);
                this.ResourceGroupName = resourceIdentifier.ResourceGroupName;
                this.ClusterName       = resourceIdentifier.ResourceName;
            }

            PSClusterPatch parameters = new PSClusterPatch();

            if (this.IsParameterBound(c => c.InputCluster))
            {
                parameters.KeyVaultProperties = InputCluster.KeyVaultProperties;
                parameters.Sku         = InputCluster.Sku;
                parameters.Tags        = InputCluster.Tags;
                parameters.Identity    = InputCluster.Identity;
                parameters.BillingType = InputCluster.BillingType;
            }
            else
            {
                parameters.KeyVaultProperties = PSKeyVaultProperties.CreateProperties(this.KeyVaultUri, this.KeyName, this.KeyVersion);
                parameters.Sku         = this.SkuCapacity == null ? null :  new PSClusterSku(this.SkuName ?? AllowedClusterServiceTiers.CapacityReservation.ToString(), this.SkuCapacity);
                parameters.Tags        = this.Tag;
                parameters.Identity    = new PSIdentity(IdentityType);
                parameters.BillingType = BillingType;
            }

            if (ShouldProcess(this.ClusterName,
                              $"update cluster: {this.ClusterName} in resource group: {this.ResourceGroupName}"))
            {
                WriteObject(this.OperationalInsightsClient.UpdatePSCluster(this.ResourceGroupName, this.ClusterName, parameters));
            }
        }
Example #2
0
        public override void ExecuteCmdlet()
        {
            PSClusterPatch parameters = new PSClusterPatch()
            {
                KeyVaultProperties = new PSKeyVaultProperties(this.KeyVaultUri, this.KeyName, this.KeyVersion),
                Sku  = new PSClusterSku(this.SkuName, this.SkuCapacity),
                Tags = this.Tag
            };

            if (ShouldProcess(this.ClusterName,
                              string.Format("update cluster: {0} in resource group: {1}", this.ClusterName, this.ResourceGroupName)))
            {
                WriteObject(this.OperationalInsightsClient.UpdatePSCluster(this.ResourceGroupName, this.ClusterName, parameters));
            }
        }
        public virtual PSCluster UpdatePSCluster(string resourceGroupName, string clusterName, PSClusterPatch parameters)
        {
            PSCluster existingCluster;

            try
            {
                existingCluster = GetPSCluster(resourceGroupName, clusterName);
            }
            catch (RestException)
            {
                throw new PSArgumentException($"Cluster {clusterName} under {resourceGroupName} is not existed");
            }

            parameters.Tags = parameters.Tags ?? existingCluster.Tags;

            parameters.BillingType = string.IsNullOrEmpty(parameters.BillingType)
                ? existingCluster.BillingType
                : parameters.BillingType;

            if (parameters.KeyVaultProperties != null)
            {
                parameters.KeyVaultProperties.KeyName = string.IsNullOrEmpty(parameters.KeyVaultProperties.KeyName)
                    ? existingCluster.KeyVaultProperties?.KeyName
                    : parameters.KeyVaultProperties.KeyName;

                parameters.KeyVaultProperties.KeyVaultUri = string.IsNullOrEmpty(parameters.KeyVaultProperties.KeyVaultUri)
                    ? existingCluster.KeyVaultProperties?.KeyVaultUri
                    : parameters.KeyVaultProperties.KeyVaultUri;

                parameters.KeyVaultProperties.KeyVersion = string.IsNullOrEmpty(parameters.KeyVaultProperties.KeyVersion)
                    ? existingCluster.KeyVaultProperties?.KeyVersion
                    : parameters.KeyVaultProperties.KeyVersion;
            }

            if (parameters.Sku != null)
            {
                parameters.Sku.Name = string.IsNullOrEmpty(parameters.Sku?.Name)
                    ? existingCluster.Sku?.Name
                    : parameters.Sku.Name;

                parameters.Sku.Capacity = parameters.Sku?.Capacity == 0
                    ? existingCluster.Sku?.Capacity
                    : parameters.Sku.Capacity;
            }

            var response =
                this.OperationalInsightsManagementClient.Clusters.Update(resourceGroupName, clusterName,
                                                                         parameters.GetClusterPatch());

            return(new PSCluster(response));
        }