Пример #1
0
        public void Run()
        {
            try
            {
                Console.WriteLine("Monoscape Cloud Controller");
                Console.WriteLine("Version: 1.0.0.0");
                String hostName      = MonoscapeUtil.FindHostName();
                String hostIpAddress = MonoscapeUtil.FindHostIpAddress().ToString();
                Console.WriteLine("Host Name: " + hostName);
                Console.WriteLine("Host IP Address: " + hostIpAddress);
                if (MonoscapeUtil.IsRunningOnMono())
                {
                    Console.WriteLine("Mono: " + MonoscapeUtil.GetMonoRuntime());
                }
                Console.WriteLine(".NET Runtime Version: " + MonoscapeUtil.GetDotNetRuntime());
                Console.WriteLine("Operating System: " + MonoscapeUtil.GetOperatingSystem() + Environment.NewLine);

                Initialize();
                StartDashboardService();
                StartApplicationService();
                StartExternalSystemService();

                Console.WriteLine("Press Enter to stop...");
                Console.ReadLine();
            }
            catch (Exception e)
            {
                Log.Error(this, e);
                Console.ReadLine();
            }
            finally
            {
                Dispose();
            }
        }
Пример #2
0
        public ApGetConfigurationSettingsResponse GetConfigurationSettings(ApGetConfigurationSettingsRequest request)
        {
            Log.Debug(this, "GetConfigurationSettings()");

            try
            {
                Authenticate(request);
                ApGetConfigurationSettingsResponse response = new ApGetConfigurationSettingsResponse();
                ApConfigurationSettings            settings = new ApConfigurationSettings();
                settings.IpAddress       = MonoscapeUtil.FindHostIpAddress();
                settings.RunningOnMono   = MonoscapeUtil.IsRunningOnMono();
                settings.MonoRuntime     = MonoscapeUtil.GetMonoRuntime();
                settings.DotNetRuntime   = MonoscapeUtil.GetDotNetRuntime();
                settings.OperatingSystem = MonoscapeUtil.GetOperatingSystem();

                settings.IaasName       = Settings.IaasName;
                settings.IaasAccessKey  = Settings.IaasAccessKey;
                settings.IaasSecretKey  = Settings.IaasSecretKey;
                settings.IaasServiceURL = Settings.IaasServiceURL;
                settings.IaasKeyName    = Settings.IaasKeyName;

                response.ConfigurationSettings = settings;
                return(response);
            }
            catch (Exception e)
            {
                Log.Error(this, e);
                throw e;
            }
        }
Пример #3
0
        public void Run()
        {
            try
            {
                Console.WriteLine("Monoscape Node Controller");
                Console.WriteLine("Version: 1.0.0.0");
                String hostName      = MonoscapeUtil.FindHostName();
                String hostIpAddress = MonoscapeUtil.FindHostIpAddress().ToString();
                Console.WriteLine("Host Name: " + hostName);
                Console.WriteLine("Host IP Address: " + hostIpAddress);
                if (MonoscapeUtil.IsRunningOnMono())
                {
                    Console.WriteLine("Mono: " + MonoscapeUtil.GetMonoRuntime());
                }
                Console.WriteLine(".NET Runtime Version: " + MonoscapeUtil.GetDotNetRuntime());
                Console.WriteLine("Operating System: " + Environment.OSVersion.VersionString + Environment.NewLine);

                Initialize();
                SubscribeToApplicationGrid();
                StartApplicationGridService();
                StartNcApFileReceiveSocket();

                Console.WriteLine("Press Enter to stop...");
                Console.ReadLine();
            }
            catch (Exception e)
            {
                Log.Error(this, e.Message);
            }
            finally
            {
                Dispose();
            }
        }
Пример #4
0
        private ApplicationInstance StartWebServer(Application application, Tenant tenant, int port)
        {
            try {
                string xsp = Settings.WindowsXSPWebServerPath;
                if (MonoscapeUtil.IsRunningOnMono() && (Environment.OSVersion.Platform == PlatformID.Unix))
                {
                    xsp = Settings.UnixXSPWebServerPath;
                }

                string arguments        = "--port " + port + " --applications /" + tenant.Name.Replace(" ", "").ToLower() + "/" + MonoscapeUtil.PrepareApplicationVirtualFolderName(application.Name) + ":.";
                string workingDirectory = PrepareApplicationDeployPath(application, tenant.Name, port);
                var    p = new Process()
                {
                    StartInfo = new ProcessStartInfo(xsp, arguments)
                    {
                        RedirectStandardOutput = false,
                        RedirectStandardError  = false,
                        UseShellExecute        = false,
                        CreateNoWindow         = true,
                        WorkingDirectory       = workingDirectory
                    }
                };
                if (p.Start())
                {
                    Database.LastWebServerPort = port;
                    ApplicationInstance instance = new ApplicationInstance();
                    instance.Id              = FindNextInstanceId(application);
                    instance.ProcessId       = p.Id;
                    instance.ApplicationId   = application.Id;
                    instance.ApplicationName = application.Name;
                    instance.NodeId          = Database.Node.Id;
                    instance.IpAddress       = Database.Node.IpAddress;
                    instance.Port            = port;
                    instance.Tenant          = tenant;
                    instance.CreatedTime     = DateTime.Now;
                    instance.State           = "Started";
                    instance.Url             = "http://" + instance.IpAddress + ":" + instance.Port + "/" + tenant.Name.Replace(" ", "").ToLower() + "/" + MonoscapeUtil.PrepareApplicationVirtualFolderName(application.Name);

                    Database.ChildProcesses.Add(p);
                    Log.Info(typeof(NcApplicationGridService), "Started web server: " + instance.Url);
                    return(instance);
                }
                else
                {
                    Database.ChildProcesses.Add(p);
                    Log.Error(typeof(NcApplicationGridService), "Could not start web server for application " + application.Name + " " + application.Version);
                    return(null);
                }
            }
            catch (Exception e) {
                Log.Error(this, "Could not start web server");
                throw e;
            }
        }