private static void ConfigVirtualNetwork(ClusterCreateParameters cluster, HDInsight.ClusterCreateParametersV2 inputs) { // Check if the virtual network configuration is partially set if (string.IsNullOrEmpty(inputs.VirtualNetworkId) ^ string.IsNullOrEmpty(inputs.SubnetName)) { if (inputs.VirtualNetworkId == null) { throw new ArgumentException("Subnet name is set however virtual network GUID is not set."); } else { throw new ArgumentException("Virtual newtork GUID is set however subnet name is not set."); } } // Set virtual network configuration if is provided in the input if (!string.IsNullOrEmpty(inputs.VirtualNetworkId) && !string.IsNullOrEmpty(inputs.SubnetName)) { VirtualNetworkConfiguration virtualNetworkConf = new VirtualNetworkConfiguration(); virtualNetworkConf.VirtualNetworkSite = inputs.VirtualNetworkId; foreach (var role in cluster.ClusterRoleCollection) { AddressAssignment aa = new AddressAssignment(); Subnet subnet = new Subnet(); subnet.Name = inputs.SubnetName; aa.Subnets.Add(subnet); aa.Role = role; virtualNetworkConf.AddressAssignments.Add(aa); } cluster.VirtualNetworkConfiguration = virtualNetworkConf; } }
internal PsApiManagementVirtualNetwork(VirtualNetworkConfiguration vnetConfigurationResource) : this() { if (vnetConfigurationResource == null) { throw new ArgumentNullException("vnetConfigurationResource"); } Location = vnetConfigurationResource.Location; SubnetResourceId = vnetConfigurationResource.SubnetResourceId; }
internal PsApiManagementVirtualNetwork(VirtualNetworkConfiguration vnetConfigurationResource) : this() { if (vnetConfigurationResource == null) { throw new ArgumentNullException("vnetConfigurationResource"); } SubnetResourceId = vnetConfigurationResource.SubnetResourceId; SubnetName = vnetConfigurationResource.Subnetname; Guid vnetId; if (Guid.TryParse(vnetConfigurationResource.Vnetid, out vnetId)) { this.VnetId = vnetId; } }
public static ClusterDetails CreateClusterDetailsFromGetClustersResult(Cluster clusterDetailsFromServer) { if (clusterDetailsFromServer == null) { throw new ArgumentNullException("clusterDetailsFromServer"); } ClusterDetails clusterDetails = new ClusterDetails(); clusterDetails.CreatedDate = clusterDetailsFromServer.CreatedTime; clusterDetails.Location = clusterDetailsFromServer.Location; clusterDetails.Name = clusterDetailsFromServer.DnsName; clusterDetails.Version = clusterDetailsFromServer.Version; clusterDetails.StateString = clusterDetailsFromServer.State.ToString(); clusterDetails.DeploymentId = clusterDetailsFromServer.DeploymentId ?? string.Empty; if (!string.IsNullOrEmpty(clusterDetails.Version)) { clusterDetails.VersionNumber = new PayloadConverter().ConvertStringToVersion(clusterDetails.Version); clusterDetails.VersionStatus = VersionFinderClient.GetVersionStatus(clusterDetails.Version); } else { clusterDetails.VersionNumber = new Version(0, 0); } string componentListCommaSeperated = clusterDetailsFromServer.Components != null ? string.Join(",", clusterDetailsFromServer.Components.Select(c => c.GetType().Name)) : string.Empty; clusterDetails.ClusterType = !string.IsNullOrEmpty(componentListCommaSeperated) ? GetClusterTypeFromComponentList(componentListCommaSeperated) : ClusterType.Unknown; // This code will only execute for PaaS clusters which only support Windows clusterDetails.OSType = OSType.Windows; if (clusterDetailsFromServer.Error != null) { //Populate error details with the most recent one. These occur if the deployment workflow errors out clusterDetails.Error = new ClusterErrorStatus( (int)clusterDetailsFromServer.Error.StatusCode, clusterDetailsFromServer.Error.ErrorMessage ?? string.Empty, string.Empty); } //Populate Uri and HttpCreds from the gateway. This should not throw //even if the gateway component is null PopulateClusterUriAndHttpCredsFromGateway(clusterDetails, clusterDetailsFromServer.Components.OfType <GatewayComponent>().SingleOrDefault()); //Look for Yarn for 3X clusters var yarn = clusterDetailsFromServer.Components.OfType <YarnComponent>().SingleOrDefault(); //Look for MR for 2X clusters var mr = clusterDetailsFromServer.Components.OfType <MapReduceComponent>().SingleOrDefault(); if (yarn != null) { clusterDetails.ClusterSizeInNodes = yarn.NodeManagerRole.InstanceCount; var mapReduceApplication = yarn.Applications.OfType <MapReduceApplication>().SingleOrDefault(); if (mapReduceApplication != null) { //ToWasbConfiguration returns null if DefaultStorageAccountAndContainer is null clusterDetails.DefaultStorageAccount = mapReduceApplication.DefaultStorageAccountAndContainer.ToWabStorageAccountConfiguration(); if (mapReduceApplication.AdditionalStorageContainers != null) { clusterDetails.AdditionalStorageAccounts = mapReduceApplication.AdditionalStorageContainers.Select(s => s.ToWabStorageAccountConfiguration()).ToList(); } } } else if (mr != null) { clusterDetails.ClusterSizeInNodes = mr.WorkerNodeRole.InstanceCount; clusterDetails.DefaultStorageAccount = mr.DefaultStorageAccountAndContainer.ToWabStorageAccountConfiguration(); if (mr.AdditionalStorageAccounts != null) { clusterDetails.AdditionalStorageAccounts = mr.AdditionalStorageAccounts.Select(s => s.ToWabStorageAccountConfiguration()).ToList(); } } //populate RDP user name. All roles will have the same RDP properties so we pick the first one if (clusterDetailsFromServer.ClusterRoleCollection != null && clusterDetailsFromServer.ClusterRoleCollection.Any() && clusterDetailsFromServer.ClusterRoleCollection.First().RemoteDesktopSettings.IsEnabled) { clusterDetails.RdpUserName = clusterDetailsFromServer.ClusterRoleCollection.First().RemoteDesktopSettings.AuthenticationCredential.Username; } //populate virtual network info VirtualNetworkConfiguration vnetConfigFromServer = clusterDetailsFromServer.VirtualNetworkConfiguration; if (vnetConfigFromServer != null && !string.IsNullOrEmpty(vnetConfigFromServer.VirtualNetworkSite)) { clusterDetails.VirtualNetworkId = vnetConfigFromServer.VirtualNetworkSite; //Populate the subnet name if (vnetConfigFromServer.AddressAssignments != null && vnetConfigFromServer.AddressAssignments.Any() && vnetConfigFromServer.AddressAssignments.First().Subnets != null && vnetConfigFromServer.AddressAssignments.First().Subnets.First() != null) { if (vnetConfigFromServer.AddressAssignments.Any()) { clusterDetails.SubnetName = vnetConfigFromServer.AddressAssignments.First().Subnets.First().Name; } } } return(clusterDetails); }