Ejemplo n.º 1
0
        private static void RemoveNodeConfigurationInner(bool deleteLog, FabricPackageType fabricPackageType, string machineName)
        {
            var parameters = new Dictionary <string, dynamic>
            {
                { DeploymentParameters.MachineNameString, machineName }
            };

            // Create DeploymentParameters object with conditional retrieval of FabricBinRoot (to work around infinite recursion due to invalid reflection)
            bool setBinRoot           = fabricPackageType != FabricPackageType.XCopyPackage;
            var  deploymentParameters = new DeploymentParameters(setBinRoot);

            deploymentParameters.DeleteLog             = deleteLog;
            deploymentParameters.DeploymentPackageType = fabricPackageType;
            deploymentParameters.SetParameters(parameters, DeploymentOperations.RemoveNodeConfig);

            try
            {
                DeploymentOperation.ExecuteOperation(deploymentParameters);
            }
            catch (Exception e)
            {
                DeployerTrace.WriteError("{0}", e.ToString());
                throw;
            }
        }
Ejemplo n.º 2
0
        public void TestDeploymentParameterCreateWithBinRootEnvironmentSet()
        {
            SetEnvironment(true, false);
            string clusterManifestLocation = "ClusterManifest.xml";

            File.WriteAllText(clusterManifestLocation, "TestManifest");
            DeploymentParameters parameters = new DeploymentParameters();

            parameters.SetParameters(new Dictionary <string, dynamic>()
            {
                { DeploymentParameters.ClusterManifestString, clusterManifestLocation },
                { DeploymentParameters.FabricDataRootString, Path.Combine(RootLocation, "Data") }
            }, DeploymentOperations.Create);
            parameters.Initialize();
            Validate(
                parameters,
                DeploymentOperations.Create,
                Path.Combine(RootLocation, "Data"),
                Path.Combine(RootLocation, "Data", "log"),
                clusterManifestLocation,
                false,
                System.Fabric.FabricValidatorConstants.FabricUpgradeDefaultInstanceId,
                System.Fabric.FabricValidatorConstants.FabricUpgradeDefaultTargetVersion,
                null,
                null,
                null
                );
        }
Ejemplo n.º 3
0
        public static DeploymentParameters Parse(string[] args)
        {
            DeploymentParameters parameters = new DeploymentParameters();

            if (args.Length == 0)
            {
                parameters.CreateFromFile();
                return(parameters);
            }

            Dictionary <string, dynamic> commandArgs = new Dictionary <string, dynamic>(StringComparer.OrdinalIgnoreCase);
            string operationString = null;

            foreach (string arg in args)
            {
                int delimiterIndex = arg.IndexOf(":", StringComparison.Ordinal);

                if (delimiterIndex == -1)
                {
                    PrintUsage(string.Format(CultureInfo.CurrentCulture, StringResources.Error_ArgumentInvalid_Formatted_arg1, arg));
                }

                string key   = arg.Substring(0, delimiterIndex);
                string value = arg.Substring(delimiterIndex + 1);
                if (CommandLineInfo.OperationString.Equals(key, StringComparison.OrdinalIgnoreCase))
                {
                    operationString = value;
                    continue;
                }

                if (!parameters.IsSupportedParameter(key))
                {
                    PrintUsage(string.Format(CultureInfo.CurrentCulture, StringResources.Error_ArgumentUnexpected_Formatted, key));
                }

                if (commandArgs.ContainsKey(key))
                {
                    PrintUsage(string.Format(CultureInfo.CurrentCulture, StringResources.Error_CommandLineArgumentFoundMoreThanOnce_Formatted, key));
                }

                commandArgs.Add(key, value);
            }

            var operation = GetOperation(operationString);

            parameters.SetParameters(commandArgs, operation);
            return(parameters);
        }
        private void ValidateClusterManifest(string clusterManifestFilePath, bool exceptionExcpected)
        {
            bool exceptionFound = false;

            try
            {
                DeploymentParameters parameters = new DeploymentParameters();
                parameters.SetParameters(new Dictionary <string, dynamic>()
                {
                    { DeploymentParameters.ClusterManifestString, clusterManifestFilePath },
                    { DeploymentParameters.FabricDataRootString, "TestFabricDataRoot" }
                },
                                         DeploymentOperations.ValidateClusterManifest);
                DeploymentOperation.ExecuteOperation(parameters);
            }
            catch (Exception e)
            {
                DeployerTrace.WriteInfo("Test", "ValidateClusterManifest failed with exception {0}", e);
                exceptionFound = true;
            }
            Verify.AreEqual(exceptionExcpected, exceptionFound);
        }
