Exemplo n.º 1
0
        static int Main(string[] args)
        {
            if (args.Length != 2)
            {
                Console.WriteLine("Error: incorrect number of command line arguments");
                Console.WriteLine("Usage: {0} serverName clientName",
                                  System.Environment.GetCommandLineArgs()[0]);
                return(1);
            }
            string serverName = args[0];
            string clientName = args[1];

            try
            {
                // Initialize DeviceScript and connect to data store
                Console.WriteLine("Initializing DeviceScript object");
                DeviceScript script = new DeviceScript();
                Console.WriteLine("Connecting to data store");
                script.ConnectToNamedDataStore(serverName);

                // Find the client machine
                IResourcePool rootPool = script.GetResourcePoolByName("$");
                Console.WriteLine("Looking for client machine '{0}'", clientName);
                IResource machine = rootPool.GetResourceByName(clientName);
                if (machine == null)
                {
                    Console.WriteLine("Client machine not found");
                    return(0);
                }
                Console.WriteLine("Client machine '{0}' found ({1}, {2})",
                                  clientName, machine.OperatingSystem, machine.ProcessorArchitecture);

                // Change the client machine's status to 'unsafe'
                Console.WriteLine("Changing the client machine's status to 'Unsafe'");
                try
                {
                    machine.ChangeResourceStatus("Unsafe");
                }
                catch (Exception e)
                {
                    Console.WriteLine("Warning: " + e.Message);
                }
                while (machine.Status != "Unsafe")
                {
                    try
                    {
                        machine = rootPool.GetResourceByName(clientName);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Warning: " + e.Message);
                    }
                    System.Threading.Thread.Sleep(1000);
                }

                // Delete the client machine from datastore
                Console.WriteLine("Deleting client machine from data store");
                script.DeleteResource(machine.Id);
                return(0);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e.Message);
                return(1);
            }
        }