예제 #1
0
        public void Validate(HiveDefinition hiveDefinition)
        {
            Covenant.Requires <ArgumentNullException>(hiveDefinition != null);

            HostXvaUri           = HostXvaUri ?? defaultHostXvaUri;
            TemplateName         = TemplateName ?? defaultTemplate;
            StorageRepository    = StorageRepository ?? defaultStorageRepository;
            OsdStorageRepository = OsdStorageRepository ?? defaultStorageRepository;

            if (!hiveDefinition.Network.StaticIP)
            {
                throw new HiveDefinitionException($"[{nameof(NetworkOptions)}.{nameof(NetworkOptions.StaticIP)}] must be [true] when deploying to XenServer.");
            }

            if (string.IsNullOrEmpty(HostXvaUri) || !Uri.TryCreate(HostXvaUri, UriKind.Absolute, out Uri uri))
            {
                throw new HiveDefinitionException($"[{nameof(XenServerOptions)}.{nameof(HostXvaUri)}] is required when deploying to XenServer.");
            }

            if (string.IsNullOrEmpty(StorageRepository))
            {
                throw new HiveDefinitionException($"[{nameof(XenServerOptions)}.{nameof(StorageRepository)}] is required when deploying to XenServer.");
            }

            if (string.IsNullOrEmpty(OsdStorageRepository))
            {
                OsdStorageRepository = StorageRepository;
            }

            hiveDefinition.ValidatePrivateNodeAddresses();                                          // Private node IP addresses must be assigned and valid.
            hiveDefinition.Hosting.ValidateHypervisor(hiveDefinition, remoteHypervisors: true);     // Hypervisor options must be valid.
        }
예제 #2
0
        public void Validate(HiveDefinition hiveDefinition)
        {
            Covenant.Requires <ArgumentNullException>(hiveDefinition != null);

            if (!hiveDefinition.Network.StaticIP)
            {
                throw new HiveDefinitionException($"[{nameof(NetworkOptions)}.{nameof(NetworkOptions.StaticIP)}] must be [true] when deploying to Hyper-V.");
            }

            if (string.IsNullOrEmpty(HostVhdxUri) || !Uri.TryCreate(HostVhdxUri, UriKind.Absolute, out Uri uri))
            {
                throw new HiveDefinitionException($"[{nameof(LocalHyperVOptions)}.{nameof(HostVhdxUri)}] is required when deploying to Hyper-V.");
            }

            hiveDefinition.ValidatePrivateNodeAddresses();                                        // Private node IP addresses must be assigned and valid.
            hiveDefinition.Hosting.ValidateHypervisor(hiveDefinition, remoteHypervisors: false);  // Hypervisor options must be valid.
        }
예제 #3
0
        public void Validate(HiveDefinition hiveDefinition)
        {
            Covenant.Requires <ArgumentNullException>(hiveDefinition != null);

            hiveDefinition.ValidatePrivateNodeAddresses();   // Private node IP addresses must be assigned and valid.
        }