示例#1
0
        public Program()
        {
            _methods.Add("hello", "Hello");
            _methods.Add("hi", "Hello");
            _methods.Add("whoami", "WhoAmI");
            _methods.Add("who", "WhoAmI");
            _methods.Add("list", "GetPlanList");
            _methods.Add("l", "GetPlanList");
            _methods.Add("planhelp", "GetPlanDynamicValues");
            _methods.Add("ph", "GetPlanDynamicValues");
            _methods.Add("listinstances", "GetPlanInstanceIdList");
            _methods.Add("li", "GetPlanInstanceIdList");
            _methods.Add("start", "StartPlan");
            _methods.Add("s", "StartPlan");
            _methods.Add("startwait", "StartPlanWait");
            _methods.Add("sw", "StartPlanWait");
            _methods.Add("getelement", "GetPlanElement");
            _methods.Add("ge", "GetPlanElement");
            _methods.Add("getstatus", "GetPlanStatus");
            _methods.Add("gs", "GetPlanStatus");
            _methods.Add("setstatus", "SetPlanStatus");
            _methods.Add("ss", "SetPlanStatus");
            _methods.Add("cancel", "CancelPlan");
            _methods.Add("c", "CancelPlan");

            SynapseServerConfig.DeserializeOrNew(ServerRole.Controller);
        }
        public void GenerateConfig(string filePath)
        {
            if (string.IsNullOrWhiteSpace(filePath))
            {
                throw new ArgumentNullException(nameof(filePath), "FilePath is required.");
            }

            SynapseServerConfig.DeserializeOrNew(ServerRole.Node, filePath);;
        }
        public Program()
        {
            _methods.Add("hello", "Hello");
            _methods.Add("hi", "Hello");
            _methods.Add("whoami", "WhoAmI");
            _methods.Add("who", "WhoAmI");
            _methods.Add("start", "StartPlanFile");
            _methods.Add("s", "StartPlanFile");
            _methods.Add("cancel", "CancelPlan");
            _methods.Add("c", "CancelPlan");
            _methods.Add("drainstop", "Drainstop");
            _methods.Add("dst", "Drainstop");
            _methods.Add("undrainstop", "Undrainstop");
            _methods.Add("ust", "Undrainstop");
            _methods.Add("DrainStatus", "GetIsDrainstopComplete");
            _methods.Add("dss", "GetIsDrainstopComplete");
            _methods.Add("QueueDepth", "GetCurrentQueueDepth");
            _methods.Add("qd", "GetCurrentQueueDepth");
            _methods.Add("QueueItems", "GetCurrentQueueItems");
            _methods.Add("qi", "GetCurrentQueueItems");

            SynapseServerConfig.DeserializeOrNew(ServerRole.Node);
        }
        void ProcessArgs(string[] args)
        {
            if (args.Length == 0)
            {
                WriteHelpAndExit();
            }
            else
            {
                try
                {
                    bool error = false;
                    Dictionary <string, string> parms = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);
                    parms = ParseCmdLine(args, 0, ref error, suppressErrorMessages: true);

                    string configFile = null;
                    if (parms.ContainsKey(InstallUtility.SynapseConfigParm))
                    {
                        configFile = parms[InstallUtility.SynapseConfigParm];
                        parms.Remove(InstallUtility.SynapseConfigParm);
                    }

                    SynapseServerConfig config = SynapseServerConfig.DeserializeOrNew(ServerRole.Node, configFile);
                    if (string.IsNullOrWhiteSpace(BaseUrl))
                    {
                        BaseUrl = $"{config.WebApi.ToUri( isUserInteractive: true )}/synapse/node";
                    }

                    if (parms.ContainsKey("url"))
                    {
                        BaseUrl = parms["url"];
                        parms.Remove("url");
                    }
                    string referrerurl = null;
                    if (parms.ContainsKey("referrerurl"))
                    {
                        referrerurl = parms["referrerurl"];
                        parms.Remove("referrerurl");
                    }


                    string arg0 = args[0].ToLower();

                    if (_methods.ContainsKey(arg0))
                    {
                        Console.WriteLine($"Calling {_methods[arg0]} on {BaseUrl}");

                        if (_methods[arg0] == "StartPlanFile")
                        {
                            RunStartPlanMethod(args, parms, referrerurl);
                        }
                        else
                        {
                            RunMethod(new NodeServiceHttpApiClient(BaseUrl, referrer: referrerurl), _methods[arg0], args);
                        }
                    }
                    else if (arg0.StartsWith(_service))
                    {
                        RunServiceAction(args);
                    }
                    else if (arg0.StartsWith(_genconfig))
                    {
                        RunConfigGenerator(args);
                    }
                    else
                    {
                        WriteHelpAndExit("Unknown action.");
                    }
                }
                catch (Exception ex)
                {
                    WriteHelpAndExit(Synapse.Common.WebApi.Utilities.UnwindException(ex));
                }
            }
        }