Ejemplo n.º 5
0
        private static void NewNodeConfigurationInner(
            string clusterManifestPath,
            string infrastructureManifestPath,
            string jsonClusterConfigPath,
            string fabricDataRoot,
            string fabricLogRoot,
            string fabricHostCredentialUser,
            SecureString fabricHostCredentialPassword,
            bool runFabricHostServiceAsManual,
            bool removeExistingConfiguration,
            FabricPackageType fabricPackageType,
            string fabricPackageRoot,
            string machineName,
            string bootstrapPackagePath)
        {
            if (!string.IsNullOrEmpty(machineName))
            {
                if (!string.IsNullOrEmpty(fabricHostCredentialUser) || fabricHostCredentialPassword != null)
                {
                    throw new InvalidOperationException(StringResources.Error_RemoteNodeConfigNotSupportedWithCredential);
                }
            }

            // Delete the registry value used for RemoveNodeConfiguration if it is present
            if (fabricPackageType == FabricPackageType.MSI)
            {
                RemoveNodeConfigOperation.DeleteRemoveNodeConfigurationRegistryValue(machineName);
            }

            if (removeExistingConfiguration)
            {
                RemoveNodeConfigurationInner(true, fabricPackageType, machineName);
            }

            var parameters = new Dictionary <string, dynamic>
            {
                { DeploymentParameters.ClusterManifestString, clusterManifestPath },
                { DeploymentParameters.InfrastructureManifestString, infrastructureManifestPath },
                { DeploymentParameters.FabricDataRootString, fabricDataRoot },
                { DeploymentParameters.FabricLogRootString, fabricLogRoot }
            };

            if (fabricHostCredentialUser != null)
            {
                parameters.Add(DeploymentParameters.RunAsUserNameString, fabricHostCredentialUser);
            }

            if (jsonClusterConfigPath != null)
            {
                parameters.Add(DeploymentParameters.JsonClusterConfigLocationString, jsonClusterConfigPath);
            }

            if (fabricHostCredentialPassword != null)
            {
                parameters.Add(DeploymentParameters.RunAsPaswordString, fabricHostCredentialPassword);
            }

            if (machineName != null)
            {
                parameters.Add(DeploymentParameters.MachineNameString, machineName);
            }

            if (fabricPackageRoot != null)
            {
                parameters.Add(DeploymentParameters.FabricPackageRootString, fabricPackageRoot);
            }

            if (runFabricHostServiceAsManual)
            {
                parameters.Add(DeploymentParameters.ServiceStartupTypeString, FabricDeployerServiceController.ServiceStartupType.Manual.ToString());
            }

            if (bootstrapPackagePath != null)
            {
                parameters.Add(DeploymentParameters.BootstrapMSIPathString, bootstrapPackagePath);
            }

            // Create DeploymentParameters object with conditional retrieval of FabricBinRoot (to work around infinite recursion due to invalid reflection)
            bool setBinRoot           = fabricPackageType != FabricPackageType.XCopyPackage;
            var  deploymentParameters = new DeploymentParameters(setBinRoot);

            deploymentParameters.DeploymentPackageType = fabricPackageType;

            try
            {
                deploymentParameters.SetParameters(parameters, DeploymentOperations.Configure);

                DeploymentOperation.ExecuteOperation(deploymentParameters);
            }
            catch (Exception e)
            {
                DeployerTrace.WriteError("{0}", e.ToString());
                throw;
            }
        }