diff --git a/proto/daemon.proto b/proto/daemon.proto index 121de13..1ab3b1d 100644 --- a/proto/daemon.proto +++ b/proto/daemon.proto @@ -42,31 +42,47 @@ message DeleteContainerRes { string status = 2; } -service DaemonService { - rpc CreateContainer (shared.Container) returns (NewContainerRes); - rpc DeleteContainer (ContainerFilters) returns (DeleteContainerRes); - rpc ListContainers (ContainerFilters) returns (ContainerListResp); - rpc InspectContainer (shared.UUID) returns (ContainerInspectResp); - // rpc ContainerLog (shared.UUID) returns (stream LogResp); + +message BrainMessage { + oneof Msg { + shared.Container new_container_req = 1; + ContainerFilters delete_container = 2; + ContainerFilters list_container = 3; + } } +message DaemonMessage { + oneof Msg { + shared.Pubkey pubkey = 1; + NewContainerRes new_vm_resp = 2; + DeleteContainerRes delete_vm_resp = 3; + } +} + +// service DaemonService { +// rpc CreateContainer (shared.Container) returns (NewContainerRes); +// rpc DeleteContainer (ContainerFilters) returns (DeleteContainerRes); +// rpc ListContainers (ContainerFilters) returns (ContainerListResp); +// rpc InspectContainer (shared.UUID) returns (ContainerInspectResp); +// rpc ContainerLog (shared.UUID) returns (stream LogResp); + +// } + service BrainSgxCli { rpc CreateContainer (shared.Container) returns (NewContainerRes); rpc DeleteContainer (ContainerFilters) returns (DeleteContainerRes); rpc ListContainers (ContainerFilters) returns (ContainerListResp); - rpc InspectContainer (shared.UUID) returns (ContainerInspectResp); + // rpc InspectContainer (shared.UUID) returns (ContainerInspectResp); // rpc ContainerLog (shared.UUID) returns (stream LogResp); } service BrainSgxDaemon { - // rpc RegisterNode (RegisterNodeReq) returns (stream Contract); - // rpc BrainMessages (Pubkey) returns (stream BrainMessage); - // rpc DaemonMessages (stream DaemonMessage) returns (Empty); + rpc RegisterNode (shared.RegisterNodeReq) returns + (stream shared.ContainerContracts); + rpc BrainMessages (shared.Pubkey) returns (stream BrainMessage); + rpc DaemonMessages (stream DaemonMessage) returns (shared.Empty); - rpc RegisterNode (shared.Empty) returns (stream shared.Empty); - rpc DaemonMessages (stream shared.Empty) returns (shared.Empty); - rpc BrainMessages (shared.Empty) returns (stream shared.Empty); } \ No newline at end of file diff --git a/proto/shared.proto b/proto/shared.proto index 0ab4116..cb603f6 100644 --- a/proto/shared.proto +++ b/proto/shared.proto @@ -58,6 +58,15 @@ message MappedPort { uint32 container_port = 2; } +message ContainerContracts { + string uuid = 1; + string package_url = 2; + string admin_pubkey = 3; + string node_pubkey = 4; + repeated MappedPort exposed_ports = 5; + string created_at = 13; +} + message Container { optional string package_url = 1; @@ -73,3 +82,16 @@ message Resource { uint32 vcpu = 3; repeated uint32 ports = 4; } + +message RegisterNodeReq { + string node_pubkey = 1; + string owner_pubkey = 2; + string main_ip = 3; + string country = 4; + string region = 5; + string city = 6; +} + +message Pubkey { + string pubkey = 1; +} \ No newline at end of file