public override async Task <AgentRegisterResponse> RegisterAgent(AgentRegisterRequest request, ServerCallContext context) { var id = Guid.Parse(request.Agent.Uuid); var agent = ClusterClient.GetGrain <IComponentAgent>(id); var data = request.Agent.EggData.ToByteArray(); var inputs = request.Agent.Inputs.Select( x => ClusterClient.GetGrain <IAgent>(Guid.Parse(x)) ).ToList(); await agent.Initialize(new AgentInfo { ComponentId = Guid.Parse(request.Agent.ComponentId), OutputShapes = request.Agent.Outputs.Select(o => o.Dimension.ToList()).ToList(), Frequency = request.Agent.Frequency, RunnerType = request.Agent.ComponentType }, inputs, data); return(new AgentRegisterResponse()); }
private static async Task RunMainAsync() { var client = await StartClientWithRetries(); var grain = client.GetGrain <IAgentRegistryGrain>(0); //var agentId = Guid.NewGuid().ToString(); var agentId = Guid.Parse("253717bf-34b4-43fc-8129-4c68a6bbe1fe").ToString(); MockAgent egg = new MockAgent() { Id = agentId, EggData = Encoding.ASCII.GetBytes("Agent1") }; await grain.AgentStart(egg); var agentsList = await grain.GetAllAgents(); const int port = 50051; const string host = "localhost"; var server = new Server() { Services = { Scynet.Component.BindService(new ComponentFacade(client)) }, Ports = { new ServerPort(host, port, ServerCredentials.Insecure) } }; Console.WriteLine("Starting facade..."); server.Start(); Console.WriteLine("Facade started"); //hatchery channel Channel channel = new Channel("127.0.0.1:9998", ChannelCredentials.Insecure); var hatcheryClient = new Scynet.Hatchery.HatcheryClient(channel); //var componentId = Guid.NewGuid().ToString(); var componentId = Guid.Parse("7730a43f-42a7-49db-b569-50e04929c4f9").ToString(); ComponentRegisterRequest hatcheryComponentRegisterRequest = new ComponentRegisterRequest() { Uuid = componentId, Address = host + ":" + port, }; //add await hatcheryClient.RegisterComponent(hatcheryComponentRegisterRequest); Agent agent = new Agent() { Uuid = agentId, ComponentId = componentId, EggData = ByteString.CopyFrom("Agent1", Encoding.Unicode) }; AgentRegisterRequest arr = new AgentRegisterRequest(); arr.Agent = agent; hatcheryClient.RegisterAgent(arr); await server.ShutdownAsync(); }