public override async Task ExecuteAsync(List <string> arguments)
        {
            if (arguments.Count != EXPECTED_ARGUMENTS)
            {
                Console.WriteLine("Expected " + EXPECTED_ARGUMENTS + " arguments but found " + arguments.Count + ".");
                return;
            }
            Console.WriteLine("listGlobal");

            IDictionary <string, Task <HashSet <GStoreObject> > > listServerTaskPairs = new Dictionary <string, Task <HashSet <GStoreObject> > >();

            foreach (Server server in ConnectionManager.GetAliveServers())
            {
                listServerTaskPairs.Add(server.Id, ListServerController.Execute(ConnectionManager, server.Id));
            }

            foreach (KeyValuePair <string, Task <HashSet <GStoreObject> > > listServerTaskPair in listServerTaskPairs)
            {
                string serverId = listServerTaskPair.Key;
                Task <HashSet <GStoreObject> > task = listServerTaskPair.Value;

                HashSet <GStoreObject> gStoreObjects = await task;

                Console.WriteLine($"List Server: {serverId}");
                if (gStoreObjects == null)
                {
                    Console.WriteLine($"=> Server {serverId} crashed.");
                    continue;
                }
                foreach (GStoreObject gStoreObject in gStoreObjects)
                {
                    Console.WriteLine($"=> {gStoreObject.Identifier.PartitionId}, {gStoreObject.Identifier.ObjectId}, {gStoreObject.Value}");
                }
            }
        }
Exemple #2
0
        public override async Task ExecuteAsync(List <string> arguments)
        {
            if (arguments.Count != EXPECTED_ARGUMENTS)
            {
                Console.WriteLine("Expected " + EXPECTED_ARGUMENTS + " arguments but found " + arguments.Count + ".");
                return;
            }

            string serverId = arguments.ElementAt(0);

            Console.WriteLine($"List Server: {serverId}");

            try
            {
                HashSet <GStoreObject> gStoreObjects = await ListServerController.Execute(ConnectionManager, serverId);

                if (gStoreObjects == null)
                {
                    Console.WriteLine($"=> Server {serverId} crashed.");
                    return;
                }
                foreach (GStoreObject gStoreObject in gStoreObjects)
                {
                    Console.WriteLine($"=> {gStoreObject.Identifier.PartitionId}, {gStoreObject.Identifier.ObjectId}, {gStoreObject.Value}");
                }
            }
            catch (ServerBindException e)
            {
                Console.WriteLine($"ERROR: {e.Message}");
            }
            catch (RpcException ex) when(ex.StatusCode == StatusCode.Internal)
            {
                Console.WriteLine($"Could not establish connection with server.");
            }
        }