}                                    /*optional*/

        public void Execute()
        {
            /*contact puppetMaster at PuppetMasterURL*/

            TcpChannel channel = new TcpChannel();

            ChannelServices.RegisterChannel(channel, true);

            IPuppetMasterService pMaster = (IPuppetMasterService)Activator.GetObject(
                typeof(IPuppetMasterService),
                PuppetMasterURL);

            /*asks him to create a worker with the given WorkerId
             * and expose its service at ServiceURL*/
            pMaster.createWorker();

            /*if EntryURL
             *      notify existing workers
             *      -----
             *      that it has started by calling
             *      the worker listening at EntryURL
             *      ----
             *      wait.. what?!*/


            //TODO: Implement me.
        }
Ejemplo n.º 2
0
        public void VisitStatus(Status status)
        {
            Task.Factory.StartNew(() => {
                StringBuilder statusMessage = new StringBuilder();
                foreach (KeyValuePair <string, Uri> entry in this.servers)
                {
                    statusMessage.Append(
                        $"=============================================================================={Environment.NewLine}" +
                        $"================================= SERVER INFO ================================{Environment.NewLine}" +
                        $"=============================================================================={Environment.NewLine}" +
                        $"Server ID: {entry.Key} {Environment.NewLine}");

                    try {
                        IPuppetMasterService server = GetServerService(entry.Value);

                        statusMessage.Append(server.Status());
                    } catch (System.Net.Sockets.SocketException) {
                        statusMessage.Append($"Server is dead. {Environment.NewLine}");
                    }

                    statusMessage.Append(
                        $"=============================================================================={Environment.NewLine}");
                }
                Console.Write(statusMessage.ToString());
            });
        }
Ejemplo n.º 3
0
 public void VisitFreeze(Freeze freeze)
 {
     Task.Factory.StartNew(() => {
         IPuppetMasterService server = this.GetServerService(freeze.ProcessName);
         server.Freeze();
     });
 }
Ejemplo n.º 4
0
 public void VisitCrash(Crash crash)
 {
     Task.Factory.StartNew(() => {
         IPuppetMasterService server = this.GetServerService(crash.ProcessName);
         try {
             server.Crash();
         } catch (SocketException) {
             // It will receive socket exception if successful.
             this.servers.TryRemove(crash.ProcessName, out _);
         }
     });
 }
Ejemplo n.º 5
0
 public void connectToPuppetMaster()
 {
     if (myOpId.EndsWith("_"))
     {
         // just a little hack for testing
         pms = new PuppetMasterMock();
     }
     else
     {
         pms = (IPuppetMasterService)Activator.GetObject(
             typeof(IPuppetMasterService),
             PMS_URL);
     }
 }
Ejemplo n.º 6
0
 public void ConnectToPuppetMaster(String puppetMasterURL)
 {
     puppetMaster = (IPuppetMasterService)Activator.GetObject(
         typeof(IPuppetMasterService),
         puppetMasterURL);
 }