示例#1
0
        /// <summary>
        /// Create a job manager instance.
        /// </summary>
        /// <param name="options">User options.</param>
        /// <param name="clientGenerator">Kubernetes client generator.</param>
        public RelayServer(RelayServerOptions options) : base()
        {
            this.options = (GlobalServerOptions)options;
            WriteToLog("Job manager started");
            this.relayOptions = options;
            jobID             = Guid.NewGuid();
            IKubernetesClientGenerator clientGenerator;

            if (options.InPod)
            {
                instanceName = "job-manager";
                if (string.IsNullOrWhiteSpace(options.Namespace))
                {
                    throw new ArgumentNullException("When running relay server in a kubernetes pod, namespace must be set.");
                }
                podNamespace    = options.Namespace;
                clientGenerator = new InPodClientGenerator();
            }
            else
            {
                instanceName    = $"apsim-cluster-{jobID}";
                podNamespace    = $"apsim-cluster-{jobID}";
                clientGenerator = new LocalhostClientGenerator();
            }
            client = clientGenerator.CreateClient();
        }
示例#2
0
文件: Program.cs 项目: lie112/ApsimX
 /// <summary>
 /// Start the server with the given options.
 /// </summary>
 /// <param name="options">Options specified by the user (via CLI).</param>
 private static void Run(RelayServerOptions options)
 {
     try
     {
         using (ApsimServer server = new RelayServer(options))
             server.Run();
     }
     catch (Exception error)
     {
         Console.Error.WriteLine(error.ToString());
         exitCode = 1;
     }
 }