protected override void ExecuteCommand() { ServiceManagementProfile.Initialize(); base.ExecuteCommand(); if (CurrentDeploymentNewSM == null) { return; } var role = CurrentDeploymentNewSM.Roles.FirstOrDefault(r => r.RoleName.Equals(Name, StringComparison.InvariantCultureIgnoreCase)); if (role == null) { throw new ApplicationException(string.Format(Resources.NoCorrespondingRoleCanBeFoundInDeployment, Name)); } try { var vm = role; var roleInstance = CurrentDeploymentNewSM.RoleInstances.First(r => r.RoleName == vm.RoleName); var vmContext = new PVM.PersistentVMRoleContext { ServiceName = ServiceName, Name = vm.RoleName, DeploymentName = CurrentDeploymentNewSM.Name, AvailabilitySetName = vm.AvailabilitySetName, Label = vm.Label, InstanceSize = vm.RoleSize.ToString(), InstanceStatus = roleInstance.InstanceStatus, IpAddress = roleInstance.IPAddress, InstanceStateDetails = roleInstance.InstanceStateDetails, PowerState = roleInstance.PowerState.ToString(), InstanceErrorCode = roleInstance.InstanceErrorCode, InstanceName = roleInstance.InstanceName, InstanceFaultDomain = roleInstance.InstanceFaultDomain.HasValue ? roleInstance.InstanceFaultDomain.Value.ToString(CultureInfo.InvariantCulture) : null, InstanceUpgradeDomain = roleInstance.InstanceUpgradeDomain.HasValue ? roleInstance.InstanceUpgradeDomain.Value.ToString(CultureInfo.InvariantCulture) : null, OperationDescription = CommandRuntime.ToString(), OperationId = GetDeploymentOperationNewSM.Id, OperationStatus = GetDeploymentOperationNewSM.Status.ToString(), VM = new PVM.PersistentVM { AvailabilitySetName = vm.AvailabilitySetName, ConfigurationSets = PersistentVMHelper.MapConfigurationSets(vm.ConfigurationSets), DataVirtualHardDisks = new Collection <PVM.DataVirtualHardDisk>(), Label = vm.Label, OSVirtualHardDisk = Mapper.Map(vm.OSVirtualHardDisk, new PVM.OSVirtualHardDisk()), RoleName = vm.RoleName, RoleSize = vm.RoleSize.ToString(), RoleType = vm.RoleType, DefaultWinRmCertificateThumbprint = vm.DefaultWinRmCertificateThumbprint, ProvisionGuestAgent = vm.ProvisionGuestAgent, ResourceExtensionReferences = Mapper.Map <PVM.ResourceExtensionReferenceList>(vm.ResourceExtensionReferences), DebugSettings = Mapper.Map <PVM.DebugSettings>(vm.DebugSettings) } }; if (vm.DataVirtualHardDisks != null) { vm.DataVirtualHardDisks.ForEach( d => vmContext.VM.DataVirtualHardDisks.Add(Mapper.Map <PVM.DataVirtualHardDisk>(d))); } else { vmContext.VM.DataVirtualHardDisks = null; } PersistentVMHelper.SaveStateToFile(vmContext.VM, Path); WriteObject(vmContext, true); } catch (Exception e) { throw new ApplicationException(string.Format(Resources.VMPropertiesCanNotBeRead, role.RoleName), e); } }
protected override void ExecuteCommand() { ServiceManagementProfile.Initialize(); base.ExecuteCommand(); if (CurrentDeploymentNewSM == null) { return; } var role = CurrentDeploymentNewSM.Roles.FirstOrDefault(r => r.RoleName.Equals(Name, StringComparison.InvariantCultureIgnoreCase)); if(role == null) { throw new ApplicationException(string.Format(Resources.NoCorrespondingRoleCanBeFoundInDeployment, Name)); } try { var vm = role; var roleInstance = CurrentDeploymentNewSM.RoleInstances.First(r => r.RoleName == vm.RoleName); var vmContext = new PVM.PersistentVMRoleContext { ServiceName = ServiceName, Name = vm.RoleName, DeploymentName = CurrentDeploymentNewSM.Name, AvailabilitySetName = vm.AvailabilitySetName, Label = vm.Label, InstanceSize = vm.RoleSize.ToString(), InstanceStatus = roleInstance.InstanceStatus, IpAddress = roleInstance.IPAddress, InstanceStateDetails = roleInstance.InstanceStateDetails, PowerState = roleInstance.PowerState.ToString(), InstanceErrorCode = roleInstance.InstanceErrorCode, InstanceName = roleInstance.InstanceName, InstanceFaultDomain = roleInstance.InstanceFaultDomain.HasValue ? roleInstance.InstanceFaultDomain.Value.ToString(CultureInfo.InvariantCulture) : null, InstanceUpgradeDomain = roleInstance.InstanceUpgradeDomain.HasValue ? roleInstance.InstanceUpgradeDomain.Value.ToString(CultureInfo.InvariantCulture) : null, OperationDescription = CommandRuntime.ToString(), OperationId = GetDeploymentOperationNewSM.Id, OperationStatus = GetDeploymentOperationNewSM.Status.ToString(), VM = new PVM.PersistentVM { AvailabilitySetName = vm.AvailabilitySetName, ConfigurationSets = PersistentVMHelper.MapConfigurationSets(vm.ConfigurationSets), DataVirtualHardDisks = new Collection<PVM.DataVirtualHardDisk>(), Label = vm.Label, OSVirtualHardDisk = Mapper.Map(vm.OSVirtualHardDisk, new PVM.OSVirtualHardDisk()), RoleName = vm.RoleName, RoleSize = vm.RoleSize.ToString(), RoleType = vm.RoleType, DefaultWinRmCertificateThumbprint = vm.DefaultWinRmCertificateThumbprint, ProvisionGuestAgent = vm.ProvisionGuestAgent, ResourceExtensionReferences = Mapper.Map<PVM.ResourceExtensionReferenceList>(vm.ResourceExtensionReferences) } }; if (vm.DataVirtualHardDisks != null) { vm.DataVirtualHardDisks.ForEach( d => vmContext.VM.DataVirtualHardDisks.Add(Mapper.Map<PVM.DataVirtualHardDisk>(d))); } else { vmContext.VM.DataVirtualHardDisks = null; } PersistentVMHelper.SaveStateToFile(vmContext.VM, Path); WriteObject(vmContext, true); } catch (Exception e) { throw new ApplicationException(string.Format(Resources.VMPropertiesCanNotBeRead, role.RoleName), e); } }