diff --git a/.local-dev/config/ns.yaml b/.local-dev/config/ns.yaml index 0cf1ea7e5..d44f31e77 100644 --- a/.local-dev/config/ns.yaml +++ b/.local-dev/config/ns.yaml @@ -36,6 +36,7 @@ components: platformAPI: "0.11" controller: url: http://ns-controller:10000 + priority: 0 controller: port: 10000 diff --git a/.local-dev/ext-builder/config.yaml b/.local-dev/ext-builder/config.yaml index c35360735..8f5e98454 100644 --- a/.local-dev/ext-builder/config.yaml +++ b/.local-dev/ext-builder/config.yaml @@ -39,3 +39,4 @@ components: platformAPI: "0.11" controller: url: http://host.docker.internal:10000 + priority: 10 diff --git a/.local-dev/manifest/ns-system/config/ns.yaml b/.local-dev/manifest/ns-system/config/ns.yaml index 95d316ec4..5a4e65029 100644 --- a/.local-dev/manifest/ns-system/config/ns.yaml +++ b/.local-dev/manifest/ns-system/config/ns.yaml @@ -43,6 +43,7 @@ components: platformAPI: "0.11" controller: url: http://ns-controller.ns-system.svc.cluster.local:10000 + priority: 0 controller: port: 10000 diff --git a/api/proto/neoshowcase/protobuf/controller.proto b/api/proto/neoshowcase/protobuf/controller.proto index f917ab206..1a8461b6a 100644 --- a/api/proto/neoshowcase/protobuf/controller.proto +++ b/api/proto/neoshowcase/protobuf/controller.proto @@ -21,6 +21,11 @@ message BuilderRequest { } } +message ConnectedBody { + // Larger value means higher priority + int64 priority = 1; +} + message BuildStarted { string build_id = 1; } @@ -49,9 +54,10 @@ message BuilderResponse { } Type type = 1; oneof body { - BuildStarted started = 2; - BuildSettled settled = 3; - BuildLogPortion log = 4; + ConnectedBody connected = 2; + BuildStarted started = 3; + BuildSettled settled = 4; + BuildLogPortion log = 5; } } diff --git a/cmd/config.go b/cmd/config.go index 3ff34a514..5baeddb48 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -58,6 +58,7 @@ type BuilderConfig struct { K8s bk8simpl.Config `mapstructure:"k8s" yaml:"k8s"` } Controller grpc.ControllerServiceClientConfig `mapstructure:"controller" yaml:"controller"` + Priority int `mapstructure:"priority" yaml:"priority"` } type ControllerConfig struct { @@ -161,6 +162,8 @@ func init() { viper.SetDefault("components.builder.controller.url", "http://ns-controller:10000") + viper.SetDefault("components.builder.priority", 0) + viper.SetDefault("components.controller.port", 10000) viper.SetDefault("components.controller.mode", "docker") diff --git a/cmd/providers.go b/cmd/providers.go index 4e1faa51f..5837f8978 100644 --- a/cmd/providers.go +++ b/cmd/providers.go @@ -67,7 +67,7 @@ var providers = wire.NewSet( grpc.NewControllerService, grpc.NewControllerServiceClient, grpc.NewControllerBuilderService, - grpc.NewControllerBuilderServiceClient, + provideControllerBuilderServiceClient, grpc.NewControllerSSGenService, grpc.NewControllerSSGenServiceClient, healthcheck.NewServer, @@ -131,6 +131,13 @@ func provideAuthDevServer(c Config) *authdev.Server { return authdev.NewServer(cc.Header, cc.Port, cc.User) } +func provideControllerBuilderServiceClient(c Config) domain.ControllerBuilderServiceClient { + return grpc.NewControllerBuilderServiceClient( + c.Components.Builder.Controller, + c.Components.Builder.Priority, + ) +} + func provideBuildpackBackend(c Config) (builder.BuildpackBackend, error) { cc := c.Components.Builder switch cc.Buildpack.Backend { diff --git a/cmd/wire.go b/cmd/wire.go index b6c0b55d3..8f860ceeb 100644 --- a/cmd/wire.go +++ b/cmd/wire.go @@ -29,7 +29,6 @@ func NewAuthDev(c Config) (component, error) { func NewBuilder(c Config) (component, error) { wire.Build( providers, - wire.FieldsOf(new(BuilderConfig), "Controller"), wire.Bind(new(component), new(*builder.Server)), wire.Struct(new(builder.Server), "*"), ) diff --git a/cmd/wire_gen.go b/cmd/wire_gen.go index 375af1bb8..5e39be0c8 100644 --- a/cmd/wire_gen.go +++ b/cmd/wire_gen.go @@ -56,10 +56,7 @@ func NewBuilder(c Config) (component, error) { if err != nil { return nil, err } - componentsConfig := c.Components - builderConfig := componentsConfig.Builder - controllerServiceClientConfig := builderConfig.Controller - controllerBuilderServiceClient := grpc.NewControllerBuilderServiceClient(controllerServiceClientConfig) + controllerBuilderServiceClient := provideControllerBuilderServiceClient(c) buildpackBackend, err := provideBuildpackBackend(c) if err != nil { return nil, err diff --git a/dashboard/src/api/neoshowcase/protobuf/gateway_pb.ts b/dashboard/src/api/neoshowcase/protobuf/gateway_pb.ts index 3d27b7e5d..7d4332274 100644 --- a/dashboard/src/api/neoshowcase/protobuf/gateway_pb.ts +++ b/dashboard/src/api/neoshowcase/protobuf/gateway_pb.ts @@ -1,4 +1,4 @@ -// @generated by protoc-gen-es v1.4.1 with parameter "target=ts" +// @generated by protoc-gen-es v1.5.0 with parameter "target=ts" // @generated from file neoshowcase/protobuf/gateway.proto (package neoshowcase.protobuf, syntax proto3) /* eslint-disable */ // @ts-nocheck diff --git a/dashboard/src/api/neoshowcase/protobuf/null_pb.ts b/dashboard/src/api/neoshowcase/protobuf/null_pb.ts index 8d3690d9f..e07928083 100644 --- a/dashboard/src/api/neoshowcase/protobuf/null_pb.ts +++ b/dashboard/src/api/neoshowcase/protobuf/null_pb.ts @@ -1,4 +1,4 @@ -// @generated by protoc-gen-es v1.4.1 with parameter "target=ts" +// @generated by protoc-gen-es v1.5.0 with parameter "target=ts" // @generated from file neoshowcase/protobuf/null.proto (package neoshowcase.protobuf, syntax proto3) /* eslint-disable */ // @ts-nocheck diff --git a/pkg/domain/component.go b/pkg/domain/component.go index 3a1e59ea7..0d9497cf4 100644 --- a/pkg/domain/component.go +++ b/pkg/domain/component.go @@ -36,7 +36,7 @@ type ControllerBuilderService interface { ListenBuilderIdle() (sub <-chan struct{}, unsub func()) ListenBuildSettled() (sub <-chan struct{}, unsub func()) StartBuilds(buildIDs []string) - BroadcastBuilder(req *pb.BuilderRequest) + CancelBuild(buildID string) } type ControllerBuilderServiceClient interface { diff --git a/pkg/infrastructure/grpc/controller_builder_service.go b/pkg/infrastructure/grpc/controller_builder_service.go index 76f27ce51..a32dfe2e6 100644 --- a/pkg/infrastructure/grpc/controller_builder_service.go +++ b/pkg/infrastructure/grpc/controller_builder_service.go @@ -1,14 +1,14 @@ package grpc import ( - "context" - "io" - "sync" - "connectrpc.com/connect" + "context" "github.com/friendsofgo/errors" "github.com/samber/lo" log "github.com/sirupsen/logrus" + "golang.org/x/exp/slices" + "io" + "sync" "github.com/traPtitech/neoshowcase/pkg/domain" "github.com/traPtitech/neoshowcase/pkg/infrastructure/grpc/pb" @@ -18,6 +18,27 @@ import ( type builderConnection struct { reqSender chan<- *pb.BuilderRequest + priority int64 + buildID string +} + +func (c *builderConnection) Send(req *pb.BuilderRequest) { + select { + case c.reqSender <- req: + default: + } +} + +func (c *builderConnection) SetBuildID(id string) { + c.buildID = id +} + +func (c *builderConnection) ClearBuildID() { + c.buildID = "" +} + +func (c *builderConnection) Busy() bool { + return c.buildID != "" } type ControllerBuilderService struct { @@ -73,11 +94,16 @@ func (s *ControllerBuilderService) ConnectBuilder(ctx context.Context, st *conne s.lock.Lock() switch res.Type { + case pb.BuilderResponse_CONNECTED: + payload := res.Body.(*pb.BuilderResponse_Connected).Connected + conn.priority = payload.Priority case pb.BuilderResponse_BUILD_STARTED: payload := res.Body.(*pb.BuilderResponse_Started).Started + conn.SetBuildID(payload.BuildId) s.logStream.StartBuildLog(payload.BuildId) case pb.BuilderResponse_BUILD_SETTLED: payload := res.Body.(*pb.BuilderResponse_Settled).Settled + conn.ClearBuildID() s.idle.Publish(struct{}{}) s.settled.Publish(struct{}{}) s.logStream.CloseBuildLog(payload.BuildId) @@ -113,31 +139,39 @@ func (s *ControllerBuilderService) ListenBuildSettled() (sub <-chan struct{}, un return s.settled.Subscribe() } -func (s *ControllerBuilderService) broadcast(req *pb.BuilderRequest) { - for _, builder := range s.builderConnections { - select { - case builder.reqSender <- req: - default: - } - } -} - func (s *ControllerBuilderService) StartBuilds(buildIDs []string) { s.lock.Lock() defer s.lock.Unlock() - // Send at most n (= number of builders) build requests - n := len(s.builderConnections) - for _, buildID := range ds.FirstN(buildIDs, n) { - s.broadcast(&pb.BuilderRequest{ + // Select available builders (and copy the slice) + conns := lo.Filter(s.builderConnections, func(c *builderConnection, _ int) bool { return !c.Busy() }) + // Select from higher priority builders + slices.SortFunc(conns, ds.MoreFunc(func(c *builderConnection) int64 { return c.priority })) + + // Send builds to available builders + for i, conn := range ds.FirstN(conns, len(buildIDs)) { + buildID := buildIDs[i] + conn.Send(&pb.BuilderRequest{ Type: pb.BuilderRequest_START_BUILD, - Body: &pb.BuilderRequest_StartBuild{StartBuild: &pb.StartBuildRequest{BuildId: buildID}}, + Body: &pb.BuilderRequest_StartBuild{StartBuild: &pb.StartBuildRequest{ + BuildId: buildID, + }}, }) } } -func (s *ControllerBuilderService) BroadcastBuilder(req *pb.BuilderRequest) { +func (s *ControllerBuilderService) CancelBuild(buildID string) { s.lock.Lock() defer s.lock.Unlock() - s.broadcast(req) + + conns := lo.Filter(s.builderConnections, func(c *builderConnection, _ int) bool { return c.buildID == buildID }) + // assert len(conns) <= 1 + for _, conn := range conns { + conn.Send(&pb.BuilderRequest{ + Type: pb.BuilderRequest_CANCEL_BUILD, + Body: &pb.BuilderRequest_CancelBuild{CancelBuild: &pb.BuildIdRequest{ + BuildId: buildID, + }}, + }) + } } diff --git a/pkg/infrastructure/grpc/controller_builder_service_client.go b/pkg/infrastructure/grpc/controller_builder_service_client.go index 18c6a65d5..8f1f0181f 100644 --- a/pkg/infrastructure/grpc/controller_builder_service_client.go +++ b/pkg/infrastructure/grpc/controller_builder_service_client.go @@ -14,14 +14,17 @@ import ( ) type ControllerBuilderServiceClient struct { - client pbconnect.ControllerBuilderServiceClient + client pbconnect.ControllerBuilderServiceClient + priority int } func NewControllerBuilderServiceClient( c ControllerServiceClientConfig, + priority int, ) domain.ControllerBuilderServiceClient { return &ControllerBuilderServiceClient{ - client: pbconnect.NewControllerBuilderServiceClient(web.NewH2CClient(), c.URL), + client: pbconnect.NewControllerBuilderServiceClient(web.NewH2CClient(), c.URL), + priority: priority, } } @@ -38,7 +41,12 @@ func (c *ControllerBuilderServiceClient) ConnectBuilder(ctx context.Context, onR // Need to send one arbitrary event to actually start the connection // not sure if this is a bug with connect protocol or something - err := st.Send(&pb.BuilderResponse{Type: pb.BuilderResponse_CONNECTED}) + err := st.Send(&pb.BuilderResponse{ + Type: pb.BuilderResponse_CONNECTED, + Body: &pb.BuilderResponse_Connected{Connected: &pb.ConnectedBody{ + Priority: int64(c.priority), + }}, + }) if err != nil { log.Errorf("failed to send connected event: %+v", err) return diff --git a/pkg/infrastructure/grpc/controller_service.go b/pkg/infrastructure/grpc/controller_service.go index eabaa9168..596e80a5d 100644 --- a/pkg/infrastructure/grpc/controller_service.go +++ b/pkg/infrastructure/grpc/controller_service.go @@ -113,10 +113,7 @@ loop: func (s *ControllerService) CancelBuild(_ context.Context, c *connect.Request[pb.BuildIdRequest]) (*connect.Response[emptypb.Empty], error) { buildID := c.Msg.BuildId - s.builder.BroadcastBuilder(&pb.BuilderRequest{ - Type: pb.BuilderRequest_CANCEL_BUILD, - Body: &pb.BuilderRequest_CancelBuild{CancelBuild: &pb.BuildIdRequest{BuildId: buildID}}, - }) + s.builder.CancelBuild(buildID) res := connect.NewResponse(&emptypb.Empty{}) return res, nil } diff --git a/pkg/infrastructure/grpc/pb/controller.pb.go b/pkg/infrastructure/grpc/pb/controller.pb.go index 84cb045f5..508875389 100644 --- a/pkg/infrastructure/grpc/pb/controller.pb.go +++ b/pkg/infrastructure/grpc/pb/controller.pb.go @@ -113,7 +113,7 @@ func (x BuildSettled_Reason) Number() protoreflect.EnumNumber { // Deprecated: Use BuildSettled_Reason.Descriptor instead. func (BuildSettled_Reason) EnumDescriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_controller_proto_rawDescGZIP(), []int{3, 0} + return file_neoshowcase_protobuf_controller_proto_rawDescGZIP(), []int{4, 0} } type BuilderResponse_Type int32 @@ -165,7 +165,7 @@ func (x BuilderResponse_Type) Number() protoreflect.EnumNumber { // Deprecated: Use BuilderResponse_Type.Descriptor instead. func (BuilderResponse_Type) EnumDescriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_controller_proto_rawDescGZIP(), []int{5, 0} + return file_neoshowcase_protobuf_controller_proto_rawDescGZIP(), []int{6, 0} } type SSGenRequest_Type int32 @@ -208,7 +208,7 @@ func (x SSGenRequest_Type) Number() protoreflect.EnumNumber { // Deprecated: Use SSGenRequest_Type.Descriptor instead. func (SSGenRequest_Type) EnumDescriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_controller_proto_rawDescGZIP(), []int{6, 0} + return file_neoshowcase_protobuf_controller_proto_rawDescGZIP(), []int{7, 0} } type StartBuildRequest struct { @@ -347,6 +347,54 @@ func (*BuilderRequest_StartBuild) isBuilderRequest_Body() {} func (*BuilderRequest_CancelBuild) isBuilderRequest_Body() {} +type ConnectedBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Larger value means higher priority + Priority int64 `protobuf:"varint,1,opt,name=priority,proto3" json:"priority,omitempty"` +} + +func (x *ConnectedBody) Reset() { + *x = ConnectedBody{} + if protoimpl.UnsafeEnabled { + mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConnectedBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConnectedBody) ProtoMessage() {} + +func (x *ConnectedBody) ProtoReflect() protoreflect.Message { + mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConnectedBody.ProtoReflect.Descriptor instead. +func (*ConnectedBody) Descriptor() ([]byte, []int) { + return file_neoshowcase_protobuf_controller_proto_rawDescGZIP(), []int{2} +} + +func (x *ConnectedBody) GetPriority() int64 { + if x != nil { + return x.Priority + } + return 0 +} + type BuildStarted struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -358,7 +406,7 @@ type BuildStarted struct { func (x *BuildStarted) Reset() { *x = BuildStarted{} if protoimpl.UnsafeEnabled { - mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[2] + mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -371,7 +419,7 @@ func (x *BuildStarted) String() string { func (*BuildStarted) ProtoMessage() {} func (x *BuildStarted) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[2] + mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -384,7 +432,7 @@ func (x *BuildStarted) ProtoReflect() protoreflect.Message { // Deprecated: Use BuildStarted.ProtoReflect.Descriptor instead. func (*BuildStarted) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_controller_proto_rawDescGZIP(), []int{2} + return file_neoshowcase_protobuf_controller_proto_rawDescGZIP(), []int{3} } func (x *BuildStarted) GetBuildId() string { @@ -406,7 +454,7 @@ type BuildSettled struct { func (x *BuildSettled) Reset() { *x = BuildSettled{} if protoimpl.UnsafeEnabled { - mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[3] + mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -419,7 +467,7 @@ func (x *BuildSettled) String() string { func (*BuildSettled) ProtoMessage() {} func (x *BuildSettled) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[3] + mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -432,7 +480,7 @@ func (x *BuildSettled) ProtoReflect() protoreflect.Message { // Deprecated: Use BuildSettled.ProtoReflect.Descriptor instead. func (*BuildSettled) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_controller_proto_rawDescGZIP(), []int{3} + return file_neoshowcase_protobuf_controller_proto_rawDescGZIP(), []int{4} } func (x *BuildSettled) GetBuildId() string { @@ -461,7 +509,7 @@ type BuildLogPortion struct { func (x *BuildLogPortion) Reset() { *x = BuildLogPortion{} if protoimpl.UnsafeEnabled { - mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[4] + mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -474,7 +522,7 @@ func (x *BuildLogPortion) String() string { func (*BuildLogPortion) ProtoMessage() {} func (x *BuildLogPortion) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[4] + mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -487,7 +535,7 @@ func (x *BuildLogPortion) ProtoReflect() protoreflect.Message { // Deprecated: Use BuildLogPortion.ProtoReflect.Descriptor instead. func (*BuildLogPortion) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_controller_proto_rawDescGZIP(), []int{4} + return file_neoshowcase_protobuf_controller_proto_rawDescGZIP(), []int{5} } func (x *BuildLogPortion) GetBuildId() string { @@ -512,6 +560,7 @@ type BuilderResponse struct { Type BuilderResponse_Type `protobuf:"varint,1,opt,name=type,proto3,enum=neoshowcase.protobuf.BuilderResponse_Type" json:"type,omitempty"` // Types that are assignable to Body: // + // *BuilderResponse_Connected // *BuilderResponse_Started // *BuilderResponse_Settled // *BuilderResponse_Log @@ -521,7 +570,7 @@ type BuilderResponse struct { func (x *BuilderResponse) Reset() { *x = BuilderResponse{} if protoimpl.UnsafeEnabled { - mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[5] + mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -534,7 +583,7 @@ func (x *BuilderResponse) String() string { func (*BuilderResponse) ProtoMessage() {} func (x *BuilderResponse) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[5] + mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -547,7 +596,7 @@ func (x *BuilderResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BuilderResponse.ProtoReflect.Descriptor instead. func (*BuilderResponse) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_controller_proto_rawDescGZIP(), []int{5} + return file_neoshowcase_protobuf_controller_proto_rawDescGZIP(), []int{6} } func (x *BuilderResponse) GetType() BuilderResponse_Type { @@ -564,6 +613,13 @@ func (m *BuilderResponse) GetBody() isBuilderResponse_Body { return nil } +func (x *BuilderResponse) GetConnected() *ConnectedBody { + if x, ok := x.GetBody().(*BuilderResponse_Connected); ok { + return x.Connected + } + return nil +} + func (x *BuilderResponse) GetStarted() *BuildStarted { if x, ok := x.GetBody().(*BuilderResponse_Started); ok { return x.Started @@ -589,18 +645,24 @@ type isBuilderResponse_Body interface { isBuilderResponse_Body() } +type BuilderResponse_Connected struct { + Connected *ConnectedBody `protobuf:"bytes,2,opt,name=connected,proto3,oneof"` +} + type BuilderResponse_Started struct { - Started *BuildStarted `protobuf:"bytes,2,opt,name=started,proto3,oneof"` + Started *BuildStarted `protobuf:"bytes,3,opt,name=started,proto3,oneof"` } type BuilderResponse_Settled struct { - Settled *BuildSettled `protobuf:"bytes,3,opt,name=settled,proto3,oneof"` + Settled *BuildSettled `protobuf:"bytes,4,opt,name=settled,proto3,oneof"` } type BuilderResponse_Log struct { - Log *BuildLogPortion `protobuf:"bytes,4,opt,name=log,proto3,oneof"` + Log *BuildLogPortion `protobuf:"bytes,5,opt,name=log,proto3,oneof"` } +func (*BuilderResponse_Connected) isBuilderResponse_Body() {} + func (*BuilderResponse_Started) isBuilderResponse_Body() {} func (*BuilderResponse_Settled) isBuilderResponse_Body() {} @@ -618,7 +680,7 @@ type SSGenRequest struct { func (x *SSGenRequest) Reset() { *x = SSGenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[6] + mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -631,7 +693,7 @@ func (x *SSGenRequest) String() string { func (*SSGenRequest) ProtoMessage() {} func (x *SSGenRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[6] + mi := &file_neoshowcase_protobuf_controller_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -644,7 +706,7 @@ func (x *SSGenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SSGenRequest.ProtoReflect.Descriptor instead. func (*SSGenRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_controller_proto_rawDescGZIP(), []int{6} + return file_neoshowcase_protobuf_controller_proto_rawDescGZIP(), []int{7} } func (x *SSGenRequest) GetType() SSGenRequest_Type { @@ -685,102 +747,110 @@ var file_neoshowcase_protobuf_controller_proto_rawDesc = []byte{ 0x65, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x29, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, - 0x10, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x29, 0x0a, 0x0c, 0x42, 0x75, - 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, - 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, - 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, - 0x65, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, + 0x10, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x2b, 0x0a, 0x0d, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x29, 0x0a, 0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x65, 0x74, 0x74, + 0x6c, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x41, + 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, + 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x65, 0x74, 0x74, 0x6c, + 0x65, 0x64, 0x2e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x22, 0x30, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x53, + 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, + 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, + 0x44, 0x10, 0x02, 0x22, 0x3e, 0x0a, 0x0f, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x50, + 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, - 0x64, 0x12, 0x41, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x29, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x65, - 0x74, 0x74, 0x6c, 0x65, 0x64, 0x2e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x30, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x0b, - 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x46, - 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, - 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x22, 0x3e, 0x0a, 0x0f, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4c, - 0x6f, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, - 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x69, - 0x6c, 0x64, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x22, 0xe0, 0x02, 0x0a, 0x0f, 0x42, 0x75, 0x69, 0x6c, 0x64, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, - 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x65, - 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x48, - 0x00, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x07, 0x73, 0x65, - 0x74, 0x74, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x65, - 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x48, - 0x00, 0x52, 0x07, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x03, 0x6c, 0x6f, - 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, - 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, - 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x22, 0x4a, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, - 0x09, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, - 0x42, 0x55, 0x49, 0x4c, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, - 0x11, 0x0a, 0x0d, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x4c, 0x45, 0x44, - 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x5f, 0x4c, 0x4f, 0x47, 0x10, - 0x03, 0x42, 0x06, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x5f, 0x0a, 0x0c, 0x53, 0x53, 0x47, - 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, - 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x53, 0x47, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, - 0x0a, 0x06, 0x52, 0x45, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x00, 0x32, 0xf3, 0x03, 0x0a, 0x11, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x49, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x73, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, + 0x6c, 0x6f, 0x67, 0x22, 0xa5, 0x03, 0x0a, 0x0f, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, + 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, + 0x6c, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x65, 0x6f, + 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x48, + 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x07, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, + 0x64, 0x48, 0x00, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x07, + 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x65, 0x74, 0x74, 0x6c, 0x65, + 0x64, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x03, + 0x6c, 0x6f, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x54, 0x0a, 0x0f, 0x46, - 0x65, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x29, - 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x53, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x42, 0x75, 0x69, - 0x6c, 0x64, 0x12, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x58, 0x0a, 0x0e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x24, 0x2e, 0x6e, 0x65, + 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x00, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x22, 0x4a, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, + 0x0a, 0x0d, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, + 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x4c, + 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x5f, 0x4c, 0x4f, + 0x47, 0x10, 0x03, 0x42, 0x06, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x5f, 0x0a, 0x0c, 0x53, + 0x53, 0x47, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x73, + 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x53, 0x53, 0x47, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x00, 0x32, 0xf3, 0x03, 0x0a, + 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1e, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, - 0x67, 0x30, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x75, 0x69, - 0x6c, 0x64, 0x12, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x32, 0x7d, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x42, 0x75, - 0x69, 0x6c, 0x64, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x61, 0x0a, 0x0e, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x25, - 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, - 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, - 0x6c, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x28, 0x01, 0x30, 0x01, 0x32, - 0x66, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x53, 0x47, - 0x65, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x53, 0x53, 0x47, 0x65, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x22, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x53, 0x47, 0x65, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x30, 0x01, 0x42, 0x3e, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x61, 0x50, 0x74, 0x69, 0x74, 0x65, 0x63, 0x68, - 0x2f, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2f, 0x70, 0x6b, 0x67, - 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x2f, - 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x75, 0x66, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x54, 0x0a, + 0x0f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, + 0x12, 0x29, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x53, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x42, + 0x75, 0x69, 0x6c, 0x64, 0x12, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, + 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, + 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x58, 0x0a, 0x0e, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x24, 0x2e, + 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, + 0x4c, 0x6f, 0x67, 0x30, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, + 0x75, 0x69, 0x6c, 0x64, 0x12, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, + 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x32, 0x7d, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, + 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x61, + 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, + 0x12, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, + 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, + 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x28, 0x01, 0x30, + 0x01, 0x32, 0x66, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, + 0x53, 0x47, 0x65, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x53, 0x53, 0x47, 0x65, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x22, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x53, 0x47, 0x65, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x30, 0x01, 0x42, 0x3e, 0x5a, 0x3c, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x61, 0x50, 0x74, 0x69, 0x74, 0x65, + 0x63, 0x68, 0x2f, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2f, 0x70, + 0x6b, 0x67, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, + 0x65, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -796,7 +866,7 @@ func file_neoshowcase_protobuf_controller_proto_rawDescGZIP() []byte { } var file_neoshowcase_protobuf_controller_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_neoshowcase_protobuf_controller_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_neoshowcase_protobuf_controller_proto_msgTypes = make([]protoimpl.MessageInfo, 8) var file_neoshowcase_protobuf_controller_proto_goTypes = []interface{}{ (BuilderRequest_Type)(0), // 0: neoshowcase.protobuf.BuilderRequest.Type (BuildSettled_Reason)(0), // 1: neoshowcase.protobuf.BuildSettled.Reason @@ -804,49 +874,51 @@ var file_neoshowcase_protobuf_controller_proto_goTypes = []interface{}{ (SSGenRequest_Type)(0), // 3: neoshowcase.protobuf.SSGenRequest.Type (*StartBuildRequest)(nil), // 4: neoshowcase.protobuf.StartBuildRequest (*BuilderRequest)(nil), // 5: neoshowcase.protobuf.BuilderRequest - (*BuildStarted)(nil), // 6: neoshowcase.protobuf.BuildStarted - (*BuildSettled)(nil), // 7: neoshowcase.protobuf.BuildSettled - (*BuildLogPortion)(nil), // 8: neoshowcase.protobuf.BuildLogPortion - (*BuilderResponse)(nil), // 9: neoshowcase.protobuf.BuilderResponse - (*SSGenRequest)(nil), // 10: neoshowcase.protobuf.SSGenRequest - (*BuildIdRequest)(nil), // 11: neoshowcase.protobuf.BuildIdRequest - (*emptypb.Empty)(nil), // 12: google.protobuf.Empty - (*RepositoryIdRequest)(nil), // 13: neoshowcase.protobuf.RepositoryIdRequest - (*ApplicationIdRequest)(nil), // 14: neoshowcase.protobuf.ApplicationIdRequest - (*SystemInfo)(nil), // 15: neoshowcase.protobuf.SystemInfo - (*BuildLog)(nil), // 16: neoshowcase.protobuf.BuildLog + (*ConnectedBody)(nil), // 6: neoshowcase.protobuf.ConnectedBody + (*BuildStarted)(nil), // 7: neoshowcase.protobuf.BuildStarted + (*BuildSettled)(nil), // 8: neoshowcase.protobuf.BuildSettled + (*BuildLogPortion)(nil), // 9: neoshowcase.protobuf.BuildLogPortion + (*BuilderResponse)(nil), // 10: neoshowcase.protobuf.BuilderResponse + (*SSGenRequest)(nil), // 11: neoshowcase.protobuf.SSGenRequest + (*BuildIdRequest)(nil), // 12: neoshowcase.protobuf.BuildIdRequest + (*emptypb.Empty)(nil), // 13: google.protobuf.Empty + (*RepositoryIdRequest)(nil), // 14: neoshowcase.protobuf.RepositoryIdRequest + (*ApplicationIdRequest)(nil), // 15: neoshowcase.protobuf.ApplicationIdRequest + (*SystemInfo)(nil), // 16: neoshowcase.protobuf.SystemInfo + (*BuildLog)(nil), // 17: neoshowcase.protobuf.BuildLog } var file_neoshowcase_protobuf_controller_proto_depIdxs = []int32{ 0, // 0: neoshowcase.protobuf.BuilderRequest.type:type_name -> neoshowcase.protobuf.BuilderRequest.Type 4, // 1: neoshowcase.protobuf.BuilderRequest.start_build:type_name -> neoshowcase.protobuf.StartBuildRequest - 11, // 2: neoshowcase.protobuf.BuilderRequest.cancel_build:type_name -> neoshowcase.protobuf.BuildIdRequest + 12, // 2: neoshowcase.protobuf.BuilderRequest.cancel_build:type_name -> neoshowcase.protobuf.BuildIdRequest 1, // 3: neoshowcase.protobuf.BuildSettled.reason:type_name -> neoshowcase.protobuf.BuildSettled.Reason 2, // 4: neoshowcase.protobuf.BuilderResponse.type:type_name -> neoshowcase.protobuf.BuilderResponse.Type - 6, // 5: neoshowcase.protobuf.BuilderResponse.started:type_name -> neoshowcase.protobuf.BuildStarted - 7, // 6: neoshowcase.protobuf.BuilderResponse.settled:type_name -> neoshowcase.protobuf.BuildSettled - 8, // 7: neoshowcase.protobuf.BuilderResponse.log:type_name -> neoshowcase.protobuf.BuildLogPortion - 3, // 8: neoshowcase.protobuf.SSGenRequest.type:type_name -> neoshowcase.protobuf.SSGenRequest.Type - 12, // 9: neoshowcase.protobuf.ControllerService.GetSystemInfo:input_type -> google.protobuf.Empty - 13, // 10: neoshowcase.protobuf.ControllerService.FetchRepository:input_type -> neoshowcase.protobuf.RepositoryIdRequest - 14, // 11: neoshowcase.protobuf.ControllerService.RegisterBuild:input_type -> neoshowcase.protobuf.ApplicationIdRequest - 12, // 12: neoshowcase.protobuf.ControllerService.SyncDeployments:input_type -> google.protobuf.Empty - 11, // 13: neoshowcase.protobuf.ControllerService.StreamBuildLog:input_type -> neoshowcase.protobuf.BuildIdRequest - 11, // 14: neoshowcase.protobuf.ControllerService.CancelBuild:input_type -> neoshowcase.protobuf.BuildIdRequest - 9, // 15: neoshowcase.protobuf.ControllerBuilderService.ConnectBuilder:input_type -> neoshowcase.protobuf.BuilderResponse - 12, // 16: neoshowcase.protobuf.ControllerSSGenService.ConnectSSGen:input_type -> google.protobuf.Empty - 15, // 17: neoshowcase.protobuf.ControllerService.GetSystemInfo:output_type -> neoshowcase.protobuf.SystemInfo - 12, // 18: neoshowcase.protobuf.ControllerService.FetchRepository:output_type -> google.protobuf.Empty - 12, // 19: neoshowcase.protobuf.ControllerService.RegisterBuild:output_type -> google.protobuf.Empty - 12, // 20: neoshowcase.protobuf.ControllerService.SyncDeployments:output_type -> google.protobuf.Empty - 16, // 21: neoshowcase.protobuf.ControllerService.StreamBuildLog:output_type -> neoshowcase.protobuf.BuildLog - 12, // 22: neoshowcase.protobuf.ControllerService.CancelBuild:output_type -> google.protobuf.Empty - 5, // 23: neoshowcase.protobuf.ControllerBuilderService.ConnectBuilder:output_type -> neoshowcase.protobuf.BuilderRequest - 10, // 24: neoshowcase.protobuf.ControllerSSGenService.ConnectSSGen:output_type -> neoshowcase.protobuf.SSGenRequest - 17, // [17:25] is the sub-list for method output_type - 9, // [9:17] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name + 6, // 5: neoshowcase.protobuf.BuilderResponse.connected:type_name -> neoshowcase.protobuf.ConnectedBody + 7, // 6: neoshowcase.protobuf.BuilderResponse.started:type_name -> neoshowcase.protobuf.BuildStarted + 8, // 7: neoshowcase.protobuf.BuilderResponse.settled:type_name -> neoshowcase.protobuf.BuildSettled + 9, // 8: neoshowcase.protobuf.BuilderResponse.log:type_name -> neoshowcase.protobuf.BuildLogPortion + 3, // 9: neoshowcase.protobuf.SSGenRequest.type:type_name -> neoshowcase.protobuf.SSGenRequest.Type + 13, // 10: neoshowcase.protobuf.ControllerService.GetSystemInfo:input_type -> google.protobuf.Empty + 14, // 11: neoshowcase.protobuf.ControllerService.FetchRepository:input_type -> neoshowcase.protobuf.RepositoryIdRequest + 15, // 12: neoshowcase.protobuf.ControllerService.RegisterBuild:input_type -> neoshowcase.protobuf.ApplicationIdRequest + 13, // 13: neoshowcase.protobuf.ControllerService.SyncDeployments:input_type -> google.protobuf.Empty + 12, // 14: neoshowcase.protobuf.ControllerService.StreamBuildLog:input_type -> neoshowcase.protobuf.BuildIdRequest + 12, // 15: neoshowcase.protobuf.ControllerService.CancelBuild:input_type -> neoshowcase.protobuf.BuildIdRequest + 10, // 16: neoshowcase.protobuf.ControllerBuilderService.ConnectBuilder:input_type -> neoshowcase.protobuf.BuilderResponse + 13, // 17: neoshowcase.protobuf.ControllerSSGenService.ConnectSSGen:input_type -> google.protobuf.Empty + 16, // 18: neoshowcase.protobuf.ControllerService.GetSystemInfo:output_type -> neoshowcase.protobuf.SystemInfo + 13, // 19: neoshowcase.protobuf.ControllerService.FetchRepository:output_type -> google.protobuf.Empty + 13, // 20: neoshowcase.protobuf.ControllerService.RegisterBuild:output_type -> google.protobuf.Empty + 13, // 21: neoshowcase.protobuf.ControllerService.SyncDeployments:output_type -> google.protobuf.Empty + 17, // 22: neoshowcase.protobuf.ControllerService.StreamBuildLog:output_type -> neoshowcase.protobuf.BuildLog + 13, // 23: neoshowcase.protobuf.ControllerService.CancelBuild:output_type -> google.protobuf.Empty + 5, // 24: neoshowcase.protobuf.ControllerBuilderService.ConnectBuilder:output_type -> neoshowcase.protobuf.BuilderRequest + 11, // 25: neoshowcase.protobuf.ControllerSSGenService.ConnectSSGen:output_type -> neoshowcase.protobuf.SSGenRequest + 18, // [18:26] is the sub-list for method output_type + 10, // [10:18] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name } func init() { file_neoshowcase_protobuf_controller_proto_init() } @@ -881,7 +953,7 @@ func file_neoshowcase_protobuf_controller_proto_init() { } } file_neoshowcase_protobuf_controller_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BuildStarted); i { + switch v := v.(*ConnectedBody); i { case 0: return &v.state case 1: @@ -893,7 +965,7 @@ func file_neoshowcase_protobuf_controller_proto_init() { } } file_neoshowcase_protobuf_controller_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BuildSettled); i { + switch v := v.(*BuildStarted); i { case 0: return &v.state case 1: @@ -905,7 +977,7 @@ func file_neoshowcase_protobuf_controller_proto_init() { } } file_neoshowcase_protobuf_controller_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BuildLogPortion); i { + switch v := v.(*BuildSettled); i { case 0: return &v.state case 1: @@ -917,7 +989,7 @@ func file_neoshowcase_protobuf_controller_proto_init() { } } file_neoshowcase_protobuf_controller_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BuilderResponse); i { + switch v := v.(*BuildLogPortion); i { case 0: return &v.state case 1: @@ -929,6 +1001,18 @@ func file_neoshowcase_protobuf_controller_proto_init() { } } file_neoshowcase_protobuf_controller_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BuilderResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_neoshowcase_protobuf_controller_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SSGenRequest); i { case 0: return &v.state @@ -945,7 +1029,8 @@ func file_neoshowcase_protobuf_controller_proto_init() { (*BuilderRequest_StartBuild)(nil), (*BuilderRequest_CancelBuild)(nil), } - file_neoshowcase_protobuf_controller_proto_msgTypes[5].OneofWrappers = []interface{}{ + file_neoshowcase_protobuf_controller_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*BuilderResponse_Connected)(nil), (*BuilderResponse_Started)(nil), (*BuilderResponse_Settled)(nil), (*BuilderResponse_Log)(nil), @@ -956,7 +1041,7 @@ func file_neoshowcase_protobuf_controller_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_neoshowcase_protobuf_controller_proto_rawDesc, NumEnums: 4, - NumMessages: 7, + NumMessages: 8, NumExtensions: 0, NumServices: 3, }, diff --git a/pkg/usecase/builder/build.go b/pkg/usecase/builder/build.go index baf792a95..396e7fa7e 100644 --- a/pkg/usecase/builder/build.go +++ b/pkg/usecase/builder/build.go @@ -20,7 +20,7 @@ func (s *builderService) tryStartBuild(buildID string) error { defer s.statusLock.Unlock() if s.state != nil { - log.Infof("skipping build request for %v, builder busy", buildID) + log.Warnf("Skipping build request for %v, builder busy - builder scheduling may be malfunctioning?", buildID) return nil // Builder busy - skip } @@ -37,6 +37,7 @@ func (s *builderService) tryStartBuild(buildID string) error { return err } if n == 0 { + log.Warnf("Failed to acquire build lock for %v - builder scheduling may be malfunctioning?", buildID) return nil // other builder has acquired the build lock - skip } diff --git a/pkg/usecase/builder/service.go b/pkg/usecase/builder/service.go index 6a452a2ca..b07170773 100644 --- a/pkg/usecase/builder/service.go +++ b/pkg/usecase/builder/service.go @@ -124,10 +124,10 @@ func (s *builderService) cancelBuild(buildID string) { s.statusLock.Lock() defer s.statusLock.Unlock() - if s.state != nil && s.stateCancel != nil { - if s.state.build.ID == buildID { - s.stateCancel() - } + if s.state != nil && s.stateCancel != nil && s.state.build.ID == buildID { + s.stateCancel() + } else { + log.Warnf("Skipping cancel build request for %v - a race condition or builder scheduling malfunction?", buildID) } }