public string UpdateDeploymentConfiguration(string serviceName, string deploymentSlot, string configuration, bool treatWarningsAsError = false, string mode = "Auto") { var deploymentStatus = new ChangeConfigurationInput { Configuration = configuration, Mode = mode, TreatWarningsAsError = treatWarningsAsError }; var formatter = new XmlMediaTypeFormatter(); formatter.SetSerializer <ChangeConfigurationInput>(new DataContractSerializer(typeof(ChangeConfigurationInput))); using (var content = new ObjectContent <ChangeConfigurationInput>(deploymentStatus, "application/xml", new[] { formatter })) { var requestUri = string.Format("services/hostedservices/{0}/deploymentslots/{1}/?comp=config", serviceName, deploymentSlot); var response = this.client.Post(requestUri, content); if (!response.IsSuccessStatusCode) { var errorDetails = GetErrorDetails(response); throw new InvalidOperationException(errorDetails.Message); } return(response.Headers.GetValues(Constants.OperationTrackingIdHeader).FirstOrDefault()); } }
public void SetRoleInstanceCountProcess() { Func <XElement, bool> func = null; this.GetCurrentDeployment(); if (this.currentDeployment != null) { using (OperationContextScope operationContextScope = new OperationContextScope((IContextChannel)base.Channel)) { try { XNamespace xNamespace = "http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"; XDocument xDocument = XDocument.Parse(ServiceManagementHelper.DecodeFromBase64String(this.currentDeployment.Configuration)); IEnumerable <XElement> xElements = xDocument.Root.Elements(xNamespace + "Role"); if (func == null) { func = (XElement p) => string.Compare(p.Attribute("name").Value, this.RoleName, true) == 0; } XElement xElement = xElements.Where <XElement>(func).SingleOrDefault <XElement>(); if (xElement != null) { xElement.Element(xNamespace + "Instances").SetAttributeValue("count", this.Count); } using (OperationContextScope operationContextScope1 = new OperationContextScope((IContextChannel)base.Channel)) { ChangeConfigurationInput changeConfigurationInput = new ChangeConfigurationInput(); changeConfigurationInput.Configuration = ServiceManagementHelper.EncodeToBase64String(xDocument.ToString()); ChangeConfigurationInput changeConfigurationInput1 = changeConfigurationInput; CmdletExtensions.WriteVerboseOutputForObject(this, xDocument); base.RetryCall((string s) => base.Channel.ChangeConfigurationBySlot(s, this.ServiceName, this.Slot, changeConfigurationInput1)); Operation operation = base.WaitForOperation(base.CommandRuntime.ToString()); ManagementOperationContext managementOperationContext = new ManagementOperationContext(); managementOperationContext.set_OperationDescription(base.CommandRuntime.ToString()); managementOperationContext.set_OperationId(operation.OperationTrackingId); managementOperationContext.set_OperationStatus(operation.Status); ManagementOperationContext managementOperationContext1 = managementOperationContext; base.WriteObject(managementOperationContext1, true); } } catch (EndpointNotFoundException endpointNotFoundException1) { EndpointNotFoundException endpointNotFoundException = endpointNotFoundException1; this.WriteErrorDetails(endpointNotFoundException); } catch (CommunicationException communicationException1) { CommunicationException communicationException = communicationException1; this.WriteErrorDetails(communicationException); } } return; } else { return; } }
protected void ChangeDeployment(ExtensionConfiguration extConfig) { ChangeConfigurationInput changeConfigInput = new ChangeConfigurationInput { Configuration = Deployment.Configuration, ExtendedProperties = Deployment.ExtendedProperties, ExtensionConfiguration = Deployment.ExtensionConfiguration = extConfig, Mode = ChangeConfigurationModeStr, TreatWarningsAsError = false }; ExecuteClientActionInOCS(null, CommandRuntime.ToString(), s => Channel.ChangeConfigurationBySlot(s, ServiceName, Slot, changeConfigInput)); }
protected override void PerformOperation(IServiceManagement channel) { var input = new ChangeConfigurationInput(); input.Configuration = Utility.GetSettings(ConfigFileLocation); Console.WriteLine("Updating Deployment"); if (!string.IsNullOrEmpty(DeploymentName)) { channel.ChangeConfiguration(SubscriptionId, HostedServiceName, DeploymentName, input); } else if (!string.IsNullOrEmpty(DeploymentSlot)) { channel.ChangeConfigurationBySlot(SubscriptionId, HostedServiceName, DeploymentSlot, input); } }
public void SetRoleInstanceCountProcess() { Operation operation; var currentDeployment = this.GetCurrentDeployment(out operation); if (currentDeployment == null) { return; } using (new OperationContextScope(this.Channel.ToContextChannel())) { try { XNamespace ns = "http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"; var configuration = XDocument.Parse(currentDeployment.Configuration); var role = configuration.Root.Elements(ns + "Role").SingleOrDefault(p => string.Compare(p.Attribute("name").Value, this.RoleName, true) == 0); if (role != null) { role.Element(ns + "Instances").SetAttributeValue("count", this.Count); } using (new OperationContextScope(Channel.ToContextChannel())) { var updatedConfiguration = new ChangeConfigurationInput { Configuration = configuration.ToString() }; ExecuteClientAction(configuration, CommandRuntime.ToString(), s => this.Channel.ChangeConfigurationBySlot(s, this.ServiceName, this.Slot, updatedConfiguration)); } } catch (ServiceManagementClientException ex) { this.WriteErrorDetails(ex); } } }
public void ExecuteCommand() { string configString = string.Empty; if (!string.IsNullOrEmpty(Configuration)) { configString = General.GetConfiguration(Configuration); } // Upgrade Parameter Set if (string.Compare(ParameterSetName, "Upgrade", StringComparison.OrdinalIgnoreCase) == 0) { bool removePackage = false; CurrentSubscription = this.GetCurrentSubscription(); var storageName = CurrentSubscription.CurrentStorageAccount; Uri packageUrl = null; if (Package.StartsWith(Uri.UriSchemeHttp, StringComparison.OrdinalIgnoreCase) || Package.StartsWith(Uri.UriSchemeHttps, StringComparison.OrdinalIgnoreCase)) { packageUrl = new Uri(Package); } else { if (string.IsNullOrEmpty(storageName)) { throw new ArgumentException("CurrentStorageAccount is not set. Use Set-AzureSubscription subname -CurrentStorageAccount storageaccount to set it."); } var progress = new ProgressRecord(0, "Please wait...", "Uploading package to blob storage"); WriteProgress(progress); removePackage = true; InvokeInOperationContext(() => packageUrl = RetryCall(s => AzureBlob.UploadPackageToBlob(this.Channel, storageName, s, Package, null))); } var upgradeDeploymentInput = new UpgradeDeploymentInput { Mode = Mode ?? UpgradeType.Auto, Configuration = configString, PackageUrl = packageUrl, Label = Label != null ? Label : ServiceName, Force = Force.IsPresent }; if (!string.IsNullOrEmpty(RoleName)) { upgradeDeploymentInput.RoleToUpgrade = RoleName; } using (new OperationContextScope(Channel.ToContextChannel())) { try { ExecuteClientAction(upgradeDeploymentInput, CommandRuntime.ToString(), s => this.Channel.UpgradeDeploymentBySlot(s, this.ServiceName, this.Slot, upgradeDeploymentInput)); if (removePackage == true) { this.RetryCall(s => AzureBlob.DeletePackageFromBlob( this.Channel, storageName, s, packageUrl)); } } catch (ServiceManagementClientException ex) { this.WriteErrorDetails(ex); } } } else if (string.Compare(this.ParameterSetName, "Config", StringComparison.OrdinalIgnoreCase) == 0) { // Config parameter set var changeConfiguration = new ChangeConfigurationInput { Configuration = configString }; ExecuteClientActionInOCS(changeConfiguration, CommandRuntime.ToString(), s => this.Channel.ChangeConfigurationBySlot(s, this.ServiceName, this.Slot, changeConfiguration)); } else { // Status parameter set var updateDeploymentStatus = new UpdateDeploymentStatusInput() { Status = this.NewStatus }; ExecuteClientActionInOCS(null, CommandRuntime.ToString(), s => this.Channel.UpdateDeploymentStatusBySlot(s, this.ServiceName, this.Slot, updateDeploymentStatus)); } }
public static void ChangeConfigurationBySlot(this IServiceManagement proxy, string subscriptionId, string serviceName, string deploymentSlot, ChangeConfigurationInput input) { proxy.EndChangeConfigurationBySlot(proxy.BeginChangeConfigurationBySlot(subscriptionId, serviceName, deploymentSlot, input, null, null)); }
public IAsyncResult BeginChangeConfigurationBySlot(string subscriptionId, string serviceName, string deploymentSlot, ChangeConfigurationInput input, AsyncCallback callback, object state) { SimpleServiceManagementAsyncResult result = new SimpleServiceManagementAsyncResult(); result.Values["subscriptionId"] = subscriptionId; result.Values["serviceName"] = serviceName; result.Values["deploymentSlot"] = deploymentSlot; result.Values["input"] = input; result.Values["callback"] = callback; result.Values["state"] = state; return result; }
public void ExecuteCommand() { string configString = string.Empty; if (!string.IsNullOrEmpty(Configuration)) { configString = General.GetConfiguration(Configuration); } ExtensionConfiguration extConfig = null; if (ExtensionConfiguration != null) { var roleList = (from c in ExtensionConfiguration where c != null from r in c.Roles select r).GroupBy(r => r.ToString()).Select(g => g.First()); foreach (var role in roleList) { var result = from c in ExtensionConfiguration where c != null && c.Roles.Any(r => r.ToString() == role.ToString()) select string.Format("{0}.{1}", c.ProviderNameSpace, c.Type); foreach (var s in result) { if (result.Count(t => t == s) > 1) { throw new Exception(string.Format(Resources.ServiceExtensionCannotApplyExtensionsInSameType, s)); } } } Deployment deployment = Channel.GetDeploymentBySlot(CurrentSubscription.SubscriptionId, ServiceName, Slot); ExtensionManager extensionMgr = new ExtensionManager(this, ServiceName); ExtensionConfigurationBuilder configBuilder = extensionMgr.GetBuilder(); foreach (ExtensionConfigurationInput context in ExtensionConfiguration) { if (context != null) { if (context.X509Certificate != null) { var operationDescription = string.Format(Resources.ServiceExtensionUploadingCertificate, CommandRuntime, context.X509Certificate.Thumbprint); ExecuteClientActionInOCS(null, operationDescription, s => this.Channel.AddCertificates(s, this.ServiceName, CertUtils.Create(context.X509Certificate))); } ExtensionConfiguration currentConfig = extensionMgr.InstallExtension(context, Slot, deployment.ExtensionConfiguration); foreach (var r in currentConfig.AllRoles) { if (!extensionMgr.GetBuilder(deployment.ExtensionConfiguration).ExistAny(r.Id)) { configBuilder.AddDefault(r.Id); } } foreach (var r in currentConfig.NamedRoles) { foreach (var e in r.Extensions) { if (!extensionMgr.GetBuilder(deployment.ExtensionConfiguration).ExistAny(e.Id)) { configBuilder.Add(r.RoleName, e.Id); } } } } } extConfig = configBuilder.ToConfiguration(); } // Upgrade Parameter Set if (string.Compare(ParameterSetName, "Upgrade", StringComparison.OrdinalIgnoreCase) == 0) { bool removePackage = false; CurrentSubscription = this.GetCurrentSubscription(); var storageName = CurrentSubscription.CurrentStorageAccount; Uri packageUrl = null; if (Package.StartsWith(Uri.UriSchemeHttp, StringComparison.OrdinalIgnoreCase) || Package.StartsWith(Uri.UriSchemeHttps, StringComparison.OrdinalIgnoreCase)) { packageUrl = new Uri(Package); } else { if (string.IsNullOrEmpty(storageName)) { throw new ArgumentException(Resources.CurrentStorageAccountIsNotSet); } var progress = new ProgressRecord(0, Resources.WaitForUploadingPackage, Resources.UploadingPackage); WriteProgress(progress); removePackage = true; InvokeInOperationContext(() => packageUrl = RetryCall(s => AzureBlob.UploadPackageToBlob(this.Channel, storageName, s, Package, null))); } var upgradeDeploymentInput = new UpgradeDeploymentInput { Mode = Mode ?? UpgradeType.Auto, Configuration = configString, ExtensionConfiguration = extConfig, PackageUrl = packageUrl, Label = Label ?? ServiceName, Force = Force.IsPresent }; if (!string.IsNullOrEmpty(RoleName)) { upgradeDeploymentInput.RoleToUpgrade = RoleName; } using (new OperationContextScope(Channel.ToContextChannel())) { try { ExecuteClientAction(upgradeDeploymentInput, CommandRuntime.ToString(), s => this.Channel.UpgradeDeploymentBySlot(s, this.ServiceName, this.Slot, upgradeDeploymentInput)); if (removePackage == true) { this.RetryCall(s => AzureBlob.DeletePackageFromBlob( this.Channel, storageName, s, packageUrl)); } } catch (ServiceManagementClientException ex) { this.WriteErrorDetails(ex); } } } else if (string.Compare(this.ParameterSetName, "Config", StringComparison.OrdinalIgnoreCase) == 0) { // Config parameter set var changeConfiguration = new ChangeConfigurationInput { Configuration = configString, ExtensionConfiguration = extConfig }; ExecuteClientActionInOCS(changeConfiguration, CommandRuntime.ToString(), s => this.Channel.ChangeConfigurationBySlot(s, this.ServiceName, this.Slot, changeConfiguration)); } else { // Status parameter set var updateDeploymentStatus = new UpdateDeploymentStatusInput { Status = this.NewStatus }; ExecuteClientActionInOCS(null, CommandRuntime.ToString(), s => this.Channel.UpdateDeploymentStatusBySlot(s, this.ServiceName, this.Slot, updateDeploymentStatus)); } }
public void SetDeploymentTmpProcess() { SetAzureDeploymentCommand.SetAzureDeploymentCommand variable = null; string mode; string base64String; string empty = string.Empty; if (!string.IsNullOrEmpty(this.Configuration)) { empty = Utility.GetConfiguration(this.Configuration); } if (string.Compare(base.ParameterSetName, "Upgrade", StringComparison.OrdinalIgnoreCase) != 0) { if (string.Compare(base.ParameterSetName, "Config", StringComparison.OrdinalIgnoreCase) != 0) { Action <string> action = null; UpdateDeploymentStatusInput updateDeploymentStatusInput = new UpdateDeploymentStatusInput(); updateDeploymentStatusInput.Status = this.NewStatus; UpdateDeploymentStatusInput updateDeploymentStatusInput1 = updateDeploymentStatusInput; using (OperationContextScope operationContextScope = new OperationContextScope((IContextChannel)base.Channel)) { try { SetAzureDeploymentCommand setAzureDeploymentCommand = this; if (action == null) { action = (string s) => base.Channel.UpdateDeploymentStatusBySlot(s, this.ServiceName, this.Slot, updateDeploymentStatusInput1); } ((CmdletBase <IServiceManagement>)setAzureDeploymentCommand).RetryCall(action); Operation operation = base.WaitForOperation(base.CommandRuntime.ToString()); ManagementOperationContext managementOperationContext = new ManagementOperationContext(); managementOperationContext.set_OperationDescription(base.CommandRuntime.ToString()); managementOperationContext.set_OperationId(operation.OperationTrackingId); managementOperationContext.set_OperationStatus(operation.Status); ManagementOperationContext managementOperationContext1 = managementOperationContext; base.WriteObject(managementOperationContext1, true); } catch (CommunicationException communicationException1) { CommunicationException communicationException = communicationException1; this.WriteErrorDetails(communicationException); } } } else { Action <string> action1 = null; ChangeConfigurationInput changeConfigurationInput = new ChangeConfigurationInput(); changeConfigurationInput.Configuration = empty; ChangeConfigurationInput changeConfigurationInput1 = changeConfigurationInput; using (OperationContextScope operationContextScope1 = new OperationContextScope((IContextChannel)base.Channel)) { try { CmdletExtensions.WriteVerboseOutputForObject(this, changeConfigurationInput1); SetAzureDeploymentCommand setAzureDeploymentCommand1 = this; if (action1 == null) { action1 = (string s) => base.Channel.ChangeConfigurationBySlot(s, this.ServiceName, this.Slot, changeConfigurationInput1); } ((CmdletBase <IServiceManagement>)setAzureDeploymentCommand1).RetryCall(action1); Operation operation1 = base.WaitForOperation(base.CommandRuntime.ToString()); ManagementOperationContext managementOperationContext2 = new ManagementOperationContext(); managementOperationContext2.set_OperationDescription(base.CommandRuntime.ToString()); managementOperationContext2.set_OperationId(operation1.OperationTrackingId); managementOperationContext2.set_OperationStatus(operation1.Status); ManagementOperationContext managementOperationContext3 = managementOperationContext2; base.WriteObject(managementOperationContext3, true); } catch (CommunicationException communicationException3) { CommunicationException communicationException2 = communicationException3; this.WriteErrorDetails(communicationException2); } } } } else { Func <string, Uri> func = null; Action <string> action2 = null; Action <string> action3 = null; bool flag = false; base.CurrentSubscription = CmdletSubscriptionExtensions.GetCurrentSubscription(this); string currentStorageAccount = base.CurrentSubscription.CurrentStorageAccount; if (this.Package.StartsWith(Uri.UriSchemeHttp, StringComparison.OrdinalIgnoreCase) || this.Package.StartsWith(Uri.UriSchemeHttps, StringComparison.OrdinalIgnoreCase)) { Uri uri = new Uri(this.Package); } else { if (!string.IsNullOrEmpty(currentStorageAccount)) { ProgressRecord progressRecord = new ProgressRecord(0, "Please wait...", "Uploading package to blob storage"); base.WriteProgress(progressRecord); flag = true; SetAzureDeploymentCommand variable1 = variable; SetAzureDeploymentCommand setAzureDeploymentCommand2 = this; if (func == null) { func = (string s) => AzureBlob.UploadPackageToBlob(this.CreateChannel(), currentStorageAccount, s, this.Package); } packageUrl = ((CmdletBase <IServiceManagement>)setAzureDeploymentCommand2).RetryCall <Uri>(func); } else { throw new ArgumentException("CurrentStorageAccount is not set. Use Set-AzureSubscription subname -CurrentStorageAccount storageaccount to set it."); } } SetAzureDeploymentCommand variable2 = variable; UpgradeDeploymentInput upgradeDeploymentInput = new UpgradeDeploymentInput(); UpgradeDeploymentInput upgradeDeploymentInput1 = upgradeDeploymentInput; if (this.Mode == null) { mode = "Auto"; } else { mode = this.Mode; } upgradeDeploymentInput1.Mode = mode; upgradeDeploymentInput.Configuration = empty; upgradeDeploymentInput.PackageUrl = uri; UpgradeDeploymentInput upgradeDeploymentInput2 = upgradeDeploymentInput; if (this.Label != null) { base64String = ServiceManagementHelper.EncodeToBase64String(this.Label); } else { base64String = ServiceManagementHelper.EncodeToBase64String(this.ServiceName); } upgradeDeploymentInput2.Label = base64String; SwitchParameter force = this.Force; upgradeDeploymentInput.Force = new bool?(force.IsPresent); variable2.upgradeDeploymentInput = upgradeDeploymentInput; if (!string.IsNullOrEmpty(this.RoleName)) { UpgradeDeploymentInput roleName = this.RoleName; } using (OperationContextScope operationContextScope2 = new OperationContextScope((IContextChannel)base.Channel)) { try { CmdletExtensions.WriteVerboseOutputForObject(this, roleName); SetAzureDeploymentCommand setAzureDeploymentCommand3 = this; if (action2 == null) { action2 = (string s) => this.Channel.UpgradeDeploymentBySlot(s, this.ServiceName, this.Slot, this.upgradeDeploymentInput); } ((CmdletBase <IServiceManagement>)setAzureDeploymentCommand3).RetryCall(action2); Operation operation2 = base.WaitForOperation(base.CommandRuntime.ToString()); ManagementOperationContext managementOperationContext4 = new ManagementOperationContext(); managementOperationContext4.OperationDescription = base.CommandRuntime.ToString(); managementOperationContext4.OperationId = operation2.OperationTrackingId; managementOperationContext4.OperationStatus = operation2.Status; ManagementOperationContext managementOperationContext5 = managementOperationContext4; base.WriteObject(managementOperationContext5, true); if (flag) { SetAzureDeploymentCommand setAzureDeploymentCommand4 = this; if (action3 == null) { action3 = (string s) => AzureBlob.DeletePackageFromBlob(base.Channel, currentStorageAccount, s, uri); } ((CmdletBase <IServiceManagement>)setAzureDeploymentCommand4).RetryCall(action3); } } catch (CommunicationException communicationException5) { CommunicationException communicationException4 = communicationException5; this.WriteErrorDetails(communicationException4); } } } }
public void ExecuteCommand() { string configString = string.Empty; if (!string.IsNullOrEmpty(Configuration)) { configString = General.GetConfiguration(Configuration); } ExtensionConfiguration extConfig = null; if (ExtensionConfiguration != null) { var roleList = (from c in ExtensionConfiguration where c != null from r in c.Roles select r).GroupBy(r => r.ToString()).Select(g => g.First()); foreach (var role in roleList) { var result = from c in ExtensionConfiguration where c != null && c.Roles.Any(r => r.ToString() == role.ToString()) select string.Format("{0}.{1}", c.ProviderNameSpace, c.Type); foreach (var s in result) { if (result.Count(t => t == s) > 1) { throw new Exception(string.Format(Resources.ServiceExtensionCannotApplyExtensionsInSameType, s)); } } } Deployment deployment = Channel.GetDeploymentBySlot(CurrentSubscription.SubscriptionId, ServiceName, Slot); ExtensionManager extensionMgr = new ExtensionManager(Channel, CurrentSubscription.SubscriptionId, ServiceName); ExtensionConfigurationBuilder configBuilder = extensionMgr.GetBuilder(); foreach (ExtensionConfigurationInput context in ExtensionConfiguration) { if (context != null) { if (context.X509Certificate != null) { var operationDescription = string.Format(Resources.ServiceExtensionUploadingCertificate, CommandRuntime, context.X509Certificate.Thumbprint); ExecuteClientActionInOCS(null, operationDescription, s => this.Channel.AddCertificates(s, this.ServiceName, CertUtils.Create(context.X509Certificate))); } ExtensionConfiguration currentConfig = extensionMgr.InstallExtension(context, Slot, deployment.ExtensionConfiguration); foreach (var r in currentConfig.AllRoles) { if (!extensionMgr.GetBuilder(deployment.ExtensionConfiguration).ExistAny(r.Id)) { configBuilder.AddDefault(r.Id); } } foreach (var r in currentConfig.NamedRoles) { foreach (var e in r.Extensions) { if (!extensionMgr.GetBuilder(deployment.ExtensionConfiguration).ExistAny(e.Id)) { configBuilder.Add(r.RoleName, e.Id); } } } } } extConfig = configBuilder.ToConfiguration(); } // Upgrade Parameter Set if (string.Compare(ParameterSetName, "Upgrade", StringComparison.OrdinalIgnoreCase) == 0) { bool removePackage = false; CurrentSubscription = this.GetCurrentSubscription(); var storageName = CurrentSubscription.CurrentStorageAccount; Uri packageUrl = null; if (Package.StartsWith(Uri.UriSchemeHttp, StringComparison.OrdinalIgnoreCase) || Package.StartsWith(Uri.UriSchemeHttps, StringComparison.OrdinalIgnoreCase)) { packageUrl = new Uri(Package); } else { if (string.IsNullOrEmpty(storageName)) { throw new ArgumentException(Resources.CurrentStorageAccountIsNotSet); } var progress = new ProgressRecord(0, Resources.WaitForUploadingPackage, Resources.UploadingPackage); WriteProgress(progress); removePackage = true; InvokeInOperationContext(() => packageUrl = RetryCall(s => AzureBlob.UploadPackageToBlob(this.Channel, storageName, s, Package, null))); } var upgradeDeploymentInput = new UpgradeDeploymentInput { Mode = Mode ?? UpgradeType.Auto, Configuration = configString, ExtensionConfiguration = extConfig, PackageUrl = packageUrl, Label = Label ?? ServiceName, Force = Force.IsPresent }; if (!string.IsNullOrEmpty(RoleName)) { upgradeDeploymentInput.RoleToUpgrade = RoleName; } using (new OperationContextScope(Channel.ToContextChannel())) { try { ExecuteClientAction(upgradeDeploymentInput, CommandRuntime.ToString(), s => this.Channel.UpgradeDeploymentBySlot(s, this.ServiceName, this.Slot, upgradeDeploymentInput)); if (removePackage == true) { this.RetryCall(s => AzureBlob.DeletePackageFromBlob( this.Channel, storageName, s, packageUrl)); } } catch (ServiceManagementClientException ex) { this.WriteErrorDetails(ex); } } } else if (string.Compare(this.ParameterSetName, "Config", StringComparison.OrdinalIgnoreCase) == 0) { // Config parameter set var changeConfiguration = new ChangeConfigurationInput { Configuration = configString, ExtensionConfiguration = extConfig }; ExecuteClientActionInOCS(changeConfiguration, CommandRuntime.ToString(), s => this.Channel.ChangeConfigurationBySlot(s, this.ServiceName, this.Slot, changeConfiguration)); } else { // Status parameter set var updateDeploymentStatus = new UpdateDeploymentStatusInput { Status = this.NewStatus }; ExecuteClientActionInOCS(null, CommandRuntime.ToString(), s => this.Channel.UpdateDeploymentStatusBySlot(s, this.ServiceName, this.Slot, updateDeploymentStatus)); } }