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();
            }
        }
        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();
            }
        }
Exemple #3
0
        public static INcApplicationGridService GetNcApplicationGridService(Node node)
        {
            try
            {
                string serviceUrl    = node.ApplicationGridServiceUrl;
                string hostIpAddress = MonoscapeUtil.FindHostIpAddress().ToString();
                if (node.IpAddress.Equals(hostIpAddress) && (serviceUrl.Contains(node.IpAddress)))
                {
                    Log.Debug(typeof(EndPoints), "Node " + node.ToString() + " is running on the same host as the Application Grid");
                    serviceUrl.Replace(node.IpAddress, "localhost");
                }

                Log.Debug(typeof(EndPoints), "Creating INcApplicationGridService channel to node: " + serviceUrl);
                var binding = MonoscapeServiceHost.GetBinding();
                var address = new EndpointAddress(serviceUrl);
                ChannelFactory <INcApplicationGridService> factory = new ChannelFactory <INcApplicationGridService>(binding, address);
                INcApplicationGridService channel = factory.CreateChannel();
                return(channel);
            }
            catch (Exception e)
            {
                MonoscapeException me = new MonoscapeException("Could not connect to the node", e);
                Log.Error(typeof(EndPoints), me);
                throw me;
            }
        }
Exemple #4
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;
            }
        }
Exemple #5
0
        public static void Initialize()
        {
            Log.Info(typeof(Initializer), "Initializing Node Controller...");

            AppSettingsReader reader = new AppSettingsReader();

            NodeControllerSettings settings = new NodeControllerSettings();

            settings.MonoscapeAccessKey = (string)reader.GetValue("MonoscapeAccessKey", typeof(string));
            settings.MonoscapeSecretKey = (string)reader.GetValue("MonoscapeSecretKey", typeof(string));

            string hostIp = MonoscapeUtil.FindHostIpAddress().ToString();

            settings.ApplicationGridServiceURL   = ((string)reader.GetValue("ApplicationGridServiceURL", typeof(string))).Replace("node-ipaddress", hostIp);
            settings.FileServerServiceURL        = ((string)reader.GetValue("FileServerServiceURL", typeof(string))).Replace("node-ipaddress", hostIp);
            settings.FileServerServiceNetTcpURL  = ((string)reader.GetValue("FileServerServiceNetTcpURL", typeof(string))).Replace("node-ipaddress", hostIp);
            settings.FileServerServiceNetPipeURL = ((string)reader.GetValue("FileServerServiceNetPipeURL", typeof(string))).Replace("node-ipaddress", hostIp);

            settings.ApplicationGridEndPointURL = ((string)reader.GetValue("ApplicationGridEndPointURL", typeof(string)));

            settings.ApplicationStoreFolder    = (string)reader.GetValue("ApplicationStoreFolder", typeof(string));
            settings.ApplicationStorePath      = Path.GetFullPath(settings.ApplicationStoreFolder);
            settings.ApplicationDeployFolder   = (string)reader.GetValue("ApplicationDeployFolder", typeof(string));
            settings.ApplicationDeployPath     = Path.GetFullPath(settings.ApplicationDeployFolder);
            settings.SQLiteConnectionString    = (string)reader.GetValue("SQLiteConnectionString", typeof(string));
            settings.InitialWebServerPort      = (int)reader.GetValue("InitialWebServerPort", typeof(int));
            settings.WindowsXSPWebServerPath   = (string)reader.GetValue("WindowsXSPWebServerPath", typeof(string));
            settings.UnixXSPWebServerPath      = (string)reader.GetValue("UnixXSPWebServerPath", typeof(string));
            settings.NcApFileReceiveSocketPort = (int)reader.GetValue("NcApFileReceiveSocketPort", typeof(int));

            Settings.Initialize(settings);

            Database.LastWebServerPort = Settings.InitialWebServerPort - 1;
            ClearApplicationStore();
            ClearWebRoot();

            Log.Info(typeof(Initializer), "Node Controller initialized");
        }
        private void SubscribeToApplicationGrid()
        {
            try
            {
                Console.WriteLine("Subscribing to Application Grid at: " + Settings.ApplicationGridEndPointURL);

                MonoscapeCredentials   credentials = new MonoscapeCredentials(Settings.MonoscapeAccessKey, Settings.MonoscapeSecretKey);
                ApSubscribeNodeRequest request     = new ApSubscribeNodeRequest(credentials);
                IPAddress hostIp = MonoscapeUtil.FindHostIpAddress();
                request.IpAddress  = hostIp.ToString();
                request.IpAddress_ = hostIp;
                request.ApplicationGridServiceUrl = Settings.ApplicationGridServiceUrl;
                request.FileTransferServiceUrl    = Settings.FileServerServiceUrl + "/wsHttp";
                IApNodeControllerService channel  = EndPoints.GetApNodeControllerService();
                ApSubscribeNodeResponse  response = channel.SubscribeNode(request);
                Database.Node = response.Node;

                Console.WriteLine("Subscribed successfully");
            }
            catch (EndpointNotFoundException e)
            {
                throw new MonoscapeException("Could not connect to the Application Grid", e);
            }
        }
 private void StartNcApFileReceiveSocket()
 {
     ncApFileReceiveSocket = new NcApFileReceiveSocket(Settings.ApplicationStorePath, MonoscapeUtil.FindHostIpAddress(), Settings.NcApFileReceiveSocketPort);
     ncApFileReceiveSocket.Open();
 }