public void NewAffinityGroupProcess() { using (OperationContextScope operationContextScope = new OperationContextScope((IContextChannel)base.Channel)) { try { CreateAffinityGroupInput createAffinityGroupInput = new CreateAffinityGroupInput(); createAffinityGroupInput.Description = this.Description; createAffinityGroupInput.Label = ServiceManagementHelper.EncodeToBase64String(this.Label); createAffinityGroupInput.Location = this.Location; createAffinityGroupInput.Name = this.Name; CmdletExtensions.WriteVerboseOutputForObject(this, createAffinityGroupInput); base.RetryCall((string s) => base.Channel.CreateAffinityGroup(s, createAffinityGroupInput)); 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); } } }
private Collection <IPackageSearchMetadata> PackageSourceSearchMetadatas() { string allVersions = $"-{nameof(AllVersions)} {AllVersions}"; if (!AllVersions) { allVersions = null; } string sources = $"-{nameof(Source)} '{Source}'"; string versions = null; if (Versions != null) { versions = $"-{nameof(Versions)} @({string.Join(",", Versions.Select(s => $"'{s}'"))})"; } string name = $"-{nameof(Name)} {Name}"; if (Name == null) { name = null; } var cmdletName = CmdletExtensions.GetCmdletName <GetNugetPackageSearchMetadata.GetNugetPackageSearchMetadata>(); var script = $"{cmdletName} {sources} {allVersions} {name} {versions}"; var sourceSearchMetadatas = this.Invoke <IPackageSearchMetadata>(script); return(sourceSearchMetadatas); }
public OSImage UpdateVMImageProcess(out string operationId) { operationId = string.Empty; OSImage oSImage = null; using (OperationContextScope operationContextScope = new OperationContextScope((IContextChannel)base.Channel)) { try { OSImage imageName = new OSImage(); imageName.Name = this.ImageName; imageName.Label = this.Label; OSImage oSImage1 = imageName; CmdletExtensions.WriteVerboseOutputForObject(this, oSImage1); oSImage = base.RetryCall <OSImage>((string s) => base.Channel.UpdateOSImage(s, this.ImageName, oSImage1)); 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); } } return(oSImage); }
public void SetAffinityGroupProcess() { this.ValidateParameters(); using (OperationContextScope operationContextScope = new OperationContextScope((IContextChannel)base.Channel)) { try { UpdateAffinityGroupInput updateAffinityGroupInput = new UpdateAffinityGroupInput(); updateAffinityGroupInput.Label = ServiceManagementHelper.EncodeToBase64String(this.Label); UpdateAffinityGroupInput description = updateAffinityGroupInput; if (this.Description != null) { description.Description = this.Description; } CmdletExtensions.WriteVerboseOutputForObject(this, description); base.RetryCall((string s) => base.Channel.UpdateAffinityGroup(s, this.Name, description)); 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); } } }
protected override void ProcessRecord() { Uri uri; string diskLabel; try { base.ProcessRecord(); this.ValidateParameters(); if (string.IsNullOrEmpty(this.Label)) { this.Label = this.Name; } this.Label = ServiceManagementHelper.EncodeToBase64String(this.Label); PersistentVM persistentVM = new PersistentVM(); persistentVM.AvailabilitySetName = this.AvailabilitySetName; persistentVM.ConfigurationSets = new Collection <ConfigurationSet>(); persistentVM.DataVirtualHardDisks = new Collection <DataVirtualHardDisk>(); persistentVM.RoleName = this.Name; persistentVM.RoleSize = this.InstanceSize; persistentVM.RoleType = "PersistentVMRole"; persistentVM.Label = this.Label; PersistentVM persistentVM1 = persistentVM; PersistentVM persistentVM2 = persistentVM1; OSVirtualHardDisk oSVirtualHardDisk = new OSVirtualHardDisk(); oSVirtualHardDisk.DiskName = this.DiskName; oSVirtualHardDisk.SourceImageName = this.ImageName; OSVirtualHardDisk oSVirtualHardDisk1 = oSVirtualHardDisk; if (string.IsNullOrEmpty(this.MediaLocation)) { uri = null; } else { uri = new Uri(this.MediaLocation); } oSVirtualHardDisk1.MediaLink = uri; oSVirtualHardDisk.HostCaching = this.HostCaching; OSVirtualHardDisk oSVirtualHardDisk2 = oSVirtualHardDisk; if (string.IsNullOrEmpty(this.DiskLabel)) { diskLabel = null; } else { diskLabel = this.DiskLabel; } oSVirtualHardDisk2.DiskLabel = diskLabel; persistentVM2.OSVirtualHardDisk = oSVirtualHardDisk; CmdletExtensions.WriteVerboseOutputForObject(this, persistentVM1); base.WriteObject(persistentVM1, true); } catch (Exception exception1) { Exception exception = exception1; base.WriteError(new ErrorRecord(exception, string.Empty, ErrorCategory.CloseError, null)); } }
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; } }
public void AddDiskProcess() { AddAzureDiskCommand.AddAzureDiskCommand variable = null; string diskName; using (OperationContextScope operationContextScope = new OperationContextScope((IContextChannel)base.Channel)) { try { AddAzureDiskCommand.AddAzureDiskCommand variable1 = variable; Disk disk = new Disk(); disk.Name = this.DiskName; disk.MediaLink = new Uri(this.MediaLocation); disk.OS = this.OS; Disk disk1 = disk; if (string.IsNullOrEmpty(this.Label)) { diskName = this.DiskName; } else { diskName = this.Label; } disk1.Label = diskName; variable1.disk = disk; CmdletExtensions.WriteVerboseOutputForObject(this, LambdaVar22); Disk disk2 = base.RetryCall <Disk>((string s) => base.Channel.CreateDisk(s, LambdaVar22)); DiskContext diskContext = new DiskContext(); diskContext.DiskName = disk2.Name; diskContext.Label = disk2.Label; diskContext.IsCorrupted = disk2.IsCorrupted; diskContext.AffinityGroup = disk2.AffinityGroup; diskContext.OS = disk2.OS; diskContext.Location = disk2.Location; diskContext.MediaLink = disk2.MediaLink; diskContext.DiskSizeInGB = disk2.LogicalDiskSizeInGB; diskContext.SourceImageName = disk2.SourceImageName; diskContext.AttachedTo = AddAzureDiskCommand.CreateRoleReference(disk2.AttachedTo); DiskContext diskContext1 = diskContext; Operation operation = base.WaitForOperation(base.CommandRuntime.ToString()); diskContext1.set_OperationDescription(base.CommandRuntime.ToString()); diskContext1.set_OperationId(operation.OperationTrackingId); diskContext1.set_OperationStatus(operation.Status); base.WriteObject(diskContext1, true); } catch (CommunicationException communicationException1) { CommunicationException communicationException = communicationException1; this.WriteErrorDetails(communicationException); } } }
private byte[] GetCertificateData() { byte[] numArray; byte[] numArray1; byte[] numArray2; byte[] rawData; X509Certificate2 x509Certificate2 = new X509Certificate2(); if ((this.CertToDeploy as PSObject == null || ((PSObject)this.CertToDeploy).ImmediateBaseObject as X509Certificate == null) && this.CertToDeploy as X509Certificate == null) { x509Certificate2.Import(CmdletExtensions.ResolvePath(this, this.CertToDeploy.ToString()), this.Password, X509KeyStorageFlags.Exportable); if (x509Certificate2.HasPrivateKey) { numArray1 = x509Certificate2.Export(X509ContentType.Pfx, this.Password); } else { numArray1 = x509Certificate2.Export(X509ContentType.Pfx); } numArray = numArray1; } else { x509Certificate2 = ((PSObject)this.CertToDeploy).ImmediateBaseObject as X509Certificate2; try { if (x509Certificate2.HasPrivateKey) { numArray2 = x509Certificate2.Export(X509ContentType.Pfx); } else { numArray2 = x509Certificate2.Export(X509ContentType.Pfx); } numArray = numArray2; } catch (CryptographicException cryptographicException) { if (x509Certificate2.HasPrivateKey) { rawData = x509Certificate2.RawData; } else { rawData = x509Certificate2.Export(X509ContentType.Pfx); } numArray = rawData; } } return(numArray); }
public override void Before(MethodInfo methodUnderTest) { _powershell = new ThreadLocal <PowerShell>(() => PowerShell.Create(RunspaceMode.NewRunspace)); if (WithCmdlets != null) { var currentRunspaceConfig = _powershell.Value.Runspace.RunspaceConfiguration; currentRunspaceConfig.Cmdlets.Append( WithCmdlets .Select(t => CmdletExtensions.FromCmdletType(t)) .Select(c => new CmdletConfigurationEntry(c.Name, c.ImplementingType, c.HelpFileName))); currentRunspaceConfig.Cmdlets.Update(); } }
public void AddVMImageProcess() { AddAzureVMImageCommand.AddAzureVMImageCommand variable = null; string imageName; using (OperationContextScope operationContextScope = new OperationContextScope((IContextChannel)base.Channel)) { try { AddAzureVMImageCommand.AddAzureVMImageCommand variable1 = variable; OSImage oSImage = new OSImage(); oSImage.Name = this.ImageName; oSImage.MediaLink = new Uri(this.MediaLocation); OSImage oSImage1 = oSImage; if (string.IsNullOrEmpty(this.Label)) { imageName = this.ImageName; } else { imageName = this.Label; } oSImage1.Label = imageName; oSImage.OS = this.OS; variable1.image = oSImage; CmdletExtensions.WriteVerboseOutputForObject(this, LambdaVar23); OSImage oSImage2 = base.RetryCall <OSImage>((string s) => base.Channel.CreateOSImage(s, LambdaVar23)); OSImageContext oSImageContext = new OSImageContext(); oSImageContext.AffinityGroup = oSImage2.AffinityGroup; oSImageContext.Category = oSImage2.Category; oSImageContext.Label = oSImage2.Label; oSImageContext.Location = oSImage2.Location; oSImageContext.MediaLink = oSImage2.MediaLink; oSImageContext.ImageName = oSImage2.Name; oSImageContext.OS = oSImage2.OS; OSImageContext oSImageContext1 = oSImageContext; Operation operation = base.WaitForOperation(base.CommandRuntime.ToString()); oSImageContext1.set_OperationDescription(base.CommandRuntime.ToString()); oSImageContext1.set_OperationId(operation.OperationTrackingId); oSImageContext1.set_OperationStatus(operation.Status); base.WriteObject(oSImageContext1, true); } catch (CommunicationException communicationException1) { CommunicationException communicationException = communicationException1; this.WriteErrorDetails(communicationException); } } }
public void NewHostedServiceProcess() { string serviceName; Action <string> action = null; CreateHostedServiceInput createHostedServiceInput = new CreateHostedServiceInput(); createHostedServiceInput.ServiceName = this.ServiceName; if (string.IsNullOrEmpty(this.Label)) { serviceName = this.ServiceName; } else { serviceName = this.Label; } string str = serviceName; createHostedServiceInput.Label = ServiceManagementHelper.EncodeToBase64String(str); createHostedServiceInput.Description = this.Description; createHostedServiceInput.AffinityGroup = this.AffinityGroup; createHostedServiceInput.Location = this.Location; using (OperationContextScope operationContextScope = new OperationContextScope((IContextChannel)base.Channel)) { try { CmdletExtensions.WriteVerboseOutputForObject(this, createHostedServiceInput); NewAzureServiceCommand newAzureServiceCommand = this; if (action == null) { action = (string s) => base.Channel.CreateHostedService(s, createHostedServiceInput); } ((CmdletBase <IServiceManagement>)newAzureServiceCommand).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); } } }
public void UpdateDiskProcess() { string empty = string.Empty; using (OperationContextScope operationContextScope = new OperationContextScope((IContextChannel)base.Channel)) { try { Disk disk = new Disk(); disk.Name = this.DiskName; disk.Label = this.Label; Disk disk1 = disk; CmdletExtensions.WriteVerboseOutputForObject(this, disk1); Disk disk2 = base.RetryCall <Disk>((string s) => base.Channel.UpdateDisk(s, this.DiskName, disk1)); if (disk2 != null) { DiskContext diskContext = new DiskContext(); diskContext.set_OperationId(empty); diskContext.DiskName = disk1.Name; diskContext.Label = disk1.Label; diskContext.IsCorrupted = disk1.IsCorrupted; diskContext.AffinityGroup = disk1.AffinityGroup; diskContext.OS = disk1.OS; diskContext.Location = disk1.Location; diskContext.MediaLink = disk1.MediaLink; diskContext.DiskSizeInGB = disk1.LogicalDiskSizeInGB; diskContext.SourceImageName = disk1.SourceImageName; diskContext.AttachedTo = UpdateAzureDiskCommand.CreateRoleReference(disk1.AttachedTo); DiskContext diskContext1 = diskContext; Operation operation = base.WaitForOperation(base.CommandRuntime.ToString()); diskContext1.set_OperationDescription(base.CommandRuntime.ToString()); diskContext1.set_OperationId(operation.OperationTrackingId); diskContext1.set_OperationStatus(operation.Status); base.WriteObject(diskContext1, true); } } catch (CommunicationException communicationException1) { CommunicationException communicationException = communicationException1; this.WriteErrorDetails(communicationException); } } }
public void SetStorageAccountProcess() { if (this.Label == null && this.Description == null) { base.ThrowTerminatingError(new ErrorRecord(new Exception("You must specify a value for either Label or Description."), string.Empty, ErrorCategory.InvalidData, null)); } using (OperationContextScope operationContextScope = new OperationContextScope((IContextChannel)base.Channel)) { try { UpdateStorageServiceInput updateStorageServiceInput = new UpdateStorageServiceInput(); bool?geoReplicationEnabled = this.GeoReplicationEnabled; if (geoReplicationEnabled.HasValue) { bool?nullable = this.GeoReplicationEnabled; updateStorageServiceInput.GeoReplicationEnabled = new bool?(nullable.Value); } if (this.Description != null) { updateStorageServiceInput.Description = this.Description; } if (this.Label != null) { updateStorageServiceInput.Label = ServiceManagementHelper.EncodeToBase64String(this.Label); } CmdletExtensions.WriteVerboseOutputForObject(this, updateStorageServiceInput); base.RetryCall((string s) => base.Channel.UpdateStorageService(s, this.StorageAccountName, updateStorageServiceInput)); Operation operation = base.WaitForOperation(base.CommandRuntime.ToString()); ManagementOperationContext managementOperationContext = new ManagementOperationContext(); managementOperationContext.OperationDescription = base.CommandRuntime.ToString(); managementOperationContext.OperationId = operation.OperationTrackingId; managementOperationContext.OperationStatus = operation.Status; ManagementOperationContext managementOperationContext1 = managementOperationContext; base.WriteObject(managementOperationContext1, true); } catch (CommunicationException communicationException1) { CommunicationException communicationException = communicationException1; this.WriteErrorDetails(communicationException); } } }
public void NewStorageKeyProcess() { Func <string, StorageService> func = null; StorageServiceKeyOperationContext storageServiceKeyOperationContext = null; RegenerateKeys regenerateKey = new RegenerateKeys(); regenerateKey.KeyType = this.KeyType; RegenerateKeys regenerateKey1 = regenerateKey; using (OperationContextScope operationContextScope = new OperationContextScope((IContextChannel)base.Channel)) { try { CmdletExtensions.WriteVerboseOutputForObject(this, regenerateKey1); NewAzureStorageKeyCommand newAzureStorageKeyCommand = this; if (func == null) { func = (string s) => base.Channel.RegenerateStorageServiceKeys(s, this.StorageAccountName, regenerateKey1); } StorageService storageService = ((CmdletBase <IServiceManagement>)newAzureStorageKeyCommand).RetryCall <StorageService>(func); if (storageService != null) { StorageServiceKeyOperationContext storageAccountName = new StorageServiceKeyOperationContext(); storageAccountName.StorageAccountName = this.StorageAccountName; storageAccountName.Primary = storageService.StorageServiceKeys.Primary; storageAccountName.Secondary = storageService.StorageServiceKeys.Secondary; storageServiceKeyOperationContext = storageAccountName; } Operation operation = base.WaitForOperation(base.CommandRuntime.ToString()); storageServiceKeyOperationContext.set_OperationDescription(base.CommandRuntime.ToString()); storageServiceKeyOperationContext.set_OperationId(operation.OperationTrackingId); storageServiceKeyOperationContext.set_OperationStatus(operation.Status); base.WriteObject(storageServiceKeyOperationContext, true); } catch (CommunicationException communicationException1) { CommunicationException communicationException = communicationException1; this.WriteErrorDetails(communicationException); } } }
private Collection <IPackageSearchMetadata> PackageSourceSearchMetadatas(string source, int index = 0) { string allVersions = $"-{nameof(AllVersions)} {AllVersions}"; if (!AllVersions) { allVersions = null; } string sources = $"-{nameof(Source)} '{Source[index]}'"; index++; string versions = null; if (Versions != null) { versions = $"-{nameof(Versions)} @({string.Join(",", Versions.Select(s => $"'{s}'"))})"; } string name = $"-{nameof(Name)} {Name}"; if (Name == null) { name = null; } var cmdletName = CmdletExtensions.GetCmdletName <GetNugetPackageSearchMetadata>(); var script = $"{cmdletName} {sources} {allVersions} {name} {versions} -{nameof(GetNugetPackageSearchMetadata.IncludeDelisted)}"; var sourceSearchMetadatas = this.Invoke <IPackageSearchMetadata>(script); if (sourceSearchMetadatas == null ! || !sourceSearchMetadatas.Any()) { if (index == Source.Length) { throw new ItemNotFoundException($"{Name}---{script}"); } return(PackageSourceSearchMetadatas(source, index)); } return(sourceSearchMetadatas); }
public string UpdateVirtualMachineProcess() { Action <string> action = null; SubscriptionData currentSubscription = CmdletSubscriptionExtensions.GetCurrentSubscription(this); if (base.CurrentDeployment != null) { foreach (DataVirtualHardDisk dataVirtualHardDisk in this.VM.DataVirtualHardDisks) { if (dataVirtualHardDisk.MediaLink == null && string.IsNullOrEmpty(dataVirtualHardDisk.DiskName)) { CloudStorageAccount currentStorageAccount = currentSubscription.GetCurrentStorageAccount(base.Channel); if (currentStorageAccount != null) { DateTime now = DateTime.Now; string roleName = this.VM.RoleName; if (dataVirtualHardDisk.DiskLabel != null) { roleName = string.Concat(roleName, "-", dataVirtualHardDisk.DiskLabel); } object[] serviceName = new object[6]; serviceName[0] = this.ServiceName; serviceName[1] = roleName; serviceName[2] = now.Year; serviceName[3] = now.Month; serviceName[4] = now.Day; serviceName[5] = now.Millisecond; string str = string.Format("{0}-{1}-{2}-{3}-{4}-{5}.vhd", serviceName); string absoluteUri = currentStorageAccount.BlobEndpoint.AbsoluteUri; if (!absoluteUri.EndsWith("/")) { absoluteUri = string.Concat(absoluteUri, "/"); } dataVirtualHardDisk.MediaLink = new Uri(string.Concat(absoluteUri, "vhds/", str)); } else { throw new ArgumentException("CurrentStorageAccount is not set or not accessible. Use Set-AzureSubscription subname -CurrentStorageAccount storageaccount to set it."); } } if (this.VM.DataVirtualHardDisks.Count <= 1) { continue; } Thread.Sleep(1); } PersistentVMRole persistentVMRole = new PersistentVMRole(); persistentVMRole.AvailabilitySetName = this.VM.AvailabilitySetName; persistentVMRole.ConfigurationSets = this.VM.ConfigurationSets; persistentVMRole.DataVirtualHardDisks = this.VM.DataVirtualHardDisks; persistentVMRole.Label = this.VM.Label; persistentVMRole.OSVirtualHardDisk = this.VM.OSVirtualHardDisk; persistentVMRole.RoleName = this.VM.RoleName; persistentVMRole.RoleSize = this.VM.RoleSize; persistentVMRole.RoleType = this.VM.RoleType; PersistentVMRole persistentVMRole1 = persistentVMRole; using (OperationContextScope operationContextScope = new OperationContextScope((IContextChannel)base.Channel)) { try { CmdletExtensions.WriteVerboseOutputForObject(this, persistentVMRole1); UpdateAzureVMCommand updateAzureVMCommand = this; if (action == null) { action = (string s) => base.Channel.UpdateRole(s, this.ServiceName, this.CurrentDeployment.Name, this.Name, persistentVMRole1); } ((CmdletBase <IServiceManagement>)updateAzureVMCommand).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); } } return(null); } else { return(null); } }
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 NewAzureVMProcess() { NewAzureVMCommand.NewAzureVMCommand variable = null; int num; List <PersistentVMRole> persistentVMRoles = new List <PersistentVMRole>(); NewAzureVMCommand persistentVMRoles1 = this; var persistentVMs = new List <PersistentVMRole>(); SubscriptionData currentSubscription = CmdletSubscriptionExtensions.GetCurrentSubscription(this); PersistentVM[] vMs = this.VMs; for (int i = 0; i < (int)vMs.Length; i++) { PersistentVM uri = vMs[i]; if (uri.OSVirtualHardDisk.MediaLink == null && string.IsNullOrEmpty(uri.OSVirtualHardDisk.DiskName)) { CloudStorageAccount currentStorageAccount = null; try { currentStorageAccount = currentSubscription.GetCurrentStorageAccount(base.Channel); } catch (EndpointNotFoundException endpointNotFoundException) { throw new ArgumentException("CurrentStorageAccount is not accessible. Ensure the current storage account is accessible and in the same location or affinity group as your cloud service."); } if (currentStorageAccount != null) { DateTime now = DateTime.Now; string roleName = uri.RoleName; if (uri.OSVirtualHardDisk.DiskLabel != null) { roleName = string.Concat(roleName, "-", uri.OSVirtualHardDisk.DiskLabel); } object[] serviceName = new object[6]; serviceName[0] = this.ServiceName; serviceName[1] = roleName; serviceName[2] = now.Year; serviceName[3] = now.Month; serviceName[4] = now.Day; serviceName[5] = now.Millisecond; string str = string.Format("{0}-{1}-{2}-{3}-{4}-{5}.vhd", serviceName); string absoluteUri = currentStorageAccount.BlobEndpoint.AbsoluteUri; if (!absoluteUri.EndsWith("/")) { absoluteUri = string.Concat(absoluteUri, "/"); } uri.OSVirtualHardDisk.MediaLink = new Uri(string.Concat(absoluteUri, "vhds/", str)); } else { throw new ArgumentException("CurrentStorageAccount is not set. Use Set-AzureSubscription subname -CurrentStorageAccount storage account to set it."); } } foreach (DataVirtualHardDisk dataVirtualHardDisk in uri.DataVirtualHardDisks) { if (dataVirtualHardDisk.MediaLink == null && string.IsNullOrEmpty(dataVirtualHardDisk.DiskName)) { CloudStorageAccount cloudStorageAccount = currentSubscription.GetCurrentStorageAccount(base.Channel); if (cloudStorageAccount != null) { DateTime dateTime = DateTime.Now; string roleName1 = uri.RoleName; if (dataVirtualHardDisk.DiskLabel != null) { roleName1 = string.Concat(roleName1, "-", dataVirtualHardDisk.DiskLabel); } object[] year = new object[6]; year[0] = this.ServiceName; year[1] = roleName1; year[2] = dateTime.Year; year[3] = dateTime.Month; year[4] = dateTime.Day; year[5] = dateTime.Millisecond; string str1 = string.Format("{0}-{1}-{2}-{3}-{4}-{5}.vhd", year); string absoluteUri1 = cloudStorageAccount.BlobEndpoint.AbsoluteUri; if (!absoluteUri1.EndsWith("/")) { absoluteUri1 = string.Concat(absoluteUri1, "/"); } dataVirtualHardDisk.MediaLink = new Uri(string.Concat(absoluteUri1, "vhds/", str1)); } else { throw new ArgumentException("CurrentStorageAccount is not set or not accessible. Use Set-AzureSubscription subname -CurrentStorageAccount storageaccount to set it."); } } if (uri.DataVirtualHardDisks.Count <DataVirtualHardDisk>() <= 1) { continue; } Thread.Sleep(1); } PersistentVMRole persistentVMRole = new PersistentVMRole(); persistentVMRole.AvailabilitySetName = uri.AvailabilitySetName; persistentVMRole.ConfigurationSets = uri.ConfigurationSets; persistentVMRole.DataVirtualHardDisks = uri.DataVirtualHardDisks; persistentVMRole.OSVirtualHardDisk = uri.OSVirtualHardDisk; persistentVMRole.RoleName = uri.RoleName; persistentVMRole.RoleSize = uri.RoleSize; persistentVMRole.RoleType = uri.RoleType; persistentVMRole.Label = uri.Label; PersistentVMRole persistentVMRole1 = persistentVMRole; persistentVMRoles1.persistentVMs.Add(persistentVMRole1); } new List <string>(); Operation operation = null; using (OperationContextScope operationContextScope = new OperationContextScope((IContextChannel)base.Channel)) { try { if (base.ParameterSetName.Equals("CreateService", StringComparison.OrdinalIgnoreCase)) { CreateHostedServiceInput createHostedServiceInput = new CreateHostedServiceInput(); createHostedServiceInput.AffinityGroup = this.AffinityGroup; createHostedServiceInput.Location = this.Location; createHostedServiceInput.ServiceName = this.ServiceName; if (this.ServiceDescription != null) { createHostedServiceInput.Description = this.ServiceDescription; } else { DateTime now1 = DateTime.Now; DateTime universalTime = now1.ToUniversalTime(); string str2 = string.Format("Implicitly created hosted service{0}", universalTime.ToString("yyyy-MM-dd HH:mm")); createHostedServiceInput.Description = str2; } if (this.ServiceLabel != null) { createHostedServiceInput.Label = ServiceManagementHelper.EncodeToBase64String(this.ServiceLabel); } else { createHostedServiceInput.Label = ServiceManagementHelper.EncodeToBase64String(this.ServiceName); } CmdletExtensions.WriteVerboseOutputForObject(this, createHostedServiceInput); base.RetryCall((string s) => base.Channel.CreateHostedService(s, createHostedServiceInput)); Operation operation1 = base.WaitForOperation(string.Concat(base.CommandRuntime.ToString(), " - Create Cloud Service")); ManagementOperationContext managementOperationContext = new ManagementOperationContext(); managementOperationContext.set_OperationDescription(string.Concat(base.CommandRuntime.ToString(), " - Create Cloud Service")); managementOperationContext.set_OperationId(operation1.OperationTrackingId); managementOperationContext.set_OperationStatus(operation1.Status); ManagementOperationContext managementOperationContext1 = managementOperationContext; base.WriteObject(managementOperationContext1, true); } } catch (CommunicationException communicationException1) { CommunicationException communicationException = communicationException1; this.WriteErrorDetails(communicationException); return; } } if (operation == null || string.Compare(operation.Status, "Failed", StringComparison.OrdinalIgnoreCase) != 0) { if (base.CurrentDeployment != null) { if (this.VNetName != null || this.DnsSettings != null || !string.IsNullOrEmpty(this.DeploymentLabel) || !string.IsNullOrEmpty(this.DeploymentName)) { base.WriteWarning("VNetName, DnsSettings, DeploymentLabel or DeploymentName Name can only be specified on new deployments."); } } else { using (OperationContextScope operationContextScope1 = new OperationContextScope((IContextChannel)base.Channel)) { try { if (string.IsNullOrEmpty(this.DeploymentName)) { this.DeploymentName = this.ServiceName; } if (string.IsNullOrEmpty(this.DeploymentLabel)) { this.DeploymentLabel = this.ServiceName; } Deployment deployment = new Deployment(); deployment.DeploymentSlot = "Production"; deployment.Name = this.DeploymentName; deployment.Label = this.DeploymentLabel; List <Role> roles = new List <Role>(); roles.Add(persistentVMRoles1.persistentVMs[0]); deployment.RoleList = new RoleList(roles); deployment.VirtualNetworkName = this.VNetName; Deployment dnsSetting = deployment; if (this.DnsSettings != null) { dnsSetting.Dns = new DnsSettings(); dnsSetting.Dns.DnsServers = new DnsServerList(); DnsServer[] dnsSettings = this.DnsSettings; for (int j = 0; j < (int)dnsSettings.Length; j++) { DnsServer dnsServer = dnsSettings[j]; dnsSetting.Dns.DnsServers.Add(dnsServer); } } CmdletExtensions.WriteVerboseOutputForObject(this, dnsSetting); base.RetryCall((string s) => base.Channel.CreateDeployment(s, this.ServiceName, dnsSetting)); Operation operation2 = base.WaitForOperation(string.Concat(base.CommandRuntime.ToString(), " - Create Deployment with VM ", persistentVMRoles1.persistentVMs[0].RoleName)); ManagementOperationContext managementOperationContext2 = new ManagementOperationContext(); managementOperationContext2.set_OperationDescription(string.Concat(base.CommandRuntime.ToString(), " - Create Deployment with VM ", persistentVMRoles1.persistentVMs[0].RoleName)); managementOperationContext2.set_OperationId(operation2.OperationTrackingId); managementOperationContext2.set_OperationStatus(operation2.Status); ManagementOperationContext managementOperationContext3 = managementOperationContext2; base.WriteObject(managementOperationContext3, true); } catch (CommunicationException communicationException3) { CommunicationException communicationException2 = communicationException3; if (communicationException2 as EndpointNotFoundException == null) { this.WriteErrorDetails(communicationException2); return; } else { throw new Exception("Cloud Service does not exist. Specify -Location or -AffinityGroup to create one."); } } this.createdDeployment = true; } } if (!this.createdDeployment && base.CurrentDeployment != null) { this.DeploymentName = base.CurrentDeployment.Name; } if (this.createdDeployment) { num = 1; } else { num = 0; } int num1 = num; Action <string> action = null; while (num1 < persistentVMRoles1.persistentVMs.Count) { if (operation == null || string.Compare(operation.Status, "Failed", StringComparison.OrdinalIgnoreCase) != 0) { using (OperationContextScope operationContextScope2 = new OperationContextScope((IContextChannel)base.Channel)) { try { CmdletExtensions.WriteVerboseOutputForObject(this, persistentVMRoles1.persistentVMs[num1]); NewAzureVMCommand newAzureVMCommand = this; if (action == null) { action = (string s) => base.Channel.AddRole(s, this.ServiceName, this.DeploymentName, persistentVMRoles[num1]); } ((CmdletBase <IServiceManagement>)newAzureVMCommand).RetryCall(action); Operation operation3 = base.WaitForOperation(string.Concat(base.CommandRuntime.ToString(), " - Create VM ", persistentVMRoles1.persistentVMs[num1].RoleName)); ManagementOperationContext managementOperationContext4 = new ManagementOperationContext(); managementOperationContext4.set_OperationDescription(string.Concat(base.CommandRuntime.ToString(), " - Create VM ", persistentVMRoles1.persistentVMs[num1].RoleName)); managementOperationContext4.set_OperationId(operation3.OperationTrackingId); managementOperationContext4.set_OperationStatus(operation3.Status); ManagementOperationContext managementOperationContext5 = managementOperationContext4; base.WriteObject(managementOperationContext5, true); } catch (CommunicationException communicationException5) { CommunicationException communicationException4 = communicationException5; this.WriteErrorDetails(communicationException4); return; } } NewAzureVMCommand.NewAzureVMCommand variable1 = variable; variable1.i = variable1.i + 1; } else { return; } } return; } }
public void NewPaaSDeploymentProcess() { NewAzureDeploymentCommand.NewAzureDeploymentCommand variable = null; Func <string, Deployment> func = null; Func <string, Uri> func1 = null; Action <string> action = null; Action <string> action1 = null; bool flag = false; using (OperationContextScope operationContextScope = new OperationContextScope((IContextChannel)base.Channel)) { try { new List <PersistentVMRoleContext>(); NewAzureDeploymentCommand newAzureDeploymentCommand = this; if (func == null) { func = (string s) => base.Channel.GetDeploymentBySlot(s, this.ServiceName, "Production"); } Deployment deployment = ((CmdletBase <IServiceManagement>)newAzureDeploymentCommand).RetryCall <Deployment>(func); if (deployment.RoleList != null && string.Compare(deployment.RoleList[0].RoleType, "PersistentVMRole", StringComparison.OrdinalIgnoreCase) == 0) { throw new ArgumentException("Cannot Create New Deployment with Virtual Machines Present"); } } catch (CommunicationException communicationException1) { CommunicationException communicationException = communicationException1; if (communicationException as EndpointNotFoundException == null && !base.IsVerbose()) { this.WriteErrorDetails(communicationException); } } } string currentStorageAccount = base.get_CurrentSubscription().get_CurrentStorageAccount(); if (this.Package.StartsWith(Uri.UriSchemeHttp, StringComparison.OrdinalIgnoreCase) || this.Package.StartsWith(Uri.UriSchemeHttps, StringComparison.OrdinalIgnoreCase)) { Uri uri = new Uri(this.Package); } else { ProgressRecord progressRecord = new ProgressRecord(0, "Please wait...", "Uploading package to blob storage"); base.WriteProgress(progressRecord); flag = true; NewAzureDeploymentCommand.NewAzureDeploymentCommand variable1 = variable; NewAzureDeploymentCommand newAzureDeploymentCommand1 = this; if (func1 == null) { func1 = (string s) => AzureBlob.UploadPackageToBlob(base.Channel, currentStorageAccount, s, this.Package); } variable1.packageUrl = ((CmdletBase <IServiceManagement>)newAzureDeploymentCommand1).RetryCall <Uri>(func1); } CreateDeploymentInput createDeploymentInput = new CreateDeploymentInput(); createDeploymentInput.PackageUrl = uri; createDeploymentInput.Configuration = Utility.GetConfiguration(this.Configuration); createDeploymentInput.Label = ServiceManagementHelper.EncodeToBase64String(this.Label); createDeploymentInput.Name = this.Name; SwitchParameter doNotStart = this.DoNotStart; createDeploymentInput.StartDeployment = new bool?(!doNotStart.IsPresent); SwitchParameter treatWarningsAsError = this.TreatWarningsAsError; createDeploymentInput.TreatWarningsAsError = new bool?(treatWarningsAsError.IsPresent); CreateDeploymentInput createDeploymentInput1 = createDeploymentInput; using (OperationContextScope operationContextScope1 = new OperationContextScope((IContextChannel)base.Channel)) { try { ProgressRecord progressRecord1 = new ProgressRecord(0, "Please wait...", "Creating the new deployment"); base.WriteProgress(progressRecord1); CmdletExtensions.WriteVerboseOutputForObject(this, createDeploymentInput1); NewAzureDeploymentCommand newAzureDeploymentCommand2 = this; if (action == null) { action = (string s) => this.Channel.CreateOrUpdateDeployment(s, this.ServiceName, this.Slot, this.deploymentInput); } ((CmdletBase <IServiceManagement>)newAzureDeploymentCommand2).RetryCall(action); Operation operation = base.WaitForOperation(base.CommandRuntime.ToString()); ManagementOperationContext managementOperationContext = new ManagementOperationContext(); managementOperationContext.OperationDescription = base.CommandRuntime.ToString(); managementOperationContext.OperationId = operation.OperationTrackingId; managementOperationContext.OperationStatus = operation.Status; ManagementOperationContext managementOperationContext1 = managementOperationContext; base.WriteObject(managementOperationContext1, true); if (flag) { NewAzureDeploymentCommand newAzureDeploymentCommand3 = this; if (action1 == null) { action1 = (string s) => AzureBlob.DeletePackageFromBlob(base.Channel, currentStorageAccount, s, uri); } ((CmdletBase <IServiceManagement>)newAzureDeploymentCommand3).RetryCall(action1); } } catch (CommunicationException communicationException3) { CommunicationException communicationException2 = communicationException3; this.WriteErrorDetails(communicationException2); } } }
public void NewAzureVMProcess() { NewQuickVM.NewQuickVM variable = null; string serviceName; string instanceSize; Uri uri; string name; string str; Action <string> action = null; SubscriptionData currentSubscription = CmdletSubscriptionExtensions.GetCurrentSubscription(this); CloudStorageAccount currentStorageAccount = null; try { currentStorageAccount = currentSubscription.GetCurrentStorageAccount(base.Channel); } catch (EndpointNotFoundException endpointNotFoundException) { throw new ArgumentException("CurrentStorageAccount is not accessible. Ensure the current storage account is accessible and in the same location or affinity group as your cloud service."); } if (currentStorageAccount != null) { NewQuickVM.NewQuickVM variable1 = variable; PersistentVMRole persistentVMRole = new PersistentVMRole(); persistentVMRole.AvailabilitySetName = this.AvailabilitySetName; persistentVMRole.ConfigurationSets = new Collection <ConfigurationSet>(); persistentVMRole.DataVirtualHardDisks = new Collection <DataVirtualHardDisk>(); PersistentVMRole persistentVMRole1 = persistentVMRole; if (string.IsNullOrEmpty(this.Name)) { serviceName = this.ServiceName; } else { serviceName = this.Name; } persistentVMRole1.RoleName = serviceName; PersistentVMRole persistentVMRole2 = persistentVMRole; if (string.IsNullOrEmpty(this.InstanceSize)) { instanceSize = null; } else { instanceSize = this.InstanceSize; } persistentVMRole2.RoleSize = instanceSize; persistentVMRole.RoleType = "PersistentVMRole"; persistentVMRole.Label = ServiceManagementHelper.EncodeToBase64String(this.ServiceName); variable1.vm = persistentVMRole; PersistentVMRole persistentVMRole3 = uri1; OSVirtualHardDisk oSVirtualHardDisk = new OSVirtualHardDisk(); oSVirtualHardDisk.DiskName = null; oSVirtualHardDisk.SourceImageName = this.ImageName; OSVirtualHardDisk oSVirtualHardDisk1 = oSVirtualHardDisk; if (string.IsNullOrEmpty(this.MediaLocation)) { uri = null; } else { uri = new Uri(this.MediaLocation); } oSVirtualHardDisk1.MediaLink = uri; oSVirtualHardDisk.HostCaching = this.HostCaching; persistentVMRole3.OSVirtualHardDisk = oSVirtualHardDisk; if (oSVirtualHardDisk1.MediaLink == null && string.IsNullOrEmpty(oSVirtualHardDisk1.DiskName)) { DateTime now = DateTime.Now; object[] roleName = new object[6]; roleName[0] = this.ServiceName; roleName[1] = uri1.RoleName; roleName[2] = now.Year; roleName[3] = now.Month; roleName[4] = now.Day; roleName[5] = now.Millisecond; string str1 = string.Format("{0}-{1}-{2}-{3}-{4}-{5}.vhd", roleName); string absoluteUri = currentStorageAccount.BlobEndpoint.AbsoluteUri; if (!absoluteUri.EndsWith("/")) { absoluteUri = string.Concat(absoluteUri, "/"); } oSVirtualHardDisk1.MediaLink = new Uri(string.Concat(absoluteUri, "vhds/", str1)); } NetworkConfigurationSet networkConfigurationSet = new NetworkConfigurationSet(); networkConfigurationSet.InputEndpoints = new Collection <InputEndpoint>(); if (this.SubnetNames != null) { networkConfigurationSet.SubnetNames = new SubnetNamesCollection(); string[] subnetNames = this.SubnetNames; for (int i = 0; i < (int)subnetNames.Length; i++) { string str2 = subnetNames[i]; networkConfigurationSet.SubnetNames.Add(str2); } } if (!base.ParameterSetName.Equals("Windows", StringComparison.OrdinalIgnoreCase)) { LinuxProvisioningConfigurationSet linuxProvisioningConfigurationSet = new LinuxProvisioningConfigurationSet(); LinuxProvisioningConfigurationSet linuxProvisioningConfigurationSet1 = linuxProvisioningConfigurationSet; if (string.IsNullOrEmpty(this.Name)) { name = this.ServiceName; } else { name = this.Name; } linuxProvisioningConfigurationSet1.HostName = name; linuxProvisioningConfigurationSet.UserName = this.LinuxUser; linuxProvisioningConfigurationSet.UserPassword = this.Password; linuxProvisioningConfigurationSet.DisableSshPasswordAuthentication = new bool?(false); if (this.SSHKeyPairs != null && this.SSHKeyPairs.Count > 0 || this.SSHPublicKeys != null && this.SSHPublicKeys.Count > 0) { linuxProvisioningConfigurationSet.SSH = new LinuxProvisioningConfigurationSet.SSHSettings(); linuxProvisioningConfigurationSet.SSH.PublicKeys = this.SSHPublicKeys; linuxProvisioningConfigurationSet.SSH.KeyPairs = this.SSHKeyPairs; } InputEndpoint inputEndpoint = new InputEndpoint(); inputEndpoint.LocalPort = 22; inputEndpoint.Protocol = "tcp"; inputEndpoint.Name = "SSH"; networkConfigurationSet.InputEndpoints.Add(inputEndpoint); uri1.ConfigurationSets.Add(linuxProvisioningConfigurationSet); uri1.ConfigurationSets.Add(networkConfigurationSet); } else { WindowsProvisioningConfigurationSet windowsProvisioningConfigurationSet = new WindowsProvisioningConfigurationSet(); windowsProvisioningConfigurationSet.AdminPassword = this.Password; WindowsProvisioningConfigurationSet windowsProvisioningConfigurationSet1 = windowsProvisioningConfigurationSet; if (string.IsNullOrEmpty(this.Name)) { str = this.ServiceName; } else { str = this.Name; } windowsProvisioningConfigurationSet1.ComputerName = str; windowsProvisioningConfigurationSet.EnableAutomaticUpdates = new bool?(true); windowsProvisioningConfigurationSet.ResetPasswordOnFirstLogon = false; windowsProvisioningConfigurationSet.StoredCertificateSettings = this.Certificates; InputEndpoint inputEndpoint1 = new InputEndpoint(); inputEndpoint1.LocalPort = 0xd3d; inputEndpoint1.Protocol = "tcp"; inputEndpoint1.Name = "RemoteDesktop"; networkConfigurationSet.InputEndpoints.Add(inputEndpoint1); uri1.ConfigurationSets.Add(windowsProvisioningConfigurationSet); uri1.ConfigurationSets.Add(networkConfigurationSet); } new List <string>(); Operation operation = null; bool flag = this.DoesCloudServiceExist(this.ServiceName); using (OperationContextScope operationContextScope = new OperationContextScope((IContextChannel)base.Channel)) { try { DateTime dateTime = DateTime.Now; DateTime universalTime = dateTime.ToUniversalTime(); string str3 = string.Format("Implicitly created hosted service{0}", universalTime.ToString("yyyy-MM-dd HH:mm")); if (!string.IsNullOrEmpty(this.Location) || !string.IsNullOrEmpty(this.AffinityGroup) || !string.IsNullOrEmpty(this.VNetName) && !flag) { CreateHostedServiceInput createHostedServiceInput = new CreateHostedServiceInput(); createHostedServiceInput.AffinityGroup = this.AffinityGroup; createHostedServiceInput.Location = this.Location; createHostedServiceInput.ServiceName = this.ServiceName; createHostedServiceInput.Description = str3; createHostedServiceInput.Label = ServiceManagementHelper.EncodeToBase64String(this.ServiceName); CmdletExtensions.WriteVerboseOutputForObject(this, createHostedServiceInput); base.RetryCall((string s) => base.Channel.CreateHostedService(s, createHostedServiceInput)); Operation operation1 = base.WaitForOperation(string.Concat(base.CommandRuntime.ToString(), " - Create Cloud Service")); ManagementOperationContext managementOperationContext = new ManagementOperationContext(); managementOperationContext.set_OperationDescription(string.Concat(base.CommandRuntime.ToString(), " - Create Cloud Service")); managementOperationContext.set_OperationId(operation1.OperationTrackingId); managementOperationContext.set_OperationStatus(operation1.Status); ManagementOperationContext managementOperationContext1 = managementOperationContext; base.WriteObject(managementOperationContext1, true); } } catch (CommunicationException communicationException1) { CommunicationException communicationException = communicationException1; this.WriteErrorDetails(communicationException); return; } } if (operation == null || string.Compare(operation.Status, "Failed", StringComparison.OrdinalIgnoreCase) != 0) { if (base.CurrentDeployment != null) { if (this.VNetName != null || this.DnsSettings != null) { base.WriteWarning("VNetName or DnsSettings can only be specified on new deployments."); } } else { using (OperationContextScope operationContextScope1 = new OperationContextScope((IContextChannel)base.Channel)) { try { Deployment deployment = new Deployment(); deployment.DeploymentSlot = "Production"; deployment.Name = this.ServiceName; deployment.Label = this.ServiceName; List <Role> roles = new List <Role>(); roles.Add(uri1); deployment.RoleList = new RoleList(roles); deployment.VirtualNetworkName = this.VNetName; Deployment dnsSetting = deployment; if (this.DnsSettings != null) { dnsSetting.Dns = new DnsSettings(); dnsSetting.Dns.DnsServers = new DnsServerList(); DnsServer[] dnsSettings = this.DnsSettings; for (int j = 0; j < (int)dnsSettings.Length; j++) { DnsServer dnsServer = dnsSettings[j]; dnsSetting.Dns.DnsServers.Add(dnsServer); } } CmdletExtensions.WriteVerboseOutputForObject(this, dnsSetting); base.RetryCall((string s) => base.Channel.CreateDeployment(s, this.ServiceName, dnsSetting)); Operation operation2 = base.WaitForOperation(string.Concat(base.CommandRuntime.ToString(), " - Create Deployment with VM ", uri1.RoleName)); ManagementOperationContext managementOperationContext2 = new ManagementOperationContext(); managementOperationContext2.set_OperationDescription(string.Concat(base.CommandRuntime.ToString(), " - Create Deployment with VM ", uri1.RoleName)); managementOperationContext2.set_OperationId(operation2.OperationTrackingId); managementOperationContext2.set_OperationStatus(operation2.Status); ManagementOperationContext managementOperationContext3 = managementOperationContext2; base.WriteObject(managementOperationContext3, true); } catch (CommunicationException communicationException3) { CommunicationException communicationException2 = communicationException3; if (communicationException2 as EndpointNotFoundException == null) { this.WriteErrorDetails(communicationException2); return; } else { throw new Exception("Cloud Service does not exist. Specify -Location or -Affinity group to create one."); } } this.CreatedDeployment = true; } } if (operation == null || string.Compare(operation.Status, "Failed", StringComparison.OrdinalIgnoreCase) != 0) { if (!this.CreatedDeployment) { using (OperationContextScope operationContextScope2 = new OperationContextScope((IContextChannel)base.Channel)) { try { CmdletExtensions.WriteVerboseOutputForObject(this, uri1); NewQuickVM newQuickVM = this; if (action == null) { action = (string s) => base.Channel.AddRole(s, this.ServiceName, this.ServiceName, uri1); } ((CmdletBase <IServiceManagement>)newQuickVM).RetryCall(action); Operation operation3 = base.WaitForOperation(string.Concat(base.CommandRuntime.ToString(), " - Create VM ", uri1.RoleName)); ManagementOperationContext managementOperationContext4 = new ManagementOperationContext(); managementOperationContext4.set_OperationDescription(string.Concat(base.CommandRuntime.ToString(), " - Create VM ", uri1.RoleName)); managementOperationContext4.set_OperationId(operation3.OperationTrackingId); managementOperationContext4.set_OperationStatus(operation3.Status); ManagementOperationContext managementOperationContext5 = managementOperationContext4; base.WriteObject(managementOperationContext5, true); } catch (CommunicationException communicationException5) { CommunicationException communicationException4 = communicationException5; this.WriteErrorDetails(communicationException4); return; } } } return; } else { return; } } return; } else { throw new ArgumentException("CurrentStorageAccount is not set. Use Set-AzureSubscription subname -CurrentStorageAccount storageaccount to set it."); } }
public void MoveDeploymentProcess() { Func <string, Deployment> func = null; Action <string> action = null; using (OperationContextScope operationContextScope = new OperationContextScope((IContextChannel)base.Channel)) { try { new List <PersistentVMRoleContext>(); MoveAzureDeploymentCommand moveAzureDeploymentCommand = this; if (func == null) { func = (string s) => base.Channel.GetDeploymentBySlot(s, this.ServiceName, "Production"); } Deployment deployment = ((CmdletBase <IServiceManagement>)moveAzureDeploymentCommand).RetryCall <Deployment>(func); if (deployment.RoleList != null && string.Compare(deployment.RoleList[0].RoleType, "PersistentVMRole", StringComparison.OrdinalIgnoreCase) == 0) { throw new ArgumentException("Cannot Move Deployments with Virtual Machines Present"); } } catch (CommunicationException communicationException1) { CommunicationException communicationException = communicationException1; if (communicationException as EndpointNotFoundException == null || base.IsVerbose()) { this.WriteErrorDetails(communicationException); } } } string deploymentName = this.GetDeploymentName("Production"); string str = this.GetDeploymentName("Staging"); if (str != null) { SwapDeploymentInput swapDeploymentInput = new SwapDeploymentInput(); swapDeploymentInput.SourceDeployment = str; swapDeploymentInput.Production = deploymentName; using (OperationContextScope operationContextScope1 = new OperationContextScope((IContextChannel)base.Channel)) { try { CmdletExtensions.WriteVerboseOutputForObject(this, swapDeploymentInput); MoveAzureDeploymentCommand moveAzureDeploymentCommand1 = this; if (action == null) { action = (string s) => base.Channel.SwapDeployment(s, this.ServiceName, swapDeploymentInput); } ((CmdletBase <IServiceManagement>)moveAzureDeploymentCommand1).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 communicationException3) { CommunicationException communicationException2 = communicationException3; this.WriteErrorDetails(communicationException2); } } return; } else { throw new ArgumentException("The Staging deployment slot is empty."); } }
protected override void ProcessRecord() { bool flag; bool flag1; try { base.ProcessRecord(); PersistentVM instance = this.VM.GetInstance(); SwitchParameter linux = base.Linux; if (!linux.IsPresent) { WindowsProvisioningConfigurationSet windowsProvisioningConfigurationSet = instance.ConfigurationSets.OfType <WindowsProvisioningConfigurationSet>().SingleOrDefault <WindowsProvisioningConfigurationSet>(); if (windowsProvisioningConfigurationSet == null) { windowsProvisioningConfigurationSet = new WindowsProvisioningConfigurationSet(); instance.ConfigurationSets.Add(windowsProvisioningConfigurationSet); } base.SetProvisioningConfiguration(windowsProvisioningConfigurationSet); windowsProvisioningConfigurationSet.ComputerName = instance.RoleName; SwitchParameter noRDPEndpoint = base.NoRDPEndpoint; if (!noRDPEndpoint.IsPresent) { NetworkConfigurationSet networkConfigurationSet = instance.ConfigurationSets.OfType <NetworkConfigurationSet>().SingleOrDefault <NetworkConfigurationSet>(); if (networkConfigurationSet == null) { networkConfigurationSet = new NetworkConfigurationSet(); instance.ConfigurationSets.Add(networkConfigurationSet); } if (networkConfigurationSet.InputEndpoints == null) { networkConfigurationSet.InputEndpoints = new Collection <InputEndpoint>(); } foreach (InputEndpoint inputEndpoint in networkConfigurationSet.InputEndpoints) { if (string.Compare(inputEndpoint.Name, "RDP", StringComparison.OrdinalIgnoreCase) != 0 && inputEndpoint.LocalPort != 0xd3d) { continue; } flag1 = false; int?nullable = null; inputEndpoint.Port = nullable; break; } if (flag1) { InputEndpoint inputEndpoint1 = new InputEndpoint(); inputEndpoint1.LocalPort = 0xd3d; inputEndpoint1.Protocol = "tcp"; inputEndpoint1.Name = "RDP"; networkConfigurationSet.InputEndpoints.Add(inputEndpoint1); } } } else { LinuxProvisioningConfigurationSet linuxProvisioningConfigurationSet = instance.ConfigurationSets.OfType <LinuxProvisioningConfigurationSet>().SingleOrDefault <LinuxProvisioningConfigurationSet>(); if (linuxProvisioningConfigurationSet == null) { linuxProvisioningConfigurationSet = new LinuxProvisioningConfigurationSet(); instance.ConfigurationSets.Add(linuxProvisioningConfigurationSet); } base.SetProvisioningConfiguration(linuxProvisioningConfigurationSet); linuxProvisioningConfigurationSet.HostName = instance.RoleName; SwitchParameter disableSSH = base.DisableSSH; if (disableSSH.IsPresent) { SwitchParameter noSSHEndpoint = base.NoSSHEndpoint; if (!noSSHEndpoint.IsPresent) { goto Label0; } } NetworkConfigurationSet inputEndpoints = instance.ConfigurationSets.OfType <NetworkConfigurationSet>().SingleOrDefault <NetworkConfigurationSet>(); if (inputEndpoints == null) { inputEndpoints = new NetworkConfigurationSet(); inputEndpoints.InputEndpoints = new Collection <InputEndpoint>(); instance.ConfigurationSets.Add(inputEndpoints); } foreach (InputEndpoint inputEndpoint2 in inputEndpoints.InputEndpoints) { if (string.Compare(inputEndpoint2.Name, "SSH", StringComparison.OrdinalIgnoreCase) != 0 && inputEndpoint2.LocalPort != 22) { continue; } flag = false; int?nullable1 = null; inputEndpoint2.Port = nullable1; break; } if (flag) { InputEndpoint inputEndpoint3 = new InputEndpoint(); inputEndpoint3.LocalPort = 22; inputEndpoint3.Protocol = "tcp"; inputEndpoint3.Name = "SSH"; inputEndpoints.InputEndpoints.Add(inputEndpoint3); } } Label0: CmdletExtensions.WriteVerboseOutputForObject(this, this.VM); base.WriteObject(this.VM, true); } catch (Exception exception1) { Exception exception = exception1; base.WriteError(new ErrorRecord(exception, string.Empty, ErrorCategory.CloseError, null)); } }