partial void OnStorageProfileChanging(StorageProfile value);
public static StorageProfile CreateStorageProfile(global::System.Collections.ObjectModel.ObservableCollection<DataVirtualHardDisk> dataVirtualHardDisks) { StorageProfile storageProfile = new StorageProfile(); if ((dataVirtualHardDisks == null)) { throw new global::System.ArgumentNullException("dataVirtualHardDisks"); } storageProfile.DataVirtualHardDisks = dataVirtualHardDisks; return storageProfile; }
public override void ExecuteCmdlet() { foreach (var component in ComponentVersion.Where(component => !clusterComponentVersion.ContainsKey(component.Key))) { clusterComponentVersion.Add(component.Key, component.Value); } // Construct Configurations foreach (var config in Configurations.Where(config => !clusterConfigurations.ContainsKey(config.Key))) { clusterConfigurations.Add(config.Key, config.Value); } // Add cluster username/password to gateway config. ClusterCreateHelper.AddClusterCredentialToGatewayConfig(HttpCredential, clusterConfigurations); // Construct OS Profile OsProfile osProfile = ClusterCreateHelper.CreateOsProfile(SshCredential, SshPublicKey); // Construct Virtual Network Profile VirtualNetworkProfile vnetProfile = ClusterCreateHelper.CreateVirtualNetworkProfile(VirtualNetworkId, SubnetName); // Handle storage account StorageProfile storageProfile = new StorageProfile() { Storageaccounts = new List <StorageAccount> { } }; if (StorageAccountType == null || StorageAccountType == StorageType.AzureStorage) { var azureStorageAccount = ClusterCreateHelper.CreateAzureStorageAccount(ClusterName, StorageAccountResourceId, StorageAccountKey, StorageContainer, this.DefaultContext.Environment.StorageEndpointSuffix); storageProfile.Storageaccounts.Add(azureStorageAccount); } else if (StorageAccountType == StorageType.AzureDataLakeStore) { ClusterCreateHelper.AddAzureDataLakeStorageGen1ToCoreConfig(StorageAccountResourceId, StorageRootPath, this.DefaultContext.Environment.AzureDataLakeStoreFileSystemEndpointSuffix, clusterConfigurations); } else if (StorageAccountType == StorageType.AzureDataLakeStorageGen2) { var adlsgen2Account = ClusterCreateHelper.CreateAdlsGen2StorageAccount(ClusterName, StorageAccountResourceId, StorageAccountKey, StorageFileSystem, StorageAccountManagedIdentity, this.DefaultContext.Environment.StorageEndpointSuffix); storageProfile.Storageaccounts.Add(adlsgen2Account); } // Handle additional storage accounts foreach ( var storageAccount in AdditionalStorageAccounts.Where( storageAccount => !clusterAdditionalStorageAccounts.ContainsKey(storageAccount.Key))) { clusterAdditionalStorageAccounts.Add(storageAccount.Key, storageAccount.Value); } ClusterCreateHelper.AddAdditionalStorageAccountsToCoreConfig(clusterAdditionalStorageAccounts, clusterConfigurations); // Handle script action foreach (var action in ScriptActions.Where(action => clusterScriptActions.ContainsKey(action.Key))) { clusterScriptActions.Add(action.Key, action.Value.Select(a => a.GetScriptActionFromPSModel()).ToList()); } // Handle metastore if (OozieMetastore != null) { ClusterCreateHelper.AddOozieMetastoreToConfigurations(OozieMetastore, clusterConfigurations); } if (HiveMetastore != null) { ClusterCreateHelper.AddHiveMetastoreToConfigurations(HiveMetastore, clusterConfigurations); } // Handle Custom Ambari Database if (AmbariDatabase != null) { ClusterCreateHelper.AddCustomAmbariDatabaseToConfigurations(AmbariDatabase, clusterConfigurations); } // Handle ADLSGen1 identity if (!string.IsNullOrEmpty(CertificatePassword)) { if (!string.IsNullOrEmpty(CertificateFilePath)) { CertificateFileContents = File.ReadAllBytes(CertificateFilePath); } ClusterCreateHelper.AddDataLakeStorageGen1IdentityToIdentityConfig( GetApplicationId(ApplicationId), GetTenantId(AadTenantId), CertificateFileContents, CertificatePassword, clusterConfigurations, this.DefaultContext.Environment.ActiveDirectoryAuthority, this.DefaultContext.Environment.DataLakeEndpointResourceId); } // Handle Kafka Rest Proxy KafkaRestProperties kafkaRestProperties = null; if (KafkaClientGroupId != null && KafkaClientGroupName != null) { kafkaRestProperties = new KafkaRestProperties() { ClientGroupInfo = new ClientGroupInfo(KafkaClientGroupName, KafkaClientGroupId) }; } bool isKafkaRestProxyEnable = kafkaRestProperties != null; var defaultVmSizeConfigurations = GetDefaultVmsizesConfigurations(Location); // Compute profile contains headnode, workernode, zookeepernode, edgenode, kafkamanagementnode, idbrokernode, etc. ComputeProfile computeProfile = ClusterCreateHelper.CreateComputeProfile(osProfile, vnetProfile, clusterScriptActions, ClusterType, ClusterSizeInNodes, HeadNodeSize, WorkerNodeSize, ZookeeperNodeSize, EdgeNodeSize, isKafkaRestProxyEnable, KafkaManagementNodeSize, EnableIDBroker.IsPresent, defaultVmSizeConfigurations); // Handle SecurityProfile SecurityProfile securityProfile = ClusterCreateHelper.ConvertAzureHDInsightSecurityProfileToSecurityProfile(SecurityProfile, AssignedIdentity); // Handle DisksPerWorkerNode feature Role workerNode = Utils.ExtractRole(ClusterNodeType.WorkerNode.ToString(), computeProfile); if (DisksPerWorkerNode > 0) { workerNode.DataDisksGroups = new List <DataDisksGroups>() { new DataDisksGroups() { DisksPerNode = DisksPerWorkerNode } }; } // Handle ClusterIdentity ClusterIdentity clusterIdentity = null; if (AssignedIdentity != null || StorageAccountManagedIdentity != null) { clusterIdentity = new ClusterIdentity { Type = ResourceIdentityType.UserAssigned, UserAssignedIdentities = new Dictionary <string, UserAssignedIdentity>() }; if (AssignedIdentity != null) { clusterIdentity.UserAssignedIdentities.Add(AssignedIdentity, new UserAssignedIdentity()); } if (StorageAccountManagedIdentity != null) { clusterIdentity.UserAssignedIdentities.Add(StorageAccountManagedIdentity, new UserAssignedIdentity()); } } // Handle CMK feature DiskEncryptionProperties diskEncryptionProperties = null; if (EncryptionKeyName != null && EncryptionKeyVersion != null && EncryptionVaultUri != null) { diskEncryptionProperties = new DiskEncryptionProperties() { KeyName = EncryptionKeyName, KeyVersion = EncryptionKeyVersion, VaultUri = EncryptionVaultUri, EncryptionAlgorithm = EncryptionAlgorithm != null ? EncryptionAlgorithm : JsonWebKeyEncryptionAlgorithm.RSAOAEP, MsiResourceId = AssignedIdentity }; } // Handle encryption at host feature if (EncryptionAtHost != null) { if (diskEncryptionProperties != null) { diskEncryptionProperties.EncryptionAtHost = EncryptionAtHost; } else { diskEncryptionProperties = new DiskEncryptionProperties() { EncryptionAtHost = EncryptionAtHost }; } } // Handle autoscale featurer Autoscale autoscaleParameter = null; if (AutoscaleConfiguration != null) { autoscaleParameter = AutoscaleConfiguration.ToAutoscale(); workerNode.AutoscaleConfiguration = autoscaleParameter; } // Handle relay outound and private link feature NetworkProperties networkProperties = null; if (ResourceProviderConnection != null || PrivateLink != null) { networkProperties = new NetworkProperties(ResourceProviderConnection, PrivateLink); } // Handle compute isolation properties ComputeIsolationProperties computeIsolationProperties = null; if (EnableComputeIsolation.IsPresent) { computeIsolationProperties = new ComputeIsolationProperties(EnableComputeIsolation.IsPresent, ComputeIsolationHostSku); } // Construct cluster create parameter ClusterCreateParametersExtended createParams = new ClusterCreateParametersExtended { Location = Location, //Tags = Tags, //To Do add this Tags parameter Zones = Zone, Properties = new ClusterCreateProperties { Tier = ClusterTier, ClusterDefinition = new ClusterDefinition { Kind = ClusterType ?? "Hadoop", ComponentVersion = clusterComponentVersion, Configurations = clusterConfigurations }, ClusterVersion = Version ?? "default", KafkaRestProperties = kafkaRestProperties, ComputeProfile = computeProfile, OsType = OSType, SecurityProfile = securityProfile, StorageProfile = storageProfile, DiskEncryptionProperties = diskEncryptionProperties, //handle Encryption In Transit feature EncryptionInTransitProperties = EncryptionInTransit != null ? new EncryptionInTransitProperties() { IsEncryptionInTransitEnabled = EncryptionInTransit } : null, MinSupportedTlsVersion = MinSupportedTlsVersion, NetworkProperties = networkProperties, ComputeIsolationProperties = computeIsolationProperties, PrivateLinkConfigurations = PrivateLinkConfiguration != null?PrivateLinkConfiguration.Select(item => item.ToPrivateLinkConfiguration()).ToList() : null }, Identity = clusterIdentity }; var cluster = HDInsightManagementClient.CreateCluster(ResourceGroupName, ClusterName, createParams); if (cluster != null) { WriteObject(new AzureHDInsightCluster(cluster)); } }
internal static VirtualMachineScaleSetVmData DeserializeVirtualMachineScaleSetVmData(JsonElement element) { Optional <string> instanceId = default; Optional <ComputeSku> sku = default; Optional <ComputePlan> plan = default; Optional <IReadOnlyList <VirtualMachineExtensionData> > resources = default; Optional <IReadOnlyList <string> > zones = default; Optional <ManagedServiceIdentity> identity = default; IDictionary <string, string> tags = default; AzureLocation location = default; ResourceIdentifier id = default; string name = default; ResourceType type = default; SystemData systemData = default; Optional <bool> latestModelApplied = default; Optional <string> vmId = default; Optional <VirtualMachineScaleSetVmInstanceView> instanceView = default; Optional <HardwareProfile> hardwareProfile = default; Optional <StorageProfile> storageProfile = default; Optional <AdditionalCapabilities> additionalCapabilities = default; Optional <OSProfile> osProfile = default; Optional <SecurityProfile> securityProfile = default; Optional <NetworkProfile> networkProfile = default; Optional <VirtualMachineScaleSetVmNetworkProfileConfiguration> networkProfileConfiguration = default; Optional <DiagnosticsProfile> diagnosticsProfile = default; Optional <WritableSubResource> availabilitySet = default; Optional <string> provisioningState = default; Optional <string> licenseType = default; Optional <string> modelDefinitionApplied = default; Optional <VirtualMachineScaleSetVmProtectionPolicy> protectionPolicy = default; Optional <string> userData = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("instanceId")) { instanceId = property.Value.GetString(); continue; } if (property.NameEquals("sku")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } sku = ComputeSku.DeserializeComputeSku(property.Value); continue; } if (property.NameEquals("plan")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } plan = ComputePlan.DeserializeComputePlan(property.Value); continue; } if (property.NameEquals("resources")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <VirtualMachineExtensionData> array = new List <VirtualMachineExtensionData>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(VirtualMachineExtensionData.DeserializeVirtualMachineExtensionData(item)); } resources = array; continue; } if (property.NameEquals("zones")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <string> array = new List <string>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(item.GetString()); } zones = array; continue; } if (property.NameEquals("identity")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } identity = JsonSerializer.Deserialize <ManagedServiceIdentity>(property.Value.ToString()); continue; } if (property.NameEquals("tags")) { Dictionary <string, string> dictionary = new Dictionary <string, string>(); foreach (var property0 in property.Value.EnumerateObject()) { dictionary.Add(property0.Name, property0.Value.GetString()); } tags = dictionary; continue; } if (property.NameEquals("location")) { location = new AzureLocation(property.Value.GetString()); continue; } if (property.NameEquals("id")) { id = new ResourceIdentifier(property.Value.GetString()); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("type")) { type = new ResourceType(property.Value.GetString()); continue; } if (property.NameEquals("systemData")) { systemData = JsonSerializer.Deserialize <SystemData>(property.Value.ToString()); continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("latestModelApplied")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } latestModelApplied = property0.Value.GetBoolean(); continue; } if (property0.NameEquals("vmId")) { vmId = property0.Value.GetString(); continue; } if (property0.NameEquals("instanceView")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } instanceView = VirtualMachineScaleSetVmInstanceView.DeserializeVirtualMachineScaleSetVmInstanceView(property0.Value); continue; } if (property0.NameEquals("hardwareProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } hardwareProfile = HardwareProfile.DeserializeHardwareProfile(property0.Value); continue; } if (property0.NameEquals("storageProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } storageProfile = StorageProfile.DeserializeStorageProfile(property0.Value); continue; } if (property0.NameEquals("additionalCapabilities")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } additionalCapabilities = AdditionalCapabilities.DeserializeAdditionalCapabilities(property0.Value); continue; } if (property0.NameEquals("osProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } osProfile = OSProfile.DeserializeOSProfile(property0.Value); continue; } if (property0.NameEquals("securityProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } securityProfile = SecurityProfile.DeserializeSecurityProfile(property0.Value); continue; } if (property0.NameEquals("networkProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } networkProfile = NetworkProfile.DeserializeNetworkProfile(property0.Value); continue; } if (property0.NameEquals("networkProfileConfiguration")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } networkProfileConfiguration = VirtualMachineScaleSetVmNetworkProfileConfiguration.DeserializeVirtualMachineScaleSetVmNetworkProfileConfiguration(property0.Value); continue; } if (property0.NameEquals("diagnosticsProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } diagnosticsProfile = DiagnosticsProfile.DeserializeDiagnosticsProfile(property0.Value); continue; } if (property0.NameEquals("availabilitySet")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } availabilitySet = JsonSerializer.Deserialize <WritableSubResource>(property0.Value.ToString()); continue; } if (property0.NameEquals("provisioningState")) { provisioningState = property0.Value.GetString(); continue; } if (property0.NameEquals("licenseType")) { licenseType = property0.Value.GetString(); continue; } if (property0.NameEquals("modelDefinitionApplied")) { modelDefinitionApplied = property0.Value.GetString(); continue; } if (property0.NameEquals("protectionPolicy")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } protectionPolicy = VirtualMachineScaleSetVmProtectionPolicy.DeserializeVirtualMachineScaleSetVmProtectionPolicy(property0.Value); continue; } if (property0.NameEquals("userData")) { userData = property0.Value.GetString(); continue; } } continue; } } return(new VirtualMachineScaleSetVmData(id, name, type, systemData, tags, location, instanceId.Value, sku.Value, plan.Value, Optional.ToList(resources), Optional.ToList(zones), identity, Optional.ToNullable(latestModelApplied), vmId.Value, instanceView.Value, hardwareProfile.Value, storageProfile.Value, additionalCapabilities.Value, osProfile.Value, securityProfile.Value, networkProfile.Value, networkProfileConfiguration.Value, diagnosticsProfile.Value, availabilitySet, provisioningState.Value, licenseType.Value, modelDefinitionApplied.Value, protectionPolicy.Value, userData.Value)); }
private EncryptionStatus GetDataDiskEncryptionStatus(List <DiskInstanceView> disks, StorageProfile storage) { if (storage == null || storage.DataDisks == null || storage.DataDisks.Count == 0) { return(EncryptionStatus.NotMounted); } try { InstanceViewStatus status = null; try { var disk = disks.First(e => e.Name.Equals(storage.DataDisks[0].Name)); if (disk == null) { return(EncryptionStatus.Unknown); } status = disk.Statuses.First(s => s.Code.Contains(AzureVmssDiskEncryptionExtensionContext.EncryptionStateString)); } catch (InvalidOperationException) { return(EncryptionStatus.NotEncrypted); } return((status == null) ? EncryptionStatus.NotEncrypted : ConvertToEncryptionStatus(status.Code.Replace(AzureVmssDiskEncryptionExtensionContext.EncryptionStateString, ""))); } catch (InvalidOperationException) { return(EncryptionStatus.Unknown); } }
internal VirtualMachineData(ResourceIdentifier id, string name, ResourceType type, SystemData systemData, IDictionary <string, string> tags, AzureLocation location, Models.Plan plan, IReadOnlyList <VirtualMachineExtensionData> resources, ManagedServiceIdentity identity, IList <string> zones, Models.ExtendedLocation extendedLocation, HardwareProfile hardwareProfile, StorageProfile storageProfile, AdditionalCapabilities additionalCapabilities, OSProfile osProfile, NetworkProfile networkProfile, SecurityProfile securityProfile, DiagnosticsProfile diagnosticsProfile, WritableSubResource availabilitySet, WritableSubResource virtualMachineScaleSet, WritableSubResource proximityPlacementGroup, VirtualMachinePriorityTypes?priority, VirtualMachineEvictionPolicyTypes?evictionPolicy, BillingProfile billingProfile, WritableSubResource host, WritableSubResource hostGroup, string provisioningState, VirtualMachineInstanceView instanceView, string licenseType, string vmId, string extensionsTimeBudget, int?platformFaultDomain, ScheduledEventsProfile scheduledEventsProfile, string userData, CapacityReservationProfile capacityReservation, ApplicationProfile applicationProfile) : base(id, name, type, systemData, tags, location) { Plan = plan; Resources = resources; Identity = identity; Zones = zones; ExtendedLocation = extendedLocation; HardwareProfile = hardwareProfile; StorageProfile = storageProfile; AdditionalCapabilities = additionalCapabilities; OSProfile = osProfile; NetworkProfile = networkProfile; SecurityProfile = securityProfile; DiagnosticsProfile = diagnosticsProfile; AvailabilitySet = availabilitySet; VirtualMachineScaleSet = virtualMachineScaleSet; ProximityPlacementGroup = proximityPlacementGroup; Priority = priority; EvictionPolicy = evictionPolicy; BillingProfile = billingProfile; Host = host; HostGroup = hostGroup; ProvisioningState = provisioningState; InstanceView = instanceView; LicenseType = licenseType; VmId = vmId; ExtensionsTimeBudget = extensionsTimeBudget; PlatformFaultDomain = platformFaultDomain; ScheduledEventsProfile = scheduledEventsProfile; UserData = userData; CapacityReservation = capacityReservation; ApplicationProfile = applicationProfile; }
internal static VirtualMachineData DeserializeVirtualMachineData(JsonElement element) { Optional <Models.Plan> plan = default; Optional <IReadOnlyList <VirtualMachineExtensionData> > resources = default; Optional <ManagedServiceIdentity> identity = default; Optional <IList <string> > zones = default; Optional <Models.ExtendedLocation> extendedLocation = default; IDictionary <string, string> tags = default; AzureLocation location = default; ResourceIdentifier id = default; string name = default; ResourceType type = default; SystemData systemData = default; Optional <HardwareProfile> hardwareProfile = default; Optional <StorageProfile> storageProfile = default; Optional <AdditionalCapabilities> additionalCapabilities = default; Optional <OSProfile> osProfile = default; Optional <NetworkProfile> networkProfile = default; Optional <SecurityProfile> securityProfile = default; Optional <DiagnosticsProfile> diagnosticsProfile = default; Optional <WritableSubResource> availabilitySet = default; Optional <WritableSubResource> virtualMachineScaleSet = default; Optional <WritableSubResource> proximityPlacementGroup = default; Optional <VirtualMachinePriorityTypes> priority = default; Optional <VirtualMachineEvictionPolicyTypes> evictionPolicy = default; Optional <BillingProfile> billingProfile = default; Optional <WritableSubResource> host = default; Optional <WritableSubResource> hostGroup = default; Optional <string> provisioningState = default; Optional <VirtualMachineInstanceView> instanceView = default; Optional <string> licenseType = default; Optional <string> vmId = default; Optional <string> extensionsTimeBudget = default; Optional <int> platformFaultDomain = default; Optional <ScheduledEventsProfile> scheduledEventsProfile = default; Optional <string> userData = default; Optional <CapacityReservationProfile> capacityReservation = default; Optional <ApplicationProfile> applicationProfile = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("plan")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } plan = Models.Plan.DeserializePlan(property.Value); continue; } if (property.NameEquals("resources")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <VirtualMachineExtensionData> array = new List <VirtualMachineExtensionData>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(VirtualMachineExtensionData.DeserializeVirtualMachineExtensionData(item)); } resources = array; continue; } if (property.NameEquals("identity")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } identity = JsonSerializer.Deserialize <ManagedServiceIdentity>(property.Value.ToString()); continue; } if (property.NameEquals("zones")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <string> array = new List <string>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(item.GetString()); } zones = array; continue; } if (property.NameEquals("extendedLocation")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } extendedLocation = Models.ExtendedLocation.DeserializeExtendedLocation(property.Value); continue; } if (property.NameEquals("tags")) { Dictionary <string, string> dictionary = new Dictionary <string, string>(); foreach (var property0 in property.Value.EnumerateObject()) { dictionary.Add(property0.Name, property0.Value.GetString()); } tags = dictionary; continue; } if (property.NameEquals("location")) { location = property.Value.GetString(); continue; } if (property.NameEquals("id")) { id = new ResourceIdentifier(property.Value.GetString()); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("type")) { type = property.Value.GetString(); continue; } if (property.NameEquals("systemData")) { systemData = JsonSerializer.Deserialize <SystemData>(property.Value.ToString()); continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("hardwareProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } hardwareProfile = HardwareProfile.DeserializeHardwareProfile(property0.Value); continue; } if (property0.NameEquals("storageProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } storageProfile = StorageProfile.DeserializeStorageProfile(property0.Value); continue; } if (property0.NameEquals("additionalCapabilities")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } additionalCapabilities = AdditionalCapabilities.DeserializeAdditionalCapabilities(property0.Value); continue; } if (property0.NameEquals("osProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } osProfile = OSProfile.DeserializeOSProfile(property0.Value); continue; } if (property0.NameEquals("networkProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } networkProfile = NetworkProfile.DeserializeNetworkProfile(property0.Value); continue; } if (property0.NameEquals("securityProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } securityProfile = SecurityProfile.DeserializeSecurityProfile(property0.Value); continue; } if (property0.NameEquals("diagnosticsProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } diagnosticsProfile = DiagnosticsProfile.DeserializeDiagnosticsProfile(property0.Value); continue; } if (property0.NameEquals("availabilitySet")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } availabilitySet = JsonSerializer.Deserialize <WritableSubResource>(property0.Value.ToString()); continue; } if (property0.NameEquals("virtualMachineScaleSet")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } virtualMachineScaleSet = JsonSerializer.Deserialize <WritableSubResource>(property0.Value.ToString()); continue; } if (property0.NameEquals("proximityPlacementGroup")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } proximityPlacementGroup = JsonSerializer.Deserialize <WritableSubResource>(property0.Value.ToString()); continue; } if (property0.NameEquals("priority")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } priority = new VirtualMachinePriorityTypes(property0.Value.GetString()); continue; } if (property0.NameEquals("evictionPolicy")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } evictionPolicy = new VirtualMachineEvictionPolicyTypes(property0.Value.GetString()); continue; } if (property0.NameEquals("billingProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } billingProfile = BillingProfile.DeserializeBillingProfile(property0.Value); continue; } if (property0.NameEquals("host")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } host = JsonSerializer.Deserialize <WritableSubResource>(property0.Value.ToString()); continue; } if (property0.NameEquals("hostGroup")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } hostGroup = JsonSerializer.Deserialize <WritableSubResource>(property0.Value.ToString()); continue; } if (property0.NameEquals("provisioningState")) { provisioningState = property0.Value.GetString(); continue; } if (property0.NameEquals("instanceView")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } instanceView = VirtualMachineInstanceView.DeserializeVirtualMachineInstanceView(property0.Value); continue; } if (property0.NameEquals("licenseType")) { licenseType = property0.Value.GetString(); continue; } if (property0.NameEquals("vmId")) { vmId = property0.Value.GetString(); continue; } if (property0.NameEquals("extensionsTimeBudget")) { extensionsTimeBudget = property0.Value.GetString(); continue; } if (property0.NameEquals("platformFaultDomain")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } platformFaultDomain = property0.Value.GetInt32(); continue; } if (property0.NameEquals("scheduledEventsProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } scheduledEventsProfile = ScheduledEventsProfile.DeserializeScheduledEventsProfile(property0.Value); continue; } if (property0.NameEquals("userData")) { userData = property0.Value.GetString(); continue; } if (property0.NameEquals("capacityReservation")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } capacityReservation = CapacityReservationProfile.DeserializeCapacityReservationProfile(property0.Value); continue; } if (property0.NameEquals("applicationProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } applicationProfile = ApplicationProfile.DeserializeApplicationProfile(property0.Value); continue; } } continue; } } return(new VirtualMachineData(id, name, type, systemData, tags, location, plan.Value, Optional.ToList(resources), identity, Optional.ToList(zones), extendedLocation.Value, hardwareProfile.Value, storageProfile.Value, additionalCapabilities.Value, osProfile.Value, networkProfile.Value, securityProfile.Value, diagnosticsProfile.Value, availabilitySet, virtualMachineScaleSet, proximityPlacementGroup, Optional.ToNullable(priority), Optional.ToNullable(evictionPolicy), billingProfile.Value, host, hostGroup, provisioningState.Value, instanceView.Value, licenseType.Value, vmId.Value, extensionsTimeBudget.Value, Optional.ToNullable(platformFaultDomain), scheduledEventsProfile.Value, userData.Value, capacityReservation.Value, applicationProfile.Value)); }
private EncryptionStatus GetDataDiskEncryptionStatus(string rgName, string vmssName, string encryptionStatus, StorageProfile storage) { if (storage == null || storage.DataDisks == null || storage.DataDisks.Count == 0) { return(EncryptionStatus.NotMounted); } // Data disk does not have disk encryption extension setting. var vmssResult = this.VirtualMachineScaleSetClient.Get(rgName, vmssName); if (vmssResult.VirtualMachineProfile == null || vmssResult.VirtualMachineProfile.ExtensionProfile == null || vmssResult.VirtualMachineProfile.ExtensionProfile.Extensions == null || vmssResult.VirtualMachineProfile.ExtensionProfile.Extensions.Count == 0) { return(EncryptionStatus.NotEncrypted); } try { VirtualMachineScaleSetExtension ext = vmssResult.VirtualMachineProfile.ExtensionProfile.Extensions.First( e => e.Type.Equals(this.ExtensionName)); AzureVmssDiskEncryptionExtensionPublicSettings encryptionSettings = JsonConvert.DeserializeObject <AzureVmssDiskEncryptionExtensionPublicSettings>( ext.Settings.ToString()); if (encryptionSettings.VolumeType.Equals(AzureVmssDiskEncryptionExtensionContext.VolumeTypeAll, StringComparison.OrdinalIgnoreCase) || encryptionSettings.VolumeType.Equals(AzureVmssDiskEncryptionExtensionContext.VolumeTypeData, StringComparison.OrdinalIgnoreCase)) { if (encryptionSettings.EncryptionOperation.Equals(AzureDiskEncryptionExtensionConstants.enableEncryptionOperation, StringComparison.OrdinalIgnoreCase)) { return(!string.IsNullOrEmpty(encryptionStatus) && encryptionStatus.EndsWith(AzureVmssDiskEncryptionExtensionContext.StatusSucceeded, StringComparison.OrdinalIgnoreCase) ? EncryptionStatus.Encrypted : EncryptionStatus.Unknown); } } return(EncryptionStatus.NotEncrypted); } catch (InvalidOperationException) { return(EncryptionStatus.Unknown); } }
private AzureDiskEncryptionStatusContext GetStatusFromInstanceView(VirtualMachine vm) { AzureDiskEncryptionStatusContext result = new AzureDiskEncryptionStatusContext(); result.OsVolumeEncrypted = EncryptionStatus.Unknown; result.DataVolumesEncrypted = EncryptionStatus.Unknown; StorageProfile storageProfile = vm.StorageProfile; VirtualMachineInstanceView iv = vm.InstanceView; if (iv != null) { result.OsVolumeEncrypted = EncryptionStatus.NoDiskFound; result.DataVolumesEncrypted = EncryptionStatus.NoDiskFound; foreach (DiskInstanceView div in iv.Disks) { if (div.Name.Equals(storageProfile.OsDisk.Name)) { // check os volume status string status = GetLastEncryptionStatus(div); switch (status) { case "EncryptionState/encrypted": result.OsVolumeEncrypted = EncryptionStatus.Encrypted; break; case "EncryptionState/notEncrypted": case "": result.OsVolumeEncrypted = EncryptionStatus.NotEncrypted; break; default: break; } result.OsVolumeEncryptionSettings = (div.EncryptionSettings != null) ? div.EncryptionSettings[0] : null; } else { // check data volume status // Mark DataVolumesEncrypted as Encrypted if even one of the disks is Encrypted // Skip if DataVolumesEncrypted has already been marked Encrypted if (result.DataVolumesEncrypted == EncryptionStatus.Encrypted) { continue; } string status = GetLastEncryptionStatus(div); switch (status) { case "EncryptionState/encrypted": result.DataVolumesEncrypted = EncryptionStatus.Encrypted; break; case "EncryptionState/notEncrypted": case "": result.DataVolumesEncrypted = EncryptionStatus.NotEncrypted; break; default: break; } } } } return(result); }
internal static VirtualMachineData DeserializeVirtualMachineData(JsonElement element) { Optional <ExtendedLocation> extendedLocation = default; Optional <string> kind = default; Optional <SystemAssignedServiceIdentity> identity = default; IDictionary <string, string> tags = default; AzureLocation location = default; ResourceIdentifier id = default; string name = default; ResourceType type = default; SystemData systemData = default; Optional <string> resourcePoolId = default; Optional <string> templateId = default; Optional <string> vCenterId = default; Optional <PlacementProfile> placementProfile = default; Optional <OSProfile> osProfile = default; Optional <HardwareProfile> hardwareProfile = default; Optional <NetworkProfile> networkProfile = default; Optional <StorageProfile> storageProfile = default; Optional <GuestAgentProfile> guestAgentProfile = default; Optional <string> moRefId = default; Optional <string> inventoryItemId = default; Optional <string> moName = default; Optional <string> folderPath = default; Optional <string> instanceUuid = default; Optional <string> smbiosUuid = default; Optional <FirmwareType> firmwareType = default; Optional <string> powerState = default; Optional <string> customResourceName = default; Optional <string> uuid = default; Optional <IReadOnlyList <ResourceStatus> > statuses = default; Optional <string> provisioningState = default; Optional <string> vmId = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("extendedLocation")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } extendedLocation = ExtendedLocation.DeserializeExtendedLocation(property.Value); continue; } if (property.NameEquals("kind")) { kind = property.Value.GetString(); continue; } if (property.NameEquals("identity")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } identity = JsonSerializer.Deserialize <SystemAssignedServiceIdentity>(property.Value.ToString()); continue; } if (property.NameEquals("tags")) { Dictionary <string, string> dictionary = new Dictionary <string, string>(); foreach (var property0 in property.Value.EnumerateObject()) { dictionary.Add(property0.Name, property0.Value.GetString()); } tags = dictionary; continue; } if (property.NameEquals("location")) { location = property.Value.GetString(); continue; } if (property.NameEquals("id")) { id = new ResourceIdentifier(property.Value.GetString()); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("type")) { type = property.Value.GetString(); continue; } if (property.NameEquals("systemData")) { systemData = JsonSerializer.Deserialize <SystemData>(property.Value.ToString()); continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("resourcePoolId")) { resourcePoolId = property0.Value.GetString(); continue; } if (property0.NameEquals("templateId")) { templateId = property0.Value.GetString(); continue; } if (property0.NameEquals("vCenterId")) { vCenterId = property0.Value.GetString(); continue; } if (property0.NameEquals("placementProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } placementProfile = PlacementProfile.DeserializePlacementProfile(property0.Value); continue; } if (property0.NameEquals("osProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } osProfile = OSProfile.DeserializeOSProfile(property0.Value); continue; } if (property0.NameEquals("hardwareProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } hardwareProfile = HardwareProfile.DeserializeHardwareProfile(property0.Value); continue; } if (property0.NameEquals("networkProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } networkProfile = NetworkProfile.DeserializeNetworkProfile(property0.Value); continue; } if (property0.NameEquals("storageProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } storageProfile = StorageProfile.DeserializeStorageProfile(property0.Value); continue; } if (property0.NameEquals("guestAgentProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } guestAgentProfile = GuestAgentProfile.DeserializeGuestAgentProfile(property0.Value); continue; } if (property0.NameEquals("moRefId")) { moRefId = property0.Value.GetString(); continue; } if (property0.NameEquals("inventoryItemId")) { inventoryItemId = property0.Value.GetString(); continue; } if (property0.NameEquals("moName")) { moName = property0.Value.GetString(); continue; } if (property0.NameEquals("folderPath")) { folderPath = property0.Value.GetString(); continue; } if (property0.NameEquals("instanceUuid")) { instanceUuid = property0.Value.GetString(); continue; } if (property0.NameEquals("smbiosUuid")) { smbiosUuid = property0.Value.GetString(); continue; } if (property0.NameEquals("firmwareType")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } firmwareType = new FirmwareType(property0.Value.GetString()); continue; } if (property0.NameEquals("powerState")) { powerState = property0.Value.GetString(); continue; } if (property0.NameEquals("customResourceName")) { customResourceName = property0.Value.GetString(); continue; } if (property0.NameEquals("uuid")) { uuid = property0.Value.GetString(); continue; } if (property0.NameEquals("statuses")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <ResourceStatus> array = new List <ResourceStatus>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(ResourceStatus.DeserializeResourceStatus(item)); } statuses = array; continue; } if (property0.NameEquals("provisioningState")) { provisioningState = property0.Value.GetString(); continue; } if (property0.NameEquals("vmId")) { vmId = property0.Value.GetString(); continue; } } continue; } } return(new VirtualMachineData(id, name, type, systemData, tags, location, extendedLocation.Value, kind.Value, identity, resourcePoolId.Value, templateId.Value, vCenterId.Value, placementProfile.Value, osProfile.Value, hardwareProfile.Value, networkProfile.Value, storageProfile.Value, guestAgentProfile.Value, moRefId.Value, inventoryItemId.Value, moName.Value, folderPath.Value, instanceUuid.Value, smbiosUuid.Value, Optional.ToNullable(firmwareType), powerState.Value, customResourceName.Value, uuid.Value, Optional.ToList(statuses), provisioningState.Value, vmId.Value)); }
internal static ScVmmVirtualMachineData DeserializeScVmmVirtualMachineData(JsonElement element) { ExtendedLocation extendedLocation = default; IDictionary <string, string> tags = default; AzureLocation location = default; ResourceIdentifier id = default; string name = default; ResourceType type = default; SystemData systemData = default; Optional <string> inventoryItemId = default; Optional <string> vmmServerId = default; Optional <string> cloudId = default; Optional <string> templateId = default; Optional <string> checkpointType = default; Optional <IList <Checkpoint> > checkpoints = default; Optional <IList <AvailabilitySetListItem> > availabilitySets = default; Optional <OSProfile> osProfile = default; Optional <HardwareProfile> hardwareProfile = default; Optional <NetworkProfile> networkProfile = default; Optional <StorageProfile> storageProfile = default; Optional <string> vmName = default; Optional <string> uuid = default; Optional <int> generation = default; Optional <string> powerState = default; Optional <string> provisioningState = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("extendedLocation")) { extendedLocation = ExtendedLocation.DeserializeExtendedLocation(property.Value); continue; } if (property.NameEquals("tags")) { Dictionary <string, string> dictionary = new Dictionary <string, string>(); foreach (var property0 in property.Value.EnumerateObject()) { dictionary.Add(property0.Name, property0.Value.GetString()); } tags = dictionary; continue; } if (property.NameEquals("location")) { location = property.Value.GetString(); continue; } if (property.NameEquals("id")) { id = new ResourceIdentifier(property.Value.GetString()); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("type")) { type = property.Value.GetString(); continue; } if (property.NameEquals("systemData")) { systemData = JsonSerializer.Deserialize <SystemData>(property.Value.ToString()); continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("inventoryItemId")) { inventoryItemId = property0.Value.GetString(); continue; } if (property0.NameEquals("vmmServerId")) { vmmServerId = property0.Value.GetString(); continue; } if (property0.NameEquals("cloudId")) { cloudId = property0.Value.GetString(); continue; } if (property0.NameEquals("templateId")) { templateId = property0.Value.GetString(); continue; } if (property0.NameEquals("checkpointType")) { checkpointType = property0.Value.GetString(); continue; } if (property0.NameEquals("checkpoints")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <Checkpoint> array = new List <Checkpoint>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(Checkpoint.DeserializeCheckpoint(item)); } checkpoints = array; continue; } if (property0.NameEquals("availabilitySets")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <AvailabilitySetListItem> array = new List <AvailabilitySetListItem>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(AvailabilitySetListItem.DeserializeAvailabilitySetListItem(item)); } availabilitySets = array; continue; } if (property0.NameEquals("osProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } osProfile = OSProfile.DeserializeOSProfile(property0.Value); continue; } if (property0.NameEquals("hardwareProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } hardwareProfile = HardwareProfile.DeserializeHardwareProfile(property0.Value); continue; } if (property0.NameEquals("networkProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } networkProfile = NetworkProfile.DeserializeNetworkProfile(property0.Value); continue; } if (property0.NameEquals("storageProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } storageProfile = StorageProfile.DeserializeStorageProfile(property0.Value); continue; } if (property0.NameEquals("vmName")) { vmName = property0.Value.GetString(); continue; } if (property0.NameEquals("uuid")) { uuid = property0.Value.GetString(); continue; } if (property0.NameEquals("generation")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } generation = property0.Value.GetInt32(); continue; } if (property0.NameEquals("powerState")) { powerState = property0.Value.GetString(); continue; } if (property0.NameEquals("provisioningState")) { provisioningState = property0.Value.GetString(); continue; } } continue; } } return(new ScVmmVirtualMachineData(id, name, type, systemData, tags, location, extendedLocation, inventoryItemId.Value, vmmServerId.Value, cloudId.Value, templateId.Value, checkpointType.Value, Optional.ToList(checkpoints), Optional.ToList(availabilitySets), osProfile.Value, hardwareProfile.Value, networkProfile.Value, storageProfile.Value, vmName.Value, uuid.Value, Optional.ToNullable(generation), powerState.Value, provisioningState.Value)); }
public override void ExecuteCmdlet() { if (this.ParameterSetName.Equals(VmNormalDiskParameterSet)) { var storageProfile = this.VM.StorageProfile; if (storageProfile == null) { storageProfile = new StorageProfile(); } if (storageProfile.DataDisks == null) { storageProfile.DataDisks = new List <DataDisk>(); } storageProfile.DataDisks.Add(new DataDisk { Name = this.Name, Caching = this.Caching, DiskSizeGB = this.DiskSizeInGB, Lun = this.Lun.GetValueOrDefault(), Vhd = string.IsNullOrEmpty(this.VhdUri) ? null : new VirtualHardDisk { Uri = this.VhdUri }, CreateOption = this.CreateOption, Image = string.IsNullOrEmpty(this.SourceImageUri) ? null : new VirtualHardDisk { Uri = this.SourceImageUri } }); this.VM.StorageProfile = storageProfile; WriteObject(this.VM); } else { if (!string.IsNullOrEmpty(this.Name) && !string.IsNullOrEmpty(this.ManagedDiskId)) { if (!this.Name.Equals(GetDiskNameFromId(this.ManagedDiskId))) { ThrowInvalidArgumentError("Disk name, {0}, does not match with given managed disk ID", this.Name); } } var storageProfile = this.VM.StorageProfile; if (storageProfile == null) { storageProfile = new StorageProfile(); } if (storageProfile.DataDisks == null) { storageProfile.DataDisks = new List <DataDisk>(); } storageProfile.DataDisks.Add(new DataDisk { Name = this.Name, Caching = this.Caching, DiskSizeGB = this.DiskSizeInGB, Lun = this.Lun.GetValueOrDefault(), CreateOption = this.CreateOption, ManagedDisk = SetManagedDisk(this.ManagedDiskId, this.StorageAccountType), WriteAcceleratorEnabled = this.WriteAccelerator.IsPresent }); this.VM.StorageProfile = storageProfile; WriteObject(this.VM); } }
internal VirtualMachineData(ResourceIdentifier id, string name, ResourceType type, SystemData systemData, IDictionary <string, string> tags, AzureLocation location, ExtendedLocation extendedLocation, string kind, SystemAssignedServiceIdentity identity, string resourcePoolId, string templateId, string vCenterId, PlacementProfile placementProfile, OSProfile osProfile, HardwareProfile hardwareProfile, NetworkProfile networkProfile, StorageProfile storageProfile, GuestAgentProfile guestAgentProfile, string moRefId, string inventoryItemId, string moName, string folderPath, string instanceUuid, string smbiosUuid, FirmwareType?firmwareType, string powerState, string customResourceName, string uuid, IReadOnlyList <ResourceStatus> statuses, string provisioningState, string vmId) : base(id, name, type, systemData, tags, location) { ExtendedLocation = extendedLocation; Kind = kind; Identity = identity; ResourcePoolId = resourcePoolId; TemplateId = templateId; VCenterId = vCenterId; PlacementProfile = placementProfile; OSProfile = osProfile; HardwareProfile = hardwareProfile; NetworkProfile = networkProfile; StorageProfile = storageProfile; GuestAgentProfile = guestAgentProfile; MoRefId = moRefId; InventoryItemId = inventoryItemId; MoName = moName; FolderPath = folderPath; InstanceUuid = instanceUuid; SmbiosUuid = smbiosUuid; FirmwareType = firmwareType; PowerState = powerState; CustomResourceName = customResourceName; Uuid = uuid; Statuses = statuses; ProvisioningState = provisioningState; VmId = vmId; }