/// <summary> /// Create LogicalNetworkDefinition instance. /// </summary> /// <returns>LogicalNetworkDefinition instance.</returns> private LogicalNetworkDefinition CreateDefaultLogicalNetworkDefinition() { var logicalNetworkDefinition = new LogicalNetworkDefinition() { AllowsIntraPortCommunication = true, EditableByNonOwners = true, Id = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.ID, IPSubnets = new IPSubnet[1], LastModifiedBySystemId = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.MANAGED_BY_NETWORKSERVICE_ID, LastModifiedTimeStamp = DateTime.Now, LogicalNetworkId = HNVODLConstants.LOGICAL_NETWORK.LOGICALNETWORK_ID, ManagedByNetworkServiceId = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.MANAGED_BY_NETWORKSERVICE_ID, MarkedForDeletion = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.MARKED_FOR_DELETION, MaximumVMSubnetsPerVMNetwork = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.MAXIMUM_VMSUBNETS_PER_VMNETWORK, Name = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.NAME, SegmentIds = new NetworkSegmentIdentifier[1], SegmentType = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.SEGMENT_TYPE, SupportsIPSubnetConfigurationOnVMSubnets = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.SUPPORTS_IPSUBNET_CONFIGURATIONON_VMSUBNETS, SupportsVMNetworkProvisioning = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.SUPPORTS_VMNETWORK_PROVISIONING }; logicalNetworkDefinition.IPSubnets[0] = this.CreateDefaultIPSubnet(); logicalNetworkDefinition.SegmentIds[0] = this.CreateDefaultNetworkSegmentIdentifier(); return(logicalNetworkDefinition); }
/// <summary> /// Verify whether the specified LogicalNetwork is HNV resource or not. /// </summary> /// <param name="logicalNetwork">LogicalNetwork instance.</param> /// <returns>True if HNV resource, else false.</returns> public bool IsHNVLogicalNetwork(LogicalNetwork logicalNetwork) { if (logicalNetwork == null) { return(false); } LogicalNetworkDefinition tmpLogicalNetworkDefinition = logicalNetwork.LogicalNetworkDefinitions.FirstOrDefault(l => l.Id == HNVODLConstants.LOGICAL_NETWORK_DEFINITION.ID); if (tmpLogicalNetworkDefinition != null && tmpLogicalNetworkDefinition.ManagedByNetworkServiceId == VSEMODLConstants.SYSTEM_INFO_ID && logicalNetwork.AreLogicalNetworkDefinitionsIsolated == false) { return(true); } ODLVSEMETW.EventWriteNotHNVLogicalNetwork(MethodBase.GetCurrentMethod().Name, string.Format("LogicalNetwork name is {0}", logicalNetwork.Name)); return(false); }
/// <summary> /// Validate whether the specified LogicalNetwork.LogicalNetworkDefinitions are correct configuration or not. /// </summary> /// <param name="logicalNetwork">LogicalNetwork instance.</param> /// <returns>True if correct configuraton, else false.</returns> private bool IsLogicalNetworkDefinitionsValid(LogicalNetwork logicalNetwork) { bool ret = true; for (int i = 0; i < logicalNetwork.LogicalNetworkDefinitions.Length; i++) { LogicalNetworkDefinition tmpLogicalNetworkDefinition = logicalNetwork.LogicalNetworkDefinitions[i]; if (tmpLogicalNetworkDefinition.Id == HNVODLConstants.LOGICAL_NETWORK_DEFINITION.ID) { continue; } else { // Invalid NetworkSite. string ErrorString = string.Format(HNVODLConstants.ERROR_STRING.INVALID_NETWORKSITE, tmpLogicalNetworkDefinition.Name); List <string> msg = new List <string>(); msg.Add(ErrorString); tmpLogicalNetworkDefinition.SynchronizationErrors = msg.ToArray(); ret = false; } } return(ret); }
/// <summary> /// Create LogicalNetworkDefinition instance. /// </summary> /// <returns>LogicalNetworkDefinition instance.</returns> private LogicalNetworkDefinition CreateDefaultLogicalNetworkDefinition() { var logicalNetworkDefinition = new LogicalNetworkDefinition() { AllowsIntraPortCommunication = true, EditableByNonOwners = true, Id = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.ID, IPSubnets = new IPSubnet[1], LastModifiedBySystemId = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.MANAGED_BY_NETWORKSERVICE_ID, LastModifiedTimeStamp = DateTime.Now, LogicalNetworkId = HNVODLConstants.LOGICAL_NETWORK.LOGICALNETWORK_ID, ManagedByNetworkServiceId = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.MANAGED_BY_NETWORKSERVICE_ID, MarkedForDeletion = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.MARKED_FOR_DELETION, MaximumVMSubnetsPerVMNetwork = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.MAXIMUM_VMSUBNETS_PER_VMNETWORK, Name = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.NAME, SegmentIds = new NetworkSegmentIdentifier[1], SegmentType = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.SEGMENT_TYPE, SupportsIPSubnetConfigurationOnVMSubnets = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.SUPPORTS_IPSUBNET_CONFIGURATIONON_VMSUBNETS, SupportsVMNetworkProvisioning = HNVODLConstants.LOGICAL_NETWORK_DEFINITION.SUPPORTS_VMNETWORK_PROVISIONING }; logicalNetworkDefinition.IPSubnets[0] = this.CreateDefaultIPSubnet(); logicalNetworkDefinition.SegmentIds[0] = this.CreateDefaultNetworkSegmentIdentifier(); return logicalNetworkDefinition; }