From 48f405a02de5e4cbb85a68400580b6066bf29525 Mon Sep 17 00:00:00 2001 From: aeweston-msft <59626096+aeweston-msft@users.noreply.github.com> Date: Thu, 27 Jun 2024 13:02:41 -0700 Subject: [PATCH] Add Precheck RPC for various resources (#269) * avail set changes * rpc definition changes * fix typo --- go.mod | 2 +- go.sum | 4 +- .../moc_cloudagent_availabilityset.proto | 15 ++ .../moc_cloudagent_galleryimage.proto | 15 ++ .../moc_cloudagent_availabilityset.pb.go | 199 +++++++++++--- .../compute/moc_cloudagent_galleryimage.pb.go | 245 +++++++++++++---- .../moc_cloudagent_virtualmachineimage.pb.go | 202 +++++++++++--- .../moc_cloudagent_virtualmachineimage.proto | 15 ++ .../moc_cloudagent_loadbalancer.proto | 15 ++ .../moc_cloudagent_logicalnetwork.proto | 15 ++ .../macpool/moc_cloudagent_macpool.proto | 15 ++ .../network/moc_cloudagent_loadbalancer.pb.go | 221 ++++++++++++---- .../moc_cloudagent_logicalnetwork.pb.go | 219 +++++++++++---- .../network/moc_cloudagent_macpool.pb.go | 195 +++++++++++--- .../moc_cloudagent_networkinterface.pb.go | 249 +++++++++++++----- .../moc_cloudagent_networksecuritygroup.pb.go | 225 ++++++++++++---- .../network/moc_cloudagent_vippool.pb.go | 195 +++++++++++--- .../moc_cloudagent_virtualnetwork.pb.go | 237 +++++++++++++---- .../moc_cloudagent_networkinterface.proto | 15 ++ .../moc_cloudagent_networksecuritygroup.proto | 15 ++ .../vippool/moc_cloudagent_vippool.proto | 15 ++ .../moc_cloudagent_virtualnetwork.proto | 15 ++ .../moc_cloudagent_certificate.proto | 15 ++ .../identity/moc_cloudagent_identity.proto | 15 ++ .../security/moc_cloudagent_certificate.pb.go | 221 ++++++++++++---- .../security/moc_cloudagent_identity.pb.go | 249 +++++++++++++----- .../container/moc_cloudagent_container.proto | 15 ++ .../storage/moc_cloudagent_container.pb.go | 200 +++++++++++--- 28 files changed, 2479 insertions(+), 579 deletions(-) diff --git a/go.mod b/go.mod index 1ea1406..2bf447f 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( require ( golang.org/x/net v0.26.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240624140628-dc46fd24d27d // indirect ) replace ( diff --git a/go.sum b/go.sum index 4de4361..565c98d 100644 --- a/go.sum +++ b/go.sum @@ -1521,8 +1521,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130/go. google.golang.org/genproto/googleapis/rpc v0.0.0-20230731190214-cbb8c96f2d6d/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/genproto/googleapis/rpc v0.0.0-20230803162519-f966b187b2e5/go.mod h1:zBEcrKX2ZOcEkHWxBPAIvYUWOKKMIhYcmNiUIu2ji3I= google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4 h1:Di6ANFilr+S60a4S61ZM00vLdw0IrQOSMS2/6mrnOU0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240624140628-dc46fd24d27d h1:k3zyW3BYYR30e8v3x0bTDdE9vpYFjZHK+HcyqkrppWk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240624140628-dc46fd24d27d/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= diff --git a/rpc/cloudagent/compute/availabilityset/moc_cloudagent_availabilityset.proto b/rpc/cloudagent/compute/availabilityset/moc_cloudagent_availabilityset.proto index 234f62b..c0d9522 100644 --- a/rpc/cloudagent/compute/availabilityset/moc_cloudagent_availabilityset.proto +++ b/rpc/cloudagent/compute/availabilityset/moc_cloudagent_availabilityset.proto @@ -25,6 +25,18 @@ message VirtualMachineReference { string realizedName = 3; } +message AvailabilitySetPrecheckRequest { + repeated AvailabilitySet AvailabilitySets = 1; +} + +message AvailabilitySetPrecheckResponse { + // The precheck result: true if the precheck criteria is passed; otherwise, false + google.protobuf.BoolValue Result = 1; + + // The error message if the precheck is not passed; otherwise, empty string + string Error = 2; +} + // avset structure is a flattened version of the model in the Azure sdk for go at // https://github.com/Azure/azure-sdk-for-go/blob/main/sdk/resourcemanager/compute/armcompute/models.go message AvailabilitySet { @@ -40,6 +52,9 @@ message AvailabilitySet { service AvailabilitySetAgent { rpc Invoke(AvailabilitySetRequest) returns (AvailabilitySetResponse) {} + + // Prechecks whether the system is able to create specified availability set (but does not actually create them). + rpc Precheck(AvailabilitySetPrecheckRequest) returns (AvailabilitySetPrecheckResponse) {} } diff --git a/rpc/cloudagent/compute/galleryimage/moc_cloudagent_galleryimage.proto b/rpc/cloudagent/compute/galleryimage/moc_cloudagent_galleryimage.proto index 6368be5..d651878 100644 --- a/rpc/cloudagent/compute/galleryimage/moc_cloudagent_galleryimage.proto +++ b/rpc/cloudagent/compute/galleryimage/moc_cloudagent_galleryimage.proto @@ -25,6 +25,18 @@ message GalleryImageResponse { string Error = 3; } +message GalleryImagePrecheckRequest { + repeated GalleryImage GalleryImages = 1; +} + +message GalleryImagePrecheckResponse { + // The precheck result: true if the precheck criteria is passed; otherwise, false + google.protobuf.BoolValue Result = 1; + + // The error message if the precheck is not passed; otherwise, empty string + string Error = 2; +} + message SFSImageProperties { string catalogName = 1; string audience = 2; @@ -69,4 +81,7 @@ message GalleryImage { service GalleryImageAgent { rpc Invoke(GalleryImageRequest) returns (GalleryImageResponse) {} + + // Prechecks whether the system is able to create specified gallery images (but does not actually create them). + rpc Precheck(GalleryImagePrecheckRequest) returns (GalleryImagePrecheckResponse) {} } diff --git a/rpc/cloudagent/compute/moc_cloudagent_availabilityset.pb.go b/rpc/cloudagent/compute/moc_cloudagent_availabilityset.pb.go index 129192e..37a6404 100644 --- a/rpc/cloudagent/compute/moc_cloudagent_availabilityset.pb.go +++ b/rpc/cloudagent/compute/moc_cloudagent_availabilityset.pb.go @@ -183,6 +183,94 @@ func (m *VirtualMachineReference) GetRealizedName() string { return "" } +type AvailabilitySetPrecheckRequest struct { + AvailabilitySets []*AvailabilitySet `protobuf:"bytes,1,rep,name=AvailabilitySets,proto3" json:"AvailabilitySets,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AvailabilitySetPrecheckRequest) Reset() { *m = AvailabilitySetPrecheckRequest{} } +func (m *AvailabilitySetPrecheckRequest) String() string { return proto.CompactTextString(m) } +func (*AvailabilitySetPrecheckRequest) ProtoMessage() {} +func (*AvailabilitySetPrecheckRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_f2024bad12ef389f, []int{3} +} + +func (m *AvailabilitySetPrecheckRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AvailabilitySetPrecheckRequest.Unmarshal(m, b) +} +func (m *AvailabilitySetPrecheckRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AvailabilitySetPrecheckRequest.Marshal(b, m, deterministic) +} +func (m *AvailabilitySetPrecheckRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_AvailabilitySetPrecheckRequest.Merge(m, src) +} +func (m *AvailabilitySetPrecheckRequest) XXX_Size() int { + return xxx_messageInfo_AvailabilitySetPrecheckRequest.Size(m) +} +func (m *AvailabilitySetPrecheckRequest) XXX_DiscardUnknown() { + xxx_messageInfo_AvailabilitySetPrecheckRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_AvailabilitySetPrecheckRequest proto.InternalMessageInfo + +func (m *AvailabilitySetPrecheckRequest) GetAvailabilitySets() []*AvailabilitySet { + if m != nil { + return m.AvailabilitySets + } + return nil +} + +type AvailabilitySetPrecheckResponse struct { + // The precheck result: true if the precheck criteria is passed; otherwise, false + Result *wrappers.BoolValue `protobuf:"bytes,1,opt,name=Result,proto3" json:"Result,omitempty"` + // The error message if the precheck is not passed; otherwise, empty string + Error string `protobuf:"bytes,2,opt,name=Error,proto3" json:"Error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AvailabilitySetPrecheckResponse) Reset() { *m = AvailabilitySetPrecheckResponse{} } +func (m *AvailabilitySetPrecheckResponse) String() string { return proto.CompactTextString(m) } +func (*AvailabilitySetPrecheckResponse) ProtoMessage() {} +func (*AvailabilitySetPrecheckResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_f2024bad12ef389f, []int{4} +} + +func (m *AvailabilitySetPrecheckResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AvailabilitySetPrecheckResponse.Unmarshal(m, b) +} +func (m *AvailabilitySetPrecheckResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AvailabilitySetPrecheckResponse.Marshal(b, m, deterministic) +} +func (m *AvailabilitySetPrecheckResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_AvailabilitySetPrecheckResponse.Merge(m, src) +} +func (m *AvailabilitySetPrecheckResponse) XXX_Size() int { + return xxx_messageInfo_AvailabilitySetPrecheckResponse.Size(m) +} +func (m *AvailabilitySetPrecheckResponse) XXX_DiscardUnknown() { + xxx_messageInfo_AvailabilitySetPrecheckResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_AvailabilitySetPrecheckResponse proto.InternalMessageInfo + +func (m *AvailabilitySetPrecheckResponse) GetResult() *wrappers.BoolValue { + if m != nil { + return m.Result + } + return nil +} + +func (m *AvailabilitySetPrecheckResponse) GetError() string { + if m != nil { + return m.Error + } + return "" +} + // avset structure is a flattened version of the model in the Azure sdk for go at // https://github.com/Azure/azure-sdk-for-go/blob/main/sdk/resourcemanager/compute/armcompute/models.go type AvailabilitySet struct { @@ -203,7 +291,7 @@ func (m *AvailabilitySet) Reset() { *m = AvailabilitySet{} } func (m *AvailabilitySet) String() string { return proto.CompactTextString(m) } func (*AvailabilitySet) ProtoMessage() {} func (*AvailabilitySet) Descriptor() ([]byte, []int) { - return fileDescriptor_f2024bad12ef389f, []int{3} + return fileDescriptor_f2024bad12ef389f, []int{5} } func (m *AvailabilitySet) XXX_Unmarshal(b []byte) error { @@ -284,6 +372,8 @@ func init() { proto.RegisterType((*AvailabilitySetRequest)(nil), "moc.cloudagent.compute.AvailabilitySetRequest") proto.RegisterType((*AvailabilitySetResponse)(nil), "moc.cloudagent.compute.AvailabilitySetResponse") proto.RegisterType((*VirtualMachineReference)(nil), "moc.cloudagent.compute.VirtualMachineReference") + proto.RegisterType((*AvailabilitySetPrecheckRequest)(nil), "moc.cloudagent.compute.AvailabilitySetPrecheckRequest") + proto.RegisterType((*AvailabilitySetPrecheckResponse)(nil), "moc.cloudagent.compute.AvailabilitySetPrecheckResponse") proto.RegisterType((*AvailabilitySet)(nil), "moc.cloudagent.compute.AvailabilitySet") } @@ -292,39 +382,42 @@ func init() { } var fileDescriptor_f2024bad12ef389f = []byte{ - // 508 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x93, 0xcf, 0x6e, 0xd3, 0x40, - 0x10, 0xc6, 0x71, 0x9a, 0x04, 0xb2, 0x81, 0x14, 0xad, 0xaa, 0xc6, 0x8a, 0x00, 0x45, 0x06, 0x89, - 0x9c, 0x6c, 0x11, 0x38, 0x71, 0x6b, 0xf9, 0x23, 0x71, 0x00, 0x24, 0xa7, 0xaa, 0x04, 0x97, 0x6a, - 0xe3, 0x4c, 0xdc, 0x55, 0x77, 0x77, 0x96, 0xfd, 0x13, 0x54, 0xae, 0x3c, 0x0a, 0x2f, 0xc1, 0x73, - 0xf0, 0x44, 0x28, 0xeb, 0xd0, 0x24, 0x2e, 0x91, 0x7a, 0xe9, 0xc9, 0xf6, 0x7c, 0xdf, 0xfc, 0x76, - 0xfc, 0x79, 0x4c, 0x9e, 0x49, 0x2c, 0xce, 0x0a, 0x81, 0x7e, 0xc6, 0x4a, 0x50, 0xee, 0x8c, 0x2d, - 0x18, 0x17, 0x6c, 0xca, 0x05, 0x77, 0x97, 0x16, 0x5c, 0xaa, 0x0d, 0x3a, 0xa4, 0x87, 0x12, 0x8b, - 0x74, 0xed, 0x4a, 0x0b, 0x94, 0xda, 0x3b, 0x18, 0x3c, 0x29, 0x11, 0x4b, 0x01, 0x59, 0x70, 0x4d, - 0xfd, 0x3c, 0xfb, 0x6e, 0x98, 0xd6, 0x60, 0x6c, 0xd5, 0x37, 0xe8, 0x07, 0x3a, 0x4a, 0x89, 0x6a, - 0x75, 0xa9, 0x84, 0xe4, 0x57, 0x44, 0x0e, 0x8f, 0x36, 0x8e, 0x9a, 0x80, 0xcb, 0xe1, 0x9b, 0x07, - 0xeb, 0xe8, 0x84, 0x3c, 0xac, 0x29, 0x36, 0x8e, 0x86, 0x7b, 0xa3, 0xee, 0xf8, 0x79, 0xfa, 0xff, - 0x31, 0xd2, 0x3a, 0xe9, 0x1a, 0x80, 0xbe, 0x22, 0x0f, 0x3e, 0x6b, 0x30, 0xcc, 0x71, 0x54, 0x27, - 0x97, 0x1a, 0xe2, 0xc6, 0x30, 0x1a, 0xf5, 0xc6, 0xbd, 0x40, 0xbc, 0x52, 0xf2, 0x6d, 0x53, 0xf2, - 0x3b, 0x22, 0xfd, 0x6b, 0x53, 0x5a, 0x8d, 0xca, 0xc2, 0xed, 0x8c, 0x39, 0x26, 0xed, 0x1c, 0xac, - 0x17, 0x2e, 0xcc, 0xd7, 0x1d, 0x0f, 0xd2, 0x2a, 0xe0, 0xf4, 0x5f, 0xc0, 0xe9, 0x31, 0xa2, 0x38, - 0x65, 0xc2, 0x43, 0xbe, 0x72, 0xd2, 0x03, 0xd2, 0x7a, 0x67, 0x0c, 0x9a, 0x78, 0x6f, 0x18, 0x8d, - 0x3a, 0x79, 0xf5, 0x90, 0x20, 0xe9, 0x9f, 0x72, 0xe3, 0x3c, 0x13, 0x1f, 0x59, 0x71, 0xce, 0x15, - 0xe4, 0x30, 0x07, 0x03, 0xaa, 0x00, 0xfa, 0x88, 0x74, 0x4a, 0x83, 0x5e, 0x7f, 0x62, 0x12, 0xe2, - 0x28, 0x34, 0xad, 0x0b, 0x94, 0x92, 0xa6, 0x5a, 0x0a, 0x8d, 0x20, 0x84, 0x7b, 0x9a, 0x90, 0xfb, - 0x06, 0x98, 0xe0, 0x3f, 0x60, 0x16, 0x9a, 0xaa, 0x93, 0xb6, 0x6a, 0xc9, 0x9f, 0x06, 0xd9, 0xaf, - 0xbd, 0xcf, 0x15, 0x2b, 0xda, 0x60, 0xf5, 0x48, 0x83, 0xcf, 0x56, 0xf4, 0x06, 0x9f, 0x2d, 0xd9, - 0x02, 0x8b, 0x90, 0xf9, 0x26, 0x7b, 0xb3, 0xb6, 0x3d, 0x71, 0xb3, 0x3e, 0xf1, 0x53, 0xd2, 0xb6, - 0x8e, 0x39, 0x6f, 0xe3, 0x56, 0x08, 0xad, 0x1b, 0xf2, 0x9f, 0x84, 0x52, 0xbe, 0x92, 0xe8, 0x63, - 0xd2, 0x74, 0xac, 0xb4, 0x71, 0x3b, 0x58, 0x3a, 0xc1, 0x72, 0xc2, 0x4a, 0x9b, 0x87, 0x32, 0x7d, - 0x4d, 0x62, 0x2d, 0x98, 0x9b, 0xa3, 0x91, 0xef, 0x99, 0x17, 0xee, 0x2d, 0x4a, 0xc6, 0xd5, 0x1b, - 0xf4, 0xca, 0xc5, 0x77, 0x87, 0xd1, 0xa8, 0x95, 0xef, 0xd4, 0xe9, 0x17, 0xb2, 0xbf, 0xd8, 0x8a, - 0xda, 0xc6, 0xf7, 0xc2, 0x22, 0x64, 0xbb, 0x16, 0x61, 0xc7, 0x97, 0xc9, 0xeb, 0x9c, 0xf1, 0xcf, - 0x88, 0x1c, 0xd4, 0x42, 0x3d, 0x5a, 0x92, 0xe8, 0x05, 0x69, 0x7f, 0x50, 0x0b, 0xbc, 0x00, 0x9a, - 0xde, 0x74, 0xdb, 0xaa, 0xdf, 0x6b, 0x90, 0xdd, 0xd8, 0x5f, 0x2d, 0x7a, 0x72, 0xe7, 0xf8, 0xc5, - 0xd7, 0xac, 0xe4, 0xee, 0xdc, 0x4f, 0x97, 0xde, 0x4c, 0xf2, 0xc2, 0xa0, 0xc5, 0xb9, 0xcb, 0x24, - 0x16, 0x99, 0xd1, 0x45, 0xb6, 0x86, 0x65, 0x2b, 0xd8, 0xb4, 0x1d, 0x16, 0xf6, 0xe5, 0xdf, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x47, 0xd9, 0x62, 0xa3, 0x5f, 0x04, 0x00, 0x00, + // 560 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x52, 0x4d, 0x6f, 0xd3, 0x40, + 0x10, 0xc5, 0x6e, 0x1b, 0xda, 0x2d, 0xb4, 0x68, 0x55, 0x35, 0x56, 0x04, 0x25, 0x32, 0x48, 0xe4, + 0x64, 0x8b, 0x80, 0x40, 0xe2, 0xd6, 0xf2, 0x21, 0x71, 0xe0, 0x43, 0x4e, 0x55, 0x09, 0x2e, 0xd5, + 0x66, 0x33, 0x71, 0x56, 0x59, 0x7b, 0xcc, 0x7e, 0x04, 0x15, 0x89, 0x0b, 0x7f, 0x85, 0x3f, 0xc1, + 0xef, 0xe0, 0x17, 0xa1, 0xac, 0x9d, 0x26, 0x71, 0x89, 0x94, 0x1e, 0x7a, 0x4a, 0x3c, 0xf3, 0xde, + 0x9b, 0xd9, 0x37, 0x8f, 0x3c, 0xce, 0x90, 0x9f, 0x73, 0x89, 0x76, 0xc0, 0x52, 0xc8, 0xcd, 0x39, + 0x9b, 0x30, 0x21, 0x59, 0x5f, 0x48, 0x61, 0x2e, 0x34, 0x98, 0xa8, 0x50, 0x68, 0x90, 0x1e, 0x66, + 0xc8, 0xa3, 0x39, 0x2a, 0xe2, 0x98, 0x15, 0xd6, 0x40, 0xeb, 0x28, 0x45, 0x4c, 0x25, 0xc4, 0x0e, + 0xd5, 0xb7, 0xc3, 0xf8, 0xbb, 0x62, 0x45, 0x01, 0x4a, 0x97, 0xbc, 0x56, 0xd3, 0xa9, 0x63, 0x96, + 0x61, 0x5e, 0xfd, 0x94, 0x8d, 0xf0, 0xb7, 0x47, 0x0e, 0x8f, 0x17, 0x46, 0xf5, 0xc0, 0x24, 0xf0, + 0xcd, 0x82, 0x36, 0xb4, 0x47, 0xee, 0xd5, 0x3a, 0x3a, 0xf0, 0xda, 0x1b, 0x9d, 0xdd, 0xee, 0x93, + 0xe8, 0xff, 0x6b, 0x44, 0x75, 0xa5, 0x2b, 0x02, 0xf4, 0x39, 0xb9, 0xfb, 0xa9, 0x00, 0xc5, 0x8c, + 0xc0, 0xfc, 0xf4, 0xa2, 0x80, 0xc0, 0x6f, 0x7b, 0x9d, 0xbd, 0xee, 0x9e, 0x53, 0xbc, 0xec, 0x24, + 0xcb, 0xa0, 0xf0, 0x8f, 0x47, 0x9a, 0x57, 0xb6, 0xd4, 0x05, 0xe6, 0x1a, 0x6e, 0x66, 0xcd, 0x2e, + 0x69, 0x24, 0xa0, 0xad, 0x34, 0x6e, 0xbf, 0xdd, 0x6e, 0x2b, 0x2a, 0x0d, 0x8e, 0x66, 0x06, 0x47, + 0x27, 0x88, 0xf2, 0x8c, 0x49, 0x0b, 0x49, 0x85, 0xa4, 0x07, 0x64, 0xeb, 0xad, 0x52, 0xa8, 0x82, + 0x8d, 0xb6, 0xd7, 0xd9, 0x49, 0xca, 0x8f, 0x10, 0x49, 0xf3, 0x4c, 0x28, 0x63, 0x99, 0xfc, 0xc0, + 0xf8, 0x48, 0xe4, 0x90, 0xc0, 0x10, 0x14, 0xe4, 0x1c, 0xe8, 0x7d, 0xb2, 0x93, 0x2a, 0xb4, 0xc5, + 0x47, 0x96, 0x41, 0xe0, 0x39, 0xd2, 0xbc, 0x40, 0x29, 0xd9, 0xcc, 0xa7, 0x0d, 0xdf, 0x35, 0xdc, + 0x7f, 0x1a, 0x92, 0x3b, 0x0a, 0x98, 0x14, 0x3f, 0x60, 0xe0, 0x48, 0xe5, 0xa4, 0xa5, 0x5a, 0x68, + 0xc9, 0x51, 0xed, 0x39, 0x9f, 0x15, 0xf0, 0x11, 0xf0, 0xf1, 0x4d, 0x1e, 0x36, 0x1c, 0x93, 0x87, + 0x2b, 0xc7, 0x56, 0x97, 0x9a, 0x9b, 0xea, 0x5d, 0xdf, 0x54, 0x7f, 0xd1, 0xd4, 0xbf, 0x3e, 0xd9, + 0xaf, 0x4d, 0xbb, 0xf4, 0xcb, 0x5b, 0xf0, 0x6b, 0x8f, 0xf8, 0x62, 0x50, 0x51, 0x7d, 0x31, 0x98, + 0xfa, 0x27, 0x91, 0xbb, 0x5c, 0x2d, 0xfa, 0xb7, 0x58, 0x5b, 0xbe, 0xca, 0x66, 0xfd, 0x2a, 0x8f, + 0x48, 0x43, 0x1b, 0x66, 0xac, 0x0e, 0xb6, 0xdc, 0x1b, 0x76, 0x9d, 0x63, 0x3d, 0x57, 0x4a, 0xaa, + 0x16, 0x7d, 0x40, 0x36, 0x0d, 0x4b, 0x75, 0xd0, 0x70, 0x90, 0x1d, 0x07, 0x39, 0x65, 0xa9, 0x4e, + 0x5c, 0x99, 0xbe, 0x22, 0x41, 0x21, 0x99, 0x19, 0xa2, 0xca, 0xde, 0x31, 0x2b, 0xcd, 0x1b, 0xcc, + 0x98, 0xc8, 0x5f, 0xa3, 0xcd, 0x4d, 0x70, 0xbb, 0xed, 0x75, 0xb6, 0x92, 0x95, 0x7d, 0xfa, 0x85, + 0xec, 0x4f, 0x96, 0xe2, 0xa4, 0x83, 0x6d, 0x77, 0xba, 0x78, 0xd5, 0xe9, 0x56, 0xa4, 0x2f, 0xa9, + 0xeb, 0x74, 0x7f, 0xf9, 0xe4, 0xa0, 0x66, 0xea, 0xf1, 0x54, 0x89, 0x8e, 0x49, 0xe3, 0x7d, 0x3e, + 0xc1, 0x31, 0xd0, 0x68, 0xdd, 0x7c, 0x94, 0x49, 0x6b, 0xc5, 0x6b, 0xe3, 0xcb, 0x88, 0x84, 0xb7, + 0xe8, 0x4f, 0xb2, 0x3d, 0x0b, 0x0e, 0x7d, 0xb1, 0x26, 0xbd, 0x16, 0xf0, 0xd6, 0xcb, 0x6b, 0xf3, + 0x66, 0xe3, 0x4f, 0x9e, 0x7e, 0x8d, 0x53, 0x61, 0x46, 0xb6, 0x3f, 0xe5, 0xc4, 0x99, 0xe0, 0x0a, + 0x35, 0x0e, 0x4d, 0x9c, 0x21, 0x8f, 0x55, 0xc1, 0xe3, 0xb9, 0x68, 0x5c, 0x89, 0xf6, 0x1b, 0x2e, + 0xbe, 0xcf, 0xfe, 0x05, 0x00, 0x00, 0xff, 0xff, 0x1b, 0x14, 0x16, 0x9f, 0xc2, 0x05, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -340,6 +433,8 @@ const _ = grpc.SupportPackageIsVersion4 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type AvailabilitySetAgentClient interface { Invoke(ctx context.Context, in *AvailabilitySetRequest, opts ...grpc.CallOption) (*AvailabilitySetResponse, error) + // Prechecks whether the system is able to create specified availability set (but does not actually create them). + Precheck(ctx context.Context, in *AvailabilitySetPrecheckRequest, opts ...grpc.CallOption) (*AvailabilitySetPrecheckResponse, error) } type availabilitySetAgentClient struct { @@ -359,9 +454,20 @@ func (c *availabilitySetAgentClient) Invoke(ctx context.Context, in *Availabilit return out, nil } +func (c *availabilitySetAgentClient) Precheck(ctx context.Context, in *AvailabilitySetPrecheckRequest, opts ...grpc.CallOption) (*AvailabilitySetPrecheckResponse, error) { + out := new(AvailabilitySetPrecheckResponse) + err := c.cc.Invoke(ctx, "/moc.cloudagent.compute.AvailabilitySetAgent/Precheck", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // AvailabilitySetAgentServer is the server API for AvailabilitySetAgent service. type AvailabilitySetAgentServer interface { Invoke(context.Context, *AvailabilitySetRequest) (*AvailabilitySetResponse, error) + // Prechecks whether the system is able to create specified availability set (but does not actually create them). + Precheck(context.Context, *AvailabilitySetPrecheckRequest) (*AvailabilitySetPrecheckResponse, error) } // UnimplementedAvailabilitySetAgentServer can be embedded to have forward compatible implementations. @@ -371,6 +477,9 @@ type UnimplementedAvailabilitySetAgentServer struct { func (*UnimplementedAvailabilitySetAgentServer) Invoke(ctx context.Context, req *AvailabilitySetRequest) (*AvailabilitySetResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Invoke not implemented") } +func (*UnimplementedAvailabilitySetAgentServer) Precheck(ctx context.Context, req *AvailabilitySetPrecheckRequest) (*AvailabilitySetPrecheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Precheck not implemented") +} func RegisterAvailabilitySetAgentServer(s *grpc.Server, srv AvailabilitySetAgentServer) { s.RegisterService(&_AvailabilitySetAgent_serviceDesc, srv) @@ -394,6 +503,24 @@ func _AvailabilitySetAgent_Invoke_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _AvailabilitySetAgent_Precheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AvailabilitySetPrecheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AvailabilitySetAgentServer).Precheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/moc.cloudagent.compute.AvailabilitySetAgent/Precheck", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AvailabilitySetAgentServer).Precheck(ctx, req.(*AvailabilitySetPrecheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _AvailabilitySetAgent_serviceDesc = grpc.ServiceDesc{ ServiceName: "moc.cloudagent.compute.AvailabilitySetAgent", HandlerType: (*AvailabilitySetAgentServer)(nil), @@ -402,6 +529,10 @@ var _AvailabilitySetAgent_serviceDesc = grpc.ServiceDesc{ MethodName: "Invoke", Handler: _AvailabilitySetAgent_Invoke_Handler, }, + { + MethodName: "Precheck", + Handler: _AvailabilitySetAgent_Precheck_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "moc_cloudagent_availabilityset.proto", diff --git a/rpc/cloudagent/compute/moc_cloudagent_galleryimage.pb.go b/rpc/cloudagent/compute/moc_cloudagent_galleryimage.pb.go index b8dcaa6..038f5b4 100644 --- a/rpc/cloudagent/compute/moc_cloudagent_galleryimage.pb.go +++ b/rpc/cloudagent/compute/moc_cloudagent_galleryimage.pb.go @@ -156,6 +156,94 @@ func (m *GalleryImageResponse) GetError() string { return "" } +type GalleryImagePrecheckRequest struct { + GalleryImages []*GalleryImage `protobuf:"bytes,1,rep,name=GalleryImages,proto3" json:"GalleryImages,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GalleryImagePrecheckRequest) Reset() { *m = GalleryImagePrecheckRequest{} } +func (m *GalleryImagePrecheckRequest) String() string { return proto.CompactTextString(m) } +func (*GalleryImagePrecheckRequest) ProtoMessage() {} +func (*GalleryImagePrecheckRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_4b5fad170433da5e, []int{2} +} + +func (m *GalleryImagePrecheckRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GalleryImagePrecheckRequest.Unmarshal(m, b) +} +func (m *GalleryImagePrecheckRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GalleryImagePrecheckRequest.Marshal(b, m, deterministic) +} +func (m *GalleryImagePrecheckRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GalleryImagePrecheckRequest.Merge(m, src) +} +func (m *GalleryImagePrecheckRequest) XXX_Size() int { + return xxx_messageInfo_GalleryImagePrecheckRequest.Size(m) +} +func (m *GalleryImagePrecheckRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GalleryImagePrecheckRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GalleryImagePrecheckRequest proto.InternalMessageInfo + +func (m *GalleryImagePrecheckRequest) GetGalleryImages() []*GalleryImage { + if m != nil { + return m.GalleryImages + } + return nil +} + +type GalleryImagePrecheckResponse struct { + // The precheck result: true if the precheck criteria is passed; otherwise, false + Result *wrappers.BoolValue `protobuf:"bytes,1,opt,name=Result,proto3" json:"Result,omitempty"` + // The error message if the precheck is not passed; otherwise, empty string + Error string `protobuf:"bytes,2,opt,name=Error,proto3" json:"Error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GalleryImagePrecheckResponse) Reset() { *m = GalleryImagePrecheckResponse{} } +func (m *GalleryImagePrecheckResponse) String() string { return proto.CompactTextString(m) } +func (*GalleryImagePrecheckResponse) ProtoMessage() {} +func (*GalleryImagePrecheckResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_4b5fad170433da5e, []int{3} +} + +func (m *GalleryImagePrecheckResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GalleryImagePrecheckResponse.Unmarshal(m, b) +} +func (m *GalleryImagePrecheckResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GalleryImagePrecheckResponse.Marshal(b, m, deterministic) +} +func (m *GalleryImagePrecheckResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GalleryImagePrecheckResponse.Merge(m, src) +} +func (m *GalleryImagePrecheckResponse) XXX_Size() int { + return xxx_messageInfo_GalleryImagePrecheckResponse.Size(m) +} +func (m *GalleryImagePrecheckResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GalleryImagePrecheckResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GalleryImagePrecheckResponse proto.InternalMessageInfo + +func (m *GalleryImagePrecheckResponse) GetResult() *wrappers.BoolValue { + if m != nil { + return m.Result + } + return nil +} + +func (m *GalleryImagePrecheckResponse) GetError() string { + if m != nil { + return m.Error + } + return "" +} + type SFSImageProperties struct { CatalogName string `protobuf:"bytes,1,opt,name=catalogName,proto3" json:"catalogName,omitempty"` Audience string `protobuf:"bytes,2,opt,name=audience,proto3" json:"audience,omitempty"` @@ -172,7 +260,7 @@ func (m *SFSImageProperties) Reset() { *m = SFSImageProperties{} } func (m *SFSImageProperties) String() string { return proto.CompactTextString(m) } func (*SFSImageProperties) ProtoMessage() {} func (*SFSImageProperties) Descriptor() ([]byte, []int) { - return fileDescriptor_4b5fad170433da5e, []int{2} + return fileDescriptor_4b5fad170433da5e, []int{4} } func (m *SFSImageProperties) XXX_Unmarshal(b []byte) error { @@ -246,7 +334,7 @@ func (m *LocalImageProperties) Reset() { *m = LocalImageProperties{} } func (m *LocalImageProperties) String() string { return proto.CompactTextString(m) } func (*LocalImageProperties) ProtoMessage() {} func (*LocalImageProperties) Descriptor() ([]byte, []int) { - return fileDescriptor_4b5fad170433da5e, []int{3} + return fileDescriptor_4b5fad170433da5e, []int{5} } func (m *LocalImageProperties) XXX_Unmarshal(b []byte) error { @@ -285,7 +373,7 @@ func (m *CloneImageProperties) Reset() { *m = CloneImageProperties{} } func (m *CloneImageProperties) String() string { return proto.CompactTextString(m) } func (*CloneImageProperties) ProtoMessage() {} func (*CloneImageProperties) Descriptor() ([]byte, []int) { - return fileDescriptor_4b5fad170433da5e, []int{4} + return fileDescriptor_4b5fad170433da5e, []int{6} } func (m *CloneImageProperties) XXX_Unmarshal(b []byte) error { @@ -324,7 +412,7 @@ func (m *HttpImageProperties) Reset() { *m = HttpImageProperties{} } func (m *HttpImageProperties) String() string { return proto.CompactTextString(m) } func (*HttpImageProperties) ProtoMessage() {} func (*HttpImageProperties) Descriptor() ([]byte, []int) { - return fileDescriptor_4b5fad170433da5e, []int{5} + return fileDescriptor_4b5fad170433da5e, []int{7} } func (m *HttpImageProperties) XXX_Unmarshal(b []byte) error { @@ -364,7 +452,7 @@ func (m *AzureGalleryImageProperties) Reset() { *m = AzureGalleryImagePr func (m *AzureGalleryImageProperties) String() string { return proto.CompactTextString(m) } func (*AzureGalleryImageProperties) ProtoMessage() {} func (*AzureGalleryImageProperties) Descriptor() ([]byte, []int) { - return fileDescriptor_4b5fad170433da5e, []int{6} + return fileDescriptor_4b5fad170433da5e, []int{8} } func (m *AzureGalleryImageProperties) XXX_Unmarshal(b []byte) error { @@ -426,7 +514,7 @@ func (m *GalleryImage) Reset() { *m = GalleryImage{} } func (m *GalleryImage) String() string { return proto.CompactTextString(m) } func (*GalleryImage) ProtoMessage() {} func (*GalleryImage) Descriptor() ([]byte, []int) { - return fileDescriptor_4b5fad170433da5e, []int{7} + return fileDescriptor_4b5fad170433da5e, []int{9} } func (m *GalleryImage) XXX_Unmarshal(b []byte) error { @@ -556,6 +644,8 @@ func init() { proto.RegisterEnum("moc.cloudagent.compute.GalleryImageOSType", GalleryImageOSType_name, GalleryImageOSType_value) proto.RegisterType((*GalleryImageRequest)(nil), "moc.cloudagent.compute.GalleryImageRequest") proto.RegisterType((*GalleryImageResponse)(nil), "moc.cloudagent.compute.GalleryImageResponse") + proto.RegisterType((*GalleryImagePrecheckRequest)(nil), "moc.cloudagent.compute.GalleryImagePrecheckRequest") + proto.RegisterType((*GalleryImagePrecheckResponse)(nil), "moc.cloudagent.compute.GalleryImagePrecheckResponse") proto.RegisterType((*SFSImageProperties)(nil), "moc.cloudagent.compute.SFSImageProperties") proto.RegisterType((*LocalImageProperties)(nil), "moc.cloudagent.compute.LocalImageProperties") proto.RegisterType((*CloneImageProperties)(nil), "moc.cloudagent.compute.CloneImageProperties") @@ -567,57 +657,60 @@ func init() { func init() { proto.RegisterFile("moc_cloudagent_galleryimage.proto", fileDescriptor_4b5fad170433da5e) } var fileDescriptor_4b5fad170433da5e = []byte{ - // 796 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0xc1, 0x92, 0xdb, 0x44, - 0x10, 0x8d, 0xbc, 0x5e, 0x3b, 0x6e, 0xad, 0x8d, 0x99, 0x35, 0xa0, 0x32, 0x81, 0x32, 0x62, 0x8b, - 0x72, 0x05, 0x4a, 0x0a, 0x86, 0x03, 0x1c, 0x77, 0xb3, 0x90, 0x38, 0xb8, 0xec, 0xd4, 0x38, 0xce, - 0x52, 0x5c, 0x52, 0x63, 0x79, 0x2c, 0xab, 0x22, 0x69, 0xc4, 0xcc, 0x28, 0xd4, 0xee, 0x17, 0xf0, - 0x07, 0xfc, 0x04, 0x57, 0xfe, 0x82, 0x2b, 0xff, 0x43, 0xa9, 0x25, 0xaf, 0x25, 0x7b, 0x0f, 0x7b, - 0xc8, 0xc9, 0x9a, 0x37, 0xfd, 0x5e, 0x77, 0xbf, 0x6e, 0x0f, 0x7c, 0x11, 0x09, 0xef, 0x8d, 0x17, - 0x8a, 0x74, 0xc5, 0x7c, 0x1e, 0xeb, 0x37, 0x3e, 0x0b, 0x43, 0x2e, 0xaf, 0x83, 0x88, 0xf9, 0xdc, - 0x49, 0xa4, 0xd0, 0x82, 0x7c, 0x1c, 0x09, 0xcf, 0xd9, 0x85, 0x38, 0x9e, 0x88, 0x92, 0x54, 0xf3, - 0xfe, 0xe7, 0xbe, 0x10, 0x7e, 0xc8, 0x5d, 0x8c, 0x5a, 0xa6, 0x6b, 0xf7, 0x0f, 0xc9, 0x92, 0x84, - 0x4b, 0x95, 0xf3, 0xfa, 0x9f, 0xa0, 0xb4, 0x88, 0x22, 0x11, 0x17, 0x3f, 0xf9, 0x85, 0xfd, 0x97, - 0x01, 0xa7, 0xcf, 0xf2, 0x3c, 0xe3, 0x2c, 0x0f, 0xe5, 0xbf, 0xa7, 0x5c, 0x69, 0xf2, 0x02, 0xda, - 0x65, 0x58, 0x59, 0xc6, 0xe0, 0x68, 0x68, 0x8e, 0xce, 0x9c, 0xbb, 0x0b, 0x70, 0x2a, 0x1a, 0x55, - 0x2a, 0xf9, 0x1e, 0xda, 0xb3, 0x84, 0x4b, 0xa6, 0x03, 0x11, 0xbf, 0xba, 0x4e, 0xb8, 0x55, 0x1b, - 0x18, 0xc3, 0xce, 0xa8, 0x83, 0x5a, 0xb7, 0x37, 0xb4, 0x1a, 0x64, 0xff, 0x6d, 0x40, 0xaf, 0x5a, - 0x99, 0x4a, 0x44, 0xac, 0xf8, 0x7b, 0x2d, 0x6d, 0x04, 0x0d, 0xca, 0x55, 0x1a, 0x6a, 0xac, 0xc9, - 0x1c, 0xf5, 0x9d, 0xdc, 0x48, 0x67, 0x6b, 0xa4, 0x73, 0x21, 0x44, 0xf8, 0x9a, 0x85, 0x29, 0xa7, - 0x45, 0x24, 0xe9, 0xc1, 0xf1, 0x4f, 0x52, 0x0a, 0x69, 0x1d, 0x0d, 0x8c, 0x61, 0x8b, 0xe6, 0x07, - 0xfb, 0x5f, 0x03, 0xc8, 0xfc, 0xe7, 0x39, 0xea, 0xbe, 0x94, 0x22, 0xe1, 0x52, 0x07, 0x5c, 0x91, - 0x01, 0x98, 0x1e, 0xd3, 0x2c, 0x14, 0xfe, 0x94, 0x45, 0xdc, 0x32, 0x90, 0x52, 0x86, 0x48, 0x1f, - 0x1e, 0xb2, 0x74, 0x15, 0xf0, 0xd8, 0xcb, 0x8d, 0x69, 0xd1, 0xdb, 0x33, 0xb1, 0xa0, 0xf9, 0x8e, - 0x4b, 0x15, 0x88, 0xb8, 0x48, 0xb6, 0x3d, 0x66, 0xba, 0x92, 0x87, 0x9c, 0x29, 0x8e, 0xba, 0xf5, - 0x5c, 0xb7, 0x04, 0x91, 0xaf, 0xa0, 0xb3, 0xe2, 0x4a, 0x07, 0x31, 0x5a, 0x7a, 0x19, 0x48, 0xeb, - 0x18, 0x83, 0xf6, 0xd0, 0xac, 0x9d, 0x84, 0x49, 0xad, 0xac, 0xc6, 0xc0, 0x18, 0xb6, 0x69, 0x7e, - 0xb0, 0x9f, 0x40, 0x6f, 0x22, 0x3c, 0x16, 0xee, 0xf7, 0x63, 0x41, 0x3d, 0x61, 0x7a, 0x93, 0x37, - 0x72, 0x51, 0xff, 0xf3, 0x1f, 0xcb, 0xa0, 0x88, 0xd8, 0x3f, 0x40, 0xef, 0x69, 0x28, 0x62, 0x7e, - 0x97, 0x03, 0x19, 0x3e, 0x17, 0xa9, 0xf4, 0x76, 0x0e, 0xec, 0x20, 0xdb, 0x85, 0xd3, 0xe7, 0x5a, - 0x27, 0x87, 0xa9, 0x9a, 0x1b, 0xad, 0x93, 0x05, 0x9d, 0x14, 0xa4, 0xed, 0xd1, 0x5e, 0xc0, 0xa7, - 0xe7, 0x37, 0xa9, 0xe4, 0xe5, 0x59, 0x96, 0x88, 0x8f, 0xa0, 0xa1, 0x98, 0x5a, 0xd0, 0x71, 0xa5, - 0xca, 0x02, 0x2b, 0x7b, 0x5a, 0xab, 0x78, 0x6a, 0xff, 0x57, 0x87, 0x93, 0xb2, 0x24, 0x21, 0x50, - 0x8f, 0x77, 0x53, 0xc3, 0x6f, 0xd2, 0x81, 0x5a, 0xb0, 0x2a, 0x98, 0xb5, 0x60, 0x45, 0x26, 0x60, - 0xe2, 0x1f, 0x74, 0x36, 0xc7, 0xd5, 0x3e, 0xc2, 0xd5, 0x7e, 0x7c, 0x9f, 0x5d, 0xcc, 0x19, 0xb4, - 0x4c, 0xbf, 0xb5, 0xb7, 0xbe, 0x6f, 0x2f, 0xf9, 0x12, 0x1a, 0x4a, 0x33, 0x9d, 0x2a, 0x1c, 0xa3, - 0x39, 0x32, 0x31, 0xc5, 0x1c, 0x21, 0x5a, 0x5c, 0x11, 0x1b, 0x4e, 0x42, 0xe1, 0xe1, 0x68, 0x71, - 0x2d, 0x1a, 0x58, 0x66, 0x05, 0x23, 0x8f, 0xa0, 0x95, 0xa4, 0xcb, 0x30, 0x50, 0x1b, 0x2e, 0xad, - 0x26, 0x06, 0xec, 0x00, 0xd2, 0x85, 0x23, 0xf5, 0x36, 0xb5, 0x1e, 0x22, 0x9e, 0x7d, 0x66, 0xfb, - 0x21, 0xd6, 0x6b, 0x2e, 0xad, 0x56, 0xbe, 0xee, 0x78, 0x20, 0x67, 0xd0, 0xf6, 0x44, 0xac, 0x59, - 0x10, 0x73, 0x89, 0xa9, 0x00, 0x6f, 0xab, 0x20, 0x39, 0x03, 0x50, 0x38, 0xe3, 0x97, 0x59, 0x53, - 0x66, 0xa9, 0xa9, 0x12, 0x4e, 0x3e, 0x83, 0xba, 0x66, 0xbe, 0xb2, 0x4e, 0xb0, 0xb1, 0x16, 0x36, - 0xf6, 0x8a, 0xf9, 0x8a, 0x22, 0x4c, 0x9e, 0x6c, 0x45, 0xd0, 0xe0, 0x36, 0x1a, 0xdc, 0xc5, 0x20, - 0xb4, 0x31, 0x5f, 0x22, 0x5a, 0x8a, 0x21, 0xe7, 0xd0, 0xdd, 0x5c, 0x27, 0x5c, 0xbe, 0x7e, 0xc6, - 0xe3, 0xe2, 0x49, 0xb1, 0x3a, 0xc8, 0xfb, 0x08, 0x79, 0xcf, 0xf7, 0x2e, 0xe9, 0x41, 0x38, 0x79, - 0x01, 0xa7, 0x38, 0xbe, 0x71, 0x1c, 0xe8, 0x4b, 0xa6, 0x59, 0xb1, 0xbd, 0x1f, 0xa0, 0x8a, 0x85, - 0x2a, 0x4f, 0x0f, 0xef, 0xe9, 0x5d, 0xa4, 0xc7, 0x3f, 0x02, 0x39, 0x9c, 0x3b, 0x31, 0xa1, 0xb9, - 0x98, 0xfe, 0x32, 0x9d, 0x5d, 0x4d, 0xbb, 0x0f, 0x48, 0x0b, 0x8e, 0x27, 0xe3, 0xe9, 0xe2, 0xd7, - 0xae, 0x91, 0xe1, 0x57, 0xe3, 0xe9, 0xe5, 0xec, 0x6a, 0xde, 0xad, 0x8d, 0x6e, 0xe0, 0xc3, 0x32, - 0xf5, 0x3c, 0x5b, 0x26, 0xc2, 0xa1, 0x31, 0x8e, 0xdf, 0x89, 0xb7, 0x9c, 0x7c, 0x7d, 0xaf, 0x37, - 0x2f, 0x7f, 0xd2, 0xfb, 0xdf, 0xdc, 0x2f, 0x38, 0x7f, 0x65, 0xed, 0x07, 0x17, 0xdf, 0xfe, 0xe6, - 0xfa, 0x81, 0xde, 0xa4, 0xcb, 0x2c, 0xd0, 0x8d, 0x02, 0x4f, 0x0a, 0x25, 0xd6, 0xda, 0x8d, 0x84, - 0xe7, 0xca, 0xc4, 0x73, 0x77, 0x4a, 0x6e, 0xa1, 0xb4, 0x6c, 0xe0, 0xb3, 0xf9, 0xdd, 0xff, 0x01, - 0x00, 0x00, 0xff, 0xff, 0x60, 0x7a, 0x88, 0x53, 0xca, 0x06, 0x00, 0x00, + // 847 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0xd1, 0x72, 0xdb, 0x44, + 0x14, 0xad, 0x1c, 0xc7, 0x89, 0xaf, 0x63, 0x63, 0x36, 0x01, 0x34, 0x6e, 0x60, 0x8c, 0xc8, 0x30, + 0x99, 0xc2, 0x58, 0xc5, 0xed, 0x03, 0x3c, 0x26, 0x0d, 0xb4, 0x2e, 0x19, 0xa7, 0xb3, 0xae, 0x1b, + 0x86, 0x97, 0xce, 0x46, 0xbe, 0x91, 0x35, 0x91, 0xb4, 0x62, 0x77, 0xd5, 0x4e, 0xf8, 0x02, 0xfe, + 0x80, 0x9f, 0xe0, 0x95, 0xbf, 0xe0, 0x95, 0x2f, 0xe1, 0x07, 0x18, 0x5d, 0xc9, 0xb1, 0xe4, 0xe4, + 0xc1, 0x99, 0x81, 0x27, 0x7b, 0xcf, 0xde, 0x73, 0xee, 0xde, 0x73, 0xaf, 0x2e, 0x7c, 0x1e, 0x49, + 0xef, 0xad, 0x17, 0xca, 0x74, 0x26, 0x7c, 0x8c, 0xcd, 0x5b, 0x5f, 0x84, 0x21, 0xaa, 0xeb, 0x20, + 0x12, 0x3e, 0x0e, 0x12, 0x25, 0x8d, 0x64, 0x1f, 0x47, 0xd2, 0x1b, 0x2c, 0x43, 0x06, 0x9e, 0x8c, + 0x92, 0xd4, 0x60, 0xef, 0x33, 0x5f, 0x4a, 0x3f, 0x44, 0x97, 0xa2, 0x2e, 0xd2, 0x4b, 0xf7, 0xbd, + 0x12, 0x49, 0x82, 0x4a, 0xe7, 0xbc, 0xde, 0x27, 0x24, 0x2d, 0xa3, 0x48, 0xc6, 0xc5, 0x4f, 0x7e, + 0xe1, 0xfc, 0x6e, 0xc1, 0xee, 0xf3, 0x3c, 0xcf, 0x28, 0xcb, 0xc3, 0xf1, 0x97, 0x14, 0xb5, 0x61, + 0x2f, 0xa1, 0x5d, 0x86, 0xb5, 0x6d, 0xf5, 0x37, 0x0e, 0x5b, 0xc3, 0x83, 0xc1, 0xdd, 0x0f, 0x18, + 0x54, 0x34, 0xaa, 0x54, 0xf6, 0x14, 0xda, 0x67, 0x09, 0x2a, 0x61, 0x02, 0x19, 0xbf, 0xbe, 0x4e, + 0xd0, 0xae, 0xf5, 0xad, 0xc3, 0xce, 0xb0, 0x43, 0x5a, 0x37, 0x37, 0xbc, 0x1a, 0xe4, 0xfc, 0x61, + 0xc1, 0x5e, 0xf5, 0x65, 0x3a, 0x91, 0xb1, 0xc6, 0xff, 0xf4, 0x69, 0x43, 0x68, 0x70, 0xd4, 0x69, + 0x68, 0xe8, 0x4d, 0xad, 0x61, 0x6f, 0x90, 0x1b, 0x39, 0x58, 0x18, 0x39, 0x38, 0x96, 0x32, 0x7c, + 0x23, 0xc2, 0x14, 0x79, 0x11, 0xc9, 0xf6, 0x60, 0xf3, 0x7b, 0xa5, 0xa4, 0xb2, 0x37, 0xfa, 0xd6, + 0x61, 0x93, 0xe7, 0x07, 0x27, 0x80, 0x87, 0x65, 0xe9, 0x57, 0x0a, 0xbd, 0x39, 0x7a, 0x57, 0xff, + 0x83, 0x9f, 0xce, 0x1c, 0xf6, 0xef, 0x4e, 0x55, 0x18, 0xb4, 0x2c, 0xca, 0xba, 0x7f, 0x51, 0xb5, + 0x72, 0x51, 0x7f, 0x59, 0xc0, 0x26, 0x3f, 0x4c, 0x8a, 0x34, 0x32, 0x41, 0x65, 0x02, 0xd4, 0xac, + 0x0f, 0x2d, 0x4f, 0x18, 0x11, 0x4a, 0x7f, 0x2c, 0x22, 0xa4, 0x2c, 0x4d, 0x5e, 0x86, 0x58, 0x0f, + 0xb6, 0x45, 0x3a, 0x0b, 0x30, 0xf6, 0xb0, 0x50, 0xbc, 0x39, 0x33, 0x1b, 0xb6, 0xde, 0xa1, 0xd2, + 0x81, 0x8c, 0x0b, 0x07, 0x17, 0xc7, 0x4c, 0x57, 0x61, 0x88, 0x42, 0x23, 0xe9, 0xd6, 0x73, 0xdd, + 0x12, 0xc4, 0xbe, 0x84, 0xce, 0x0c, 0xb5, 0x09, 0x62, 0x9a, 0x93, 0x93, 0x40, 0xd9, 0x9b, 0x14, + 0xb4, 0x82, 0x66, 0xe5, 0x24, 0x42, 0x19, 0x6d, 0x37, 0xfa, 0xd6, 0x61, 0x9b, 0xe7, 0x07, 0xe7, + 0x31, 0xec, 0x9d, 0x4a, 0x4f, 0x84, 0xab, 0xf5, 0xd8, 0x50, 0x4f, 0x84, 0x99, 0xe7, 0x85, 0x1c, + 0xd7, 0x7f, 0xfb, 0xd3, 0xb6, 0x38, 0x21, 0xce, 0xb7, 0xb0, 0xf7, 0x2c, 0x94, 0x31, 0xde, 0xe5, + 0x40, 0x86, 0x4f, 0x64, 0xaa, 0xbc, 0xa5, 0x03, 0x4b, 0xc8, 0x71, 0x61, 0xf7, 0x85, 0x31, 0xc9, + 0xed, 0x54, 0x5b, 0x73, 0x63, 0x92, 0x29, 0x3f, 0x2d, 0x48, 0x8b, 0xa3, 0x33, 0x85, 0x87, 0x47, + 0xbf, 0xa6, 0x0a, 0xab, 0xad, 0xbd, 0x21, 0xee, 0x43, 0x43, 0x0b, 0x3d, 0xe5, 0xa3, 0xca, 0x2b, + 0x0b, 0xac, 0xec, 0x69, 0xad, 0xe2, 0xa9, 0xf3, 0x77, 0x1d, 0x76, 0xca, 0x92, 0x8c, 0x41, 0x3d, + 0x5e, 0x76, 0x8d, 0xfe, 0xb3, 0x0e, 0xd4, 0x82, 0x59, 0xc1, 0xac, 0x05, 0x33, 0x76, 0x0a, 0x2d, + 0xda, 0x3a, 0x67, 0x13, 0xfa, 0x5e, 0x37, 0xe8, 0x7b, 0x7d, 0xb4, 0xce, 0xac, 0xe6, 0x0c, 0x5e, + 0xa6, 0xdf, 0xd8, 0x5b, 0x5f, 0xb5, 0x97, 0x7d, 0x01, 0x0d, 0x6d, 0x84, 0x49, 0x35, 0xb5, 0xb1, + 0x35, 0x6c, 0x51, 0x8a, 0x09, 0x41, 0xbc, 0xb8, 0x62, 0x0e, 0xec, 0x84, 0xd2, 0xa3, 0xd6, 0xd2, + 0x58, 0x34, 0xe8, 0x99, 0x15, 0x8c, 0xed, 0x43, 0x33, 0x49, 0x2f, 0xc2, 0x40, 0xcf, 0x51, 0xd9, + 0x5b, 0x14, 0xb0, 0x04, 0x58, 0x17, 0x36, 0xf4, 0x55, 0x6a, 0x6f, 0x13, 0x9e, 0xfd, 0xcd, 0xe6, + 0x43, 0x5e, 0x5e, 0xa2, 0xb2, 0x9b, 0xf9, 0xb8, 0xd3, 0x81, 0x1d, 0x40, 0xdb, 0x93, 0xb1, 0x11, + 0x41, 0x8c, 0x8a, 0x52, 0x01, 0xdd, 0x56, 0x41, 0x76, 0x00, 0xa0, 0xa9, 0xc7, 0xaf, 0xb2, 0xa2, + 0x5a, 0xa5, 0xa2, 0x4a, 0x38, 0xfb, 0x14, 0xea, 0x46, 0xf8, 0xda, 0xde, 0xa1, 0xc2, 0x9a, 0x54, + 0xd8, 0x6b, 0xe1, 0x6b, 0x4e, 0x30, 0x7b, 0xbc, 0x10, 0x21, 0x83, 0xdb, 0x64, 0x70, 0x97, 0x82, + 0xc8, 0xc6, 0x7c, 0x88, 0x78, 0x29, 0x86, 0x1d, 0x41, 0x77, 0x7e, 0x9d, 0xa0, 0x7a, 0xf3, 0x1c, + 0xe3, 0x62, 0x4f, 0xda, 0x1d, 0xe2, 0x7d, 0x44, 0xbc, 0x17, 0x2b, 0x97, 0xfc, 0x56, 0x38, 0x7b, + 0x09, 0xbb, 0xd4, 0xbe, 0x51, 0x1c, 0x98, 0x13, 0x61, 0x44, 0x31, 0xbd, 0x1f, 0x90, 0x8a, 0x4d, + 0x2a, 0xcf, 0x6e, 0xdf, 0xf3, 0xbb, 0x48, 0x8f, 0xbe, 0x03, 0x76, 0xbb, 0xef, 0xac, 0x05, 0x5b, + 0xd3, 0xf1, 0x8f, 0xe3, 0xb3, 0xf3, 0x71, 0xf7, 0x01, 0x6b, 0xc2, 0xe6, 0xe9, 0x68, 0x3c, 0xfd, + 0xa9, 0x6b, 0x65, 0xf8, 0xf9, 0x68, 0x7c, 0x72, 0x76, 0x3e, 0xe9, 0xd6, 0x86, 0xff, 0x58, 0xf0, + 0x61, 0x99, 0x7b, 0x94, 0x4d, 0x13, 0x43, 0x68, 0x8c, 0xe2, 0x77, 0xf2, 0x0a, 0xd9, 0x57, 0x6b, + 0x2d, 0xc5, 0x7c, 0xb1, 0xf6, 0xbe, 0x5e, 0x2f, 0x38, 0x5f, 0x8d, 0xce, 0x03, 0xf6, 0x1e, 0xb6, + 0x17, 0x0b, 0x93, 0x3d, 0x59, 0x87, 0xbb, 0xb2, 0xc9, 0x7b, 0x4f, 0xef, 0x47, 0x5a, 0x24, 0x3e, + 0xfe, 0xe6, 0x67, 0xd7, 0x0f, 0xcc, 0x3c, 0xbd, 0xc8, 0x08, 0x6e, 0x14, 0x78, 0x4a, 0x6a, 0x79, + 0x69, 0xdc, 0x48, 0x7a, 0xae, 0x4a, 0x3c, 0x77, 0xa9, 0xe8, 0x16, 0x8a, 0x17, 0x0d, 0x5a, 0xd8, + 0x4f, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xb1, 0x56, 0xbc, 0x22, 0x19, 0x08, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -633,6 +726,8 @@ const _ = grpc.SupportPackageIsVersion4 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type GalleryImageAgentClient interface { Invoke(ctx context.Context, in *GalleryImageRequest, opts ...grpc.CallOption) (*GalleryImageResponse, error) + // Prechecks whether the system is able to create specified gallery images (but does not actually create them). + Precheck(ctx context.Context, in *GalleryImagePrecheckRequest, opts ...grpc.CallOption) (*GalleryImagePrecheckResponse, error) } type galleryImageAgentClient struct { @@ -652,9 +747,20 @@ func (c *galleryImageAgentClient) Invoke(ctx context.Context, in *GalleryImageRe return out, nil } +func (c *galleryImageAgentClient) Precheck(ctx context.Context, in *GalleryImagePrecheckRequest, opts ...grpc.CallOption) (*GalleryImagePrecheckResponse, error) { + out := new(GalleryImagePrecheckResponse) + err := c.cc.Invoke(ctx, "/moc.cloudagent.compute.GalleryImageAgent/Precheck", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // GalleryImageAgentServer is the server API for GalleryImageAgent service. type GalleryImageAgentServer interface { Invoke(context.Context, *GalleryImageRequest) (*GalleryImageResponse, error) + // Prechecks whether the system is able to create specified gallery images (but does not actually create them). + Precheck(context.Context, *GalleryImagePrecheckRequest) (*GalleryImagePrecheckResponse, error) } // UnimplementedGalleryImageAgentServer can be embedded to have forward compatible implementations. @@ -664,6 +770,9 @@ type UnimplementedGalleryImageAgentServer struct { func (*UnimplementedGalleryImageAgentServer) Invoke(ctx context.Context, req *GalleryImageRequest) (*GalleryImageResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Invoke not implemented") } +func (*UnimplementedGalleryImageAgentServer) Precheck(ctx context.Context, req *GalleryImagePrecheckRequest) (*GalleryImagePrecheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Precheck not implemented") +} func RegisterGalleryImageAgentServer(s *grpc.Server, srv GalleryImageAgentServer) { s.RegisterService(&_GalleryImageAgent_serviceDesc, srv) @@ -687,6 +796,24 @@ func _GalleryImageAgent_Invoke_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _GalleryImageAgent_Precheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GalleryImagePrecheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GalleryImageAgentServer).Precheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/moc.cloudagent.compute.GalleryImageAgent/Precheck", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GalleryImageAgentServer).Precheck(ctx, req.(*GalleryImagePrecheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _GalleryImageAgent_serviceDesc = grpc.ServiceDesc{ ServiceName: "moc.cloudagent.compute.GalleryImageAgent", HandlerType: (*GalleryImageAgentServer)(nil), @@ -695,6 +822,10 @@ var _GalleryImageAgent_serviceDesc = grpc.ServiceDesc{ MethodName: "Invoke", Handler: _GalleryImageAgent_Invoke_Handler, }, + { + MethodName: "Precheck", + Handler: _GalleryImageAgent_Precheck_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "moc_cloudagent_galleryimage.proto", diff --git a/rpc/cloudagent/compute/moc_cloudagent_virtualmachineimage.pb.go b/rpc/cloudagent/compute/moc_cloudagent_virtualmachineimage.pb.go index 0b23120..5b1f92e 100644 --- a/rpc/cloudagent/compute/moc_cloudagent_virtualmachineimage.pb.go +++ b/rpc/cloudagent/compute/moc_cloudagent_virtualmachineimage.pb.go @@ -128,6 +128,94 @@ func (m *VirtualMachineImageResponse) GetError() string { return "" } +type VirtualMachineImagePrecheckRequest struct { + VirtualMachineImages []*VirtualMachineImage `protobuf:"bytes,1,rep,name=VirtualMachineImages,proto3" json:"VirtualMachineImages,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VirtualMachineImagePrecheckRequest) Reset() { *m = VirtualMachineImagePrecheckRequest{} } +func (m *VirtualMachineImagePrecheckRequest) String() string { return proto.CompactTextString(m) } +func (*VirtualMachineImagePrecheckRequest) ProtoMessage() {} +func (*VirtualMachineImagePrecheckRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_7ef669fbb27720b1, []int{2} +} + +func (m *VirtualMachineImagePrecheckRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VirtualMachineImagePrecheckRequest.Unmarshal(m, b) +} +func (m *VirtualMachineImagePrecheckRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VirtualMachineImagePrecheckRequest.Marshal(b, m, deterministic) +} +func (m *VirtualMachineImagePrecheckRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_VirtualMachineImagePrecheckRequest.Merge(m, src) +} +func (m *VirtualMachineImagePrecheckRequest) XXX_Size() int { + return xxx_messageInfo_VirtualMachineImagePrecheckRequest.Size(m) +} +func (m *VirtualMachineImagePrecheckRequest) XXX_DiscardUnknown() { + xxx_messageInfo_VirtualMachineImagePrecheckRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_VirtualMachineImagePrecheckRequest proto.InternalMessageInfo + +func (m *VirtualMachineImagePrecheckRequest) GetVirtualMachineImages() []*VirtualMachineImage { + if m != nil { + return m.VirtualMachineImages + } + return nil +} + +type VirtualMachineImagePrecheckResponse struct { + // The precheck result: true if the precheck criteria is passed; otherwise, false + Result *wrappers.BoolValue `protobuf:"bytes,1,opt,name=Result,proto3" json:"Result,omitempty"` + // The error message if the precheck is not passed; otherwise, empty string + Error string `protobuf:"bytes,2,opt,name=Error,proto3" json:"Error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VirtualMachineImagePrecheckResponse) Reset() { *m = VirtualMachineImagePrecheckResponse{} } +func (m *VirtualMachineImagePrecheckResponse) String() string { return proto.CompactTextString(m) } +func (*VirtualMachineImagePrecheckResponse) ProtoMessage() {} +func (*VirtualMachineImagePrecheckResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_7ef669fbb27720b1, []int{3} +} + +func (m *VirtualMachineImagePrecheckResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VirtualMachineImagePrecheckResponse.Unmarshal(m, b) +} +func (m *VirtualMachineImagePrecheckResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VirtualMachineImagePrecheckResponse.Marshal(b, m, deterministic) +} +func (m *VirtualMachineImagePrecheckResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_VirtualMachineImagePrecheckResponse.Merge(m, src) +} +func (m *VirtualMachineImagePrecheckResponse) XXX_Size() int { + return xxx_messageInfo_VirtualMachineImagePrecheckResponse.Size(m) +} +func (m *VirtualMachineImagePrecheckResponse) XXX_DiscardUnknown() { + xxx_messageInfo_VirtualMachineImagePrecheckResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_VirtualMachineImagePrecheckResponse proto.InternalMessageInfo + +func (m *VirtualMachineImagePrecheckResponse) GetResult() *wrappers.BoolValue { + if m != nil { + return m.Result + } + return nil +} + +func (m *VirtualMachineImagePrecheckResponse) GetError() string { + if m != nil { + return m.Error + } + return "" +} + type VirtualMachineImage struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` @@ -149,7 +237,7 @@ func (m *VirtualMachineImage) Reset() { *m = VirtualMachineImage{} } func (m *VirtualMachineImage) String() string { return proto.CompactTextString(m) } func (*VirtualMachineImage) ProtoMessage() {} func (*VirtualMachineImage) Descriptor() ([]byte, []int) { - return fileDescriptor_7ef669fbb27720b1, []int{2} + return fileDescriptor_7ef669fbb27720b1, []int{4} } func (m *VirtualMachineImage) XXX_Unmarshal(b []byte) error { @@ -250,6 +338,8 @@ func (m *VirtualMachineImage) GetCloudInitDataSource() common.CloudInitDataSourc func init() { proto.RegisterType((*VirtualMachineImageRequest)(nil), "moc.cloudagent.compute.VirtualMachineImageRequest") proto.RegisterType((*VirtualMachineImageResponse)(nil), "moc.cloudagent.compute.VirtualMachineImageResponse") + proto.RegisterType((*VirtualMachineImagePrecheckRequest)(nil), "moc.cloudagent.compute.VirtualMachineImagePrecheckRequest") + proto.RegisterType((*VirtualMachineImagePrecheckResponse)(nil), "moc.cloudagent.compute.VirtualMachineImagePrecheckResponse") proto.RegisterType((*VirtualMachineImage)(nil), "moc.cloudagent.compute.VirtualMachineImage") } @@ -258,40 +348,44 @@ func init() { } var fileDescriptor_7ef669fbb27720b1 = []byte{ - // 526 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x53, 0xdd, 0x8e, 0xd2, 0x40, - 0x18, 0xb5, 0xc0, 0x92, 0x30, 0xb8, 0xc4, 0x0c, 0xec, 0x3a, 0xc1, 0x9f, 0x10, 0x34, 0x86, 0xc4, - 0xa4, 0x8d, 0x5d, 0x5f, 0x60, 0x51, 0xa3, 0x98, 0xa8, 0x49, 0x77, 0xc3, 0x85, 0x37, 0x64, 0x18, - 0x3e, 0x4a, 0x63, 0x3b, 0x5f, 0x9d, 0x99, 0xae, 0xd9, 0x37, 0xf0, 0xce, 0x87, 0x31, 0xfa, 0x0c, - 0x3e, 0x96, 0xe1, 0x6b, 0x95, 0xb0, 0xdb, 0x9b, 0xbd, 0xd8, 0x2b, 0xe8, 0x39, 0x67, 0xce, 0x39, - 0xd3, 0xef, 0x2b, 0x9b, 0x64, 0xa8, 0x16, 0x2a, 0xc5, 0x62, 0x25, 0x63, 0xd0, 0x6e, 0x71, 0x91, - 0x18, 0x57, 0xc8, 0x34, 0x93, 0x6a, 0x93, 0x68, 0x48, 0x32, 0x19, 0x83, 0x9f, 0x1b, 0x74, 0xc8, - 0x8f, 0x33, 0x54, 0xfe, 0x4e, 0xe9, 0x2b, 0xcc, 0xf2, 0xc2, 0xc1, 0xf0, 0x71, 0x8c, 0x18, 0xa7, - 0x10, 0x90, 0x6a, 0x59, 0xac, 0x83, 0x6f, 0x46, 0xe6, 0x39, 0x18, 0x5b, 0x9e, 0x1b, 0xde, 0xa7, - 0x04, 0xcc, 0x32, 0xd4, 0xd5, 0x4f, 0x49, 0x8c, 0x7f, 0x7a, 0x6c, 0x38, 0x2f, 0xe3, 0x3e, 0x94, - 0x71, 0xb3, 0x6d, 0x5c, 0x04, 0x5f, 0x0b, 0xb0, 0x8e, 0x2f, 0xd8, 0xa0, 0x86, 0xb5, 0xc2, 0x1b, - 0x35, 0x27, 0xdd, 0xf0, 0xb9, 0x5f, 0x5f, 0xc7, 0xaf, 0x73, 0xac, 0x35, 0xe2, 0x2f, 0xd9, 0xe1, - 0xa7, 0x1c, 0x8c, 0x74, 0x09, 0xea, 0xf3, 0xcb, 0x1c, 0x44, 0x63, 0xe4, 0x4d, 0x7a, 0x61, 0x8f, - 0x9c, 0xff, 0x33, 0xd1, 0xbe, 0x68, 0xfc, 0xc7, 0x63, 0x0f, 0x6a, 0x5b, 0xdb, 0x1c, 0xb5, 0x85, - 0xdb, 0xaf, 0x1d, 0xb2, 0x76, 0x04, 0xb6, 0x48, 0x1d, 0xf5, 0xed, 0x86, 0x43, 0xbf, 0x1c, 0x80, - 0xff, 0x6f, 0x00, 0xfe, 0x14, 0x31, 0x9d, 0xcb, 0xb4, 0x80, 0xa8, 0x52, 0xf2, 0x01, 0x3b, 0x78, - 0x63, 0x0c, 0x1a, 0xd1, 0x1c, 0x79, 0x93, 0x4e, 0x54, 0x3e, 0x8c, 0x7f, 0x37, 0x59, 0xbf, 0x26, - 0x82, 0x73, 0xd6, 0xd2, 0x32, 0x03, 0xe1, 0x91, 0x98, 0xfe, 0xf3, 0x1e, 0x6b, 0x24, 0x2b, 0x4a, - 0xec, 0x44, 0x8d, 0x64, 0xc5, 0x9f, 0xb1, 0x5e, 0x52, 0xde, 0x7b, 0x0d, 0x06, 0xb4, 0x82, 0xca, - 0xfa, 0x0a, 0xca, 0x05, 0x6b, 0xe5, 0xd2, 0x6d, 0x44, 0x6b, 0xcb, 0x4e, 0x5b, 0xdf, 0x7f, 0x09, - 0x2f, 0x22, 0x84, 0x3f, 0x61, 0x6d, 0xeb, 0xa4, 0x2b, 0xac, 0x38, 0xa0, 0x7b, 0x74, 0xe9, 0xd5, - 0x9c, 0x11, 0x14, 0x55, 0x14, 0x7f, 0xca, 0x0e, 0x15, 0x6a, 0x27, 0x13, 0x0d, 0xe6, 0xe3, 0xb6, - 0x53, 0x9b, 0x52, 0xf6, 0x41, 0xfe, 0x90, 0x75, 0x62, 0x83, 0x45, 0x4e, 0x0a, 0x4e, 0x8a, 0x1d, - 0xc0, 0xc7, 0xec, 0x6e, 0x8a, 0x8a, 0x26, 0x48, 0x82, 0x3e, 0x09, 0xf6, 0x30, 0xfe, 0x88, 0xb5, - 0x9c, 0x8c, 0xad, 0x18, 0x50, 0x95, 0x0e, 0x55, 0x39, 0x97, 0xb1, 0x8d, 0x08, 0xe6, 0xa7, 0xec, - 0xde, 0xe6, 0x32, 0x07, 0x33, 0x7f, 0x0b, 0xba, 0x5a, 0x06, 0x71, 0x44, 0xdb, 0x72, 0x44, 0xd2, - 0x77, 0x57, 0xc8, 0xe8, 0x9a, 0x9c, 0xbf, 0x67, 0x7d, 0x1a, 0xfb, 0x4c, 0x27, 0xee, 0xb5, 0x74, - 0xf2, 0x0c, 0x0b, 0xa3, 0x40, 0x1c, 0x93, 0x8b, 0x20, 0x97, 0x57, 0xd7, 0xf9, 0xa8, 0xee, 0x50, - 0xf8, 0xc3, 0x63, 0xa2, 0x66, 0x70, 0xa7, 0xdb, 0x8d, 0xe2, 0x96, 0xb5, 0x67, 0xfa, 0x02, 0xbf, - 0x00, 0x0f, 0x6f, 0xb2, 0x6c, 0xe5, 0x57, 0x37, 0x3c, 0xb9, 0xd1, 0x99, 0x72, 0xe7, 0xc7, 0x77, - 0xa6, 0x2f, 0x3e, 0x07, 0x71, 0xe2, 0x36, 0xc5, 0x72, 0xab, 0x0f, 0xb2, 0x44, 0x19, 0xb4, 0xb8, - 0x76, 0x41, 0x86, 0x2a, 0x30, 0xb9, 0x0a, 0x76, 0x86, 0x41, 0x65, 0xb8, 0x6c, 0xd3, 0xbe, 0x9e, - 0xfc, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xf7, 0x10, 0xf3, 0x08, 0x82, 0x04, 0x00, 0x00, + // 582 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x53, 0xdd, 0x6a, 0xd4, 0x50, + 0x10, 0x36, 0xdb, 0xed, 0xe2, 0x4e, 0xed, 0x22, 0xa7, 0x3f, 0x86, 0xf5, 0x87, 0x92, 0x8a, 0x2c, + 0x08, 0x09, 0xa6, 0x5e, 0xe9, 0x55, 0xab, 0xa2, 0x15, 0xfc, 0x21, 0x2d, 0xbd, 0xf0, 0xa6, 0x9c, + 0x9e, 0x4e, 0xb3, 0xa1, 0xc9, 0x99, 0x78, 0xce, 0x49, 0xa5, 0x0f, 0x50, 0xf0, 0x0d, 0x7c, 0x10, + 0xd1, 0x67, 0xf0, 0xb1, 0x64, 0x27, 0xa9, 0x6b, 0xdb, 0x20, 0xac, 0xa0, 0x57, 0xbb, 0x99, 0xf9, + 0xe6, 0x9b, 0x6f, 0xce, 0x7c, 0x03, 0xa3, 0x82, 0xd4, 0xbe, 0xca, 0xa9, 0x3a, 0x94, 0x29, 0x6a, + 0xb7, 0x7f, 0x92, 0x19, 0x57, 0xc9, 0xbc, 0x90, 0x6a, 0x9c, 0x69, 0xcc, 0x0a, 0x99, 0x62, 0x58, + 0x1a, 0x72, 0x24, 0x56, 0x0b, 0x52, 0xe1, 0x14, 0x19, 0x2a, 0x2a, 0xca, 0xca, 0xe1, 0xf0, 0x5e, + 0x4a, 0x94, 0xe6, 0x18, 0x31, 0xea, 0xa0, 0x3a, 0x8a, 0x3e, 0x19, 0x59, 0x96, 0x68, 0x6c, 0x5d, + 0x37, 0xbc, 0xc5, 0x1d, 0xa8, 0x28, 0x48, 0x37, 0x3f, 0x75, 0x22, 0xf8, 0xea, 0xc1, 0x70, 0xaf, + 0x6e, 0xf7, 0xa6, 0x6e, 0xb7, 0x3d, 0x69, 0x97, 0xe0, 0xc7, 0x0a, 0xad, 0x13, 0xfb, 0xb0, 0xdc, + 0x92, 0xb5, 0xbe, 0xb7, 0x36, 0x37, 0x5a, 0x88, 0x1f, 0x86, 0xed, 0x72, 0xc2, 0x36, 0xc6, 0x56, + 0x22, 0xf1, 0x18, 0x16, 0xdf, 0x95, 0x68, 0xa4, 0xcb, 0x48, 0xef, 0x9e, 0x96, 0xe8, 0x77, 0xd6, + 0xbc, 0xd1, 0x20, 0x1e, 0x30, 0xf3, 0xaf, 0x4c, 0x72, 0x11, 0x14, 0xfc, 0xf0, 0xe0, 0x76, 0xab, + 0x6a, 0x5b, 0x92, 0xb6, 0xf8, 0xef, 0x65, 0xc7, 0xd0, 0x4b, 0xd0, 0x56, 0xb9, 0x63, 0xbd, 0x0b, + 0xf1, 0x30, 0xac, 0x17, 0x10, 0x9e, 0x2f, 0x20, 0xdc, 0x22, 0xca, 0xf7, 0x64, 0x5e, 0x61, 0xd2, + 0x20, 0xc5, 0x32, 0xcc, 0xbf, 0x30, 0x86, 0x8c, 0x3f, 0xb7, 0xe6, 0x8d, 0xfa, 0x49, 0xfd, 0x11, + 0x9c, 0x79, 0x10, 0xb4, 0xb4, 0x78, 0x6f, 0x50, 0x8d, 0x51, 0x1d, 0xff, 0xaf, 0x45, 0x04, 0x04, + 0xeb, 0x7f, 0x94, 0xd1, 0xbc, 0xec, 0x74, 0x70, 0x6f, 0xf6, 0xc1, 0x3b, 0xbf, 0x0f, 0xfe, 0x7d, + 0x0e, 0x96, 0x5a, 0x3a, 0x0a, 0x01, 0x5d, 0x2d, 0x0b, 0x64, 0xfe, 0x7e, 0xc2, 0xff, 0xc5, 0x00, + 0x3a, 0xd9, 0x61, 0x53, 0xde, 0xc9, 0x0e, 0xc5, 0x03, 0x18, 0x64, 0xf5, 0xc2, 0x8f, 0xd0, 0xa0, + 0x56, 0xd8, 0xbc, 0xe9, 0xa5, 0xa8, 0xf0, 0xa1, 0x5b, 0x4a, 0x37, 0xf6, 0xbb, 0x93, 0xec, 0x56, + 0xf7, 0xf3, 0x37, 0xdf, 0x4b, 0x38, 0x22, 0xd6, 0xa1, 0x67, 0x9d, 0x74, 0x95, 0xf5, 0xe7, 0x79, + 0x8e, 0x05, 0x7e, 0xc1, 0x1d, 0x0e, 0x25, 0x4d, 0x4a, 0xdc, 0x87, 0x45, 0x45, 0xda, 0xc9, 0x4c, + 0xa3, 0x79, 0x3b, 0xd1, 0xd4, 0xe3, 0x2e, 0x17, 0x83, 0xe2, 0x0e, 0xf4, 0x53, 0x43, 0x55, 0xc9, + 0x08, 0xc1, 0x88, 0x69, 0x40, 0x04, 0x70, 0x23, 0x27, 0xc5, 0xd6, 0x65, 0xc0, 0x12, 0x03, 0x2e, + 0xc4, 0xc4, 0x5d, 0xe8, 0x3a, 0x99, 0x5a, 0x7f, 0x99, 0xa5, 0xf4, 0x59, 0xca, 0xae, 0x4c, 0x6d, + 0xc2, 0x61, 0xb1, 0x09, 0x37, 0xc7, 0xa7, 0x25, 0x9a, 0xbd, 0x97, 0xa8, 0x9b, 0x2b, 0xf0, 0x57, + 0xf8, 0x4c, 0x56, 0x18, 0xfa, 0xea, 0x52, 0x32, 0xb9, 0x02, 0x17, 0xaf, 0x61, 0x89, 0xdd, 0xb1, + 0xad, 0x33, 0xf7, 0x5c, 0x3a, 0xb9, 0x43, 0x95, 0x51, 0xe8, 0xaf, 0x32, 0x8b, 0xcf, 0x2c, 0xcf, + 0xae, 0xe6, 0x93, 0xb6, 0xa2, 0xf8, 0x4b, 0x07, 0xfc, 0x96, 0xc5, 0x6d, 0x4e, 0x8c, 0x27, 0x2c, + 0xf4, 0xb6, 0xf5, 0x09, 0x1d, 0xa3, 0x88, 0x67, 0xf1, 0x64, 0xed, 0xf2, 0xe1, 0xc6, 0x4c, 0x35, + 0xb5, 0x25, 0x83, 0x6b, 0xe2, 0xcc, 0x83, 0xeb, 0xe7, 0x4e, 0x15, 0x4f, 0x66, 0xe0, 0xb8, 0x74, + 0x65, 0xc3, 0xa7, 0x7f, 0x55, 0x7b, 0xae, 0x63, 0xeb, 0xd1, 0x87, 0x28, 0xcd, 0xdc, 0xb8, 0x3a, + 0x98, 0xd4, 0x45, 0x45, 0xa6, 0x0c, 0x59, 0x3a, 0x72, 0x51, 0x41, 0x2a, 0x32, 0xa5, 0x8a, 0xa6, + 0xc4, 0x51, 0x43, 0x7c, 0xd0, 0xe3, 0xbb, 0xd9, 0xf8, 0x19, 0x00, 0x00, 0xff, 0xff, 0xfd, 0xf4, + 0xd8, 0x60, 0x03, 0x06, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -307,6 +401,8 @@ const _ = grpc.SupportPackageIsVersion4 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type VirtualMachineImageAgentClient interface { Invoke(ctx context.Context, in *VirtualMachineImageRequest, opts ...grpc.CallOption) (*VirtualMachineImageResponse, error) + // Prechecks whether the system is able to create specified virtual machine images (but does not actually create them). + Precheck(ctx context.Context, in *VirtualMachineImagePrecheckRequest, opts ...grpc.CallOption) (*VirtualMachineImagePrecheckResponse, error) } type virtualMachineImageAgentClient struct { @@ -326,9 +422,20 @@ func (c *virtualMachineImageAgentClient) Invoke(ctx context.Context, in *Virtual return out, nil } +func (c *virtualMachineImageAgentClient) Precheck(ctx context.Context, in *VirtualMachineImagePrecheckRequest, opts ...grpc.CallOption) (*VirtualMachineImagePrecheckResponse, error) { + out := new(VirtualMachineImagePrecheckResponse) + err := c.cc.Invoke(ctx, "/moc.cloudagent.compute.VirtualMachineImageAgent/Precheck", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // VirtualMachineImageAgentServer is the server API for VirtualMachineImageAgent service. type VirtualMachineImageAgentServer interface { Invoke(context.Context, *VirtualMachineImageRequest) (*VirtualMachineImageResponse, error) + // Prechecks whether the system is able to create specified virtual machine images (but does not actually create them). + Precheck(context.Context, *VirtualMachineImagePrecheckRequest) (*VirtualMachineImagePrecheckResponse, error) } // UnimplementedVirtualMachineImageAgentServer can be embedded to have forward compatible implementations. @@ -338,6 +445,9 @@ type UnimplementedVirtualMachineImageAgentServer struct { func (*UnimplementedVirtualMachineImageAgentServer) Invoke(ctx context.Context, req *VirtualMachineImageRequest) (*VirtualMachineImageResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Invoke not implemented") } +func (*UnimplementedVirtualMachineImageAgentServer) Precheck(ctx context.Context, req *VirtualMachineImagePrecheckRequest) (*VirtualMachineImagePrecheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Precheck not implemented") +} func RegisterVirtualMachineImageAgentServer(s *grpc.Server, srv VirtualMachineImageAgentServer) { s.RegisterService(&_VirtualMachineImageAgent_serviceDesc, srv) @@ -361,6 +471,24 @@ func _VirtualMachineImageAgent_Invoke_Handler(srv interface{}, ctx context.Conte return interceptor(ctx, in, info, handler) } +func _VirtualMachineImageAgent_Precheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(VirtualMachineImagePrecheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VirtualMachineImageAgentServer).Precheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/moc.cloudagent.compute.VirtualMachineImageAgent/Precheck", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VirtualMachineImageAgentServer).Precheck(ctx, req.(*VirtualMachineImagePrecheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _VirtualMachineImageAgent_serviceDesc = grpc.ServiceDesc{ ServiceName: "moc.cloudagent.compute.VirtualMachineImageAgent", HandlerType: (*VirtualMachineImageAgentServer)(nil), @@ -369,6 +497,10 @@ var _VirtualMachineImageAgent_serviceDesc = grpc.ServiceDesc{ MethodName: "Invoke", Handler: _VirtualMachineImageAgent_Invoke_Handler, }, + { + MethodName: "Precheck", + Handler: _VirtualMachineImageAgent_Precheck_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "moc_cloudagent_virtualmachineimage.proto", diff --git a/rpc/cloudagent/compute/virtualmachineimage/moc_cloudagent_virtualmachineimage.proto b/rpc/cloudagent/compute/virtualmachineimage/moc_cloudagent_virtualmachineimage.proto index aecbb8f..3919319 100644 --- a/rpc/cloudagent/compute/virtualmachineimage/moc_cloudagent_virtualmachineimage.proto +++ b/rpc/cloudagent/compute/virtualmachineimage/moc_cloudagent_virtualmachineimage.proto @@ -19,6 +19,18 @@ message VirtualMachineImageResponse { string Error = 3; } +message VirtualMachineImagePrecheckRequest { + repeated VirtualMachineImage VirtualMachineImages = 1; +} + +message VirtualMachineImagePrecheckResponse { + // The precheck result: true if the precheck criteria is passed; otherwise, false + google.protobuf.BoolValue Result = 1; + + // The error message if the precheck is not passed; otherwise, empty string + string Error = 2; +} + message VirtualMachineImage { string name = 1; string id = 2; @@ -35,6 +47,9 @@ message VirtualMachineImage { service VirtualMachineImageAgent { rpc Invoke(VirtualMachineImageRequest) returns (VirtualMachineImageResponse) {} + + // Prechecks whether the system is able to create specified virtual machine images (but does not actually create them). + rpc Precheck(VirtualMachineImagePrecheckRequest) returns (VirtualMachineImagePrecheckResponse) {} } diff --git a/rpc/cloudagent/network/loadbalancer/moc_cloudagent_loadbalancer.proto b/rpc/cloudagent/network/loadbalancer/moc_cloudagent_loadbalancer.proto index ccfb538..2ad9bf6 100644 --- a/rpc/cloudagent/network/loadbalancer/moc_cloudagent_loadbalancer.proto +++ b/rpc/cloudagent/network/loadbalancer/moc_cloudagent_loadbalancer.proto @@ -20,6 +20,18 @@ message LoadBalancerResponse { string Error = 3; } +message LoadBalancerPrecheckRequest { + repeated LoadBalancer LoadBalancers = 1; +} + +message LoadBalancerPrecheckResponse { + // The precheck result: true if the precheck criteria is passed; otherwise, false + google.protobuf.BoolValue Result = 1; + + // The error message if the precheck is not passed; otherwise, empty string + string Error = 2; +} + message LoadbalancerInboundNatRule { string name = 1; uint32 frontendPort = 2; @@ -51,5 +63,8 @@ message LoadBalancer { service LoadBalancerAgent { rpc Invoke(LoadBalancerRequest) returns (LoadBalancerResponse) {} + + // Prechecks whether the system is able to create specified load balancers (but does not actually create them). + rpc Precheck(LoadBalancerPrecheckRequest) returns (LoadBalancerPrecheckResponse) {} } diff --git a/rpc/cloudagent/network/logicalnetwork/moc_cloudagent_logicalnetwork.proto b/rpc/cloudagent/network/logicalnetwork/moc_cloudagent_logicalnetwork.proto index 6298029..3c8a988 100644 --- a/rpc/cloudagent/network/logicalnetwork/moc_cloudagent_logicalnetwork.proto +++ b/rpc/cloudagent/network/logicalnetwork/moc_cloudagent_logicalnetwork.proto @@ -20,6 +20,18 @@ message LogicalNetworkResponse { string Error = 3; } +message LogicalNetworkPrecheckRequest { + repeated LogicalNetwork LogicalNetworks = 1; +} + +message LogicalNetworkPrecheckResponse { + // The precheck result: true if the precheck criteria is passed; otherwise, false + google.protobuf.BoolValue Result = 1; + + // The error message if the precheck is not passed; otherwise, empty string + string Error = 2; +} + message LogicalNetwork { string name = 1; string id = 2; @@ -47,5 +59,8 @@ message LogicalSubnet { service LogicalNetworkAgent { rpc Invoke(LogicalNetworkRequest) returns (LogicalNetworkResponse) {} + + // Prechecks whether the system is able to create specified logical networks (but does not actually create them). + rpc Precheck(LogicalNetworkPrecheckRequest) returns (LogicalNetworkPrecheckResponse) {} } diff --git a/rpc/cloudagent/network/macpool/moc_cloudagent_macpool.proto b/rpc/cloudagent/network/macpool/moc_cloudagent_macpool.proto index d372780..b011bf2 100644 --- a/rpc/cloudagent/network/macpool/moc_cloudagent_macpool.proto +++ b/rpc/cloudagent/network/macpool/moc_cloudagent_macpool.proto @@ -19,6 +19,18 @@ message MacPoolResponse { string Error = 3; } +message MacPoolPrecheckRequest { + repeated MacPool MacPools = 1; +} + +message MacPoolPrecheckResponse { + // The precheck result: true if the precheck criteria is passed; otherwise, false + google.protobuf.BoolValue Result = 1; + + // The error message if the precheck is not passed; otherwise, empty string + string Error = 2; +} + message MacRange { string startMacAddress = 1; string endMacAddress = 2; @@ -35,5 +47,8 @@ message MacPool { service MacPoolAgent { rpc Invoke(MacPoolRequest) returns (MacPoolResponse) {} + + // Prechecks whether the system is able to create specified MAC pools (but does not actually create them). + rpc Precheck(MacPoolPrecheckRequest) returns (MacPoolPrecheckResponse) {} } diff --git a/rpc/cloudagent/network/moc_cloudagent_loadbalancer.pb.go b/rpc/cloudagent/network/moc_cloudagent_loadbalancer.pb.go index 5ec3c99..adde616 100644 --- a/rpc/cloudagent/network/moc_cloudagent_loadbalancer.pb.go +++ b/rpc/cloudagent/network/moc_cloudagent_loadbalancer.pb.go @@ -128,6 +128,94 @@ func (m *LoadBalancerResponse) GetError() string { return "" } +type LoadBalancerPrecheckRequest struct { + LoadBalancers []*LoadBalancer `protobuf:"bytes,1,rep,name=LoadBalancers,proto3" json:"LoadBalancers,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LoadBalancerPrecheckRequest) Reset() { *m = LoadBalancerPrecheckRequest{} } +func (m *LoadBalancerPrecheckRequest) String() string { return proto.CompactTextString(m) } +func (*LoadBalancerPrecheckRequest) ProtoMessage() {} +func (*LoadBalancerPrecheckRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_7464476b31ac10f8, []int{2} +} + +func (m *LoadBalancerPrecheckRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LoadBalancerPrecheckRequest.Unmarshal(m, b) +} +func (m *LoadBalancerPrecheckRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LoadBalancerPrecheckRequest.Marshal(b, m, deterministic) +} +func (m *LoadBalancerPrecheckRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_LoadBalancerPrecheckRequest.Merge(m, src) +} +func (m *LoadBalancerPrecheckRequest) XXX_Size() int { + return xxx_messageInfo_LoadBalancerPrecheckRequest.Size(m) +} +func (m *LoadBalancerPrecheckRequest) XXX_DiscardUnknown() { + xxx_messageInfo_LoadBalancerPrecheckRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_LoadBalancerPrecheckRequest proto.InternalMessageInfo + +func (m *LoadBalancerPrecheckRequest) GetLoadBalancers() []*LoadBalancer { + if m != nil { + return m.LoadBalancers + } + return nil +} + +type LoadBalancerPrecheckResponse struct { + // The precheck result: true if the precheck criteria is passed; otherwise, false + Result *wrappers.BoolValue `protobuf:"bytes,1,opt,name=Result,proto3" json:"Result,omitempty"` + // The error message if the precheck is not passed; otherwise, empty string + Error string `protobuf:"bytes,2,opt,name=Error,proto3" json:"Error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LoadBalancerPrecheckResponse) Reset() { *m = LoadBalancerPrecheckResponse{} } +func (m *LoadBalancerPrecheckResponse) String() string { return proto.CompactTextString(m) } +func (*LoadBalancerPrecheckResponse) ProtoMessage() {} +func (*LoadBalancerPrecheckResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_7464476b31ac10f8, []int{3} +} + +func (m *LoadBalancerPrecheckResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LoadBalancerPrecheckResponse.Unmarshal(m, b) +} +func (m *LoadBalancerPrecheckResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LoadBalancerPrecheckResponse.Marshal(b, m, deterministic) +} +func (m *LoadBalancerPrecheckResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_LoadBalancerPrecheckResponse.Merge(m, src) +} +func (m *LoadBalancerPrecheckResponse) XXX_Size() int { + return xxx_messageInfo_LoadBalancerPrecheckResponse.Size(m) +} +func (m *LoadBalancerPrecheckResponse) XXX_DiscardUnknown() { + xxx_messageInfo_LoadBalancerPrecheckResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_LoadBalancerPrecheckResponse proto.InternalMessageInfo + +func (m *LoadBalancerPrecheckResponse) GetResult() *wrappers.BoolValue { + if m != nil { + return m.Result + } + return nil +} + +func (m *LoadBalancerPrecheckResponse) GetError() string { + if m != nil { + return m.Error + } + return "" +} + type LoadbalancerInboundNatRule struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` FrontendPort uint32 `protobuf:"varint,2,opt,name=frontendPort,proto3" json:"frontendPort,omitempty"` @@ -142,7 +230,7 @@ func (m *LoadbalancerInboundNatRule) Reset() { *m = LoadbalancerInboundN func (m *LoadbalancerInboundNatRule) String() string { return proto.CompactTextString(m) } func (*LoadbalancerInboundNatRule) ProtoMessage() {} func (*LoadbalancerInboundNatRule) Descriptor() ([]byte, []int) { - return fileDescriptor_7464476b31ac10f8, []int{2} + return fileDescriptor_7464476b31ac10f8, []int{4} } func (m *LoadbalancerInboundNatRule) XXX_Unmarshal(b []byte) error { @@ -204,7 +292,7 @@ func (m *LoadBalancingRule) Reset() { *m = LoadBalancingRule{} } func (m *LoadBalancingRule) String() string { return proto.CompactTextString(m) } func (*LoadBalancingRule) ProtoMessage() {} func (*LoadBalancingRule) Descriptor() ([]byte, []int) { - return fileDescriptor_7464476b31ac10f8, []int{3} + return fileDescriptor_7464476b31ac10f8, []int{5} } func (m *LoadBalancingRule) XXX_Unmarshal(b []byte) error { @@ -269,7 +357,7 @@ func (m *LoadBalancer) Reset() { *m = LoadBalancer{} } func (m *LoadBalancer) String() string { return proto.CompactTextString(m) } func (*LoadBalancer) ProtoMessage() {} func (*LoadBalancer) Descriptor() ([]byte, []int) { - return fileDescriptor_7464476b31ac10f8, []int{4} + return fileDescriptor_7464476b31ac10f8, []int{6} } func (m *LoadBalancer) XXX_Unmarshal(b []byte) error { @@ -384,6 +472,8 @@ func (m *LoadBalancer) GetInboundNatRules() []*LoadbalancerInboundNatRule { func init() { proto.RegisterType((*LoadBalancerRequest)(nil), "moc.cloudagent.network.LoadBalancerRequest") proto.RegisterType((*LoadBalancerResponse)(nil), "moc.cloudagent.network.LoadBalancerResponse") + proto.RegisterType((*LoadBalancerPrecheckRequest)(nil), "moc.cloudagent.network.LoadBalancerPrecheckRequest") + proto.RegisterType((*LoadBalancerPrecheckResponse)(nil), "moc.cloudagent.network.LoadBalancerPrecheckResponse") proto.RegisterType((*LoadbalancerInboundNatRule)(nil), "moc.cloudagent.network.LoadbalancerInboundNatRule") proto.RegisterType((*LoadBalancingRule)(nil), "moc.cloudagent.network.LoadBalancingRule") proto.RegisterType((*LoadBalancer)(nil), "moc.cloudagent.network.LoadBalancer") @@ -392,48 +482,51 @@ func init() { func init() { proto.RegisterFile("moc_cloudagent_loadbalancer.proto", fileDescriptor_7464476b31ac10f8) } var fileDescriptor_7464476b31ac10f8 = []byte{ - // 641 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0xc1, 0x6e, 0xd3, 0x4a, - 0x14, 0x7d, 0x4e, 0xd2, 0xbc, 0x66, 0xd2, 0xf4, 0xbd, 0x37, 0xaf, 0x82, 0x51, 0x04, 0x55, 0x08, - 0x5d, 0xa4, 0x80, 0x6c, 0x11, 0xf8, 0x01, 0x82, 0x58, 0x14, 0x55, 0xa5, 0x1a, 0x2a, 0x24, 0x10, - 0x52, 0x35, 0xb1, 0x27, 0xc6, 0xea, 0x78, 0xae, 0x3b, 0x33, 0xa6, 0x82, 0x35, 0x0b, 0xfe, 0x80, - 0x35, 0x7b, 0x24, 0x56, 0xfc, 0x1f, 0xca, 0xb5, 0x9b, 0xd8, 0x6d, 0xd4, 0x76, 0xc1, 0x2a, 0xf1, - 0xb9, 0x67, 0x8e, 0x8f, 0xcf, 0xbd, 0x77, 0xc8, 0xbd, 0x14, 0xc2, 0xe3, 0x50, 0x41, 0x1e, 0x89, - 0x58, 0x6a, 0x77, 0xac, 0x40, 0x44, 0x53, 0xa1, 0x84, 0x0e, 0xa5, 0xf1, 0x33, 0x03, 0x0e, 0xe8, - 0xad, 0x14, 0x42, 0x7f, 0x49, 0xf1, 0xb5, 0x74, 0x67, 0x60, 0x4e, 0xfa, 0xdb, 0x31, 0x40, 0xac, - 0x64, 0x80, 0xac, 0x69, 0x3e, 0x0b, 0xce, 0x8c, 0xc8, 0x32, 0x69, 0x6c, 0x71, 0xae, 0x7f, 0x1b, - 0xa5, 0x21, 0x4d, 0x41, 0x97, 0x3f, 0x65, 0x61, 0xbb, 0x52, 0x28, 0xc5, 0xaa, 0xf5, 0xe1, 0x37, - 0x8f, 0xfc, 0xbf, 0x0f, 0x22, 0x9a, 0x94, 0x3e, 0xb8, 0x3c, 0xcd, 0xa5, 0x75, 0xf4, 0x25, 0xe9, - 0x55, 0x61, 0xcb, 0xbc, 0x41, 0x73, 0xd4, 0x1d, 0xef, 0xf8, 0xab, 0x0d, 0xfa, 0x35, 0x8d, 0xfa, - 0x51, 0xfa, 0x94, 0xf4, 0x5e, 0x65, 0xd2, 0x08, 0x97, 0x80, 0x3e, 0xfa, 0x94, 0x49, 0xd6, 0x18, - 0x78, 0xa3, 0xcd, 0xf1, 0x26, 0x6a, 0x2d, 0x2a, 0xbc, 0x4e, 0x1a, 0xfe, 0xf0, 0xc8, 0x56, 0xdd, - 0x99, 0xcd, 0x40, 0x5b, 0xf9, 0x47, 0xad, 0x8d, 0x49, 0x9b, 0x4b, 0x9b, 0x2b, 0x87, 0x9e, 0xba, - 0xe3, 0xbe, 0x5f, 0x04, 0xed, 0x9f, 0x07, 0xed, 0x4f, 0x00, 0xd4, 0x1b, 0xa1, 0x72, 0xc9, 0x4b, - 0x26, 0xdd, 0x22, 0x6b, 0x2f, 0x8c, 0x01, 0xc3, 0x9a, 0x03, 0x6f, 0xd4, 0xe1, 0xc5, 0xc3, 0xf0, - 0xbb, 0x47, 0xfa, 0xfb, 0x95, 0x86, 0xee, 0xe9, 0x29, 0xe4, 0x3a, 0x3a, 0x10, 0x8e, 0xe7, 0x4a, - 0x52, 0x4a, 0x5a, 0x5a, 0xa4, 0x92, 0x79, 0x78, 0x06, 0xff, 0xd3, 0x21, 0xd9, 0x98, 0x19, 0xd0, - 0x4e, 0xea, 0xe8, 0x10, 0x4c, 0x61, 0xa1, 0xc7, 0x6b, 0x18, 0x1d, 0x90, 0xee, 0x54, 0x84, 0x27, - 0xe7, 0x94, 0x26, 0x52, 0xaa, 0x10, 0xdd, 0x25, 0xeb, 0x68, 0x36, 0x04, 0xc5, 0x5a, 0x18, 0x6c, - 0x0f, 0x93, 0x38, 0x2c, 0x41, 0xbe, 0x28, 0x0f, 0xbf, 0x78, 0xe4, 0xbf, 0xe5, 0xf7, 0x27, 0x3a, - 0x46, 0x6b, 0x17, 0x6d, 0x78, 0xd7, 0xdb, 0x68, 0x5c, 0x6d, 0xa3, 0x79, 0xb5, 0x8d, 0x9f, 0x2d, - 0xb2, 0x51, 0x6d, 0xc3, 0xca, 0x70, 0x36, 0x49, 0x23, 0x89, 0xf0, 0x45, 0x1d, 0xde, 0x48, 0x22, - 0xba, 0x43, 0xc8, 0xb9, 0xa3, 0xbd, 0xc3, 0x22, 0xfa, 0x49, 0xeb, 0xeb, 0x2f, 0xe6, 0xf1, 0x0a, - 0x4e, 0x1f, 0x90, 0x7f, 0x4b, 0x53, 0x19, 0x80, 0x9a, 0x0b, 0x59, 0xd6, 0x1a, 0x34, 0x47, 0x1d, - 0x7e, 0x09, 0xa7, 0x77, 0x48, 0xa7, 0x1c, 0x91, 0x24, 0x62, 0x6b, 0xf8, 0xa2, 0x25, 0x40, 0xdf, - 0x12, 0xba, 0xdc, 0xcf, 0x44, 0xc7, 0x26, 0x57, 0xd2, 0xb2, 0x36, 0x8e, 0xda, 0xee, 0xf5, 0xa3, - 0x56, 0x86, 0xcb, 0x57, 0x88, 0xd0, 0x01, 0x59, 0xd7, 0x10, 0xc9, 0xd9, 0x69, 0xa4, 0xd9, 0xdf, - 0x95, 0x0f, 0x59, 0xa0, 0x73, 0x6b, 0xb1, 0x81, 0x3c, 0x3b, 0x98, 0xa7, 0xb2, 0x5e, 0x58, 0x5b, - 0x00, 0xf3, 0x86, 0x29, 0x08, 0x71, 0x53, 0x90, 0xd0, 0x41, 0x42, 0x0d, 0xa3, 0xf7, 0x49, 0xdb, - 0x3a, 0xe1, 0x72, 0xcb, 0x08, 0x0e, 0x76, 0x17, 0x2d, 0xbf, 0x46, 0x88, 0x97, 0x25, 0x7a, 0x97, - 0xb4, 0x9c, 0x88, 0x2d, 0xeb, 0x22, 0xa5, 0x83, 0x94, 0x23, 0x11, 0x5b, 0x8e, 0xf0, 0x3c, 0x4c, - 0x23, 0x33, 0x95, 0x14, 0xb2, 0xcf, 0x21, 0xd7, 0x8e, 0x6d, 0x60, 0xe7, 0x2f, 0xe1, 0xf4, 0x3d, - 0xf9, 0x27, 0xa9, 0x4d, 0xbc, 0x65, 0x3d, 0xcc, 0x6a, 0x7c, 0x55, 0x56, 0xab, 0x97, 0x85, 0x5f, - 0x94, 0x1a, 0x7f, 0xae, 0xce, 0xad, 0x34, 0xcf, 0xe6, 0x42, 0x54, 0x92, 0xf6, 0x9e, 0xfe, 0x08, - 0x27, 0x92, 0x3e, 0xbc, 0xd1, 0xea, 0x17, 0x37, 0x5b, 0xff, 0xd1, 0xcd, 0xc8, 0xc5, 0x65, 0x33, - 0xfc, 0x6b, 0xf2, 0xf8, 0x5d, 0x10, 0x27, 0xee, 0x43, 0x3e, 0xf5, 0x43, 0x48, 0x83, 0x34, 0x09, - 0x0d, 0x58, 0x98, 0xb9, 0x20, 0x85, 0x30, 0x30, 0x59, 0x18, 0x2c, 0x95, 0x82, 0x52, 0x69, 0xda, - 0xc6, 0x51, 0x7f, 0xf2, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x37, 0x4b, 0xd5, 0x09, 0xf1, 0x05, 0x00, - 0x00, + // 694 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0x4d, 0x6f, 0xd3, 0x4a, + 0x14, 0x7d, 0x4e, 0xd2, 0xbc, 0xe4, 0xa6, 0xe9, 0x7b, 0x6f, 0x5e, 0x05, 0x56, 0x28, 0x55, 0x08, + 0x5d, 0xa4, 0x80, 0x6c, 0x91, 0xf6, 0x0f, 0x10, 0xc4, 0xa2, 0xa8, 0x2a, 0xd1, 0x50, 0x21, 0x81, + 0x90, 0xaa, 0x89, 0x3d, 0x71, 0xad, 0xd8, 0x73, 0xdd, 0x99, 0x31, 0x15, 0x7b, 0x16, 0xfc, 0x03, + 0xd6, 0xec, 0x91, 0x58, 0xf1, 0xcb, 0xf8, 0x03, 0x28, 0x63, 0x27, 0xb1, 0xdb, 0xa8, 0x1f, 0x12, + 0xac, 0x12, 0x9f, 0x7b, 0xe6, 0xcc, 0x99, 0x33, 0x77, 0x2e, 0x3c, 0x88, 0xd1, 0x3b, 0xf1, 0x22, + 0x4c, 0x7d, 0x16, 0x70, 0xa1, 0x4f, 0x22, 0x64, 0xfe, 0x98, 0x45, 0x4c, 0x78, 0x5c, 0x3a, 0x89, + 0x44, 0x8d, 0xe4, 0x4e, 0x8c, 0x9e, 0xb3, 0xa4, 0x38, 0x82, 0xeb, 0x73, 0x94, 0xd3, 0xce, 0x76, + 0x80, 0x18, 0x44, 0xdc, 0x35, 0xac, 0x71, 0x3a, 0x71, 0xcf, 0x25, 0x4b, 0x12, 0x2e, 0x55, 0xb6, + 0xae, 0x73, 0xd7, 0x48, 0x63, 0x1c, 0xa3, 0xc8, 0x7f, 0xf2, 0xc2, 0x76, 0xa1, 0x90, 0x8b, 0x15, + 0xeb, 0xbd, 0x2f, 0x16, 0xfc, 0x7f, 0x88, 0xcc, 0x1f, 0xe6, 0x3e, 0x28, 0x3f, 0x4b, 0xb9, 0xd2, + 0xe4, 0x25, 0xb4, 0x8b, 0xb0, 0xb2, 0xad, 0x6e, 0xb5, 0xdf, 0x1a, 0xec, 0x38, 0xab, 0x0d, 0x3a, + 0x25, 0x8d, 0xf2, 0x52, 0xb2, 0x0f, 0xed, 0x57, 0x09, 0x97, 0x4c, 0x87, 0x28, 0x8e, 0x3f, 0x26, + 0xdc, 0xae, 0x74, 0xad, 0xfe, 0xc6, 0x60, 0xc3, 0x68, 0x2d, 0x2a, 0xb4, 0x4c, 0xea, 0x7d, 0xb3, + 0x60, 0xb3, 0xec, 0x4c, 0x25, 0x28, 0x14, 0xff, 0xad, 0xd6, 0x06, 0x50, 0xa7, 0x5c, 0xa5, 0x91, + 0x36, 0x9e, 0x5a, 0x83, 0x8e, 0x93, 0x05, 0xed, 0xcc, 0x83, 0x76, 0x86, 0x88, 0xd1, 0x1b, 0x16, + 0xa5, 0x9c, 0xe6, 0x4c, 0xb2, 0x09, 0x6b, 0x2f, 0xa4, 0x44, 0x69, 0x57, 0xbb, 0x56, 0xbf, 0x49, + 0xb3, 0x8f, 0x5e, 0x08, 0xf7, 0x8a, 0xd2, 0x23, 0xc9, 0xbd, 0x53, 0xee, 0x4d, 0xff, 0x40, 0x9e, + 0xbd, 0x53, 0xd8, 0x5a, 0xbd, 0x55, 0x1e, 0xd0, 0xf2, 0x50, 0xd6, 0xed, 0x0f, 0x55, 0x29, 0x1e, + 0xea, 0xab, 0x05, 0x9d, 0xc3, 0x42, 0x97, 0x1e, 0x88, 0x31, 0xa6, 0xc2, 0x3f, 0x62, 0x9a, 0xa6, + 0x11, 0x27, 0x04, 0x6a, 0x82, 0xc5, 0xdc, 0x6c, 0xd3, 0xa4, 0xe6, 0x3f, 0xe9, 0xc1, 0xfa, 0x44, + 0xa2, 0xd0, 0x5c, 0xf8, 0x23, 0x94, 0x59, 0xae, 0x6d, 0x5a, 0xc2, 0x48, 0x17, 0x5a, 0x63, 0xe6, + 0x4d, 0xe7, 0x94, 0xaa, 0xa1, 0x14, 0x21, 0xb2, 0x0b, 0x0d, 0x63, 0xd6, 0xc3, 0xc8, 0xae, 0x99, + 0x6e, 0x69, 0x9b, 0xa4, 0x46, 0x39, 0x48, 0x17, 0xe5, 0xde, 0x27, 0x0b, 0xfe, 0x5b, 0xc6, 0x11, + 0x8a, 0xc0, 0x58, 0xbb, 0x68, 0xc3, 0xba, 0xde, 0x46, 0xe5, 0x6a, 0x1b, 0xd5, 0xab, 0x6d, 0x7c, + 0xaf, 0xc1, 0x7a, 0xf1, 0x56, 0x56, 0x86, 0xb3, 0x01, 0x95, 0xd0, 0xcf, 0x23, 0xae, 0x84, 0x3e, + 0xd9, 0x01, 0x98, 0x3b, 0x3a, 0x18, 0x65, 0xfd, 0x34, 0xac, 0x7d, 0xfe, 0x61, 0x5b, 0xb4, 0x80, + 0x93, 0x47, 0xf0, 0x6f, 0x6e, 0x2a, 0x41, 0x8c, 0x66, 0x42, 0xca, 0xae, 0x75, 0xab, 0xfd, 0x26, + 0xbd, 0x84, 0x93, 0x2d, 0x68, 0xe6, 0x2d, 0x14, 0xfa, 0xf6, 0x9a, 0xd9, 0x68, 0x09, 0x90, 0xb7, + 0x40, 0x96, 0x43, 0x27, 0x14, 0x81, 0x4c, 0x23, 0xae, 0xec, 0xba, 0x69, 0xc5, 0xdd, 0xeb, 0x5b, + 0x31, 0x0f, 0x97, 0xae, 0x10, 0x21, 0x5d, 0x68, 0x08, 0xf4, 0xf9, 0xe4, 0xcc, 0x17, 0xf6, 0xdf, + 0x85, 0x83, 0x2c, 0xd0, 0x99, 0xb5, 0x40, 0x62, 0x9a, 0x1c, 0xcd, 0x52, 0x69, 0x64, 0xd6, 0x16, + 0xc0, 0xec, 0xc2, 0x22, 0xf4, 0xcc, 0xf3, 0x37, 0x84, 0xa6, 0x21, 0x94, 0x30, 0xf2, 0x10, 0xea, + 0x4a, 0x33, 0x9d, 0x2a, 0x1b, 0x4c, 0x63, 0xb7, 0x8c, 0xe5, 0xd7, 0x06, 0xa2, 0x79, 0x89, 0xdc, + 0x87, 0x9a, 0x66, 0x81, 0xb2, 0x5b, 0x86, 0xd2, 0x34, 0x94, 0x63, 0x16, 0x28, 0x6a, 0xe0, 0x59, + 0x98, 0x92, 0x27, 0x51, 0x98, 0xc9, 0x3e, 0xc7, 0x54, 0x68, 0x7b, 0xdd, 0xdc, 0xfc, 0x25, 0x9c, + 0xbc, 0x87, 0x7f, 0xc2, 0x52, 0xc7, 0x2b, 0xbb, 0x6d, 0xb2, 0x1a, 0x5c, 0x95, 0xd5, 0xea, 0xc7, + 0x42, 0x2f, 0x4a, 0x0d, 0x7e, 0x96, 0x1a, 0x97, 0xcb, 0x67, 0x33, 0x25, 0xc2, 0xa1, 0x7e, 0x20, + 0x3e, 0xe0, 0x94, 0x93, 0xc7, 0x37, 0x9a, 0x0d, 0xd9, 0x7c, 0xe9, 0x3c, 0xb9, 0x19, 0x39, 0x9b, + 0x10, 0xbd, 0xbf, 0xc8, 0x39, 0x34, 0xe6, 0x73, 0x83, 0xec, 0xdd, 0x64, 0xed, 0x85, 0x81, 0xd6, + 0xd9, 0xbf, 0xdd, 0xa2, 0xf9, 0xc6, 0xc3, 0xa7, 0xef, 0xdc, 0x20, 0xd4, 0xa7, 0xe9, 0xd8, 0xf1, + 0x30, 0x76, 0xe3, 0xd0, 0x93, 0xa8, 0x70, 0xa2, 0xdd, 0x18, 0x3d, 0x57, 0x26, 0x9e, 0xbb, 0x54, + 0x74, 0x73, 0xc5, 0x71, 0xdd, 0x3c, 0xb2, 0xbd, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x88, 0x59, + 0x9d, 0xe5, 0x40, 0x07, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -449,6 +542,8 @@ const _ = grpc.SupportPackageIsVersion4 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type LoadBalancerAgentClient interface { Invoke(ctx context.Context, in *LoadBalancerRequest, opts ...grpc.CallOption) (*LoadBalancerResponse, error) + // Prechecks whether the system is able to create specified load balancers (but does not actually create them). + Precheck(ctx context.Context, in *LoadBalancerPrecheckRequest, opts ...grpc.CallOption) (*LoadBalancerPrecheckResponse, error) } type loadBalancerAgentClient struct { @@ -468,9 +563,20 @@ func (c *loadBalancerAgentClient) Invoke(ctx context.Context, in *LoadBalancerRe return out, nil } +func (c *loadBalancerAgentClient) Precheck(ctx context.Context, in *LoadBalancerPrecheckRequest, opts ...grpc.CallOption) (*LoadBalancerPrecheckResponse, error) { + out := new(LoadBalancerPrecheckResponse) + err := c.cc.Invoke(ctx, "/moc.cloudagent.network.LoadBalancerAgent/Precheck", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // LoadBalancerAgentServer is the server API for LoadBalancerAgent service. type LoadBalancerAgentServer interface { Invoke(context.Context, *LoadBalancerRequest) (*LoadBalancerResponse, error) + // Prechecks whether the system is able to create specified load balancers (but does not actually create them). + Precheck(context.Context, *LoadBalancerPrecheckRequest) (*LoadBalancerPrecheckResponse, error) } // UnimplementedLoadBalancerAgentServer can be embedded to have forward compatible implementations. @@ -480,6 +586,9 @@ type UnimplementedLoadBalancerAgentServer struct { func (*UnimplementedLoadBalancerAgentServer) Invoke(ctx context.Context, req *LoadBalancerRequest) (*LoadBalancerResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Invoke not implemented") } +func (*UnimplementedLoadBalancerAgentServer) Precheck(ctx context.Context, req *LoadBalancerPrecheckRequest) (*LoadBalancerPrecheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Precheck not implemented") +} func RegisterLoadBalancerAgentServer(s *grpc.Server, srv LoadBalancerAgentServer) { s.RegisterService(&_LoadBalancerAgent_serviceDesc, srv) @@ -503,6 +612,24 @@ func _LoadBalancerAgent_Invoke_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _LoadBalancerAgent_Precheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(LoadBalancerPrecheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LoadBalancerAgentServer).Precheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/moc.cloudagent.network.LoadBalancerAgent/Precheck", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LoadBalancerAgentServer).Precheck(ctx, req.(*LoadBalancerPrecheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _LoadBalancerAgent_serviceDesc = grpc.ServiceDesc{ ServiceName: "moc.cloudagent.network.LoadBalancerAgent", HandlerType: (*LoadBalancerAgentServer)(nil), @@ -511,6 +638,10 @@ var _LoadBalancerAgent_serviceDesc = grpc.ServiceDesc{ MethodName: "Invoke", Handler: _LoadBalancerAgent_Invoke_Handler, }, + { + MethodName: "Precheck", + Handler: _LoadBalancerAgent_Precheck_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "moc_cloudagent_loadbalancer.proto", diff --git a/rpc/cloudagent/network/moc_cloudagent_logicalnetwork.pb.go b/rpc/cloudagent/network/moc_cloudagent_logicalnetwork.pb.go index 6e5ca86..60aa7b4 100644 --- a/rpc/cloudagent/network/moc_cloudagent_logicalnetwork.pb.go +++ b/rpc/cloudagent/network/moc_cloudagent_logicalnetwork.pb.go @@ -128,6 +128,94 @@ func (m *LogicalNetworkResponse) GetError() string { return "" } +type LogicalNetworkPrecheckRequest struct { + LogicalNetworks []*LogicalNetwork `protobuf:"bytes,1,rep,name=LogicalNetworks,proto3" json:"LogicalNetworks,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LogicalNetworkPrecheckRequest) Reset() { *m = LogicalNetworkPrecheckRequest{} } +func (m *LogicalNetworkPrecheckRequest) String() string { return proto.CompactTextString(m) } +func (*LogicalNetworkPrecheckRequest) ProtoMessage() {} +func (*LogicalNetworkPrecheckRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_37e4212e5c247b0a, []int{2} +} + +func (m *LogicalNetworkPrecheckRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LogicalNetworkPrecheckRequest.Unmarshal(m, b) +} +func (m *LogicalNetworkPrecheckRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LogicalNetworkPrecheckRequest.Marshal(b, m, deterministic) +} +func (m *LogicalNetworkPrecheckRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_LogicalNetworkPrecheckRequest.Merge(m, src) +} +func (m *LogicalNetworkPrecheckRequest) XXX_Size() int { + return xxx_messageInfo_LogicalNetworkPrecheckRequest.Size(m) +} +func (m *LogicalNetworkPrecheckRequest) XXX_DiscardUnknown() { + xxx_messageInfo_LogicalNetworkPrecheckRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_LogicalNetworkPrecheckRequest proto.InternalMessageInfo + +func (m *LogicalNetworkPrecheckRequest) GetLogicalNetworks() []*LogicalNetwork { + if m != nil { + return m.LogicalNetworks + } + return nil +} + +type LogicalNetworkPrecheckResponse struct { + // The precheck result: true if the precheck criteria is passed; otherwise, false + Result *wrappers.BoolValue `protobuf:"bytes,1,opt,name=Result,proto3" json:"Result,omitempty"` + // The error message if the precheck is not passed; otherwise, empty string + Error string `protobuf:"bytes,2,opt,name=Error,proto3" json:"Error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LogicalNetworkPrecheckResponse) Reset() { *m = LogicalNetworkPrecheckResponse{} } +func (m *LogicalNetworkPrecheckResponse) String() string { return proto.CompactTextString(m) } +func (*LogicalNetworkPrecheckResponse) ProtoMessage() {} +func (*LogicalNetworkPrecheckResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_37e4212e5c247b0a, []int{3} +} + +func (m *LogicalNetworkPrecheckResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LogicalNetworkPrecheckResponse.Unmarshal(m, b) +} +func (m *LogicalNetworkPrecheckResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LogicalNetworkPrecheckResponse.Marshal(b, m, deterministic) +} +func (m *LogicalNetworkPrecheckResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_LogicalNetworkPrecheckResponse.Merge(m, src) +} +func (m *LogicalNetworkPrecheckResponse) XXX_Size() int { + return xxx_messageInfo_LogicalNetworkPrecheckResponse.Size(m) +} +func (m *LogicalNetworkPrecheckResponse) XXX_DiscardUnknown() { + xxx_messageInfo_LogicalNetworkPrecheckResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_LogicalNetworkPrecheckResponse proto.InternalMessageInfo + +func (m *LogicalNetworkPrecheckResponse) GetResult() *wrappers.BoolValue { + if m != nil { + return m.Result + } + return nil +} + +func (m *LogicalNetworkPrecheckResponse) GetError() string { + if m != nil { + return m.Error + } + return "" +} + type LogicalNetwork struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` @@ -146,7 +234,7 @@ func (m *LogicalNetwork) Reset() { *m = LogicalNetwork{} } func (m *LogicalNetwork) String() string { return proto.CompactTextString(m) } func (*LogicalNetwork) ProtoMessage() {} func (*LogicalNetwork) Descriptor() ([]byte, []int) { - return fileDescriptor_37e4212e5c247b0a, []int{2} + return fileDescriptor_37e4212e5c247b0a, []int{4} } func (m *LogicalNetwork) XXX_Unmarshal(b []byte) error { @@ -244,7 +332,7 @@ func (m *LogicalSubnet) Reset() { *m = LogicalSubnet{} } func (m *LogicalSubnet) String() string { return proto.CompactTextString(m) } func (*LogicalSubnet) ProtoMessage() {} func (*LogicalSubnet) Descriptor() ([]byte, []int) { - return fileDescriptor_37e4212e5c247b0a, []int{3} + return fileDescriptor_37e4212e5c247b0a, []int{5} } func (m *LogicalSubnet) XXX_Unmarshal(b []byte) error { @@ -345,6 +433,8 @@ func (m *LogicalSubnet) GetNetworkSecurityGroupRef() *common.NetworkSecurityGrou func init() { proto.RegisterType((*LogicalNetworkRequest)(nil), "moc.cloudagent.network.LogicalNetworkRequest") proto.RegisterType((*LogicalNetworkResponse)(nil), "moc.cloudagent.network.LogicalNetworkResponse") + proto.RegisterType((*LogicalNetworkPrecheckRequest)(nil), "moc.cloudagent.network.LogicalNetworkPrecheckRequest") + proto.RegisterType((*LogicalNetworkPrecheckResponse)(nil), "moc.cloudagent.network.LogicalNetworkPrecheckResponse") proto.RegisterType((*LogicalNetwork)(nil), "moc.cloudagent.network.LogicalNetwork") proto.RegisterType((*LogicalSubnet)(nil), "moc.cloudagent.network.LogicalSubnet") } @@ -354,48 +444,51 @@ func init() { } var fileDescriptor_37e4212e5c247b0a = []byte{ - // 652 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0xcd, 0x6e, 0xd3, 0x4c, - 0x14, 0xfd, 0x9c, 0xa4, 0xf9, 0xb9, 0xf9, 0x12, 0xa4, 0x01, 0x5a, 0x2b, 0x82, 0x2a, 0x72, 0x69, - 0x95, 0x0d, 0xb6, 0x08, 0x48, 0x2c, 0x51, 0x23, 0x2a, 0x54, 0x09, 0x4a, 0x34, 0xad, 0xba, 0x40, - 0x48, 0xd5, 0xc4, 0x9e, 0xa4, 0xa3, 0x8e, 0x3d, 0x66, 0x66, 0xdc, 0x52, 0x56, 0x2c, 0x79, 0x0b, - 0x5e, 0x80, 0x25, 0x3c, 0x04, 0x6f, 0x85, 0x7c, 0xe3, 0xa4, 0x71, 0x55, 0xa0, 0x1b, 0x56, 0xf6, - 0xdc, 0x73, 0xee, 0xb9, 0xf7, 0x9e, 0xf9, 0x81, 0xad, 0x58, 0x85, 0x27, 0xa1, 0x54, 0x59, 0xc4, - 0x66, 0x3c, 0xb1, 0x27, 0x52, 0xcd, 0x44, 0xc8, 0x64, 0xc2, 0xed, 0x85, 0xd2, 0x67, 0x7e, 0xaa, - 0x95, 0x55, 0x64, 0x3d, 0x56, 0xa1, 0x7f, 0x45, 0xf2, 0x0b, 0xb4, 0xb7, 0x39, 0x53, 0x6a, 0x26, - 0x79, 0x80, 0xac, 0x49, 0x36, 0x0d, 0x2e, 0x34, 0x4b, 0x53, 0xae, 0xcd, 0x3c, 0xaf, 0xb7, 0x81, - 0xe2, 0x2a, 0x8e, 0x55, 0x52, 0x7c, 0x0a, 0x60, 0x73, 0x05, 0x28, 0xc4, 0x56, 0x71, 0xef, 0xab, - 0x03, 0xf7, 0x5f, 0xcf, 0x3b, 0x39, 0x98, 0xc3, 0x94, 0x7f, 0xc8, 0xb8, 0xb1, 0x64, 0x0c, 0x77, - 0xca, 0x80, 0x71, 0x9d, 0x7e, 0x75, 0xd0, 0x1e, 0xee, 0xf8, 0x37, 0x37, 0xe9, 0x5f, 0xd3, 0xb9, - 0x9e, 0x4e, 0x9e, 0x41, 0xe7, 0x6d, 0xca, 0x35, 0xb3, 0x42, 0x25, 0x47, 0x97, 0x29, 0x77, 0x2b, - 0x7d, 0x67, 0xd0, 0x1d, 0x76, 0x51, 0x6f, 0x89, 0xd0, 0x32, 0xc9, 0xfb, 0xee, 0xc0, 0xfa, 0xf5, - 0x0e, 0x4d, 0xaa, 0x12, 0xc3, 0xff, 0x41, 0x8b, 0x43, 0xa8, 0x53, 0x6e, 0x32, 0x69, 0xb1, 0xb7, - 0xf6, 0xb0, 0xe7, 0xcf, 0x8d, 0xf7, 0x17, 0xc6, 0xfb, 0x23, 0xa5, 0xe4, 0x31, 0x93, 0x19, 0xa7, - 0x05, 0x93, 0xdc, 0x83, 0xb5, 0x3d, 0xad, 0x95, 0x76, 0xab, 0x7d, 0x67, 0xd0, 0xa2, 0xf3, 0x85, - 0xf7, 0xb3, 0x02, 0xdd, 0xb2, 0x3a, 0x21, 0x50, 0x4b, 0x58, 0xcc, 0x5d, 0x07, 0x79, 0xf8, 0x4f, - 0xba, 0x50, 0x11, 0x11, 0x16, 0x6b, 0xd1, 0x8a, 0x88, 0xc8, 0x0b, 0x68, 0x98, 0x6c, 0x92, 0x70, - 0x6b, 0xdc, 0x2a, 0x8e, 0xb2, 0xfd, 0x97, 0x51, 0x0e, 0x91, 0x4d, 0x17, 0x59, 0x64, 0x04, 0x0f, - 0x0a, 0xc6, 0xb1, 0xd0, 0x36, 0x63, 0x52, 0x7c, 0x42, 0x2f, 0xf7, 0x12, 0x36, 0x91, 0x3c, 0x72, - 0x6b, 0x7d, 0x67, 0xd0, 0xa4, 0x7f, 0xe4, 0x90, 0x2d, 0xa8, 0x1b, 0xcb, 0x6c, 0x66, 0xdc, 0x35, - 0x74, 0xa1, 0x8d, 0x3d, 0x1c, 0x62, 0x88, 0x16, 0x10, 0xf1, 0xe0, 0x7f, 0xa9, 0x42, 0xcc, 0x3b, - 0xc8, 0xa7, 0xaa, 0xe3, 0x0c, 0xa5, 0x18, 0xd9, 0x81, 0x76, 0xcc, 0xc2, 0xb1, 0x52, 0x12, 0x29, - 0x8d, 0x9c, 0x32, 0xaa, 0x7d, 0xf9, 0xe1, 0x3a, 0x74, 0x15, 0x20, 0x0f, 0xa1, 0x66, 0xd9, 0xcc, - 0xb8, 0x4d, 0x2c, 0xd7, 0xc2, 0x72, 0x47, 0x6c, 0x66, 0x28, 0x86, 0xbd, 0x6f, 0x55, 0xe8, 0x94, - 0xc6, 0xbd, 0x95, 0x95, 0x8f, 0xa0, 0xc3, 0xa2, 0x48, 0x73, 0x63, 0xc6, 0x9a, 0x4f, 0xc5, 0xc7, - 0x62, 0x7f, 0xca, 0x41, 0xe2, 0x41, 0x5d, 0xab, 0xcc, 0x72, 0xe3, 0xd6, 0xd0, 0x6f, 0xc0, 0xe2, - 0x34, 0x0f, 0xd1, 0x02, 0x21, 0xcf, 0x01, 0x98, 0x5c, 0x0c, 0x86, 0x9e, 0x74, 0x87, 0x1b, 0xc8, - 0xdb, 0x1f, 0xef, 0x2e, 0x81, 0x37, 0xdc, 0x9e, 0xaa, 0x88, 0xae, 0x50, 0xf3, 0x36, 0xcf, 0x25, - 0x4b, 0xd0, 0x9b, 0x0e, 0xc5, 0x7f, 0xb2, 0x0d, 0x0d, 0x91, 0xe6, 0x93, 0x1b, 0xb7, 0x81, 0x15, - 0xdb, 0x85, 0x52, 0x1e, 0xa3, 0x0b, 0x8c, 0xf4, 0xa1, 0x1a, 0x25, 0x0b, 0x47, 0x9a, 0x48, 0x79, - 0x99, 0x98, 0xc2, 0xbc, 0x1c, 0x22, 0x3d, 0x68, 0x0a, 0x33, 0xce, 0x26, 0x52, 0x84, 0x6e, 0x0b, - 0x77, 0x75, 0xb9, 0x5e, 0x1a, 0x0a, 0x37, 0x1a, 0x4a, 0xde, 0xc3, 0x46, 0x71, 0x00, 0x0e, 0x79, - 0x98, 0x69, 0x61, 0x2f, 0x5f, 0x69, 0x95, 0xa5, 0x94, 0x4f, 0xdd, 0x36, 0x66, 0x78, 0x98, 0x71, - 0x70, 0x33, 0x87, 0x6b, 0x9e, 0x84, 0x9c, 0xfe, 0x4e, 0x62, 0xf8, 0xd9, 0x81, 0xbb, 0xe5, 0xa3, - 0xbf, 0x9b, 0x9f, 0x5c, 0x22, 0xa0, 0xbe, 0x9f, 0x9c, 0xab, 0x33, 0x4e, 0x1e, 0xdf, 0xf2, 0x7e, - 0xce, 0x9f, 0xa2, 0x9e, 0x7f, 0x5b, 0xfa, 0xfc, 0x5d, 0xf0, 0xfe, 0x1b, 0x3d, 0x79, 0x17, 0xcc, - 0x84, 0x3d, 0xcd, 0x26, 0x7e, 0xa8, 0xe2, 0x20, 0x16, 0xa1, 0x56, 0x46, 0x4d, 0x6d, 0x10, 0xab, - 0x30, 0xd0, 0x69, 0x18, 0x5c, 0x69, 0x05, 0x85, 0xd6, 0xa4, 0x8e, 0x57, 0xfc, 0xe9, 0xaf, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xec, 0x33, 0xc8, 0x21, 0xa8, 0x05, 0x00, 0x00, + // 704 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0xdd, 0x4e, 0xdb, 0x48, + 0x14, 0x5e, 0x27, 0x21, 0x3f, 0x27, 0x9b, 0xac, 0x34, 0xbb, 0x0b, 0x56, 0xb4, 0xa0, 0xc8, 0x2c, + 0x28, 0x37, 0x6b, 0x6b, 0xb3, 0x3f, 0xbd, 0xac, 0x88, 0x8a, 0x2a, 0xa4, 0x96, 0x46, 0x03, 0xe2, + 0xa2, 0xaa, 0x84, 0x9c, 0xf1, 0x24, 0xb8, 0xd8, 0x1e, 0x33, 0x33, 0x86, 0xd2, 0xbe, 0x40, 0xdf, + 0xa2, 0x2f, 0xd0, 0xcb, 0xf6, 0x21, 0xfa, 0x50, 0x95, 0x2a, 0x9f, 0x4c, 0x42, 0x1c, 0x41, 0x1b, + 0x2e, 0xb8, 0x8a, 0x7d, 0xbe, 0xef, 0x7c, 0xe7, 0x7c, 0x5f, 0xc6, 0x03, 0xdb, 0xb1, 0x60, 0xa7, + 0x2c, 0x12, 0x59, 0xe0, 0x4f, 0x78, 0xa2, 0x4f, 0x23, 0x31, 0x09, 0x99, 0x1f, 0x25, 0x5c, 0x5f, + 0x09, 0x79, 0xee, 0xa6, 0x52, 0x68, 0x41, 0xd6, 0x63, 0xc1, 0xdc, 0x1b, 0x92, 0x6b, 0xd0, 0xce, + 0xd6, 0x44, 0x88, 0x49, 0xc4, 0x3d, 0x64, 0x8d, 0xb2, 0xb1, 0x77, 0x25, 0xfd, 0x34, 0xe5, 0x52, + 0x4d, 0xfb, 0x3a, 0x1b, 0x28, 0x2e, 0xe2, 0x58, 0x24, 0xe6, 0xc7, 0x00, 0x5b, 0x0b, 0x80, 0x11, + 0x5b, 0xc4, 0x9d, 0x0f, 0x16, 0xfc, 0xfe, 0x6c, 0xba, 0xc9, 0xe1, 0x14, 0xa6, 0xfc, 0x22, 0xe3, + 0x4a, 0x93, 0x21, 0xfc, 0x52, 0x04, 0x94, 0x6d, 0x75, 0xcb, 0xbd, 0x66, 0x7f, 0xd7, 0xbd, 0x7d, + 0x49, 0x77, 0x49, 0x67, 0xb9, 0x9d, 0xfc, 0x0b, 0xad, 0x17, 0x29, 0x97, 0xbe, 0x0e, 0x45, 0x72, + 0x7c, 0x9d, 0x72, 0xbb, 0xd4, 0xb5, 0x7a, 0xed, 0x7e, 0x1b, 0xf5, 0xe6, 0x08, 0x2d, 0x92, 0x9c, + 0x4f, 0x16, 0xac, 0x2f, 0x6f, 0xa8, 0x52, 0x91, 0x28, 0xfe, 0x00, 0x2b, 0xf6, 0xa1, 0x4a, 0xb9, + 0xca, 0x22, 0x8d, 0xbb, 0x35, 0xfb, 0x1d, 0x77, 0x1a, 0xbc, 0x3b, 0x0b, 0xde, 0x1d, 0x08, 0x11, + 0x9d, 0xf8, 0x51, 0xc6, 0xa9, 0x61, 0x92, 0xdf, 0x60, 0x6d, 0x5f, 0x4a, 0x21, 0xed, 0x72, 0xd7, + 0xea, 0x35, 0xe8, 0xf4, 0xc5, 0xb9, 0x80, 0xcd, 0xa2, 0xf8, 0x50, 0x72, 0x76, 0xc6, 0xd9, 0xc3, + 0xe5, 0xeb, 0xbc, 0x86, 0xad, 0xbb, 0x46, 0x9a, 0xc0, 0x6e, 0xec, 0x59, 0xf7, 0xb7, 0x57, 0x5a, + 0xb4, 0xf7, 0xa5, 0x04, 0xed, 0xe2, 0x30, 0x42, 0xa0, 0x92, 0xf8, 0x31, 0x47, 0xe9, 0x06, 0xc5, + 0x67, 0xd2, 0x86, 0x52, 0x18, 0x98, 0xce, 0x52, 0x18, 0x90, 0xc7, 0x50, 0x53, 0xd9, 0x28, 0xe1, + 0x5a, 0xd9, 0x65, 0x34, 0xbb, 0xf3, 0x03, 0xb3, 0x47, 0xc8, 0xa6, 0xb3, 0x2e, 0x32, 0x80, 0x3f, + 0x0c, 0xe3, 0x24, 0x94, 0x3a, 0xf3, 0xa3, 0xf0, 0x2d, 0x1e, 0x95, 0xfd, 0xc4, 0x1f, 0x45, 0x3c, + 0xb0, 0x2b, 0x5d, 0xab, 0x57, 0xa7, 0xdf, 0xe5, 0x90, 0x6d, 0xa8, 0x2a, 0xed, 0xeb, 0x4c, 0xd9, + 0x6b, 0x98, 0x42, 0x13, 0x77, 0x38, 0xc2, 0x12, 0x35, 0x10, 0x71, 0xe0, 0xe7, 0x48, 0x30, 0xec, + 0x3b, 0xcc, 0x5d, 0x55, 0xd1, 0x43, 0xa1, 0x46, 0x76, 0xa1, 0x19, 0xfb, 0x6c, 0x28, 0x44, 0x84, + 0x94, 0x5a, 0x4e, 0x19, 0x54, 0xde, 0x7f, 0xb6, 0x2d, 0xba, 0x08, 0x90, 0x4d, 0xa8, 0x68, 0x7f, + 0xa2, 0xec, 0x3a, 0x8e, 0x6b, 0xe0, 0xb8, 0x63, 0x7f, 0xa2, 0x28, 0x96, 0x9d, 0x8f, 0x65, 0x68, + 0x15, 0xec, 0xae, 0x14, 0xe5, 0x9f, 0xd0, 0xf2, 0x83, 0x40, 0x72, 0xa5, 0x86, 0x92, 0x8f, 0xc3, + 0x37, 0xe6, 0xf8, 0x15, 0x8b, 0xc4, 0x81, 0xaa, 0x14, 0x99, 0xe6, 0xca, 0xae, 0x60, 0xde, 0x80, + 0xc3, 0x69, 0x5e, 0xa2, 0x06, 0x21, 0x8f, 0x00, 0xfc, 0x68, 0x66, 0x0c, 0x33, 0x69, 0xf7, 0x37, + 0x90, 0x77, 0x30, 0xdc, 0x9b, 0x03, 0xcf, 0xb9, 0x3e, 0x13, 0x01, 0x5d, 0xa0, 0xe6, 0x6b, 0x5e, + 0x46, 0x7e, 0x82, 0xd9, 0xb4, 0x28, 0x3e, 0x93, 0x1d, 0xa8, 0x85, 0x69, 0xee, 0x5c, 0xd9, 0x35, + 0x9c, 0xd8, 0x34, 0x4a, 0x79, 0x8d, 0xce, 0x30, 0xd2, 0x85, 0x72, 0x90, 0xcc, 0x12, 0xa9, 0x23, + 0xe5, 0x49, 0xa2, 0x4c, 0x78, 0x39, 0x44, 0x3a, 0x50, 0x0f, 0xd5, 0x30, 0x1b, 0x45, 0x21, 0xb3, + 0x1b, 0xf8, 0xaf, 0xce, 0xdf, 0xe7, 0x81, 0xc2, 0xad, 0x81, 0x92, 0x57, 0xb0, 0x61, 0x0e, 0xc0, + 0x11, 0x67, 0x99, 0x0c, 0xf5, 0xf5, 0x53, 0x29, 0xb2, 0x94, 0xf2, 0xb1, 0xdd, 0xc4, 0x0e, 0x07, + 0x3b, 0x0e, 0x6f, 0xe7, 0x70, 0xc9, 0x13, 0xc6, 0xe9, 0x5d, 0x12, 0xfd, 0xaf, 0x16, 0xfc, 0x5a, + 0x3c, 0xfa, 0x7b, 0xf9, 0xc9, 0x25, 0x21, 0x54, 0x0f, 0x92, 0x4b, 0x71, 0xce, 0xc9, 0x5f, 0x2b, + 0x7e, 0xc1, 0xd3, 0x9b, 0xa0, 0xe3, 0xae, 0x4a, 0x9f, 0x7e, 0xc5, 0xce, 0x4f, 0xe4, 0x1d, 0xd4, + 0x67, 0xdf, 0x36, 0xf9, 0x6f, 0xb5, 0xee, 0xa5, 0xeb, 0xa7, 0xf3, 0xff, 0x7d, 0xdb, 0x66, 0xc3, + 0x07, 0x7f, 0xbf, 0xf4, 0x26, 0xa1, 0x3e, 0xcb, 0x46, 0x2e, 0x13, 0xb1, 0x17, 0x87, 0x4c, 0x0a, + 0x25, 0xc6, 0xda, 0x8b, 0x05, 0xf3, 0x64, 0xca, 0xbc, 0x1b, 0x4d, 0xcf, 0x68, 0x8e, 0xaa, 0x78, + 0xbf, 0xfc, 0xf3, 0x2d, 0x00, 0x00, 0xff, 0xff, 0x37, 0x74, 0x11, 0x89, 0x04, 0x07, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -411,6 +504,8 @@ const _ = grpc.SupportPackageIsVersion4 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type LogicalNetworkAgentClient interface { Invoke(ctx context.Context, in *LogicalNetworkRequest, opts ...grpc.CallOption) (*LogicalNetworkResponse, error) + // Prechecks whether the system is able to create specified logical networks (but does not actually create them). + Precheck(ctx context.Context, in *LogicalNetworkPrecheckRequest, opts ...grpc.CallOption) (*LogicalNetworkPrecheckResponse, error) } type logicalNetworkAgentClient struct { @@ -430,9 +525,20 @@ func (c *logicalNetworkAgentClient) Invoke(ctx context.Context, in *LogicalNetwo return out, nil } +func (c *logicalNetworkAgentClient) Precheck(ctx context.Context, in *LogicalNetworkPrecheckRequest, opts ...grpc.CallOption) (*LogicalNetworkPrecheckResponse, error) { + out := new(LogicalNetworkPrecheckResponse) + err := c.cc.Invoke(ctx, "/moc.cloudagent.network.LogicalNetworkAgent/Precheck", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // LogicalNetworkAgentServer is the server API for LogicalNetworkAgent service. type LogicalNetworkAgentServer interface { Invoke(context.Context, *LogicalNetworkRequest) (*LogicalNetworkResponse, error) + // Prechecks whether the system is able to create specified logical networks (but does not actually create them). + Precheck(context.Context, *LogicalNetworkPrecheckRequest) (*LogicalNetworkPrecheckResponse, error) } // UnimplementedLogicalNetworkAgentServer can be embedded to have forward compatible implementations. @@ -442,6 +548,9 @@ type UnimplementedLogicalNetworkAgentServer struct { func (*UnimplementedLogicalNetworkAgentServer) Invoke(ctx context.Context, req *LogicalNetworkRequest) (*LogicalNetworkResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Invoke not implemented") } +func (*UnimplementedLogicalNetworkAgentServer) Precheck(ctx context.Context, req *LogicalNetworkPrecheckRequest) (*LogicalNetworkPrecheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Precheck not implemented") +} func RegisterLogicalNetworkAgentServer(s *grpc.Server, srv LogicalNetworkAgentServer) { s.RegisterService(&_LogicalNetworkAgent_serviceDesc, srv) @@ -465,6 +574,24 @@ func _LogicalNetworkAgent_Invoke_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } +func _LogicalNetworkAgent_Precheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(LogicalNetworkPrecheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicalNetworkAgentServer).Precheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/moc.cloudagent.network.LogicalNetworkAgent/Precheck", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicalNetworkAgentServer).Precheck(ctx, req.(*LogicalNetworkPrecheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _LogicalNetworkAgent_serviceDesc = grpc.ServiceDesc{ ServiceName: "moc.cloudagent.network.LogicalNetworkAgent", HandlerType: (*LogicalNetworkAgentServer)(nil), @@ -473,6 +600,10 @@ var _LogicalNetworkAgent_serviceDesc = grpc.ServiceDesc{ MethodName: "Invoke", Handler: _LogicalNetworkAgent_Invoke_Handler, }, + { + MethodName: "Precheck", + Handler: _LogicalNetworkAgent_Precheck_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "moc_cloudagent_logicalnetwork.proto", diff --git a/rpc/cloudagent/network/moc_cloudagent_macpool.pb.go b/rpc/cloudagent/network/moc_cloudagent_macpool.pb.go index f1a4602..c304352 100644 --- a/rpc/cloudagent/network/moc_cloudagent_macpool.pb.go +++ b/rpc/cloudagent/network/moc_cloudagent_macpool.pb.go @@ -128,6 +128,94 @@ func (m *MacPoolResponse) GetError() string { return "" } +type MacPoolPrecheckRequest struct { + MacPools []*MacPool `protobuf:"bytes,1,rep,name=MacPools,proto3" json:"MacPools,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MacPoolPrecheckRequest) Reset() { *m = MacPoolPrecheckRequest{} } +func (m *MacPoolPrecheckRequest) String() string { return proto.CompactTextString(m) } +func (*MacPoolPrecheckRequest) ProtoMessage() {} +func (*MacPoolPrecheckRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_53e61bc69a03dcef, []int{2} +} + +func (m *MacPoolPrecheckRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MacPoolPrecheckRequest.Unmarshal(m, b) +} +func (m *MacPoolPrecheckRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MacPoolPrecheckRequest.Marshal(b, m, deterministic) +} +func (m *MacPoolPrecheckRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MacPoolPrecheckRequest.Merge(m, src) +} +func (m *MacPoolPrecheckRequest) XXX_Size() int { + return xxx_messageInfo_MacPoolPrecheckRequest.Size(m) +} +func (m *MacPoolPrecheckRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MacPoolPrecheckRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MacPoolPrecheckRequest proto.InternalMessageInfo + +func (m *MacPoolPrecheckRequest) GetMacPools() []*MacPool { + if m != nil { + return m.MacPools + } + return nil +} + +type MacPoolPrecheckResponse struct { + // The precheck result: true if the precheck criteria is passed; otherwise, false + Result *wrappers.BoolValue `protobuf:"bytes,1,opt,name=Result,proto3" json:"Result,omitempty"` + // The error message if the precheck is not passed; otherwise, empty string + Error string `protobuf:"bytes,2,opt,name=Error,proto3" json:"Error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MacPoolPrecheckResponse) Reset() { *m = MacPoolPrecheckResponse{} } +func (m *MacPoolPrecheckResponse) String() string { return proto.CompactTextString(m) } +func (*MacPoolPrecheckResponse) ProtoMessage() {} +func (*MacPoolPrecheckResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_53e61bc69a03dcef, []int{3} +} + +func (m *MacPoolPrecheckResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MacPoolPrecheckResponse.Unmarshal(m, b) +} +func (m *MacPoolPrecheckResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MacPoolPrecheckResponse.Marshal(b, m, deterministic) +} +func (m *MacPoolPrecheckResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MacPoolPrecheckResponse.Merge(m, src) +} +func (m *MacPoolPrecheckResponse) XXX_Size() int { + return xxx_messageInfo_MacPoolPrecheckResponse.Size(m) +} +func (m *MacPoolPrecheckResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MacPoolPrecheckResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MacPoolPrecheckResponse proto.InternalMessageInfo + +func (m *MacPoolPrecheckResponse) GetResult() *wrappers.BoolValue { + if m != nil { + return m.Result + } + return nil +} + +func (m *MacPoolPrecheckResponse) GetError() string { + if m != nil { + return m.Error + } + return "" +} + type MacRange struct { StartMacAddress string `protobuf:"bytes,1,opt,name=startMacAddress,proto3" json:"startMacAddress,omitempty"` EndMacAddress string `protobuf:"bytes,2,opt,name=endMacAddress,proto3" json:"endMacAddress,omitempty"` @@ -140,7 +228,7 @@ func (m *MacRange) Reset() { *m = MacRange{} } func (m *MacRange) String() string { return proto.CompactTextString(m) } func (*MacRange) ProtoMessage() {} func (*MacRange) Descriptor() ([]byte, []int) { - return fileDescriptor_53e61bc69a03dcef, []int{2} + return fileDescriptor_53e61bc69a03dcef, []int{4} } func (m *MacRange) XXX_Unmarshal(b []byte) error { @@ -191,7 +279,7 @@ func (m *MacPool) Reset() { *m = MacPool{} } func (m *MacPool) String() string { return proto.CompactTextString(m) } func (*MacPool) ProtoMessage() {} func (*MacPool) Descriptor() ([]byte, []int) { - return fileDescriptor_53e61bc69a03dcef, []int{3} + return fileDescriptor_53e61bc69a03dcef, []int{5} } func (m *MacPool) XXX_Unmarshal(b []byte) error { @@ -257,6 +345,8 @@ func (m *MacPool) GetTags() *common.Tags { func init() { proto.RegisterType((*MacPoolRequest)(nil), "moc.cloudagent.network.MacPoolRequest") proto.RegisterType((*MacPoolResponse)(nil), "moc.cloudagent.network.MacPoolResponse") + proto.RegisterType((*MacPoolPrecheckRequest)(nil), "moc.cloudagent.network.MacPoolPrecheckRequest") + proto.RegisterType((*MacPoolPrecheckResponse)(nil), "moc.cloudagent.network.MacPoolPrecheckResponse") proto.RegisterType((*MacRange)(nil), "moc.cloudagent.network.MacRange") proto.RegisterType((*MacPool)(nil), "moc.cloudagent.network.MacPool") } @@ -264,36 +354,39 @@ func init() { func init() { proto.RegisterFile("moc_cloudagent_macpool.proto", fileDescriptor_53e61bc69a03dcef) } var fileDescriptor_53e61bc69a03dcef = []byte{ - // 451 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x92, 0xcf, 0x6e, 0xd4, 0x30, - 0x10, 0xc6, 0xc9, 0x76, 0x9b, 0xd2, 0xd9, 0x76, 0x2b, 0x59, 0x08, 0xa2, 0x15, 0x7f, 0x56, 0x01, - 0xc1, 0x9e, 0x12, 0x11, 0x10, 0x17, 0x4e, 0xad, 0xc4, 0x81, 0x43, 0x01, 0x99, 0x8a, 0x43, 0x39, - 0x54, 0x5e, 0xc7, 0x0d, 0xd1, 0xc6, 0x9e, 0x60, 0x3b, 0x54, 0x9c, 0x79, 0x09, 0x5e, 0x8a, 0x77, - 0x42, 0x99, 0xb8, 0x5b, 0x16, 0x21, 0x7a, 0xe8, 0x29, 0xc9, 0x37, 0xbf, 0xf9, 0xe6, 0xcb, 0xd8, - 0x70, 0x5f, 0xa3, 0x3c, 0x93, 0x0d, 0x76, 0xa5, 0xa8, 0x94, 0xf1, 0x67, 0x5a, 0xc8, 0x16, 0xb1, - 0xc9, 0x5a, 0x8b, 0x1e, 0xd9, 0x5d, 0x8d, 0x32, 0xbb, 0xaa, 0x66, 0x46, 0xf9, 0x0b, 0xb4, 0xab, - 0xd9, 0xc3, 0x0a, 0xb1, 0x6a, 0x54, 0x4e, 0xd4, 0xb2, 0x3b, 0xcf, 0x2f, 0xac, 0x68, 0x5b, 0x65, - 0xdd, 0xd0, 0x37, 0xbb, 0x47, 0xae, 0xa8, 0x35, 0x9a, 0xf0, 0x18, 0x0a, 0xe9, 0x8f, 0x08, 0xa6, - 0xc7, 0x42, 0x7e, 0x40, 0x6c, 0xb8, 0xfa, 0xda, 0x29, 0xe7, 0xd9, 0x6b, 0xb8, 0x1d, 0x14, 0x97, - 0x44, 0xf3, 0xad, 0xc5, 0xa4, 0x78, 0x94, 0xfd, 0x7b, 0x6c, 0x76, 0xd9, 0xb9, 0x6e, 0x60, 0x2f, - 0x61, 0xff, 0x7d, 0xab, 0xac, 0xf0, 0x35, 0x9a, 0x93, 0xef, 0xad, 0x4a, 0x46, 0xf3, 0x68, 0x31, - 0x2d, 0xa6, 0xe4, 0xb0, 0xae, 0xf0, 0x4d, 0x28, 0xfd, 0x19, 0xc1, 0xc1, 0x3a, 0x85, 0x6b, 0xd1, - 0x38, 0x75, 0xb3, 0x18, 0x05, 0xc4, 0x5c, 0xb9, 0xae, 0xf1, 0x34, 0x7f, 0x52, 0xcc, 0xb2, 0x61, - 0x41, 0xd9, 0xe5, 0x82, 0xb2, 0x23, 0xc4, 0xe6, 0x93, 0x68, 0x3a, 0xc5, 0x03, 0xc9, 0xee, 0xc0, - 0xf6, 0x1b, 0x6b, 0xd1, 0x26, 0x5b, 0xf3, 0x68, 0xb1, 0xcb, 0x87, 0x8f, 0xf4, 0x94, 0x62, 0x70, - 0x61, 0x2a, 0xc5, 0x16, 0x70, 0xe0, 0xbc, 0xb0, 0xfe, 0x58, 0xc8, 0xc3, 0xb2, 0xb4, 0xca, 0xf5, - 0xc9, 0x7a, 0xf6, 0x6f, 0x99, 0x3d, 0x81, 0x7d, 0x65, 0xca, 0x3f, 0xb8, 0x11, 0x71, 0x9b, 0x62, - 0xfa, 0x2b, 0x82, 0x9d, 0x10, 0x99, 0x31, 0x18, 0x1b, 0xa1, 0x55, 0x30, 0xa4, 0x77, 0x36, 0x85, - 0x51, 0x5d, 0x86, 0xd6, 0x51, 0x5d, 0xb2, 0x57, 0xb0, 0x6d, 0xfb, 0x20, 0x94, 0x70, 0x52, 0xcc, - 0xff, 0xb3, 0x0f, 0x0a, 0xcc, 0x07, 0x9c, 0xa5, 0xb0, 0xd7, 0xa0, 0xa4, 0x75, 0xbf, 0xeb, 0x67, - 0x8c, 0xc9, 0x71, 0x43, 0x63, 0x8f, 0x21, 0x76, 0x5e, 0xf8, 0xce, 0x25, 0x31, 0x99, 0x4f, 0xc8, - 0xfc, 0x23, 0x49, 0x3c, 0x94, 0xd8, 0x03, 0x18, 0x7b, 0x51, 0xb9, 0x64, 0x87, 0x90, 0x5d, 0x42, - 0x4e, 0x44, 0xe5, 0x38, 0xc9, 0xc5, 0x0a, 0xf6, 0xc2, 0xef, 0x1c, 0xf6, 0x79, 0xd8, 0x67, 0x88, - 0xdf, 0x9a, 0x6f, 0xb8, 0x52, 0xec, 0xe9, 0x75, 0x47, 0x37, 0xdc, 0xbd, 0xd9, 0xb3, 0x6b, 0xb9, - 0xe1, 0x76, 0xa4, 0xb7, 0x8e, 0x9e, 0x9f, 0xe6, 0x55, 0xed, 0xbf, 0x74, 0xcb, 0x4c, 0xa2, 0xce, - 0x75, 0x2d, 0x2d, 0x3a, 0x3c, 0xf7, 0xb9, 0x46, 0x99, 0xdb, 0x56, 0xe6, 0x57, 0x26, 0x79, 0x30, - 0x59, 0xc6, 0x74, 0xfa, 0x2f, 0x7e, 0x07, 0x00, 0x00, 0xff, 0xff, 0xed, 0xbe, 0xd5, 0xeb, 0x64, - 0x03, 0x00, 0x00, + // 502 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x92, 0xcf, 0x6e, 0xd3, 0x40, + 0x10, 0xc6, 0x71, 0x9a, 0xa6, 0xcd, 0xa4, 0x4d, 0xa5, 0x15, 0x6a, 0x2d, 0x8b, 0x3f, 0x91, 0x41, + 0x90, 0xd3, 0x5a, 0x18, 0xc4, 0x85, 0x53, 0x2b, 0x71, 0xe0, 0x50, 0xa8, 0x96, 0xc2, 0xa1, 0x1c, + 0xaa, 0xcd, 0x7a, 0xeb, 0x5a, 0xf1, 0x7a, 0xcc, 0xee, 0x9a, 0x8a, 0x33, 0x2f, 0xc1, 0x4b, 0xf1, + 0x02, 0x3c, 0x0d, 0xca, 0x7a, 0x93, 0x34, 0x05, 0x11, 0x10, 0x9c, 0x12, 0xcf, 0x7c, 0xf3, 0x9b, + 0x6f, 0x67, 0x06, 0xee, 0x28, 0x14, 0xe7, 0xa2, 0xc4, 0x26, 0xe3, 0xb9, 0xac, 0xec, 0xb9, 0xe2, + 0xa2, 0x46, 0x2c, 0x69, 0xad, 0xd1, 0x22, 0xd9, 0x57, 0x28, 0xe8, 0x32, 0x4b, 0x2b, 0x69, 0xaf, + 0x50, 0x4f, 0xa3, 0x7b, 0x39, 0x62, 0x5e, 0xca, 0xc4, 0xa9, 0x26, 0xcd, 0x45, 0x72, 0xa5, 0x79, + 0x5d, 0x4b, 0x6d, 0xda, 0xba, 0xe8, 0xc0, 0x51, 0x51, 0x29, 0xac, 0xfc, 0x4f, 0x9b, 0x88, 0xbf, + 0x04, 0x30, 0x3c, 0xe6, 0xe2, 0x04, 0xb1, 0x64, 0xf2, 0x63, 0x23, 0x8d, 0x25, 0x2f, 0x60, 0xdb, + 0x47, 0x4c, 0x18, 0x8c, 0x36, 0xc6, 0x83, 0xf4, 0x3e, 0xfd, 0x75, 0x5b, 0x3a, 0xaf, 0x5c, 0x14, + 0x90, 0x67, 0xb0, 0xfb, 0xa6, 0x96, 0x9a, 0xdb, 0x02, 0xab, 0xd3, 0xcf, 0xb5, 0x0c, 0x3b, 0xa3, + 0x60, 0x3c, 0x4c, 0x87, 0x8e, 0xb0, 0xc8, 0xb0, 0x55, 0x51, 0xfc, 0x35, 0x80, 0xbd, 0x85, 0x0b, + 0x53, 0x63, 0x65, 0xe4, 0xbf, 0xd9, 0x48, 0xa1, 0xc7, 0xa4, 0x69, 0x4a, 0xeb, 0xfa, 0x0f, 0xd2, + 0x88, 0xb6, 0x03, 0xa2, 0xf3, 0x01, 0xd1, 0x23, 0xc4, 0xf2, 0x3d, 0x2f, 0x1b, 0xc9, 0xbc, 0x92, + 0xdc, 0x86, 0xcd, 0x97, 0x5a, 0xa3, 0x0e, 0x37, 0x46, 0xc1, 0xb8, 0xcf, 0xda, 0x8f, 0xf8, 0x1d, + 0xec, 0x7b, 0xea, 0x89, 0x96, 0xe2, 0x52, 0x8a, 0xe9, 0xff, 0x98, 0x53, 0x2c, 0xe0, 0xe0, 0x27, + 0xac, 0x7f, 0xf8, 0xd2, 0x7b, 0xf0, 0xf7, 0xde, 0x3b, 0xd7, 0xbd, 0x9f, 0x39, 0x87, 0x8c, 0x57, + 0xb9, 0x24, 0x63, 0xd8, 0x33, 0x96, 0x6b, 0x7b, 0xcc, 0xc5, 0x61, 0x96, 0x69, 0x69, 0x8c, 0xc3, + 0xf7, 0xd9, 0xcd, 0x30, 0x79, 0x08, 0xbb, 0xb2, 0xca, 0xae, 0xe9, 0x5a, 0xe6, 0x6a, 0x30, 0xfe, + 0x16, 0xc0, 0x96, 0x7f, 0x01, 0x21, 0xd0, 0xad, 0xb8, 0x92, 0x1e, 0xe8, 0xfe, 0x93, 0x21, 0x74, + 0x8a, 0xcc, 0x97, 0x76, 0x8a, 0x8c, 0x3c, 0x87, 0x4d, 0x3d, 0x33, 0xe2, 0xa6, 0x3b, 0x48, 0x47, + 0xbf, 0x19, 0x95, 0x33, 0xcc, 0x5a, 0x39, 0x89, 0x61, 0xa7, 0x44, 0xe1, 0x4e, 0xe5, 0xf5, 0xac, + 0x47, 0xd7, 0x11, 0x57, 0x62, 0xe4, 0x01, 0xf4, 0x8c, 0xe5, 0xb6, 0x31, 0x61, 0xcf, 0xc1, 0x07, + 0x0e, 0xfe, 0xd6, 0x85, 0x98, 0x4f, 0x91, 0xbb, 0xd0, 0xb5, 0x3c, 0x37, 0xe1, 0x96, 0x93, 0xf4, + 0x9d, 0xe4, 0x94, 0xe7, 0x86, 0xb9, 0x70, 0xfa, 0x3d, 0x80, 0x1d, 0xff, 0x9e, 0xc3, 0x99, 0x21, + 0xf2, 0x01, 0x7a, 0xaf, 0xaa, 0x4f, 0x38, 0x95, 0xe4, 0xd1, 0xba, 0xb5, 0xb6, 0x07, 0x11, 0x3d, + 0x5e, 0xab, 0x6b, 0x37, 0x1c, 0xdf, 0x22, 0x0a, 0xb6, 0xe7, 0x7b, 0x27, 0x74, 0x4d, 0xd9, 0x8d, + 0xbb, 0x8b, 0x92, 0x3f, 0xd6, 0xcf, 0xdb, 0x1d, 0x3d, 0x39, 0x4b, 0xf2, 0xc2, 0x5e, 0x36, 0x13, + 0x2a, 0x50, 0x25, 0xaa, 0x10, 0x1a, 0x0d, 0x5e, 0xd8, 0x44, 0xa1, 0x48, 0x74, 0x2d, 0x92, 0x25, + 0x2c, 0xf1, 0xb0, 0x49, 0xcf, 0x5d, 0xdb, 0xd3, 0x1f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x18, 0x61, + 0xfe, 0x93, 0x90, 0x04, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -309,6 +402,8 @@ const _ = grpc.SupportPackageIsVersion4 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type MacPoolAgentClient interface { Invoke(ctx context.Context, in *MacPoolRequest, opts ...grpc.CallOption) (*MacPoolResponse, error) + // Prechecks whether the system is able to create specified MAC pools (but does not actually create them). + Precheck(ctx context.Context, in *MacPoolPrecheckRequest, opts ...grpc.CallOption) (*MacPoolPrecheckResponse, error) } type macPoolAgentClient struct { @@ -328,9 +423,20 @@ func (c *macPoolAgentClient) Invoke(ctx context.Context, in *MacPoolRequest, opt return out, nil } +func (c *macPoolAgentClient) Precheck(ctx context.Context, in *MacPoolPrecheckRequest, opts ...grpc.CallOption) (*MacPoolPrecheckResponse, error) { + out := new(MacPoolPrecheckResponse) + err := c.cc.Invoke(ctx, "/moc.cloudagent.network.MacPoolAgent/Precheck", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MacPoolAgentServer is the server API for MacPoolAgent service. type MacPoolAgentServer interface { Invoke(context.Context, *MacPoolRequest) (*MacPoolResponse, error) + // Prechecks whether the system is able to create specified MAC pools (but does not actually create them). + Precheck(context.Context, *MacPoolPrecheckRequest) (*MacPoolPrecheckResponse, error) } // UnimplementedMacPoolAgentServer can be embedded to have forward compatible implementations. @@ -340,6 +446,9 @@ type UnimplementedMacPoolAgentServer struct { func (*UnimplementedMacPoolAgentServer) Invoke(ctx context.Context, req *MacPoolRequest) (*MacPoolResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Invoke not implemented") } +func (*UnimplementedMacPoolAgentServer) Precheck(ctx context.Context, req *MacPoolPrecheckRequest) (*MacPoolPrecheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Precheck not implemented") +} func RegisterMacPoolAgentServer(s *grpc.Server, srv MacPoolAgentServer) { s.RegisterService(&_MacPoolAgent_serviceDesc, srv) @@ -363,6 +472,24 @@ func _MacPoolAgent_Invoke_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _MacPoolAgent_Precheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MacPoolPrecheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MacPoolAgentServer).Precheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/moc.cloudagent.network.MacPoolAgent/Precheck", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MacPoolAgentServer).Precheck(ctx, req.(*MacPoolPrecheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _MacPoolAgent_serviceDesc = grpc.ServiceDesc{ ServiceName: "moc.cloudagent.network.MacPoolAgent", HandlerType: (*MacPoolAgentServer)(nil), @@ -371,6 +498,10 @@ var _MacPoolAgent_serviceDesc = grpc.ServiceDesc{ MethodName: "Invoke", Handler: _MacPoolAgent_Invoke_Handler, }, + { + MethodName: "Precheck", + Handler: _MacPoolAgent_Precheck_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "moc_cloudagent_macpool.proto", diff --git a/rpc/cloudagent/network/moc_cloudagent_networkinterface.pb.go b/rpc/cloudagent/network/moc_cloudagent_networkinterface.pb.go index ef2745e..3934796 100644 --- a/rpc/cloudagent/network/moc_cloudagent_networkinterface.pb.go +++ b/rpc/cloudagent/network/moc_cloudagent_networkinterface.pb.go @@ -73,7 +73,7 @@ func (x NetworkInterface_NetworkInterfaceType) String() string { } func (NetworkInterface_NetworkInterfaceType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_641284ba8360303c, []int{4, 0} + return fileDescriptor_641284ba8360303c, []int{6, 0} } type NetworkInterfaceRequest struct { @@ -178,6 +178,94 @@ func (m *NetworkInterfaceResponse) GetError() string { return "" } +type NetworkInterfacePrecheckRequest struct { + NetworkInterfaces []*NetworkInterface `protobuf:"bytes,1,rep,name=NetworkInterfaces,proto3" json:"NetworkInterfaces,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NetworkInterfacePrecheckRequest) Reset() { *m = NetworkInterfacePrecheckRequest{} } +func (m *NetworkInterfacePrecheckRequest) String() string { return proto.CompactTextString(m) } +func (*NetworkInterfacePrecheckRequest) ProtoMessage() {} +func (*NetworkInterfacePrecheckRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_641284ba8360303c, []int{2} +} + +func (m *NetworkInterfacePrecheckRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NetworkInterfacePrecheckRequest.Unmarshal(m, b) +} +func (m *NetworkInterfacePrecheckRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NetworkInterfacePrecheckRequest.Marshal(b, m, deterministic) +} +func (m *NetworkInterfacePrecheckRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NetworkInterfacePrecheckRequest.Merge(m, src) +} +func (m *NetworkInterfacePrecheckRequest) XXX_Size() int { + return xxx_messageInfo_NetworkInterfacePrecheckRequest.Size(m) +} +func (m *NetworkInterfacePrecheckRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NetworkInterfacePrecheckRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NetworkInterfacePrecheckRequest proto.InternalMessageInfo + +func (m *NetworkInterfacePrecheckRequest) GetNetworkInterfaces() []*NetworkInterface { + if m != nil { + return m.NetworkInterfaces + } + return nil +} + +type NetworkInterfacePrecheckResponse struct { + // The precheck result: true if the precheck criteria is passed; otherwise, false + Result *wrappers.BoolValue `protobuf:"bytes,1,opt,name=Result,proto3" json:"Result,omitempty"` + // The error message if the precheck is not passed; otherwise, empty string + Error string `protobuf:"bytes,2,opt,name=Error,proto3" json:"Error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NetworkInterfacePrecheckResponse) Reset() { *m = NetworkInterfacePrecheckResponse{} } +func (m *NetworkInterfacePrecheckResponse) String() string { return proto.CompactTextString(m) } +func (*NetworkInterfacePrecheckResponse) ProtoMessage() {} +func (*NetworkInterfacePrecheckResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_641284ba8360303c, []int{3} +} + +func (m *NetworkInterfacePrecheckResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NetworkInterfacePrecheckResponse.Unmarshal(m, b) +} +func (m *NetworkInterfacePrecheckResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NetworkInterfacePrecheckResponse.Marshal(b, m, deterministic) +} +func (m *NetworkInterfacePrecheckResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NetworkInterfacePrecheckResponse.Merge(m, src) +} +func (m *NetworkInterfacePrecheckResponse) XXX_Size() int { + return xxx_messageInfo_NetworkInterfacePrecheckResponse.Size(m) +} +func (m *NetworkInterfacePrecheckResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NetworkInterfacePrecheckResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NetworkInterfacePrecheckResponse proto.InternalMessageInfo + +func (m *NetworkInterfacePrecheckResponse) GetResult() *wrappers.BoolValue { + if m != nil { + return m.Result + } + return nil +} + +func (m *NetworkInterfacePrecheckResponse) GetError() string { + if m != nil { + return m.Error + } + return "" +} + type InboundNatRule struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -189,7 +277,7 @@ func (m *InboundNatRule) Reset() { *m = InboundNatRule{} } func (m *InboundNatRule) String() string { return proto.CompactTextString(m) } func (*InboundNatRule) ProtoMessage() {} func (*InboundNatRule) Descriptor() ([]byte, []int) { - return fileDescriptor_641284ba8360303c, []int{2} + return fileDescriptor_641284ba8360303c, []int{4} } func (m *InboundNatRule) XXX_Unmarshal(b []byte) error { @@ -238,7 +326,7 @@ func (m *IpConfiguration) Reset() { *m = IpConfiguration{} } func (m *IpConfiguration) String() string { return proto.CompactTextString(m) } func (*IpConfiguration) ProtoMessage() {} func (*IpConfiguration) Descriptor() ([]byte, []int) { - return fileDescriptor_641284ba8360303c, []int{3} + return fileDescriptor_641284ba8360303c, []int{5} } func (m *IpConfiguration) XXX_Unmarshal(b []byte) error { @@ -359,7 +447,7 @@ func (m *NetworkInterface) Reset() { *m = NetworkInterface{} } func (m *NetworkInterface) String() string { return proto.CompactTextString(m) } func (*NetworkInterface) ProtoMessage() {} func (*NetworkInterface) Descriptor() ([]byte, []int) { - return fileDescriptor_641284ba8360303c, []int{4} + return fileDescriptor_641284ba8360303c, []int{6} } func (m *NetworkInterface) XXX_Unmarshal(b []byte) error { @@ -476,6 +564,8 @@ func init() { proto.RegisterEnum("moc.cloudagent.network.NetworkInterface_NetworkInterfaceType", NetworkInterface_NetworkInterfaceType_name, NetworkInterface_NetworkInterfaceType_value) proto.RegisterType((*NetworkInterfaceRequest)(nil), "moc.cloudagent.network.NetworkInterfaceRequest") proto.RegisterType((*NetworkInterfaceResponse)(nil), "moc.cloudagent.network.NetworkInterfaceResponse") + proto.RegisterType((*NetworkInterfacePrecheckRequest)(nil), "moc.cloudagent.network.NetworkInterfacePrecheckRequest") + proto.RegisterType((*NetworkInterfacePrecheckResponse)(nil), "moc.cloudagent.network.NetworkInterfacePrecheckResponse") proto.RegisterType((*InboundNatRule)(nil), "moc.cloudagent.network.InboundNatRule") proto.RegisterType((*IpConfiguration)(nil), "moc.cloudagent.network.IpConfiguration") proto.RegisterType((*NetworkInterface)(nil), "moc.cloudagent.network.NetworkInterface") @@ -486,61 +576,64 @@ func init() { } var fileDescriptor_641284ba8360303c = []byte{ - // 849 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xdd, 0x6e, 0xe3, 0x44, - 0x14, 0xae, 0x5b, 0x37, 0x8d, 0x8f, 0xfb, 0x13, 0x86, 0x85, 0x58, 0x11, 0x54, 0x91, 0x77, 0x81, - 0x08, 0x09, 0x1b, 0x02, 0xd2, 0x72, 0xc3, 0x45, 0xbb, 0x54, 0xab, 0x40, 0x37, 0x5d, 0xa6, 0xa5, - 0x2b, 0x21, 0xa4, 0x6a, 0x62, 0x4f, 0x9c, 0xd1, 0xda, 0x33, 0x66, 0x66, 0xdc, 0xd2, 0x17, 0x40, - 0xbc, 0x09, 0x4f, 0xc0, 0x1d, 0xe2, 0x8e, 0xf7, 0x42, 0x1e, 0x3b, 0x8d, 0xd3, 0xa4, 0xa2, 0x37, - 0x5c, 0x25, 0xf3, 0x9d, 0x6f, 0xbe, 0x39, 0x67, 0xce, 0x77, 0xc6, 0xf0, 0x51, 0x26, 0xa2, 0xab, - 0x28, 0x15, 0x45, 0x4c, 0x12, 0xca, 0xf5, 0x15, 0xa7, 0xfa, 0x46, 0xc8, 0xb7, 0x8c, 0x6b, 0x2a, - 0xa7, 0x24, 0xa2, 0x41, 0x2e, 0x85, 0x16, 0xe8, 0xfd, 0x4c, 0x44, 0xc1, 0x82, 0x16, 0xd4, 0xb4, - 0xde, 0x61, 0x22, 0x44, 0x92, 0xd2, 0xd0, 0xb0, 0x26, 0xc5, 0x34, 0xbc, 0x91, 0x24, 0xcf, 0xa9, - 0x54, 0xd5, 0xbe, 0x5e, 0xd7, 0xc8, 0x8b, 0x2c, 0x13, 0xbc, 0xfe, 0xa9, 0x03, 0x87, 0x8d, 0x40, - 0x2d, 0xd6, 0x8c, 0xfb, 0x7f, 0x58, 0xd0, 0x1d, 0x57, 0xf8, 0x68, 0x9e, 0x0b, 0xa6, 0xbf, 0x14, - 0x54, 0x69, 0x74, 0x09, 0xef, 0xdc, 0x0f, 0x29, 0xcf, 0xea, 0x6f, 0x0d, 0xdc, 0xe1, 0x20, 0x58, - 0x9f, 0x68, 0xb0, 0xa2, 0xb5, 0x2a, 0x81, 0xbe, 0x82, 0xbd, 0xb3, 0x9c, 0x4a, 0xa2, 0x99, 0xe0, - 0x17, 0xb7, 0x39, 0xf5, 0x36, 0xfb, 0xd6, 0x60, 0x7f, 0xb8, 0x6f, 0x34, 0xef, 0x22, 0x78, 0x99, - 0xe4, 0xff, 0x65, 0x81, 0xb7, 0x9a, 0xa9, 0xca, 0x05, 0x57, 0xf4, 0x7f, 0x4b, 0x75, 0x08, 0x2d, - 0x4c, 0x55, 0x91, 0x6a, 0x93, 0xa3, 0x3b, 0xec, 0x05, 0x55, 0x23, 0x82, 0x79, 0x23, 0x82, 0x63, - 0x21, 0xd2, 0x4b, 0x92, 0x16, 0x14, 0xd7, 0x4c, 0xf4, 0x04, 0xb6, 0x4f, 0xa4, 0x14, 0xd2, 0xdb, - 0xea, 0x5b, 0x03, 0x07, 0x57, 0x0b, 0xff, 0x19, 0xec, 0x8f, 0xf8, 0x44, 0x14, 0x3c, 0x1e, 0x13, - 0x8d, 0x8b, 0x94, 0x22, 0x04, 0x36, 0x27, 0x19, 0xf5, 0x2c, 0x43, 0x33, 0xff, 0xfd, 0xbf, 0x6d, - 0x38, 0x18, 0xe5, 0x2f, 0x04, 0x9f, 0xb2, 0xa4, 0xa8, 0x8a, 0x47, 0x3e, 0x38, 0x2c, 0x27, 0x71, - 0x2c, 0xa9, 0x52, 0x15, 0xf9, 0xd8, 0xfe, 0xfd, 0x4f, 0xcf, 0xc2, 0x0b, 0x18, 0xf9, 0xb0, 0x9b, - 0x4b, 0x3a, 0x65, 0xbf, 0xa6, 0x94, 0x27, 0x7a, 0x66, 0xb2, 0x75, 0xf0, 0x12, 0x86, 0x7a, 0xd0, - 0x56, 0xc5, 0x84, 0x53, 0xcd, 0xe2, 0x3a, 0xb5, 0xbb, 0x35, 0xf2, 0x60, 0x27, 0x97, 0x2c, 0x23, - 0xf2, 0xd6, 0xb3, 0xfb, 0xd6, 0xa0, 0x8d, 0xe7, 0x4b, 0xf4, 0x35, 0x74, 0x53, 0x41, 0xe2, 0x09, - 0x49, 0x09, 0x8f, 0xa8, 0xac, 0x0f, 0xcc, 0x85, 0x48, 0xbd, 0xed, 0xfe, 0xd6, 0xc0, 0xc1, 0x0f, - 0x85, 0xd1, 0x73, 0x00, 0x92, 0xa6, 0x22, 0x32, 0x55, 0x78, 0x2d, 0xd3, 0xe3, 0xae, 0x69, 0xc6, - 0xe8, 0xf5, 0xd1, 0x5d, 0xe0, 0x15, 0xd5, 0x33, 0x11, 0xe3, 0x06, 0x15, 0x1d, 0xc2, 0x4e, 0x42, - 0x34, 0xbd, 0x21, 0xb7, 0xde, 0x4e, 0xa3, 0xdc, 0x39, 0x88, 0x5e, 0xc3, 0x01, 0x5b, 0xba, 0x4a, - 0xe5, 0xb5, 0x4d, 0xab, 0x3f, 0x7e, 0xa8, 0xd5, 0xcb, 0x37, 0x8f, 0xef, 0x6f, 0x47, 0x1f, 0x82, - 0xad, 0x49, 0xa2, 0x3c, 0xc7, 0x34, 0xd9, 0x31, 0x32, 0x17, 0x24, 0x51, 0xd8, 0xc0, 0xe8, 0x04, - 0xdc, 0x5a, 0xc9, 0xd8, 0x15, 0x4c, 0x29, 0x4f, 0xff, 0xc3, 0x57, 0x25, 0x15, 0x37, 0xf7, 0xa1, - 0x9f, 0xa1, 0x5b, 0x2f, 0xcf, 0x69, 0x54, 0x48, 0xa6, 0x6f, 0x5f, 0x4a, 0x51, 0xe4, 0x98, 0x4e, - 0xbd, 0x5d, 0x73, 0xb0, 0x6f, 0x24, 0xc7, 0xeb, 0x39, 0x54, 0x52, 0x1e, 0x51, 0xfc, 0x90, 0xc4, - 0x77, 0x76, 0xdb, 0xed, 0xec, 0xfa, 0xff, 0xd8, 0xd0, 0xb9, 0x6f, 0xe3, 0x75, 0x4e, 0x43, 0xfb, - 0xb0, 0xc9, 0xe2, 0xda, 0x27, 0x9b, 0x2c, 0x46, 0x3f, 0x80, 0xad, 0xcb, 0xe2, 0xb6, 0x4c, 0x71, - 0xdf, 0x3c, 0x76, 0x68, 0x56, 0x00, 0x53, 0xb6, 0x91, 0x42, 0xe7, 0xd0, 0x61, 0xcb, 0x5e, 0x56, - 0x9e, 0x6d, 0x1a, 0xf5, 0xc9, 0x83, 0x8d, 0x5a, 0xe6, 0xe3, 0x15, 0x01, 0xf4, 0x0c, 0x20, 0x23, - 0xd1, 0x7c, 0x1c, 0xb6, 0x1b, 0xfe, 0x68, 0xe0, 0xa8, 0x0f, 0x5b, 0x31, 0x57, 0xc6, 0x74, 0xee, - 0xb0, 0x6d, 0x4e, 0xfb, 0x96, 0xab, 0x9a, 0x58, 0x86, 0xca, 0x69, 0xe0, 0x22, 0xa6, 0xe3, 0xf2, - 0x5e, 0x76, 0xaa, 0x69, 0x98, 0xaf, 0xd1, 0x07, 0xe0, 0x24, 0xe5, 0xb5, 0x9a, 0x60, 0xdb, 0x04, - 0x17, 0x40, 0x39, 0x6b, 0x73, 0xab, 0x1a, 0x82, 0x53, 0xcd, 0x5a, 0x13, 0x43, 0x4f, 0xa1, 0xa5, - 0x34, 0xd1, 0x85, 0x32, 0x66, 0x71, 0x87, 0xae, 0x49, 0xe1, 0xdc, 0x40, 0xb8, 0x0e, 0xa1, 0x00, - 0xd0, 0x35, 0x93, 0xba, 0x20, 0xe9, 0x2b, 0x12, 0xcd, 0x18, 0xaf, 0x92, 0x71, 0x8d, 0xdc, 0x9a, - 0x48, 0x99, 0x16, 0x13, 0xd7, 0x6f, 0x28, 0x4b, 0x66, 0xda, 0x38, 0x66, 0x0f, 0x2f, 0x80, 0x3b, - 0x0f, 0xef, 0xad, 0xf5, 0xb0, 0xff, 0x19, 0x3c, 0x59, 0xd7, 0x2a, 0xe4, 0xc0, 0xf6, 0xa9, 0x88, - 0x48, 0xda, 0xd9, 0x40, 0x50, 0x3e, 0x76, 0x99, 0xd0, 0xb4, 0x63, 0x7d, 0xfa, 0x1c, 0xdc, 0x86, - 0x8f, 0xd1, 0xbb, 0x70, 0x70, 0x39, 0xc2, 0x17, 0x3f, 0x1e, 0x9d, 0x5e, 0x8d, 0x4f, 0x2e, 0xde, - 0x9c, 0xe1, 0xef, 0x3b, 0x1b, 0x25, 0x78, 0x7a, 0xf6, 0x72, 0xf4, 0xa2, 0x01, 0x5a, 0xc3, 0xdf, - 0x2c, 0x78, 0xef, 0xfe, 0x41, 0x47, 0x65, 0x8f, 0x51, 0x06, 0xad, 0x11, 0xbf, 0x16, 0x6f, 0x29, - 0x0a, 0x1f, 0xfd, 0x24, 0x57, 0x5f, 0xa2, 0xde, 0xe7, 0x8f, 0xdf, 0x50, 0x7d, 0x10, 0xfc, 0x8d, - 0xe3, 0x2f, 0x7e, 0x0a, 0x13, 0xa6, 0x67, 0xc5, 0x24, 0x88, 0x44, 0x16, 0x66, 0x2c, 0x92, 0x42, - 0x89, 0xa9, 0x0e, 0x33, 0x11, 0x85, 0x32, 0x8f, 0xc2, 0x85, 0x5a, 0x58, 0xab, 0x4d, 0x5a, 0xe6, - 0x55, 0xff, 0xf2, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb2, 0xe1, 0x3a, 0x08, 0xad, 0x07, 0x00, - 0x00, + // 899 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0x5d, 0x6f, 0xe3, 0x44, + 0x14, 0xad, 0x93, 0x34, 0x4d, 0x6e, 0xfa, 0x11, 0x86, 0x85, 0x58, 0x11, 0x94, 0xc8, 0xbb, 0x40, + 0x84, 0x84, 0x03, 0x01, 0xa9, 0xfb, 0xc2, 0x43, 0xbb, 0x54, 0xab, 0x40, 0x37, 0x2d, 0xd3, 0xd2, + 0x95, 0x10, 0x52, 0x35, 0xb1, 0x27, 0xce, 0xa8, 0xf6, 0x8c, 0x99, 0x19, 0xb7, 0xe4, 0x89, 0x47, + 0xf8, 0x27, 0xfc, 0x02, 0xde, 0x10, 0x6f, 0xfc, 0x2f, 0xe4, 0xb1, 0xd3, 0x38, 0x5f, 0xa2, 0xfb, + 0xb0, 0x4f, 0xc9, 0x9c, 0x7b, 0xe6, 0xcc, 0xbd, 0x73, 0xcf, 0x1d, 0xc3, 0xc7, 0x91, 0xf0, 0x6e, + 0xbc, 0x50, 0x24, 0x3e, 0x09, 0x28, 0xd7, 0x37, 0x9c, 0xea, 0x7b, 0x21, 0x6f, 0x19, 0xd7, 0x54, + 0x8e, 0x89, 0x47, 0xdd, 0x58, 0x0a, 0x2d, 0xd0, 0xfb, 0x91, 0xf0, 0xdc, 0x39, 0xcd, 0xcd, 0x69, + 0xed, 0xc3, 0x40, 0x88, 0x20, 0xa4, 0x3d, 0xc3, 0x1a, 0x25, 0xe3, 0xde, 0xbd, 0x24, 0x71, 0x4c, + 0xa5, 0xca, 0xf6, 0xb5, 0x5b, 0x46, 0x5e, 0x44, 0x91, 0xe0, 0xf9, 0x4f, 0x1e, 0x38, 0x2c, 0x04, + 0x72, 0xb1, 0x62, 0xdc, 0xf9, 0xd3, 0x82, 0xd6, 0x30, 0xc3, 0x07, 0xb3, 0x5c, 0x30, 0xfd, 0x25, + 0xa1, 0x4a, 0xa3, 0x6b, 0x78, 0x67, 0x39, 0xa4, 0x6c, 0xab, 0x53, 0xee, 0x36, 0xfa, 0x5d, 0x77, + 0x7d, 0xa2, 0xee, 0x8a, 0xd6, 0xaa, 0x04, 0xfa, 0x1a, 0xf6, 0xce, 0x63, 0x2a, 0x89, 0x66, 0x82, + 0x5f, 0x4d, 0x63, 0x6a, 0x97, 0x3a, 0x56, 0x77, 0xbf, 0xbf, 0x6f, 0x34, 0x1f, 0x22, 0x78, 0x91, + 0xe4, 0xfc, 0x6d, 0x81, 0xbd, 0x9a, 0xa9, 0x8a, 0x05, 0x57, 0xf4, 0xad, 0xa5, 0xda, 0x87, 0x2a, + 0xa6, 0x2a, 0x09, 0xb5, 0xc9, 0xb1, 0xd1, 0x6f, 0xbb, 0x59, 0x23, 0xdc, 0x59, 0x23, 0xdc, 0x13, + 0x21, 0xc2, 0x6b, 0x12, 0x26, 0x14, 0xe7, 0x4c, 0xf4, 0x04, 0xb6, 0x4f, 0xa5, 0x14, 0xd2, 0x2e, + 0x77, 0xac, 0x6e, 0x1d, 0x67, 0x0b, 0x67, 0x0a, 0x1f, 0x2d, 0xcb, 0x5f, 0x48, 0xea, 0x4d, 0xa8, + 0x77, 0xfb, 0x96, 0xef, 0xdb, 0x09, 0xa1, 0xb3, 0xf9, 0xe8, 0xfc, 0x02, 0xe7, 0x85, 0x5a, 0x6f, + 0x5e, 0x68, 0xa9, 0x58, 0xe8, 0x33, 0xd8, 0x1f, 0xf0, 0x91, 0x48, 0xb8, 0x3f, 0x24, 0x1a, 0x27, + 0x21, 0x45, 0x08, 0x2a, 0x9c, 0x44, 0xd4, 0x28, 0xd7, 0xb1, 0xf9, 0xef, 0xfc, 0x53, 0x81, 0x83, + 0x41, 0xfc, 0x42, 0xf0, 0x31, 0x0b, 0x92, 0xac, 0xcb, 0xc8, 0x81, 0x3a, 0x8b, 0x89, 0xef, 0x4b, + 0xaa, 0x54, 0x46, 0x3e, 0xa9, 0xfc, 0xf1, 0x97, 0x6d, 0xe1, 0x39, 0x8c, 0x1c, 0xd8, 0x8d, 0x25, + 0x1d, 0xb3, 0x5f, 0x43, 0xca, 0x03, 0x3d, 0xc9, 0x8f, 0x5e, 0xc0, 0x50, 0x1b, 0x6a, 0x2a, 0x19, + 0x71, 0xaa, 0x99, 0x9f, 0xf7, 0xe0, 0x61, 0x8d, 0x6c, 0xd8, 0x89, 0x25, 0x8b, 0x88, 0x9c, 0xda, + 0x95, 0x8e, 0xd5, 0xad, 0xe1, 0xd9, 0x12, 0x3d, 0x87, 0x56, 0x28, 0x88, 0x3f, 0x22, 0x21, 0xe1, + 0x1e, 0x95, 0xf9, 0x81, 0xb1, 0x10, 0xa1, 0xbd, 0xdd, 0x29, 0x77, 0xeb, 0x78, 0x53, 0x18, 0x1d, + 0x01, 0x90, 0x30, 0x14, 0x9e, 0xa9, 0xc2, 0xae, 0x1a, 0x33, 0xb7, 0x4c, 0xc3, 0x06, 0x17, 0xc7, + 0x0f, 0x81, 0x57, 0x54, 0x4f, 0x84, 0x8f, 0x0b, 0x54, 0x74, 0x08, 0x3b, 0x01, 0xd1, 0xf4, 0x9e, + 0x4c, 0xed, 0x9d, 0x42, 0xb9, 0x33, 0x10, 0x5d, 0xc0, 0x01, 0x5b, 0xb8, 0x4a, 0x65, 0xd7, 0x8c, + 0x1d, 0x3e, 0xd9, 0x64, 0x87, 0xc5, 0x9b, 0xc7, 0xcb, 0xdb, 0xd1, 0x87, 0x50, 0xd1, 0x24, 0x50, + 0x76, 0xdd, 0x34, 0xb9, 0x6e, 0x64, 0xae, 0x48, 0xa0, 0xb0, 0x81, 0xd1, 0x29, 0x34, 0x72, 0x25, + 0x33, 0x97, 0x60, 0x4a, 0x79, 0xfa, 0x3f, 0xde, 0x4b, 0xa9, 0xb8, 0xb8, 0x0f, 0xfd, 0x0c, 0xad, + 0x7c, 0x79, 0x49, 0xbd, 0x44, 0x32, 0x3d, 0x7d, 0x29, 0x45, 0x12, 0x63, 0x3a, 0xb6, 0x77, 0xcd, + 0xc1, 0x8e, 0x91, 0x1c, 0xae, 0xe7, 0x50, 0x49, 0xb9, 0x47, 0xf1, 0x26, 0x89, 0xef, 0x2a, 0xb5, + 0x46, 0x73, 0xd7, 0xf9, 0xb7, 0x02, 0xcd, 0x65, 0x57, 0xaf, 0x73, 0x1a, 0xda, 0x87, 0x12, 0xf3, + 0x73, 0x9f, 0x94, 0x98, 0x8f, 0x7e, 0x80, 0x8a, 0x4e, 0x8b, 0x2b, 0x9b, 0xe2, 0xbe, 0x79, 0xec, + 0x60, 0xad, 0x00, 0xa6, 0x6c, 0x23, 0x85, 0x2e, 0xa1, 0xc9, 0x16, 0xbd, 0xac, 0xec, 0x8a, 0x69, + 0xd4, 0xa7, 0x1b, 0x1b, 0xb5, 0xc8, 0xc7, 0x2b, 0x02, 0xe8, 0x19, 0x40, 0x44, 0xbc, 0xd9, 0x38, + 0x6c, 0x17, 0xfc, 0x51, 0xc0, 0x51, 0x07, 0xca, 0x3e, 0x57, 0xc6, 0x74, 0x8d, 0x7e, 0xcd, 0x9c, + 0xf6, 0x2d, 0x57, 0x39, 0x31, 0x0d, 0xa5, 0xd3, 0xc0, 0x85, 0x4f, 0x87, 0xe9, 0xbd, 0xec, 0x64, + 0xd3, 0x30, 0x5b, 0xa3, 0x0f, 0xa0, 0x1e, 0xa4, 0xd7, 0x6a, 0x82, 0x35, 0x13, 0x9c, 0x03, 0xe9, + 0xac, 0xcd, 0xac, 0x6a, 0x08, 0xf5, 0x6c, 0xd6, 0x8a, 0x18, 0x7a, 0x0a, 0x55, 0xa5, 0x89, 0x4e, + 0x94, 0x31, 0x4b, 0xa3, 0xdf, 0x30, 0x29, 0x5c, 0x1a, 0x08, 0xe7, 0x21, 0xe4, 0x02, 0xba, 0x63, + 0x52, 0x27, 0x24, 0x7c, 0x45, 0xbc, 0x09, 0xe3, 0x59, 0x32, 0x0d, 0x23, 0xb7, 0x26, 0x92, 0xa6, + 0xc5, 0xc4, 0xdd, 0x6b, 0xca, 0x82, 0x89, 0x36, 0x8e, 0xd9, 0xc3, 0x73, 0xe0, 0xc1, 0xc3, 0x7b, + 0x6b, 0x3d, 0xec, 0x7c, 0x0e, 0x4f, 0xd6, 0xb5, 0x0a, 0xd5, 0x61, 0xfb, 0x4c, 0x78, 0x24, 0x6c, + 0x6e, 0x21, 0x48, 0x1f, 0xbb, 0x48, 0x68, 0xda, 0xb4, 0x3e, 0x3b, 0x82, 0x46, 0xc1, 0xc7, 0xe8, + 0x5d, 0x38, 0xb8, 0x1e, 0xe0, 0xab, 0x1f, 0x8f, 0xcf, 0x6e, 0x86, 0xa7, 0x57, 0xaf, 0xcf, 0xf1, + 0xf7, 0xcd, 0xad, 0x14, 0x3c, 0x3b, 0x7f, 0x39, 0x78, 0x51, 0x00, 0xad, 0xfe, 0xef, 0x25, 0x78, + 0x6f, 0xf9, 0xa0, 0xe3, 0xb4, 0xc7, 0x28, 0x82, 0xea, 0x80, 0xdf, 0x89, 0x5b, 0x8a, 0x7a, 0x8f, + 0x7e, 0xb6, 0xb3, 0x4f, 0x40, 0xfb, 0x8b, 0xc7, 0x6f, 0xc8, 0x1e, 0x6e, 0x67, 0x0b, 0xfd, 0x06, + 0xb5, 0xd9, 0x73, 0x8e, 0x8e, 0x1e, 0xbb, 0x7f, 0xe9, 0xdb, 0xd3, 0x7e, 0xfe, 0xe6, 0x1b, 0x67, + 0x09, 0x9c, 0x7c, 0xf9, 0x53, 0x2f, 0x60, 0x7a, 0x92, 0x8c, 0x5c, 0x4f, 0x44, 0xbd, 0x88, 0x79, + 0x52, 0x28, 0x31, 0xd6, 0xbd, 0x48, 0x78, 0x3d, 0x19, 0x7b, 0xbd, 0xb9, 0x6a, 0x2f, 0x57, 0x1d, + 0x55, 0xcd, 0x67, 0xe5, 0xab, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x60, 0x7a, 0x66, 0x9a, 0x17, + 0x09, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -556,6 +649,8 @@ const _ = grpc.SupportPackageIsVersion4 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type NetworkInterfaceAgentClient interface { Invoke(ctx context.Context, in *NetworkInterfaceRequest, opts ...grpc.CallOption) (*NetworkInterfaceResponse, error) + // Prechecks whether the system is able to create specified network interfaces (but does not actually create them). + Precheck(ctx context.Context, in *NetworkInterfacePrecheckRequest, opts ...grpc.CallOption) (*NetworkInterfacePrecheckResponse, error) } type networkInterfaceAgentClient struct { @@ -575,9 +670,20 @@ func (c *networkInterfaceAgentClient) Invoke(ctx context.Context, in *NetworkInt return out, nil } +func (c *networkInterfaceAgentClient) Precheck(ctx context.Context, in *NetworkInterfacePrecheckRequest, opts ...grpc.CallOption) (*NetworkInterfacePrecheckResponse, error) { + out := new(NetworkInterfacePrecheckResponse) + err := c.cc.Invoke(ctx, "/moc.cloudagent.network.NetworkInterfaceAgent/Precheck", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // NetworkInterfaceAgentServer is the server API for NetworkInterfaceAgent service. type NetworkInterfaceAgentServer interface { Invoke(context.Context, *NetworkInterfaceRequest) (*NetworkInterfaceResponse, error) + // Prechecks whether the system is able to create specified network interfaces (but does not actually create them). + Precheck(context.Context, *NetworkInterfacePrecheckRequest) (*NetworkInterfacePrecheckResponse, error) } // UnimplementedNetworkInterfaceAgentServer can be embedded to have forward compatible implementations. @@ -587,6 +693,9 @@ type UnimplementedNetworkInterfaceAgentServer struct { func (*UnimplementedNetworkInterfaceAgentServer) Invoke(ctx context.Context, req *NetworkInterfaceRequest) (*NetworkInterfaceResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Invoke not implemented") } +func (*UnimplementedNetworkInterfaceAgentServer) Precheck(ctx context.Context, req *NetworkInterfacePrecheckRequest) (*NetworkInterfacePrecheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Precheck not implemented") +} func RegisterNetworkInterfaceAgentServer(s *grpc.Server, srv NetworkInterfaceAgentServer) { s.RegisterService(&_NetworkInterfaceAgent_serviceDesc, srv) @@ -610,6 +719,24 @@ func _NetworkInterfaceAgent_Invoke_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _NetworkInterfaceAgent_Precheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NetworkInterfacePrecheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkInterfaceAgentServer).Precheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/moc.cloudagent.network.NetworkInterfaceAgent/Precheck", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkInterfaceAgentServer).Precheck(ctx, req.(*NetworkInterfacePrecheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _NetworkInterfaceAgent_serviceDesc = grpc.ServiceDesc{ ServiceName: "moc.cloudagent.network.NetworkInterfaceAgent", HandlerType: (*NetworkInterfaceAgentServer)(nil), @@ -618,6 +745,10 @@ var _NetworkInterfaceAgent_serviceDesc = grpc.ServiceDesc{ MethodName: "Invoke", Handler: _NetworkInterfaceAgent_Invoke_Handler, }, + { + MethodName: "Precheck", + Handler: _NetworkInterfaceAgent_Precheck_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "moc_cloudagent_networkinterface.proto", diff --git a/rpc/cloudagent/network/moc_cloudagent_networksecuritygroup.pb.go b/rpc/cloudagent/network/moc_cloudagent_networksecuritygroup.pb.go index a0db91e..90b1dd9 100644 --- a/rpc/cloudagent/network/moc_cloudagent_networksecuritygroup.pb.go +++ b/rpc/cloudagent/network/moc_cloudagent_networksecuritygroup.pb.go @@ -178,6 +178,94 @@ func (m *NetworkSecurityGroupResponse) GetError() string { return "" } +type NetworkSecurityGroupPrecheckRequest struct { + NetworkSecurityGroups []*NetworkSecurityGroup `protobuf:"bytes,1,rep,name=NetworkSecurityGroups,proto3" json:"NetworkSecurityGroups,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NetworkSecurityGroupPrecheckRequest) Reset() { *m = NetworkSecurityGroupPrecheckRequest{} } +func (m *NetworkSecurityGroupPrecheckRequest) String() string { return proto.CompactTextString(m) } +func (*NetworkSecurityGroupPrecheckRequest) ProtoMessage() {} +func (*NetworkSecurityGroupPrecheckRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_f7a6eb5efc25ffee, []int{2} +} + +func (m *NetworkSecurityGroupPrecheckRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NetworkSecurityGroupPrecheckRequest.Unmarshal(m, b) +} +func (m *NetworkSecurityGroupPrecheckRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NetworkSecurityGroupPrecheckRequest.Marshal(b, m, deterministic) +} +func (m *NetworkSecurityGroupPrecheckRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NetworkSecurityGroupPrecheckRequest.Merge(m, src) +} +func (m *NetworkSecurityGroupPrecheckRequest) XXX_Size() int { + return xxx_messageInfo_NetworkSecurityGroupPrecheckRequest.Size(m) +} +func (m *NetworkSecurityGroupPrecheckRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NetworkSecurityGroupPrecheckRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NetworkSecurityGroupPrecheckRequest proto.InternalMessageInfo + +func (m *NetworkSecurityGroupPrecheckRequest) GetNetworkSecurityGroups() []*NetworkSecurityGroup { + if m != nil { + return m.NetworkSecurityGroups + } + return nil +} + +type NetworkSecurityGroupPrecheckResponse struct { + // The precheck result: true if the precheck criteria is passed; otherwise, false + Result *wrappers.BoolValue `protobuf:"bytes,1,opt,name=Result,proto3" json:"Result,omitempty"` + // The error message if the precheck is not passed; otherwise, empty string + Error string `protobuf:"bytes,2,opt,name=Error,proto3" json:"Error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NetworkSecurityGroupPrecheckResponse) Reset() { *m = NetworkSecurityGroupPrecheckResponse{} } +func (m *NetworkSecurityGroupPrecheckResponse) String() string { return proto.CompactTextString(m) } +func (*NetworkSecurityGroupPrecheckResponse) ProtoMessage() {} +func (*NetworkSecurityGroupPrecheckResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_f7a6eb5efc25ffee, []int{3} +} + +func (m *NetworkSecurityGroupPrecheckResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NetworkSecurityGroupPrecheckResponse.Unmarshal(m, b) +} +func (m *NetworkSecurityGroupPrecheckResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NetworkSecurityGroupPrecheckResponse.Marshal(b, m, deterministic) +} +func (m *NetworkSecurityGroupPrecheckResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NetworkSecurityGroupPrecheckResponse.Merge(m, src) +} +func (m *NetworkSecurityGroupPrecheckResponse) XXX_Size() int { + return xxx_messageInfo_NetworkSecurityGroupPrecheckResponse.Size(m) +} +func (m *NetworkSecurityGroupPrecheckResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NetworkSecurityGroupPrecheckResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NetworkSecurityGroupPrecheckResponse proto.InternalMessageInfo + +func (m *NetworkSecurityGroupPrecheckResponse) GetResult() *wrappers.BoolValue { + if m != nil { + return m.Result + } + return nil +} + +func (m *NetworkSecurityGroupPrecheckResponse) GetError() string { + if m != nil { + return m.Error + } + return "" +} + type NetworkSecurityGroupRule struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` @@ -200,7 +288,7 @@ func (m *NetworkSecurityGroupRule) Reset() { *m = NetworkSecurityGroupRu func (m *NetworkSecurityGroupRule) String() string { return proto.CompactTextString(m) } func (*NetworkSecurityGroupRule) ProtoMessage() {} func (*NetworkSecurityGroupRule) Descriptor() ([]byte, []int) { - return fileDescriptor_f7a6eb5efc25ffee, []int{2} + return fileDescriptor_f7a6eb5efc25ffee, []int{4} } func (m *NetworkSecurityGroupRule) XXX_Unmarshal(b []byte) error { @@ -321,7 +409,7 @@ func (m *NetworkSecurityGroup) Reset() { *m = NetworkSecurityGroup{} } func (m *NetworkSecurityGroup) String() string { return proto.CompactTextString(m) } func (*NetworkSecurityGroup) ProtoMessage() {} func (*NetworkSecurityGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_f7a6eb5efc25ffee, []int{3} + return fileDescriptor_f7a6eb5efc25ffee, []int{5} } func (m *NetworkSecurityGroup) XXX_Unmarshal(b []byte) error { @@ -389,6 +477,8 @@ func init() { proto.RegisterEnum("moc.cloudagent.network.Direction", Direction_name, Direction_value) proto.RegisterType((*NetworkSecurityGroupRequest)(nil), "moc.cloudagent.network.NetworkSecurityGroupRequest") proto.RegisterType((*NetworkSecurityGroupResponse)(nil), "moc.cloudagent.network.NetworkSecurityGroupResponse") + proto.RegisterType((*NetworkSecurityGroupPrecheckRequest)(nil), "moc.cloudagent.network.NetworkSecurityGroupPrecheckRequest") + proto.RegisterType((*NetworkSecurityGroupPrecheckResponse)(nil), "moc.cloudagent.network.NetworkSecurityGroupPrecheckResponse") proto.RegisterType((*NetworkSecurityGroupRule)(nil), "moc.cloudagent.network.NetworkSecurityGroupRule") proto.RegisterType((*NetworkSecurityGroup)(nil), "moc.cloudagent.network.NetworkSecurityGroup") } @@ -398,51 +488,54 @@ func init() { } var fileDescriptor_f7a6eb5efc25ffee = []byte{ - // 695 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0x4d, 0x6f, 0xd3, 0x4a, - 0x14, 0xad, 0xf3, 0xe1, 0x26, 0xd7, 0x4d, 0x5f, 0x34, 0xaf, 0xef, 0x3d, 0x37, 0x8f, 0x56, 0x21, - 0x20, 0x94, 0x56, 0xc8, 0x2e, 0x6e, 0xc5, 0x82, 0x0d, 0x4a, 0x55, 0x84, 0xca, 0xa2, 0xad, 0xa6, - 0x15, 0x0b, 0x36, 0x95, 0x63, 0x4f, 0x8c, 0x55, 0xdb, 0x63, 0xe6, 0x83, 0xd2, 0xbf, 0xc1, 0x8a, - 0x05, 0xff, 0x83, 0x3f, 0xc1, 0x8f, 0x42, 0xb9, 0x76, 0xf3, 0x81, 0x9c, 0x45, 0x37, 0xac, 0x92, - 0xb9, 0xe7, 0x9c, 0xeb, 0xe3, 0x7b, 0xae, 0x07, 0xf6, 0x52, 0x1e, 0x5c, 0x07, 0x09, 0xd7, 0xa1, - 0x1f, 0xb1, 0x4c, 0x5d, 0x67, 0x4c, 0xdd, 0x72, 0x71, 0x23, 0x59, 0xa0, 0x45, 0xac, 0xee, 0x22, - 0xc1, 0x75, 0xee, 0xe4, 0x82, 0x2b, 0x4e, 0xfe, 0x4d, 0x79, 0xe0, 0xcc, 0xa9, 0x4e, 0x49, 0xed, - 0xed, 0x46, 0x9c, 0x47, 0x09, 0x73, 0x91, 0x35, 0xd6, 0x13, 0xf7, 0x56, 0xf8, 0x79, 0xce, 0x84, - 0x2c, 0x74, 0xbd, 0xff, 0xf0, 0x11, 0x3c, 0x4d, 0x79, 0x56, 0xfe, 0x94, 0xc0, 0xee, 0x02, 0x50, - 0x36, 0x5b, 0xc4, 0x07, 0x3f, 0x0c, 0xf8, 0xff, 0xac, 0xa8, 0x5f, 0x96, 0x7e, 0xde, 0x4e, 0xfd, - 0x50, 0xf6, 0x49, 0x33, 0xa9, 0xc8, 0x18, 0xfe, 0xa9, 0x82, 0xa5, 0x6d, 0xf4, 0xeb, 0x43, 0xcb, - 0x7b, 0xee, 0x54, 0x1b, 0x76, 0x2a, 0x7b, 0x56, 0xb7, 0x22, 0x47, 0xd0, 0x39, 0xcf, 0x99, 0xf0, - 0x55, 0xcc, 0xb3, 0xab, 0xbb, 0x9c, 0xd9, 0xb5, 0xbe, 0x31, 0xdc, 0xf4, 0x36, 0xb1, 0xf7, 0x0c, - 0xa1, 0xcb, 0xa4, 0xc1, 0x4f, 0x03, 0x1e, 0x55, 0x3b, 0x97, 0x39, 0xcf, 0x24, 0xfb, 0x23, 0xd6, - 0x3d, 0x30, 0x29, 0x93, 0x3a, 0x51, 0xe8, 0xd9, 0xf2, 0x7a, 0x4e, 0x11, 0x94, 0x73, 0x1f, 0x94, - 0x73, 0xcc, 0x79, 0xf2, 0xde, 0x4f, 0x34, 0xa3, 0x25, 0x93, 0x6c, 0x41, 0xf3, 0x8d, 0x10, 0x5c, - 0xd8, 0xf5, 0xbe, 0x31, 0x6c, 0xd3, 0xe2, 0x30, 0xf8, 0xde, 0x00, 0xbb, 0xf2, 0xc9, 0x3a, 0x61, - 0x84, 0x40, 0x23, 0xf3, 0x53, 0x66, 0x1b, 0xa8, 0xc0, 0xff, 0xa4, 0x0f, 0x56, 0xc8, 0x64, 0x20, - 0xe2, 0x7c, 0x3a, 0x12, 0x7c, 0x7e, 0x9b, 0x2e, 0x96, 0xc8, 0x4b, 0x30, 0xfd, 0x00, 0xc1, 0x3a, - 0x0e, 0x74, 0x77, 0xd5, 0x1b, 0x8f, 0x90, 0x45, 0x4b, 0x36, 0x79, 0x0d, 0xed, 0x30, 0x16, 0xac, - 0x90, 0x36, 0x50, 0xfa, 0x78, 0x95, 0xf4, 0xe4, 0x9e, 0x48, 0xe7, 0x1a, 0x72, 0x00, 0x7f, 0x4b, - 0xae, 0x45, 0xc0, 0x46, 0x61, 0x28, 0x98, 0x94, 0x17, 0x82, 0x4d, 0xe2, 0x2f, 0x76, 0x13, 0x2d, - 0x56, 0x41, 0xe4, 0x15, 0xd8, 0x21, 0x93, 0x2a, 0xce, 0x30, 0xdf, 0x65, 0x99, 0x89, 0xb2, 0x95, - 0x38, 0x19, 0xc2, 0x5f, 0x45, 0xcb, 0x0b, 0x2e, 0x14, 0xf5, 0xb3, 0x88, 0xd9, 0xeb, 0x28, 0xf9, - 0xbd, 0x4c, 0x3c, 0xd8, 0x5a, 0xe8, 0x32, 0xa7, 0xb7, 0x90, 0x5e, 0x89, 0x91, 0x3d, 0x68, 0x61, - 0x96, 0x01, 0x4f, 0xec, 0x36, 0xce, 0xa2, 0x83, 0xb3, 0xb8, 0x28, 0x8b, 0x74, 0x06, 0x93, 0xde, - 0x94, 0x1a, 0xf3, 0x69, 0x74, 0x36, 0xf4, 0x8d, 0x61, 0x87, 0xce, 0xce, 0xc4, 0x86, 0xf5, 0x84, - 0x47, 0x51, 0x9c, 0x45, 0xb6, 0xd5, 0x37, 0x86, 0x2d, 0x7a, 0x7f, 0x24, 0x4f, 0xa1, 0x13, 0xcb, - 0x13, 0x36, 0xf1, 0x75, 0xa2, 0xa6, 0x61, 0xdb, 0x1b, 0x88, 0x2f, 0x17, 0x07, 0xdf, 0x6a, 0xb0, - 0x55, 0xb5, 0x1e, 0x95, 0xab, 0xb1, 0x09, 0xb5, 0x38, 0x2c, 0x37, 0xa2, 0x16, 0x87, 0x24, 0x83, - 0xed, 0xaa, 0x3b, 0x47, 0xe8, 0x84, 0x49, 0xbb, 0x8e, 0x5f, 0xc3, 0xc1, 0x83, 0xbe, 0x06, 0x9d, - 0x30, 0xba, 0xba, 0x25, 0x19, 0xc0, 0x46, 0xc2, 0x03, 0x1c, 0xe4, 0xd9, 0xd4, 0x5b, 0x91, 0xe0, - 0x52, 0x8d, 0x3c, 0x01, 0x53, 0x2a, 0x5f, 0x69, 0x89, 0x61, 0x59, 0x9e, 0x85, 0x06, 0x2e, 0xb1, - 0x44, 0x4b, 0x88, 0xec, 0x40, 0x43, 0xf9, 0x91, 0xc4, 0x80, 0x2c, 0xaf, 0x8d, 0x94, 0x2b, 0x3f, - 0x92, 0x14, 0xcb, 0xef, 0x1a, 0xad, 0x66, 0xd7, 0xdc, 0xdf, 0x01, 0xb3, 0x58, 0x60, 0xd2, 0x86, - 0xe6, 0x28, 0x49, 0xf8, 0x6d, 0x77, 0x8d, 0xb4, 0xa0, 0x71, 0xc2, 0xb2, 0xbb, 0xae, 0xb1, 0xff, - 0x0c, 0xda, 0xb3, 0x25, 0x25, 0x16, 0xac, 0x9f, 0x66, 0x63, 0xae, 0xb3, 0xb0, 0xbb, 0x46, 0x36, - 0xa0, 0x75, 0xae, 0x55, 0x71, 0x32, 0xbc, 0xaf, 0x06, 0x6c, 0x57, 0xbd, 0xec, 0x68, 0x3a, 0x0e, - 0xa2, 0xc1, 0x3c, 0xcd, 0x3e, 0xf3, 0x1b, 0x46, 0x0e, 0x1f, 0x34, 0xa9, 0xe2, 0x1a, 0xed, 0x1d, - 0x3d, 0x4c, 0x54, 0xdc, 0x60, 0x83, 0xb5, 0xe3, 0x17, 0x1f, 0xdc, 0x28, 0x56, 0x1f, 0xf5, 0xd8, - 0x09, 0x78, 0xea, 0xa6, 0x71, 0x20, 0xb8, 0xe4, 0x13, 0xe5, 0xa6, 0x3c, 0x70, 0x45, 0x1e, 0xb8, - 0xf3, 0x8e, 0x6e, 0xd9, 0x71, 0x6c, 0xe2, 0x3e, 0x1e, 0xfe, 0x0a, 0x00, 0x00, 0xff, 0xff, 0xbc, - 0xe4, 0xe6, 0x68, 0x76, 0x06, 0x00, 0x00, + // 750 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0xdd, 0x4e, 0xdb, 0x48, + 0x14, 0xc6, 0xf9, 0x31, 0xc9, 0x31, 0x61, 0xa3, 0x59, 0x76, 0xd7, 0x64, 0x17, 0x94, 0x0d, 0xa8, + 0x0a, 0xa8, 0xb2, 0xa9, 0x41, 0xbd, 0x68, 0x2b, 0x55, 0x41, 0x54, 0x15, 0xbd, 0x80, 0xc8, 0xa0, + 0x5e, 0xf4, 0x06, 0x39, 0xe3, 0x89, 0xb1, 0xb0, 0x3d, 0xee, 0xfc, 0x94, 0xf2, 0x04, 0x55, 0xdf, + 0xa0, 0x17, 0xbc, 0x47, 0x5f, 0xa2, 0x0f, 0x55, 0x65, 0xec, 0xfc, 0x21, 0xa7, 0x52, 0x7a, 0xc1, + 0x55, 0x32, 0xe7, 0xfb, 0xce, 0xe7, 0x6f, 0xce, 0x39, 0x73, 0x60, 0x2f, 0xa6, 0xf8, 0x0a, 0x47, + 0x54, 0xfa, 0x5e, 0x40, 0x12, 0x71, 0x95, 0x10, 0x71, 0x4b, 0xd9, 0x0d, 0x27, 0x58, 0xb2, 0x50, + 0xdc, 0x05, 0x8c, 0xca, 0xd4, 0x4a, 0x19, 0x15, 0x14, 0xfd, 0x1d, 0x53, 0x6c, 0x4d, 0xa9, 0x56, + 0x4e, 0x6d, 0x6d, 0x07, 0x94, 0x06, 0x11, 0xb1, 0x15, 0x6b, 0x20, 0x87, 0xf6, 0x2d, 0xf3, 0xd2, + 0x94, 0x30, 0x9e, 0xe5, 0xb5, 0xfe, 0x51, 0x9f, 0xa0, 0x71, 0x4c, 0x93, 0xfc, 0x27, 0x07, 0xb6, + 0x67, 0x80, 0x5c, 0x6c, 0x16, 0xef, 0x7c, 0xd7, 0xe0, 0xdf, 0xb3, 0x2c, 0x7e, 0x91, 0xfb, 0x79, + 0x3b, 0xf2, 0xe3, 0x92, 0x8f, 0x92, 0x70, 0x81, 0x06, 0xf0, 0x57, 0x11, 0xcc, 0x4d, 0xad, 0x5d, + 0xee, 0x1a, 0xce, 0x53, 0xab, 0xd8, 0xb0, 0x55, 0xa8, 0x59, 0x2c, 0x85, 0x8e, 0xa0, 0x71, 0x9e, + 0x12, 0xe6, 0x89, 0x90, 0x26, 0x97, 0x77, 0x29, 0x31, 0x4b, 0x6d, 0xad, 0xbb, 0xee, 0xac, 0x2b, + 0xed, 0x09, 0xe2, 0xce, 0x93, 0x3a, 0x3f, 0x34, 0xf8, 0xaf, 0xd8, 0x39, 0x4f, 0x69, 0xc2, 0xc9, + 0xa3, 0x58, 0x77, 0x40, 0x77, 0x09, 0x97, 0x91, 0x50, 0x9e, 0x0d, 0xa7, 0x65, 0x65, 0x8d, 0xb2, + 0xc6, 0x8d, 0xb2, 0x8e, 0x29, 0x8d, 0xde, 0x7b, 0x91, 0x24, 0x6e, 0xce, 0x44, 0x1b, 0x50, 0x7d, + 0xc3, 0x18, 0x65, 0x66, 0xb9, 0xad, 0x75, 0xeb, 0x6e, 0x76, 0xe8, 0x7c, 0xd5, 0x60, 0xa7, 0xe8, + 0x1b, 0x7d, 0x46, 0xf0, 0x35, 0xc1, 0x37, 0x8f, 0xd8, 0x90, 0x4e, 0x0a, 0xbb, 0xbf, 0xb6, 0x92, + 0x57, 0x78, 0x7a, 0x7b, 0x6d, 0xf9, 0xdb, 0x97, 0x66, 0x6f, 0x7f, 0x5f, 0x01, 0xb3, 0xd0, 0xa1, + 0x8c, 0x08, 0x42, 0x50, 0x49, 0xbc, 0x98, 0xa8, 0x8f, 0xd4, 0x5d, 0xf5, 0x1f, 0xb5, 0xc1, 0xf0, + 0x09, 0xc7, 0x2c, 0x4c, 0x47, 0x03, 0x91, 0x8b, 0xcd, 0x86, 0xd0, 0x73, 0xd0, 0x3d, 0xac, 0xc0, + 0xb2, 0x1a, 0xa7, 0xed, 0x45, 0x95, 0xe9, 0x29, 0x96, 0x9b, 0xb3, 0xd1, 0x6b, 0xa8, 0xfb, 0x21, + 0x23, 0x59, 0x6a, 0x45, 0xa5, 0xfe, 0xbf, 0x28, 0xf5, 0x64, 0x4c, 0x74, 0xa7, 0x39, 0xe8, 0x00, + 0xfe, 0xe4, 0x54, 0x32, 0x4c, 0x7a, 0xbe, 0xcf, 0x08, 0xe7, 0x7d, 0x46, 0x86, 0xe1, 0x67, 0xb3, + 0xaa, 0x2c, 0x16, 0x41, 0xe8, 0x05, 0x98, 0x3e, 0xe1, 0x22, 0x4c, 0xd4, 0x74, 0xcf, 0xa7, 0xe9, + 0x2a, 0x6d, 0x21, 0x8e, 0xba, 0xf0, 0x47, 0x26, 0xd9, 0xa7, 0x4c, 0xb8, 0x5e, 0x12, 0x10, 0x73, + 0x55, 0xa5, 0x3c, 0x0c, 0x23, 0x07, 0x36, 0x66, 0x54, 0xa6, 0xf4, 0x9a, 0xa2, 0x17, 0x62, 0x68, + 0x0f, 0x6a, 0xaa, 0x97, 0x98, 0x46, 0x66, 0x5d, 0xd5, 0xa2, 0xa1, 0x6a, 0xd1, 0xcf, 0x83, 0xee, + 0x04, 0x46, 0xad, 0x11, 0x35, 0xa4, 0xa3, 0xd6, 0x99, 0xd0, 0xd6, 0xba, 0x0d, 0x77, 0x72, 0x46, + 0x26, 0xac, 0x46, 0x34, 0x08, 0xc2, 0x24, 0x30, 0x8d, 0xb6, 0xd6, 0xad, 0xb9, 0xe3, 0x23, 0xda, + 0x85, 0x46, 0xc8, 0x4f, 0xc8, 0xd0, 0x93, 0x91, 0x18, 0x35, 0xdb, 0x5c, 0x53, 0xf8, 0x7c, 0xb0, + 0xf3, 0xad, 0x04, 0x1b, 0x45, 0xe3, 0x51, 0x38, 0x1a, 0xeb, 0x50, 0x0a, 0xfd, 0x7c, 0x22, 0x4a, + 0xa1, 0x8f, 0x12, 0xd8, 0x2c, 0xda, 0xb8, 0x4c, 0x46, 0x84, 0x9b, 0x65, 0xf5, 0x6a, 0x0e, 0x96, + 0x7a, 0x35, 0x32, 0x22, 0xee, 0x62, 0x49, 0xd4, 0x81, 0xb5, 0x88, 0x62, 0x55, 0xc8, 0xb3, 0x91, + 0xb7, 0xac, 0x83, 0x73, 0x31, 0xb4, 0x03, 0x3a, 0x17, 0x9e, 0x90, 0x5c, 0x35, 0xcb, 0x70, 0x0c, + 0x65, 0xe0, 0x42, 0x85, 0xdc, 0x1c, 0x42, 0x5b, 0x50, 0x11, 0x5e, 0xc0, 0x55, 0x83, 0x0c, 0xa7, + 0xae, 0x28, 0x97, 0x5e, 0xc0, 0x5d, 0x15, 0x7e, 0x57, 0xa9, 0x55, 0x9b, 0xfa, 0xfe, 0x16, 0xe8, + 0xd9, 0x00, 0xa3, 0x3a, 0x54, 0x7b, 0x51, 0x44, 0x6f, 0x9b, 0x2b, 0xa8, 0x06, 0x95, 0x13, 0x92, + 0xdc, 0x35, 0xb5, 0xfd, 0x27, 0x50, 0x9f, 0x0c, 0x29, 0x32, 0x60, 0xf5, 0x34, 0x19, 0x50, 0x99, + 0xf8, 0xcd, 0x15, 0xb4, 0x06, 0xb5, 0x73, 0x29, 0xb2, 0x93, 0xe6, 0xdc, 0x97, 0x60, 0xb3, 0xe8, + 0xb2, 0xbd, 0x51, 0x39, 0x90, 0x04, 0xfd, 0x34, 0xf9, 0x44, 0x6f, 0x08, 0x3a, 0x5c, 0xaa, 0x52, + 0xd9, 0xce, 0x6a, 0x1d, 0x2d, 0x97, 0x94, 0x6d, 0x97, 0xce, 0x0a, 0xfa, 0xa2, 0x41, 0x6d, 0xbc, + 0x74, 0xd0, 0xcb, 0x65, 0x44, 0x1e, 0x6c, 0xcd, 0xd6, 0xab, 0xdf, 0x4b, 0x1e, 0x3b, 0x39, 0x7e, + 0xf6, 0xc1, 0x0e, 0x42, 0x71, 0x2d, 0x07, 0x16, 0xa6, 0xb1, 0x1d, 0x87, 0x98, 0x51, 0x4e, 0x87, + 0xc2, 0x8e, 0x29, 0xb6, 0x59, 0x8a, 0xed, 0xa9, 0xb2, 0x9d, 0x2b, 0x0f, 0x74, 0xf5, 0x32, 0x0e, + 0x7f, 0x06, 0x00, 0x00, 0xff, 0xff, 0x46, 0xc1, 0x38, 0x48, 0xfe, 0x07, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -458,6 +551,8 @@ const _ = grpc.SupportPackageIsVersion4 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type NetworkSecurityGroupAgentClient interface { Invoke(ctx context.Context, in *NetworkSecurityGroupRequest, opts ...grpc.CallOption) (*NetworkSecurityGroupResponse, error) + // Prechecks whether the system is able to create specified network security groups (but does not actually create them). + Precheck(ctx context.Context, in *NetworkSecurityGroupPrecheckRequest, opts ...grpc.CallOption) (*NetworkSecurityGroupPrecheckResponse, error) } type networkSecurityGroupAgentClient struct { @@ -477,9 +572,20 @@ func (c *networkSecurityGroupAgentClient) Invoke(ctx context.Context, in *Networ return out, nil } +func (c *networkSecurityGroupAgentClient) Precheck(ctx context.Context, in *NetworkSecurityGroupPrecheckRequest, opts ...grpc.CallOption) (*NetworkSecurityGroupPrecheckResponse, error) { + out := new(NetworkSecurityGroupPrecheckResponse) + err := c.cc.Invoke(ctx, "/moc.cloudagent.network.NetworkSecurityGroupAgent/Precheck", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // NetworkSecurityGroupAgentServer is the server API for NetworkSecurityGroupAgent service. type NetworkSecurityGroupAgentServer interface { Invoke(context.Context, *NetworkSecurityGroupRequest) (*NetworkSecurityGroupResponse, error) + // Prechecks whether the system is able to create specified network security groups (but does not actually create them). + Precheck(context.Context, *NetworkSecurityGroupPrecheckRequest) (*NetworkSecurityGroupPrecheckResponse, error) } // UnimplementedNetworkSecurityGroupAgentServer can be embedded to have forward compatible implementations. @@ -489,6 +595,9 @@ type UnimplementedNetworkSecurityGroupAgentServer struct { func (*UnimplementedNetworkSecurityGroupAgentServer) Invoke(ctx context.Context, req *NetworkSecurityGroupRequest) (*NetworkSecurityGroupResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Invoke not implemented") } +func (*UnimplementedNetworkSecurityGroupAgentServer) Precheck(ctx context.Context, req *NetworkSecurityGroupPrecheckRequest) (*NetworkSecurityGroupPrecheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Precheck not implemented") +} func RegisterNetworkSecurityGroupAgentServer(s *grpc.Server, srv NetworkSecurityGroupAgentServer) { s.RegisterService(&_NetworkSecurityGroupAgent_serviceDesc, srv) @@ -512,6 +621,24 @@ func _NetworkSecurityGroupAgent_Invoke_Handler(srv interface{}, ctx context.Cont return interceptor(ctx, in, info, handler) } +func _NetworkSecurityGroupAgent_Precheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NetworkSecurityGroupPrecheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkSecurityGroupAgentServer).Precheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/moc.cloudagent.network.NetworkSecurityGroupAgent/Precheck", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkSecurityGroupAgentServer).Precheck(ctx, req.(*NetworkSecurityGroupPrecheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _NetworkSecurityGroupAgent_serviceDesc = grpc.ServiceDesc{ ServiceName: "moc.cloudagent.network.NetworkSecurityGroupAgent", HandlerType: (*NetworkSecurityGroupAgentServer)(nil), @@ -520,6 +647,10 @@ var _NetworkSecurityGroupAgent_serviceDesc = grpc.ServiceDesc{ MethodName: "Invoke", Handler: _NetworkSecurityGroupAgent_Invoke_Handler, }, + { + MethodName: "Precheck", + Handler: _NetworkSecurityGroupAgent_Precheck_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "moc_cloudagent_networksecuritygroup.proto", diff --git a/rpc/cloudagent/network/moc_cloudagent_vippool.pb.go b/rpc/cloudagent/network/moc_cloudagent_vippool.pb.go index 3118911..88a6105 100644 --- a/rpc/cloudagent/network/moc_cloudagent_vippool.pb.go +++ b/rpc/cloudagent/network/moc_cloudagent_vippool.pb.go @@ -128,6 +128,94 @@ func (m *VipPoolResponse) GetError() string { return "" } +type VipPoolPrecheckRequest struct { + VipPools []*VipPool `protobuf:"bytes,1,rep,name=VipPools,proto3" json:"VipPools,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VipPoolPrecheckRequest) Reset() { *m = VipPoolPrecheckRequest{} } +func (m *VipPoolPrecheckRequest) String() string { return proto.CompactTextString(m) } +func (*VipPoolPrecheckRequest) ProtoMessage() {} +func (*VipPoolPrecheckRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_608cad7efbd0a4a0, []int{2} +} + +func (m *VipPoolPrecheckRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VipPoolPrecheckRequest.Unmarshal(m, b) +} +func (m *VipPoolPrecheckRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VipPoolPrecheckRequest.Marshal(b, m, deterministic) +} +func (m *VipPoolPrecheckRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_VipPoolPrecheckRequest.Merge(m, src) +} +func (m *VipPoolPrecheckRequest) XXX_Size() int { + return xxx_messageInfo_VipPoolPrecheckRequest.Size(m) +} +func (m *VipPoolPrecheckRequest) XXX_DiscardUnknown() { + xxx_messageInfo_VipPoolPrecheckRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_VipPoolPrecheckRequest proto.InternalMessageInfo + +func (m *VipPoolPrecheckRequest) GetVipPools() []*VipPool { + if m != nil { + return m.VipPools + } + return nil +} + +type VipPoolPrecheckResponse struct { + // The precheck result: true if the precheck criteria is passed; otherwise, false + Result *wrappers.BoolValue `protobuf:"bytes,1,opt,name=Result,proto3" json:"Result,omitempty"` + // The error message if the precheck is not passed; otherwise, empty string + Error string `protobuf:"bytes,2,opt,name=Error,proto3" json:"Error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VipPoolPrecheckResponse) Reset() { *m = VipPoolPrecheckResponse{} } +func (m *VipPoolPrecheckResponse) String() string { return proto.CompactTextString(m) } +func (*VipPoolPrecheckResponse) ProtoMessage() {} +func (*VipPoolPrecheckResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_608cad7efbd0a4a0, []int{3} +} + +func (m *VipPoolPrecheckResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VipPoolPrecheckResponse.Unmarshal(m, b) +} +func (m *VipPoolPrecheckResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VipPoolPrecheckResponse.Marshal(b, m, deterministic) +} +func (m *VipPoolPrecheckResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_VipPoolPrecheckResponse.Merge(m, src) +} +func (m *VipPoolPrecheckResponse) XXX_Size() int { + return xxx_messageInfo_VipPoolPrecheckResponse.Size(m) +} +func (m *VipPoolPrecheckResponse) XXX_DiscardUnknown() { + xxx_messageInfo_VipPoolPrecheckResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_VipPoolPrecheckResponse proto.InternalMessageInfo + +func (m *VipPoolPrecheckResponse) GetResult() *wrappers.BoolValue { + if m != nil { + return m.Result + } + return nil +} + +func (m *VipPoolPrecheckResponse) GetError() string { + if m != nil { + return m.Error + } + return "" +} + type VipPool struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` @@ -149,7 +237,7 @@ func (m *VipPool) Reset() { *m = VipPool{} } func (m *VipPool) String() string { return proto.CompactTextString(m) } func (*VipPool) ProtoMessage() {} func (*VipPool) Descriptor() ([]byte, []int) { - return fileDescriptor_608cad7efbd0a4a0, []int{2} + return fileDescriptor_608cad7efbd0a4a0, []int{4} } func (m *VipPool) XXX_Unmarshal(b []byte) error { @@ -250,43 +338,48 @@ func (m *VipPool) GetTags() *common.Tags { func init() { proto.RegisterType((*VipPoolRequest)(nil), "moc.cloudagent.network.VipPoolRequest") proto.RegisterType((*VipPoolResponse)(nil), "moc.cloudagent.network.VipPoolResponse") + proto.RegisterType((*VipPoolPrecheckRequest)(nil), "moc.cloudagent.network.VipPoolPrecheckRequest") + proto.RegisterType((*VipPoolPrecheckResponse)(nil), "moc.cloudagent.network.VipPoolPrecheckResponse") proto.RegisterType((*VipPool)(nil), "moc.cloudagent.network.VipPool") } func init() { proto.RegisterFile("moc_cloudagent_vippool.proto", fileDescriptor_608cad7efbd0a4a0) } var fileDescriptor_608cad7efbd0a4a0 = []byte{ - // 473 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x52, 0x4d, 0x6f, 0xd4, 0x30, - 0x10, 0x25, 0xdb, 0xfd, 0x9c, 0x2d, 0x8b, 0x64, 0x21, 0xb0, 0xa2, 0x52, 0x56, 0x41, 0x82, 0x3d, - 0x25, 0x22, 0x70, 0xe3, 0xc4, 0x4a, 0x1c, 0xb8, 0x00, 0x0a, 0x55, 0x0f, 0x70, 0xa8, 0xb2, 0x89, - 0x37, 0x58, 0x9b, 0x78, 0x5c, 0xdb, 0x69, 0xc5, 0x99, 0x0b, 0x3f, 0x81, 0x3f, 0xc2, 0x91, 0xff, - 0x86, 0x32, 0xc9, 0x66, 0xa9, 0x84, 0xd4, 0x43, 0x4f, 0xb6, 0xdf, 0x7b, 0xf3, 0x66, 0xf4, 0x3c, - 0x70, 0x52, 0x61, 0x76, 0x91, 0x95, 0x58, 0xe7, 0x69, 0x21, 0x94, 0xbb, 0xb8, 0x92, 0x5a, 0x23, - 0x96, 0xa1, 0x36, 0xe8, 0x90, 0x3d, 0xaa, 0x30, 0x0b, 0x0f, 0x6c, 0xa8, 0x84, 0xbb, 0x46, 0xb3, - 0xf3, 0x4f, 0x0b, 0xc4, 0xa2, 0x14, 0x11, 0xa9, 0x36, 0xf5, 0x36, 0xba, 0x36, 0xa9, 0xd6, 0xc2, - 0xd8, 0xb6, 0xce, 0x7f, 0x4c, 0xae, 0x58, 0x55, 0xa8, 0xba, 0xa3, 0x25, 0x82, 0x1f, 0x1e, 0x2c, - 0xce, 0xa5, 0xfe, 0x84, 0x58, 0x26, 0xe2, 0xb2, 0x16, 0xd6, 0xb1, 0x37, 0x30, 0xed, 0x10, 0xcb, - 0xbd, 0xe5, 0xd1, 0x6a, 0x1e, 0x3f, 0x0d, 0xff, 0xdf, 0x36, 0xdc, 0x57, 0xf6, 0x05, 0xec, 0x35, - 0xdc, 0xff, 0xa8, 0x85, 0x49, 0x9d, 0x44, 0x75, 0xf6, 0x5d, 0x0b, 0x3e, 0x58, 0x7a, 0xab, 0x45, - 0xbc, 0x20, 0x87, 0x9e, 0x49, 0x6e, 0x8a, 0x82, 0x5f, 0x1e, 0x3c, 0xe8, 0xa7, 0xb0, 0x1a, 0x95, - 0x15, 0x77, 0x1b, 0x23, 0x86, 0x71, 0x22, 0x6c, 0x5d, 0x3a, 0xea, 0x3f, 0x8f, 0xfd, 0xb0, 0x0d, - 0x28, 0xdc, 0x07, 0x14, 0xae, 0x11, 0xcb, 0xf3, 0xb4, 0xac, 0x45, 0xd2, 0x29, 0xd9, 0x43, 0x18, - 0xbd, 0x33, 0x06, 0x0d, 0x3f, 0x5a, 0x7a, 0xab, 0x59, 0xd2, 0x3e, 0x82, 0x3f, 0x03, 0x98, 0x74, - 0xb6, 0x8c, 0xc1, 0x50, 0xa5, 0x95, 0xe0, 0x1e, 0x09, 0xe8, 0xce, 0x16, 0x30, 0x90, 0x39, 0x75, - 0x99, 0x25, 0x03, 0x99, 0x37, 0x9a, 0x4c, 0xe6, 0x7b, 0x13, 0xba, 0xb3, 0x13, 0x98, 0x75, 0xa3, - 0xca, 0x9c, 0x0f, 0x89, 0x38, 0x00, 0xcc, 0x87, 0xa9, 0xc2, 0x5c, 0x6c, 0x2f, 0x73, 0xc5, 0x47, - 0x44, 0xf6, 0xef, 0xa6, 0xb2, 0x30, 0x58, 0xeb, 0x0f, 0x4d, 0xdb, 0x71, 0x5b, 0xd9, 0x03, 0x2c, - 0x80, 0xe3, 0x12, 0x33, 0x8a, 0x91, 0x04, 0x13, 0x12, 0xdc, 0xc0, 0xd8, 0x33, 0x18, 0x5b, 0x97, - 0xba, 0xda, 0xf2, 0x29, 0x25, 0x31, 0xa7, 0x10, 0x3f, 0x13, 0x94, 0x74, 0x14, 0x3b, 0x85, 0x89, - 0x75, 0xa9, 0x71, 0x52, 0xf3, 0x59, 0xe3, 0xb1, 0x1e, 0xfe, 0xfc, 0xcd, 0xbd, 0x64, 0x0f, 0x32, - 0x1f, 0x46, 0x42, 0xe5, 0x52, 0x73, 0xf8, 0x87, 0x6d, 0x21, 0xf6, 0x04, 0x86, 0x2e, 0x2d, 0x2c, - 0x9f, 0x93, 0xfd, 0x8c, 0xec, 0xcf, 0xd2, 0xc2, 0x26, 0x04, 0xc7, 0x3b, 0x38, 0xee, 0xe2, 0x7b, - 0xdb, 0xfc, 0x19, 0xfb, 0x0a, 0xe3, 0xf7, 0xea, 0x0a, 0x77, 0x82, 0x3d, 0xbf, 0xed, 0x3b, 0xdb, - 0x7d, 0xf4, 0x5f, 0xdc, 0xaa, 0x6b, 0x37, 0x26, 0xb8, 0xb7, 0x7e, 0xf9, 0x25, 0x2a, 0xa4, 0xfb, - 0x56, 0x6f, 0xc2, 0x0c, 0xab, 0xa8, 0x92, 0x99, 0x41, 0x8b, 0x5b, 0x17, 0x55, 0x98, 0x45, 0x46, - 0x67, 0xd1, 0xc1, 0x24, 0xea, 0x4c, 0x36, 0x63, 0xda, 0x88, 0x57, 0x7f, 0x03, 0x00, 0x00, 0xff, - 0xff, 0xa8, 0x63, 0x25, 0xeb, 0x78, 0x03, 0x00, 0x00, + // 525 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x52, 0xcd, 0x6e, 0xd3, 0x4c, + 0x14, 0xfd, 0x9c, 0xe6, 0xf7, 0xa6, 0x5f, 0x90, 0x46, 0xa8, 0xb5, 0xac, 0x52, 0x22, 0x23, 0x41, + 0x56, 0xb6, 0x08, 0xec, 0x58, 0x11, 0x89, 0x05, 0x1b, 0xa8, 0x4c, 0xe9, 0x02, 0x16, 0x95, 0x33, + 0x9e, 0xb8, 0xa3, 0xd8, 0x73, 0xa7, 0x33, 0xe3, 0x56, 0xac, 0xd9, 0xf0, 0x08, 0xbc, 0x08, 0x4b, + 0x5e, 0x84, 0xa7, 0x41, 0x19, 0x8f, 0x9d, 0x16, 0x90, 0x02, 0x82, 0x95, 0x3d, 0xe7, 0x9e, 0x73, + 0xee, 0x9d, 0x33, 0x17, 0x8e, 0x4a, 0xa4, 0xe7, 0xb4, 0xc0, 0x2a, 0x4b, 0x73, 0x26, 0xcc, 0xf9, + 0x15, 0x97, 0x12, 0xb1, 0x88, 0xa4, 0x42, 0x83, 0xe4, 0xa0, 0x44, 0x1a, 0x6d, 0xab, 0x91, 0x60, + 0xe6, 0x1a, 0xd5, 0x3a, 0x38, 0xce, 0x11, 0xf3, 0x82, 0xc5, 0x96, 0xb5, 0xac, 0x56, 0xf1, 0xb5, + 0x4a, 0xa5, 0x64, 0x4a, 0xd7, 0xba, 0xe0, 0xd0, 0xba, 0x62, 0x59, 0xa2, 0x70, 0x9f, 0xba, 0x10, + 0x7e, 0xf4, 0x60, 0x72, 0xc6, 0xe5, 0x09, 0x62, 0x91, 0xb0, 0xcb, 0x8a, 0x69, 0x43, 0x9e, 0xc1, + 0xd0, 0x21, 0xda, 0xf7, 0xa6, 0x7b, 0xb3, 0xf1, 0xfc, 0x7e, 0xf4, 0xeb, 0xb6, 0x51, 0xa3, 0x6c, + 0x05, 0xe4, 0x29, 0xfc, 0xff, 0x5a, 0x32, 0x95, 0x1a, 0x8e, 0xe2, 0xf4, 0x83, 0x64, 0x7e, 0x67, + 0xea, 0xcd, 0x26, 0xf3, 0x89, 0x75, 0x68, 0x2b, 0xc9, 0x6d, 0x52, 0xf8, 0xd9, 0x83, 0x3b, 0xed, + 0x14, 0x5a, 0xa2, 0xd0, 0xec, 0xef, 0xc6, 0x98, 0x43, 0x3f, 0x61, 0xba, 0x2a, 0x8c, 0xed, 0x3f, + 0x9e, 0x07, 0x51, 0x1d, 0x50, 0xd4, 0x04, 0x14, 0x2d, 0x10, 0x8b, 0xb3, 0xb4, 0xa8, 0x58, 0xe2, + 0x98, 0xe4, 0x2e, 0xf4, 0x5e, 0x28, 0x85, 0xca, 0xdf, 0x9b, 0x7a, 0xb3, 0x51, 0x52, 0x1f, 0xc2, + 0xb7, 0x70, 0xe0, 0x5c, 0x4f, 0x14, 0xa3, 0x17, 0x8c, 0xae, 0xff, 0x45, 0x4e, 0x21, 0x85, 0xc3, + 0x9f, 0x6c, 0xdd, 0xc5, 0xb7, 0xb3, 0x7b, 0x7f, 0x3e, 0x7b, 0xe7, 0xe6, 0xec, 0x5f, 0x3b, 0x30, + 0x70, 0x5d, 0x08, 0x81, 0xae, 0x48, 0x4b, 0x66, 0x3d, 0x47, 0x89, 0xfd, 0x27, 0x13, 0xe8, 0xf0, + 0xcc, 0x49, 0x3a, 0x3c, 0xdb, 0x70, 0x28, 0xcf, 0x9a, 0x00, 0xec, 0x3f, 0x39, 0x82, 0x91, 0xbb, + 0x05, 0xcf, 0xfc, 0xae, 0x2d, 0x6c, 0x01, 0x12, 0xc0, 0x50, 0x60, 0xc6, 0x56, 0x97, 0x99, 0xf0, + 0x7b, 0xb6, 0xd8, 0x9e, 0x37, 0xca, 0x5c, 0x61, 0x25, 0x5f, 0x6d, 0xda, 0xf6, 0x6b, 0x65, 0x0b, + 0x90, 0x10, 0xf6, 0x0b, 0xa4, 0x76, 0x05, 0x2c, 0x61, 0x60, 0x09, 0xb7, 0x30, 0xf2, 0x00, 0xfa, + 0xda, 0xa4, 0xa6, 0xd2, 0xfe, 0xd0, 0x26, 0x31, 0xb6, 0xf9, 0xbe, 0xb1, 0x50, 0xe2, 0x4a, 0xe4, + 0x18, 0x06, 0xda, 0xa4, 0xca, 0x70, 0xe9, 0x8f, 0x36, 0x1e, 0x8b, 0xee, 0xa7, 0x2f, 0xbe, 0x97, + 0x34, 0x20, 0x09, 0xa0, 0xc7, 0x44, 0xc6, 0xa5, 0x0f, 0x37, 0xaa, 0x35, 0x44, 0xee, 0x41, 0xd7, + 0xa4, 0xb9, 0xf6, 0xc7, 0xd6, 0x7e, 0x64, 0xed, 0x4f, 0xd3, 0x5c, 0x27, 0x16, 0x9e, 0x7f, 0xf3, + 0x60, 0xdf, 0xe5, 0xf7, 0x7c, 0xf3, 0x9e, 0xe4, 0x3d, 0xf4, 0x5f, 0x8a, 0x2b, 0x5c, 0x33, 0xf2, + 0x70, 0xd7, 0x53, 0xd7, 0x4b, 0x12, 0x3c, 0xda, 0xc9, 0xab, 0x5f, 0x3d, 0xfc, 0x8f, 0x94, 0x30, + 0x6c, 0x76, 0x81, 0x44, 0x3b, 0x64, 0x3f, 0xec, 0x62, 0x10, 0xff, 0x36, 0xbf, 0x69, 0xb7, 0x78, + 0xfc, 0x2e, 0xce, 0xb9, 0xb9, 0xa8, 0x96, 0x11, 0xc5, 0x32, 0x2e, 0x39, 0x55, 0xa8, 0x71, 0x65, + 0xe2, 0x12, 0x69, 0xac, 0x24, 0x8d, 0xb7, 0x66, 0xb1, 0x33, 0x5b, 0xf6, 0xed, 0x06, 0x3e, 0xf9, + 0x1e, 0x00, 0x00, 0xff, 0xff, 0x43, 0x3c, 0xe5, 0x06, 0xa4, 0x04, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -302,6 +395,8 @@ const _ = grpc.SupportPackageIsVersion4 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type VipPoolAgentClient interface { Invoke(ctx context.Context, in *VipPoolRequest, opts ...grpc.CallOption) (*VipPoolResponse, error) + // Prechecks whether the system is able to create specified vip pools (but does not actually create them). + Precheck(ctx context.Context, in *VipPoolPrecheckRequest, opts ...grpc.CallOption) (*VipPoolPrecheckResponse, error) } type vipPoolAgentClient struct { @@ -321,9 +416,20 @@ func (c *vipPoolAgentClient) Invoke(ctx context.Context, in *VipPoolRequest, opt return out, nil } +func (c *vipPoolAgentClient) Precheck(ctx context.Context, in *VipPoolPrecheckRequest, opts ...grpc.CallOption) (*VipPoolPrecheckResponse, error) { + out := new(VipPoolPrecheckResponse) + err := c.cc.Invoke(ctx, "/moc.cloudagent.network.VipPoolAgent/Precheck", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // VipPoolAgentServer is the server API for VipPoolAgent service. type VipPoolAgentServer interface { Invoke(context.Context, *VipPoolRequest) (*VipPoolResponse, error) + // Prechecks whether the system is able to create specified vip pools (but does not actually create them). + Precheck(context.Context, *VipPoolPrecheckRequest) (*VipPoolPrecheckResponse, error) } // UnimplementedVipPoolAgentServer can be embedded to have forward compatible implementations. @@ -333,6 +439,9 @@ type UnimplementedVipPoolAgentServer struct { func (*UnimplementedVipPoolAgentServer) Invoke(ctx context.Context, req *VipPoolRequest) (*VipPoolResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Invoke not implemented") } +func (*UnimplementedVipPoolAgentServer) Precheck(ctx context.Context, req *VipPoolPrecheckRequest) (*VipPoolPrecheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Precheck not implemented") +} func RegisterVipPoolAgentServer(s *grpc.Server, srv VipPoolAgentServer) { s.RegisterService(&_VipPoolAgent_serviceDesc, srv) @@ -356,6 +465,24 @@ func _VipPoolAgent_Invoke_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _VipPoolAgent_Precheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(VipPoolPrecheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VipPoolAgentServer).Precheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/moc.cloudagent.network.VipPoolAgent/Precheck", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VipPoolAgentServer).Precheck(ctx, req.(*VipPoolPrecheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _VipPoolAgent_serviceDesc = grpc.ServiceDesc{ ServiceName: "moc.cloudagent.network.VipPoolAgent", HandlerType: (*VipPoolAgentServer)(nil), @@ -364,6 +491,10 @@ var _VipPoolAgent_serviceDesc = grpc.ServiceDesc{ MethodName: "Invoke", Handler: _VipPoolAgent_Invoke_Handler, }, + { + MethodName: "Precheck", + Handler: _VipPoolAgent_Precheck_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "moc_cloudagent_vippool.proto", diff --git a/rpc/cloudagent/network/moc_cloudagent_virtualnetwork.pb.go b/rpc/cloudagent/network/moc_cloudagent_virtualnetwork.pb.go index 91937fc..d513248 100644 --- a/rpc/cloudagent/network/moc_cloudagent_virtualnetwork.pb.go +++ b/rpc/cloudagent/network/moc_cloudagent_virtualnetwork.pb.go @@ -174,6 +174,94 @@ func (m *VirtualNetworkResponse) GetError() string { return "" } +type VirtualNetworkPrecheckRequest struct { + VirtualNetworks []*VirtualNetwork `protobuf:"bytes,1,rep,name=VirtualNetworks,proto3" json:"VirtualNetworks,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VirtualNetworkPrecheckRequest) Reset() { *m = VirtualNetworkPrecheckRequest{} } +func (m *VirtualNetworkPrecheckRequest) String() string { return proto.CompactTextString(m) } +func (*VirtualNetworkPrecheckRequest) ProtoMessage() {} +func (*VirtualNetworkPrecheckRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_65af3e74534f0214, []int{2} +} + +func (m *VirtualNetworkPrecheckRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VirtualNetworkPrecheckRequest.Unmarshal(m, b) +} +func (m *VirtualNetworkPrecheckRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VirtualNetworkPrecheckRequest.Marshal(b, m, deterministic) +} +func (m *VirtualNetworkPrecheckRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_VirtualNetworkPrecheckRequest.Merge(m, src) +} +func (m *VirtualNetworkPrecheckRequest) XXX_Size() int { + return xxx_messageInfo_VirtualNetworkPrecheckRequest.Size(m) +} +func (m *VirtualNetworkPrecheckRequest) XXX_DiscardUnknown() { + xxx_messageInfo_VirtualNetworkPrecheckRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_VirtualNetworkPrecheckRequest proto.InternalMessageInfo + +func (m *VirtualNetworkPrecheckRequest) GetVirtualNetworks() []*VirtualNetwork { + if m != nil { + return m.VirtualNetworks + } + return nil +} + +type VirtualNetworkPrecheckResponse struct { + // The precheck result: true if the precheck criteria is passed; otherwise, false + Result *wrappers.BoolValue `protobuf:"bytes,1,opt,name=Result,proto3" json:"Result,omitempty"` + // The error message if the precheck is not passed; otherwise, empty string + Error string `protobuf:"bytes,2,opt,name=Error,proto3" json:"Error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VirtualNetworkPrecheckResponse) Reset() { *m = VirtualNetworkPrecheckResponse{} } +func (m *VirtualNetworkPrecheckResponse) String() string { return proto.CompactTextString(m) } +func (*VirtualNetworkPrecheckResponse) ProtoMessage() {} +func (*VirtualNetworkPrecheckResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_65af3e74534f0214, []int{3} +} + +func (m *VirtualNetworkPrecheckResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VirtualNetworkPrecheckResponse.Unmarshal(m, b) +} +func (m *VirtualNetworkPrecheckResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VirtualNetworkPrecheckResponse.Marshal(b, m, deterministic) +} +func (m *VirtualNetworkPrecheckResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_VirtualNetworkPrecheckResponse.Merge(m, src) +} +func (m *VirtualNetworkPrecheckResponse) XXX_Size() int { + return xxx_messageInfo_VirtualNetworkPrecheckResponse.Size(m) +} +func (m *VirtualNetworkPrecheckResponse) XXX_DiscardUnknown() { + xxx_messageInfo_VirtualNetworkPrecheckResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_VirtualNetworkPrecheckResponse proto.InternalMessageInfo + +func (m *VirtualNetworkPrecheckResponse) GetResult() *wrappers.BoolValue { + if m != nil { + return m.Result + } + return nil +} + +func (m *VirtualNetworkPrecheckResponse) GetError() string { + if m != nil { + return m.Error + } + return "" +} + type VirtualNetwork struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` @@ -195,7 +283,7 @@ func (m *VirtualNetwork) Reset() { *m = VirtualNetwork{} } func (m *VirtualNetwork) String() string { return proto.CompactTextString(m) } func (*VirtualNetwork) ProtoMessage() {} func (*VirtualNetwork) Descriptor() ([]byte, []int) { - return fileDescriptor_65af3e74534f0214, []int{2} + return fileDescriptor_65af3e74534f0214, []int{4} } func (m *VirtualNetwork) XXX_Unmarshal(b []byte) error { @@ -311,7 +399,7 @@ func (m *Subnet) Reset() { *m = Subnet{} } func (m *Subnet) String() string { return proto.CompactTextString(m) } func (*Subnet) ProtoMessage() {} func (*Subnet) Descriptor() ([]byte, []int) { - return fileDescriptor_65af3e74534f0214, []int{3} + return fileDescriptor_65af3e74534f0214, []int{5} } func (m *Subnet) XXX_Unmarshal(b []byte) error { @@ -400,7 +488,7 @@ func (m *Ipam) Reset() { *m = Ipam{} } func (m *Ipam) String() string { return proto.CompactTextString(m) } func (*Ipam) ProtoMessage() {} func (*Ipam) Descriptor() ([]byte, []int) { - return fileDescriptor_65af3e74534f0214, []int{4} + return fileDescriptor_65af3e74534f0214, []int{6} } func (m *Ipam) XXX_Unmarshal(b []byte) error { @@ -439,6 +527,8 @@ func init() { proto.RegisterEnum("moc.cloudagent.network.VirtualNetworkType", VirtualNetworkType_name, VirtualNetworkType_value) proto.RegisterType((*VirtualNetworkRequest)(nil), "moc.cloudagent.network.VirtualNetworkRequest") proto.RegisterType((*VirtualNetworkResponse)(nil), "moc.cloudagent.network.VirtualNetworkResponse") + proto.RegisterType((*VirtualNetworkPrecheckRequest)(nil), "moc.cloudagent.network.VirtualNetworkPrecheckRequest") + proto.RegisterType((*VirtualNetworkPrecheckResponse)(nil), "moc.cloudagent.network.VirtualNetworkPrecheckResponse") proto.RegisterType((*VirtualNetwork)(nil), "moc.cloudagent.network.VirtualNetwork") proto.RegisterType((*Subnet)(nil), "moc.cloudagent.network.Subnet") proto.RegisterType((*Ipam)(nil), "moc.cloudagent.network.Ipam") @@ -449,56 +539,59 @@ func init() { } var fileDescriptor_65af3e74534f0214 = []byte{ - // 769 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0xd1, 0x8e, 0xdb, 0x44, - 0x14, 0xad, 0x13, 0xaf, 0xe3, 0x5c, 0x6f, 0xb7, 0xd6, 0x00, 0x5d, 0x2b, 0x82, 0xd5, 0xca, 0x15, - 0xd5, 0xaa, 0x12, 0xb6, 0x08, 0x48, 0xf0, 0x84, 0xb4, 0x0b, 0x08, 0xa5, 0xa2, 0xdb, 0xd5, 0x24, - 0xea, 0x03, 0x42, 0xaa, 0x26, 0xf6, 0xc4, 0xb5, 0x6a, 0xcf, 0xb8, 0x33, 0xe3, 0x54, 0xfb, 0xc6, - 0x23, 0x7c, 0x05, 0x7c, 0x04, 0xbc, 0xf1, 0x71, 0x68, 0xae, 0x9d, 0xdd, 0x64, 0xa1, 0x52, 0x78, - 0xe8, 0x53, 0x3c, 0x73, 0xce, 0x3d, 0xf7, 0xcc, 0xb9, 0x93, 0x81, 0x47, 0xb5, 0xcc, 0x5e, 0x66, - 0x95, 0x6c, 0x73, 0x56, 0x70, 0x61, 0x5e, 0xae, 0x4b, 0x65, 0x5a, 0x56, 0x09, 0x6e, 0xde, 0x4a, - 0xf5, 0x3a, 0x69, 0x94, 0x34, 0x92, 0x3c, 0xac, 0x65, 0x96, 0xdc, 0x92, 0x92, 0x1e, 0x9d, 0x9c, - 0x14, 0x52, 0x16, 0x15, 0x4f, 0x91, 0xb5, 0x6c, 0x57, 0xe9, 0x5b, 0xc5, 0x9a, 0x86, 0x2b, 0xdd, - 0xd5, 0x4d, 0x8e, 0x51, 0x5c, 0xd6, 0xb5, 0x14, 0xfd, 0x4f, 0x0f, 0x9c, 0x6c, 0x01, 0xbd, 0xd8, - 0x36, 0x1e, 0xff, 0xee, 0xc0, 0x47, 0x2f, 0x3a, 0x27, 0x97, 0x1d, 0x4c, 0xf9, 0x9b, 0x96, 0x6b, - 0x43, 0xae, 0xe0, 0xc1, 0x2e, 0xa0, 0x23, 0xe7, 0x74, 0x78, 0x16, 0x4c, 0x1f, 0x27, 0xff, 0x6d, - 0x32, 0xb9, 0xa3, 0x73, 0xb7, 0x9c, 0x7c, 0x09, 0xf7, 0x9f, 0x37, 0x5c, 0x31, 0x53, 0x4a, 0xb1, - 0xb8, 0x6e, 0x78, 0x34, 0x38, 0x75, 0xce, 0x8e, 0xa6, 0x47, 0xa8, 0x77, 0x83, 0xd0, 0x5d, 0x52, - 0xfc, 0xa7, 0x03, 0x0f, 0xef, 0x3a, 0xd4, 0x8d, 0x14, 0x9a, 0xbf, 0x07, 0x8b, 0x53, 0xf0, 0x28, - 0xd7, 0x6d, 0x65, 0xd0, 0x5b, 0x30, 0x9d, 0x24, 0x5d, 0xf0, 0xc9, 0x26, 0xf8, 0xe4, 0x42, 0xca, - 0xea, 0x05, 0xab, 0x5a, 0x4e, 0x7b, 0x26, 0xf9, 0x10, 0x0e, 0xbe, 0x57, 0x4a, 0xaa, 0x68, 0x78, - 0xea, 0x9c, 0x8d, 0x69, 0xb7, 0x88, 0xff, 0x18, 0xc2, 0xd1, 0xae, 0x3a, 0x21, 0xe0, 0x0a, 0x56, - 0xf3, 0xc8, 0x41, 0x1e, 0x7e, 0x93, 0x23, 0x18, 0x94, 0x39, 0x36, 0x1b, 0xd3, 0x41, 0x99, 0x93, - 0xaf, 0x61, 0xa4, 0xdb, 0xa5, 0xe0, 0x46, 0x47, 0x43, 0x3c, 0xca, 0xc9, 0xbb, 0x8e, 0x32, 0x47, - 0x1a, 0xdd, 0xd0, 0xc9, 0x29, 0x0c, 0x73, 0xa1, 0x23, 0x17, 0x7d, 0xfb, 0x58, 0xf5, 0x9d, 0xd0, - 0x17, 0xee, 0xaf, 0x7f, 0x45, 0x0e, 0xb5, 0x10, 0xf9, 0x06, 0x5c, 0x63, 0x63, 0x3f, 0xc0, 0xd8, - 0x9f, 0xec, 0x97, 0x91, 0x9d, 0x01, 0xc5, 0x3a, 0x32, 0x01, 0x5f, 0xc8, 0x9c, 0xaf, 0xde, 0xe4, - 0x22, 0xf2, 0xd0, 0xf1, 0xcd, 0x9a, 0x7c, 0x0c, 0xe3, 0x42, 0xc9, 0xb6, 0xb9, 0xb4, 0x07, 0x1c, - 0x21, 0x78, 0xbb, 0x41, 0x1e, 0x81, 0xa7, 0x0d, 0x33, 0xad, 0x8e, 0x7c, 0xb4, 0x17, 0x60, 0xef, - 0x39, 0x6e, 0xd1, 0x1e, 0x22, 0x31, 0x1c, 0x56, 0x32, 0xc3, 0xc1, 0xa3, 0xca, 0x18, 0x55, 0x76, - 0xf6, 0xc8, 0x63, 0x08, 0x6a, 0x96, 0x5d, 0x49, 0x59, 0x21, 0x05, 0x2c, 0xa5, 0x3f, 0xe2, 0x36, - 0x40, 0x3e, 0x01, 0xd7, 0xb0, 0x42, 0x47, 0x87, 0xd8, 0x6e, 0x8c, 0xed, 0x16, 0xac, 0xd0, 0x14, - 0xb7, 0x9f, 0xba, 0x7e, 0x10, 0x1e, 0xc6, 0x7f, 0x0f, 0xc0, 0xeb, 0x52, 0xdc, 0x6b, 0x34, 0x04, - 0xdc, 0xac, 0xcc, 0x37, 0x63, 0xc6, 0x6f, 0x12, 0x83, 0xa7, 0x64, 0x6b, 0xb8, 0xcd, 0xdd, 0x4e, - 0x0b, 0xb0, 0x13, 0xb5, 0x5b, 0xb4, 0x47, 0xc8, 0x57, 0x00, 0xac, 0xda, 0x9c, 0xa2, 0x0f, 0xff, - 0x18, 0x79, 0xb3, 0xab, 0xf3, 0x1b, 0xe0, 0x19, 0x37, 0xaf, 0x64, 0x4e, 0xb7, 0xa8, 0xb6, 0xe1, - 0xba, 0x62, 0x5d, 0xd6, 0xf7, 0x29, 0x7e, 0x93, 0x4f, 0x61, 0x54, 0x36, 0x8d, 0x94, 0x95, 0x8e, - 0x46, 0xd8, 0x31, 0xe8, 0x95, 0xec, 0xd1, 0xe9, 0x06, 0x23, 0x3f, 0xc3, 0x71, 0x3f, 0x4e, 0xcd, - 0xb3, 0x56, 0x95, 0xe6, 0x1a, 0x87, 0xa1, 0xf8, 0x0a, 0x63, 0x0d, 0xa6, 0x31, 0x96, 0xf5, 0x33, - 0x9e, 0xf7, 0x9c, 0x1f, 0x2c, 0x87, 0xf2, 0x15, 0x57, 0x5c, 0x64, 0x9c, 0xbe, 0x4b, 0xe2, 0xa9, - 0xeb, 0xfb, 0xe1, 0x38, 0x5e, 0x80, 0x3b, 0x6b, 0x58, 0x6d, 0x6d, 0xe2, 0xb5, 0xea, 0xb3, 0xc3, - 0xab, 0xb2, 0x75, 0x8d, 0x07, 0xff, 0xeb, 0x1a, 0x3f, 0xf9, 0xcd, 0x01, 0xf2, 0xef, 0x1b, 0x48, - 0x46, 0x30, 0xbc, 0x3c, 0x5f, 0x84, 0xf7, 0xc8, 0x03, 0x08, 0x16, 0x8a, 0x09, 0xdd, 0x30, 0xc5, - 0x85, 0x09, 0x1d, 0x72, 0x08, 0xfe, 0x8f, 0xd3, 0x0b, 0x55, 0xe6, 0x05, 0x0f, 0x07, 0xdd, 0x6a, - 0xd1, 0x0a, 0xc1, 0xab, 0x70, 0x68, 0xab, 0x66, 0xdf, 0xce, 0x43, 0x97, 0x04, 0x30, 0xba, 0x52, - 0xe5, 0x9a, 0x19, 0x1e, 0x1e, 0xd8, 0xc5, 0xf3, 0x35, 0x57, 0x15, 0xbb, 0x0e, 0x3d, 0x5b, 0x30, - 0x13, 0x86, 0x2b, 0xc1, 0xaa, 0x70, 0x64, 0x57, 0xcf, 0x4a, 0xfb, 0xff, 0xe5, 0x79, 0xe8, 0x4f, - 0x7f, 0x71, 0xe0, 0x83, 0x5d, 0x2f, 0xe7, 0xd6, 0x3b, 0x29, 0xc1, 0x9b, 0x89, 0xb5, 0x7c, 0xcd, - 0xc9, 0x67, 0x7b, 0x3e, 0x34, 0xdd, 0x9b, 0x3a, 0x49, 0xf6, 0xa5, 0x77, 0x0f, 0x5c, 0x7c, 0xef, - 0xe2, 0xf3, 0x9f, 0xd2, 0xa2, 0x34, 0xaf, 0xda, 0x65, 0x92, 0xc9, 0x3a, 0xad, 0xcb, 0x4c, 0x49, - 0x2d, 0x57, 0x26, 0xad, 0x65, 0x96, 0xaa, 0x26, 0x4b, 0x6f, 0xb5, 0xd2, 0x5e, 0x6b, 0xe9, 0xe1, - 0x5b, 0xf5, 0xc5, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x04, 0xe9, 0x22, 0x48, 0x71, 0x06, 0x00, - 0x00, + // 819 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0xdd, 0x6e, 0xdb, 0x36, + 0x14, 0xae, 0x6c, 0xd5, 0x96, 0x8f, 0xd2, 0x54, 0xe0, 0xb6, 0x46, 0x30, 0xd6, 0x20, 0x50, 0xb1, + 0x22, 0x28, 0x30, 0x19, 0xf3, 0x7e, 0xaf, 0x06, 0x24, 0xdb, 0x30, 0xb8, 0x58, 0x53, 0x83, 0x31, + 0x7a, 0x31, 0x0c, 0x28, 0x18, 0x89, 0x76, 0xb4, 0x4a, 0xa4, 0x42, 0x52, 0x2e, 0x82, 0xbd, 0xc0, + 0xf6, 0x14, 0xdb, 0x43, 0x6c, 0x77, 0x7b, 0xb5, 0x01, 0x03, 0x8f, 0xe8, 0xc4, 0xce, 0x16, 0xc0, + 0xb9, 0xe8, 0x95, 0x45, 0x7e, 0xdf, 0xf9, 0xce, 0x39, 0x1f, 0x8f, 0x0f, 0x3c, 0xa9, 0x64, 0xf6, + 0x3a, 0x2b, 0x65, 0x93, 0xb3, 0x05, 0x17, 0xe6, 0xf5, 0xb2, 0x50, 0xa6, 0x61, 0xa5, 0xe0, 0xe6, + 0xad, 0x54, 0x6f, 0xd2, 0x5a, 0x49, 0x23, 0xc9, 0xa3, 0x4a, 0x66, 0xe9, 0x35, 0x29, 0x75, 0xe8, + 0x70, 0x7f, 0x21, 0xe5, 0xa2, 0xe4, 0x23, 0x64, 0x9d, 0x35, 0xf3, 0xd1, 0x5b, 0xc5, 0xea, 0x9a, + 0x2b, 0xdd, 0xc6, 0x0d, 0xf7, 0x50, 0x5c, 0x56, 0x95, 0x14, 0xee, 0xc7, 0x01, 0xfb, 0x6b, 0x80, + 0x13, 0x5b, 0xc7, 0x93, 0xdf, 0x3d, 0xf8, 0xe0, 0x55, 0x5b, 0xc9, 0x49, 0x0b, 0x53, 0x7e, 0xd1, + 0x70, 0x6d, 0xc8, 0x14, 0x1e, 0x6e, 0x02, 0x3a, 0xf6, 0x0e, 0xba, 0x87, 0xe1, 0xf8, 0x69, 0xfa, + 0xff, 0x45, 0xa6, 0x37, 0x74, 0x6e, 0x86, 0x93, 0xcf, 0xe0, 0xc1, 0xcb, 0x9a, 0x2b, 0x66, 0x0a, + 0x29, 0x66, 0x97, 0x35, 0x8f, 0x3b, 0x07, 0xde, 0xe1, 0xee, 0x78, 0x17, 0xf5, 0xae, 0x10, 0xba, + 0x49, 0x4a, 0xfe, 0xf4, 0xe0, 0xd1, 0xcd, 0x0a, 0x75, 0x2d, 0x85, 0xe6, 0xef, 0xa0, 0xc4, 0x31, + 0xf4, 0x28, 0xd7, 0x4d, 0x69, 0xb0, 0xb6, 0x70, 0x3c, 0x4c, 0x5b, 0xe3, 0xd3, 0x95, 0xf1, 0xe9, + 0xb1, 0x94, 0xe5, 0x2b, 0x56, 0x36, 0x9c, 0x3a, 0x26, 0x79, 0x1f, 0xee, 0x7f, 0xa7, 0x94, 0x54, + 0x71, 0xf7, 0xc0, 0x3b, 0x1c, 0xd0, 0xf6, 0x90, 0x5c, 0xc0, 0xe3, 0x4d, 0xf1, 0xa9, 0xe2, 0xd9, + 0x39, 0xcf, 0xde, 0x9d, 0xbf, 0xc9, 0xcf, 0xb0, 0x7f, 0x5b, 0x4a, 0x67, 0xd8, 0x75, 0x7b, 0xde, + 0xdd, 0xdb, 0xeb, 0xac, 0xb7, 0xf7, 0x47, 0x17, 0x76, 0x37, 0x93, 0x11, 0x02, 0xbe, 0x60, 0x15, + 0x47, 0xe9, 0x01, 0xc5, 0x6f, 0xb2, 0x0b, 0x9d, 0x22, 0x77, 0x91, 0x9d, 0x22, 0x27, 0x5f, 0x41, + 0x5f, 0x37, 0x67, 0x82, 0x1b, 0x1d, 0x77, 0xb1, 0xd9, 0xfd, 0xdb, 0x9a, 0x3d, 0x45, 0x1a, 0x5d, + 0xd1, 0xc9, 0x01, 0x74, 0x73, 0xa1, 0x63, 0x1f, 0xeb, 0x0e, 0x30, 0xea, 0x5b, 0xa1, 0x8f, 0xfd, + 0x5f, 0xff, 0x8a, 0x3d, 0x6a, 0x21, 0xf2, 0x35, 0xf8, 0xc6, 0x4e, 0xd5, 0x7d, 0x9c, 0xaa, 0x67, + 0xdb, 0xb9, 0x68, 0x47, 0x8c, 0x62, 0x1c, 0x19, 0x42, 0x20, 0x64, 0xce, 0xe7, 0x17, 0xb9, 0x88, + 0x7b, 0x58, 0xf1, 0xd5, 0x99, 0x7c, 0x08, 0x83, 0x85, 0x92, 0x4d, 0x7d, 0x62, 0x1b, 0xec, 0x23, + 0x78, 0x7d, 0x41, 0x9e, 0x40, 0x4f, 0x1b, 0x66, 0x1a, 0x1d, 0x07, 0x58, 0x5e, 0x88, 0xb9, 0x4f, + 0xf1, 0x8a, 0x3a, 0x88, 0x24, 0xb0, 0x53, 0xca, 0x0c, 0xe7, 0x1a, 0x55, 0x06, 0xa8, 0xb2, 0x71, + 0x47, 0x9e, 0x42, 0x58, 0xb1, 0x6c, 0x2a, 0x65, 0x89, 0x14, 0xb0, 0x14, 0xd7, 0xe2, 0x3a, 0x40, + 0x1e, 0x83, 0x6f, 0xd8, 0x42, 0xc7, 0x3b, 0x98, 0x6e, 0x80, 0xe9, 0x66, 0x6c, 0xa1, 0x29, 0x5e, + 0x3f, 0xf7, 0x83, 0x30, 0xda, 0x49, 0xfe, 0xee, 0x40, 0xaf, 0x75, 0x71, 0xab, 0xa7, 0x21, 0xe0, + 0x67, 0x45, 0xbe, 0x9a, 0x62, 0xfc, 0x26, 0x09, 0xf4, 0x94, 0x6c, 0x0c, 0xb7, 0xbe, 0xdb, 0xd7, + 0x02, 0xcc, 0x44, 0xed, 0x15, 0x75, 0x08, 0xf9, 0x12, 0x80, 0x95, 0xab, 0x2e, 0x9c, 0xf9, 0x7b, + 0xc8, 0x9b, 0x4c, 0x8f, 0xae, 0x80, 0x17, 0xdc, 0x9c, 0xcb, 0x9c, 0xae, 0x51, 0x6d, 0xc2, 0x65, + 0xc9, 0x5a, 0xaf, 0x1f, 0x50, 0xfc, 0x26, 0x1f, 0x41, 0xbf, 0xa8, 0x6b, 0x29, 0x4b, 0x1d, 0xf7, + 0x31, 0x63, 0xe8, 0x94, 0x6c, 0xeb, 0x74, 0x85, 0x91, 0x9f, 0x60, 0xcf, 0x3d, 0xa7, 0xe6, 0x59, + 0xa3, 0x0a, 0x73, 0x89, 0x8f, 0xa1, 0xf8, 0x1c, 0x6d, 0x0d, 0xc7, 0x09, 0x86, 0xb9, 0x37, 0x3e, + 0x75, 0x9c, 0xef, 0x2d, 0x87, 0xf2, 0x39, 0x57, 0x5c, 0x64, 0x9c, 0xde, 0x26, 0xf1, 0xdc, 0x0f, + 0x82, 0x68, 0x90, 0xcc, 0xc0, 0x9f, 0xd4, 0xac, 0xb2, 0x65, 0xe2, 0x58, 0x39, 0xef, 0x70, 0x54, + 0xd6, 0xc6, 0xb8, 0x73, 0xa7, 0x31, 0x7e, 0xf6, 0x9b, 0x07, 0xe4, 0xbf, 0x13, 0x48, 0xfa, 0xd0, + 0x3d, 0x39, 0x9a, 0x45, 0xf7, 0xc8, 0x43, 0x08, 0x67, 0x8a, 0x09, 0x5d, 0x33, 0xc5, 0x85, 0x89, + 0x3c, 0xb2, 0x03, 0xc1, 0x0f, 0xe3, 0x63, 0x55, 0xe4, 0x0b, 0x1e, 0x75, 0xda, 0xd3, 0xac, 0x11, + 0x82, 0x97, 0x51, 0xd7, 0x46, 0x4d, 0xbe, 0x39, 0x8d, 0x7c, 0x12, 0x42, 0x7f, 0xaa, 0x8a, 0x25, + 0x33, 0x3c, 0xba, 0x6f, 0x0f, 0x2f, 0x97, 0x5c, 0x95, 0xec, 0x32, 0xea, 0xd9, 0x80, 0x89, 0x30, + 0x5c, 0x09, 0x56, 0x46, 0x7d, 0x7b, 0x7a, 0x51, 0xd8, 0xff, 0x2f, 0xcf, 0xa3, 0x60, 0xfc, 0x8f, + 0x07, 0xef, 0x6d, 0xd6, 0x72, 0x64, 0x6b, 0x27, 0x05, 0xf4, 0x26, 0x62, 0x29, 0xdf, 0x70, 0xf2, + 0xf1, 0x96, 0xab, 0xa8, 0x5d, 0x69, 0xc3, 0x74, 0x5b, 0x7a, 0xbb, 0x8e, 0x92, 0x7b, 0xe4, 0x17, + 0x08, 0x56, 0x4b, 0x8a, 0x7c, 0xbe, 0x5d, 0xf4, 0x8d, 0x3d, 0x3a, 0xfc, 0xe2, 0xae, 0x61, 0xab, + 0xe4, 0xc7, 0x9f, 0xfc, 0x38, 0x5a, 0x14, 0xe6, 0xbc, 0x39, 0x4b, 0x33, 0x59, 0x8d, 0xaa, 0x22, + 0x53, 0x52, 0xcb, 0xb9, 0x19, 0x55, 0x32, 0x1b, 0xa9, 0x3a, 0x1b, 0x5d, 0x6b, 0x8e, 0x9c, 0xe6, + 0x59, 0x0f, 0x17, 0xe5, 0xa7, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x47, 0x71, 0xab, 0x72, 0xcd, + 0x07, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -514,6 +607,8 @@ const _ = grpc.SupportPackageIsVersion4 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type VirtualNetworkAgentClient interface { Invoke(ctx context.Context, in *VirtualNetworkRequest, opts ...grpc.CallOption) (*VirtualNetworkResponse, error) + // Prechecks whether the system is able to create specified virtual networks (but does not actually create them). + Precheck(ctx context.Context, in *VirtualNetworkPrecheckRequest, opts ...grpc.CallOption) (*VirtualNetworkPrecheckResponse, error) } type virtualNetworkAgentClient struct { @@ -533,9 +628,20 @@ func (c *virtualNetworkAgentClient) Invoke(ctx context.Context, in *VirtualNetwo return out, nil } +func (c *virtualNetworkAgentClient) Precheck(ctx context.Context, in *VirtualNetworkPrecheckRequest, opts ...grpc.CallOption) (*VirtualNetworkPrecheckResponse, error) { + out := new(VirtualNetworkPrecheckResponse) + err := c.cc.Invoke(ctx, "/moc.cloudagent.network.VirtualNetworkAgent/Precheck", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // VirtualNetworkAgentServer is the server API for VirtualNetworkAgent service. type VirtualNetworkAgentServer interface { Invoke(context.Context, *VirtualNetworkRequest) (*VirtualNetworkResponse, error) + // Prechecks whether the system is able to create specified virtual networks (but does not actually create them). + Precheck(context.Context, *VirtualNetworkPrecheckRequest) (*VirtualNetworkPrecheckResponse, error) } // UnimplementedVirtualNetworkAgentServer can be embedded to have forward compatible implementations. @@ -545,6 +651,9 @@ type UnimplementedVirtualNetworkAgentServer struct { func (*UnimplementedVirtualNetworkAgentServer) Invoke(ctx context.Context, req *VirtualNetworkRequest) (*VirtualNetworkResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Invoke not implemented") } +func (*UnimplementedVirtualNetworkAgentServer) Precheck(ctx context.Context, req *VirtualNetworkPrecheckRequest) (*VirtualNetworkPrecheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Precheck not implemented") +} func RegisterVirtualNetworkAgentServer(s *grpc.Server, srv VirtualNetworkAgentServer) { s.RegisterService(&_VirtualNetworkAgent_serviceDesc, srv) @@ -568,6 +677,24 @@ func _VirtualNetworkAgent_Invoke_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } +func _VirtualNetworkAgent_Precheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(VirtualNetworkPrecheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VirtualNetworkAgentServer).Precheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/moc.cloudagent.network.VirtualNetworkAgent/Precheck", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VirtualNetworkAgentServer).Precheck(ctx, req.(*VirtualNetworkPrecheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _VirtualNetworkAgent_serviceDesc = grpc.ServiceDesc{ ServiceName: "moc.cloudagent.network.VirtualNetworkAgent", HandlerType: (*VirtualNetworkAgentServer)(nil), @@ -576,6 +703,10 @@ var _VirtualNetworkAgent_serviceDesc = grpc.ServiceDesc{ MethodName: "Invoke", Handler: _VirtualNetworkAgent_Invoke_Handler, }, + { + MethodName: "Precheck", + Handler: _VirtualNetworkAgent_Precheck_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "moc_cloudagent_virtualnetwork.proto", diff --git a/rpc/cloudagent/network/networkinterface/moc_cloudagent_networkinterface.proto b/rpc/cloudagent/network/networkinterface/moc_cloudagent_networkinterface.proto index e96582a..d40597c 100644 --- a/rpc/cloudagent/network/networkinterface/moc_cloudagent_networkinterface.proto +++ b/rpc/cloudagent/network/networkinterface/moc_cloudagent_networkinterface.proto @@ -20,6 +20,18 @@ message NetworkInterfaceResponse { string Error = 3; } +message NetworkInterfacePrecheckRequest { + repeated NetworkInterface NetworkInterfaces = 1; +} + +message NetworkInterfacePrecheckResponse { + // The precheck result: true if the precheck criteria is passed; otherwise, false + google.protobuf.BoolValue Result = 1; + + // The error message if the precheck is not passed; otherwise, empty string + string Error = 2; +} + message InboundNatRule { string name = 1; } @@ -66,4 +78,7 @@ message NetworkInterface { service NetworkInterfaceAgent { rpc Invoke(NetworkInterfaceRequest) returns (NetworkInterfaceResponse) {} + + // Prechecks whether the system is able to create specified network interfaces (but does not actually create them). + rpc Precheck(NetworkInterfacePrecheckRequest) returns (NetworkInterfacePrecheckResponse) {} } diff --git a/rpc/cloudagent/network/networksecuritygroup/moc_cloudagent_networksecuritygroup.proto b/rpc/cloudagent/network/networksecuritygroup/moc_cloudagent_networksecuritygroup.proto index c8da176..13a9296 100644 --- a/rpc/cloudagent/network/networksecuritygroup/moc_cloudagent_networksecuritygroup.proto +++ b/rpc/cloudagent/network/networksecuritygroup/moc_cloudagent_networksecuritygroup.proto @@ -30,6 +30,18 @@ message NetworkSecurityGroupResponse { string Error = 3; } +message NetworkSecurityGroupPrecheckRequest { + repeated NetworkSecurityGroup NetworkSecurityGroups = 1; +} + +message NetworkSecurityGroupPrecheckResponse { + // The precheck result: true if the precheck criteria is passed; otherwise, false + google.protobuf.BoolValue Result = 1; + + // The error message if the precheck is not passed; otherwise, empty string + string Error = 2; +} + message NetworkSecurityGroupRule { string name = 1; string description = 2; @@ -57,4 +69,7 @@ message NetworkSecurityGroup { service NetworkSecurityGroupAgent { rpc Invoke(NetworkSecurityGroupRequest) returns (NetworkSecurityGroupResponse) {} + + // Prechecks whether the system is able to create specified network security groups (but does not actually create them). + rpc Precheck(NetworkSecurityGroupPrecheckRequest) returns (NetworkSecurityGroupPrecheckResponse) {} } diff --git a/rpc/cloudagent/network/vippool/moc_cloudagent_vippool.proto b/rpc/cloudagent/network/vippool/moc_cloudagent_vippool.proto index b37fac3..0c0c660 100644 --- a/rpc/cloudagent/network/vippool/moc_cloudagent_vippool.proto +++ b/rpc/cloudagent/network/vippool/moc_cloudagent_vippool.proto @@ -20,6 +20,18 @@ message VipPoolResponse { string Error = 3; } +message VipPoolPrecheckRequest { + repeated VipPool VipPools = 1; +} + +message VipPoolPrecheckResponse { + // The precheck result: true if the precheck criteria is passed; otherwise, false + google.protobuf.BoolValue Result = 1; + + // The error message if the precheck is not passed; otherwise, empty string + string Error = 2; +} + message VipPool { string name = 1; string id = 2; @@ -36,5 +48,8 @@ message VipPool { service VipPoolAgent { rpc Invoke(VipPoolRequest) returns (VipPoolResponse) {} + + // Prechecks whether the system is able to create specified vip pools (but does not actually create them). + rpc Precheck(VipPoolPrecheckRequest) returns (VipPoolPrecheckResponse) {} } diff --git a/rpc/cloudagent/network/virtualnetwork/moc_cloudagent_virtualnetwork.proto b/rpc/cloudagent/network/virtualnetwork/moc_cloudagent_virtualnetwork.proto index 6bd4a09..a8c4a5c 100644 --- a/rpc/cloudagent/network/virtualnetwork/moc_cloudagent_virtualnetwork.proto +++ b/rpc/cloudagent/network/virtualnetwork/moc_cloudagent_virtualnetwork.proto @@ -32,6 +32,18 @@ message VirtualNetworkResponse { string Error = 3; } +message VirtualNetworkPrecheckRequest { + repeated VirtualNetwork VirtualNetworks = 1; +} + +message VirtualNetworkPrecheckResponse { + // The precheck result: true if the precheck criteria is passed; otherwise, false + google.protobuf.BoolValue Result = 1; + + // The error message if the precheck is not passed; otherwise, empty string + string Error = 2; +} + message VirtualNetwork { reserved 11; string name = 1; @@ -66,5 +78,8 @@ message Ipam { service VirtualNetworkAgent { rpc Invoke(VirtualNetworkRequest) returns (VirtualNetworkResponse) {} + + // Prechecks whether the system is able to create specified virtual networks (but does not actually create them). + rpc Precheck(VirtualNetworkPrecheckRequest) returns (VirtualNetworkPrecheckResponse) {} } diff --git a/rpc/cloudagent/security/certificate/moc_cloudagent_certificate.proto b/rpc/cloudagent/security/certificate/moc_cloudagent_certificate.proto index 1a22afa..c9f34c7 100644 --- a/rpc/cloudagent/security/certificate/moc_cloudagent_certificate.proto +++ b/rpc/cloudagent/security/certificate/moc_cloudagent_certificate.proto @@ -26,6 +26,18 @@ message CertificateResponse { string Error = 3; } +message CertificatePrecheckRequest { + repeated Certificate Certificates = 1; +} + +message CertificatePrecheckResponse { + // The precheck result: true if the precheck criteria is passed; otherwise, false + google.protobuf.BoolValue Result = 1; + + // The error message if the precheck is not passed; otherwise, empty string + string Error = 2; +} + message CertificateSigningRequest { string name = 1; string csr = 2 [(sensitive) = true]; @@ -60,4 +72,7 @@ service CertificateAgent { rpc Delete(CertificateRequest) returns (CertificateResponse) {} rpc Sign(CSRRequest) returns (CertificateResponse) {} rpc Renew(CSRRequest) returns (CertificateResponse) {} + + // Prechecks whether the system is able to create specified certificates (but does not actually create them). + rpc Precheck(CertificatePrecheckRequest) returns (CertificatePrecheckResponse) {} } diff --git a/rpc/cloudagent/security/identity/moc_cloudagent_identity.proto b/rpc/cloudagent/security/identity/moc_cloudagent_identity.proto index 59ab422..077e860 100644 --- a/rpc/cloudagent/security/identity/moc_cloudagent_identity.proto +++ b/rpc/cloudagent/security/identity/moc_cloudagent_identity.proto @@ -40,6 +40,18 @@ message IdentityCertificateResponse { string Error = 3; } +message IdentityPrecheckRequest { + repeated Identity Identities = 1; +} + +message IdentityPrecheckResponse { + // The precheck result: true if the precheck criteria is passed; otherwise, false + google.protobuf.BoolValue Result = 1; + + // The error message if the precheck is not passed; otherwise, empty string + string Error = 2; +} + message Identity { string name = 1; string id = 2; @@ -66,4 +78,7 @@ service IdentityAgent { rpc Invoke(IdentityRequest) returns (IdentityResponse) {} rpc Operate(IdentityOperationRequest) returns (IdentityResponse) {} rpc OperateCertificates(IdentityCertificateRequest) returns (IdentityCertificateResponse) {} + + // Prechecks whether the system is able to create specified identities (but does not actually create them). + rpc Precheck(IdentityPrecheckRequest) returns (IdentityPrecheckResponse) {} } diff --git a/rpc/cloudagent/security/moc_cloudagent_certificate.pb.go b/rpc/cloudagent/security/moc_cloudagent_certificate.pb.go index 660325e..cfcaa1b 100644 --- a/rpc/cloudagent/security/moc_cloudagent_certificate.pb.go +++ b/rpc/cloudagent/security/moc_cloudagent_certificate.pb.go @@ -184,6 +184,94 @@ func (m *CertificateResponse) GetError() string { return "" } +type CertificatePrecheckRequest struct { + Certificates []*Certificate `protobuf:"bytes,1,rep,name=Certificates,proto3" json:"Certificates,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CertificatePrecheckRequest) Reset() { *m = CertificatePrecheckRequest{} } +func (m *CertificatePrecheckRequest) String() string { return proto.CompactTextString(m) } +func (*CertificatePrecheckRequest) ProtoMessage() {} +func (*CertificatePrecheckRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_373194e28b9c267a, []int{3} +} + +func (m *CertificatePrecheckRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CertificatePrecheckRequest.Unmarshal(m, b) +} +func (m *CertificatePrecheckRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CertificatePrecheckRequest.Marshal(b, m, deterministic) +} +func (m *CertificatePrecheckRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CertificatePrecheckRequest.Merge(m, src) +} +func (m *CertificatePrecheckRequest) XXX_Size() int { + return xxx_messageInfo_CertificatePrecheckRequest.Size(m) +} +func (m *CertificatePrecheckRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CertificatePrecheckRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CertificatePrecheckRequest proto.InternalMessageInfo + +func (m *CertificatePrecheckRequest) GetCertificates() []*Certificate { + if m != nil { + return m.Certificates + } + return nil +} + +type CertificatePrecheckResponse struct { + // The precheck result: true if the precheck criteria is passed; otherwise, false + Result *wrappers.BoolValue `protobuf:"bytes,1,opt,name=Result,proto3" json:"Result,omitempty"` + // The error message if the precheck is not passed; otherwise, empty string + Error string `protobuf:"bytes,2,opt,name=Error,proto3" json:"Error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CertificatePrecheckResponse) Reset() { *m = CertificatePrecheckResponse{} } +func (m *CertificatePrecheckResponse) String() string { return proto.CompactTextString(m) } +func (*CertificatePrecheckResponse) ProtoMessage() {} +func (*CertificatePrecheckResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_373194e28b9c267a, []int{4} +} + +func (m *CertificatePrecheckResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CertificatePrecheckResponse.Unmarshal(m, b) +} +func (m *CertificatePrecheckResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CertificatePrecheckResponse.Marshal(b, m, deterministic) +} +func (m *CertificatePrecheckResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CertificatePrecheckResponse.Merge(m, src) +} +func (m *CertificatePrecheckResponse) XXX_Size() int { + return xxx_messageInfo_CertificatePrecheckResponse.Size(m) +} +func (m *CertificatePrecheckResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CertificatePrecheckResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CertificatePrecheckResponse proto.InternalMessageInfo + +func (m *CertificatePrecheckResponse) GetResult() *wrappers.BoolValue { + if m != nil { + return m.Result + } + return nil +} + +func (m *CertificatePrecheckResponse) GetError() string { + if m != nil { + return m.Error + } + return "" +} + type CertificateSigningRequest struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Csr string `protobuf:"bytes,2,opt,name=csr,proto3" json:"csr,omitempty"` @@ -205,7 +293,7 @@ func (m *CertificateSigningRequest) Reset() { *m = CertificateSigningReq func (m *CertificateSigningRequest) String() string { return proto.CompactTextString(m) } func (*CertificateSigningRequest) ProtoMessage() {} func (*CertificateSigningRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_373194e28b9c267a, []int{3} + return fileDescriptor_373194e28b9c267a, []int{5} } func (m *CertificateSigningRequest) XXX_Unmarshal(b []byte) error { @@ -324,7 +412,7 @@ func (m *Certificate) Reset() { *m = Certificate{} } func (m *Certificate) String() string { return proto.CompactTextString(m) } func (*Certificate) ProtoMessage() {} func (*Certificate) Descriptor() ([]byte, []int) { - return fileDescriptor_373194e28b9c267a, []int{4} + return fileDescriptor_373194e28b9c267a, []int{6} } func (m *Certificate) XXX_Unmarshal(b []byte) error { @@ -427,6 +515,8 @@ func init() { proto.RegisterType((*CertificateRequest)(nil), "moc.cloudagent.security.CertificateRequest") proto.RegisterType((*CSRRequest)(nil), "moc.cloudagent.security.CSRRequest") proto.RegisterType((*CertificateResponse)(nil), "moc.cloudagent.security.CertificateResponse") + proto.RegisterType((*CertificatePrecheckRequest)(nil), "moc.cloudagent.security.CertificatePrecheckRequest") + proto.RegisterType((*CertificatePrecheckResponse)(nil), "moc.cloudagent.security.CertificatePrecheckResponse") proto.RegisterType((*CertificateSigningRequest)(nil), "moc.cloudagent.security.CertificateSigningRequest") proto.RegisterType((*Certificate)(nil), "moc.cloudagent.security.Certificate") } @@ -434,49 +524,52 @@ func init() { func init() { proto.RegisterFile("moc_cloudagent_certificate.proto", fileDescriptor_373194e28b9c267a) } var fileDescriptor_373194e28b9c267a = []byte{ - // 662 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0xcf, 0x6e, 0xd3, 0x4e, - 0x10, 0xae, 0x13, 0xd7, 0xbf, 0x66, 0x52, 0xe5, 0x57, 0x2d, 0xa8, 0x35, 0x11, 0xa0, 0x28, 0x45, - 0x28, 0x40, 0x65, 0x23, 0x73, 0xe5, 0xd2, 0x84, 0x7f, 0x27, 0x90, 0x36, 0x85, 0x03, 0x20, 0x2a, - 0xc7, 0x9e, 0x98, 0x95, 0x6c, 0xaf, 0xd9, 0x5d, 0xb7, 0xca, 0x13, 0xc0, 0xab, 0xf0, 0x00, 0x3c, - 0x1a, 0x17, 0x4e, 0xc8, 0x6b, 0x27, 0x71, 0xaa, 0x86, 0x06, 0x89, 0x9e, 0xe2, 0x9d, 0x6f, 0xe6, - 0x9b, 0x99, 0xef, 0xcb, 0x2e, 0xf4, 0x12, 0x1e, 0x9c, 0x06, 0x31, 0xcf, 0x43, 0x3f, 0xc2, 0x54, - 0x9d, 0x06, 0x28, 0x14, 0x9b, 0xb2, 0xc0, 0x57, 0xe8, 0x64, 0x82, 0x2b, 0x4e, 0x0e, 0x12, 0x1e, - 0x38, 0xcb, 0x0c, 0x47, 0x62, 0x90, 0x0b, 0xa6, 0x66, 0xdd, 0xbb, 0x11, 0xe7, 0x51, 0x8c, 0xae, - 0x4e, 0x9b, 0xe4, 0x53, 0xf7, 0x5c, 0xf8, 0x59, 0x86, 0x42, 0x96, 0x85, 0xdd, 0x03, 0x4d, 0xcd, - 0x93, 0x84, 0xa7, 0xd5, 0x4f, 0x09, 0xf4, 0x3f, 0x01, 0x19, 0x2d, 0xdb, 0x50, 0xfc, 0x92, 0xa3, - 0x54, 0xe4, 0x15, 0xec, 0xd6, 0xa2, 0xd2, 0x36, 0x7a, 0xcd, 0x41, 0xdb, 0xbb, 0xe7, 0xac, 0x69, - 0xef, 0xd4, 0x29, 0x56, 0x2a, 0xfb, 0x27, 0x00, 0xa3, 0x31, 0x9d, 0xf3, 0xbe, 0x00, 0x73, 0x34, - 0xa6, 0x73, 0x3e, 0x6f, 0x13, 0xbe, 0x31, 0x8b, 0x52, 0x96, 0x46, 0x15, 0x03, 0xd5, 0xf5, 0xfd, - 0xef, 0x06, 0xdc, 0x58, 0x19, 0x5b, 0x66, 0x3c, 0x95, 0xf8, 0xef, 0xe6, 0x26, 0x1e, 0x58, 0x14, - 0x65, 0x1e, 0x2b, 0xbb, 0xd1, 0x33, 0x06, 0x6d, 0xaf, 0xeb, 0x94, 0x0a, 0x3b, 0x73, 0x85, 0x9d, - 0x21, 0xe7, 0xf1, 0x3b, 0x3f, 0xce, 0x91, 0x56, 0x99, 0xe4, 0x26, 0x6c, 0x3f, 0x17, 0x82, 0x0b, - 0xbb, 0xd9, 0x33, 0x06, 0x2d, 0x5a, 0x1e, 0xfa, 0xbf, 0x1a, 0x70, 0x6b, 0xed, 0x3e, 0x84, 0x80, - 0x99, 0xfa, 0x09, 0xda, 0x86, 0x2e, 0xd1, 0xdf, 0x64, 0x1f, 0x9a, 0x81, 0x14, 0xba, 0x71, 0x6b, - 0x68, 0x7e, 0xfb, 0x61, 0x1b, 0xb4, 0x08, 0x90, 0x23, 0xe8, 0xf0, 0x38, 0xac, 0x71, 0x95, 0x8d, - 0xaa, 0x94, 0x0b, 0x18, 0x39, 0x04, 0x4b, 0x2a, 0x5f, 0xe5, 0xd2, 0x36, 0xf5, 0x06, 0x6d, 0xad, - 0xc2, 0x58, 0x87, 0x68, 0x05, 0x91, 0x7d, 0xb0, 0x02, 0xff, 0x75, 0x31, 0xc0, 0xb6, 0x1e, 0xa0, - 0x3a, 0x91, 0xdb, 0xd0, 0x8a, 0x04, 0xcf, 0x33, 0x0d, 0x59, 0x1a, 0x5a, 0x06, 0x0a, 0xf4, 0xcc, - 0xcf, 0x63, 0xa5, 0xd1, 0xff, 0x4a, 0x74, 0x11, 0x20, 0x7d, 0xd8, 0x8d, 0x79, 0xe0, 0x2b, 0xc6, - 0x53, 0x9d, 0xb0, 0xa3, 0x13, 0x56, 0x62, 0xa4, 0x0b, 0x3b, 0x2c, 0xc4, 0x54, 0x31, 0x35, 0xb3, - 0x5b, 0x1a, 0x5f, 0x9c, 0x0b, 0xec, 0xcc, 0x8f, 0x59, 0x58, 0x60, 0xd0, 0x33, 0x06, 0x4d, 0xba, - 0x38, 0x13, 0x07, 0x4c, 0x26, 0x47, 0xc7, 0x76, 0xfb, 0x4a, 0x53, 0x74, 0x5e, 0xff, 0x67, 0x03, - 0xda, 0x75, 0x51, 0x2e, 0x93, 0xbb, 0x03, 0x0d, 0x16, 0x96, 0x6a, 0xd3, 0x06, 0x0b, 0x8b, 0xed, - 0x52, 0xae, 0x86, 0x38, 0xe5, 0xa2, 0x54, 0xb8, 0x49, 0x97, 0x81, 0x62, 0xba, 0x94, 0xab, 0xe3, - 0xa9, 0x42, 0xa1, 0x85, 0x6d, 0xd2, 0xc5, 0x99, 0xdc, 0x87, 0x76, 0xed, 0xce, 0x96, 0x92, 0x56, - 0xee, 0xd4, 0x81, 0x9a, 0x35, 0xd6, 0x7a, 0x6b, 0x9e, 0x82, 0xa9, 0x66, 0x59, 0xa9, 0x6f, 0xc7, - 0x1b, 0x6c, 0xf2, 0x1f, 0x3e, 0x99, 0x65, 0x48, 0x75, 0xd5, 0xaa, 0x81, 0x3b, 0x7f, 0x34, 0xb0, - 0x75, 0x95, 0x81, 0x70, 0x89, 0x81, 0x77, 0xc0, 0x54, 0x7e, 0x24, 0x2b, 0x23, 0x5a, 0x7a, 0xba, - 0x13, 0x3f, 0x92, 0x54, 0x87, 0x1f, 0x3e, 0x80, 0xff, 0x2f, 0xcc, 0x45, 0x00, 0xac, 0x51, 0xcc, - 0x30, 0x55, 0x7b, 0x5b, 0xc5, 0xf7, 0x18, 0xc5, 0x19, 0x8a, 0x3d, 0xc3, 0xfb, 0x6a, 0xc2, 0x5e, - 0x2d, 0xf7, 0xb8, 0xd8, 0x8e, 0x24, 0xd0, 0x19, 0x09, 0xf4, 0x15, 0xbe, 0x11, 0x6f, 0xb3, 0xb0, - 0xd0, 0xec, 0xd1, 0x46, 0x97, 0xb8, 0xbc, 0x55, 0xdd, 0xa3, 0xcd, 0x92, 0xcb, 0x57, 0xa3, 0xbf, - 0x45, 0x26, 0xd0, 0x7c, 0x89, 0xea, 0x7a, 0x7b, 0x20, 0x58, 0xcf, 0x30, 0xc6, 0xeb, 0x5e, 0xe5, - 0x03, 0x98, 0xc5, 0x13, 0x43, 0x0e, 0xd7, 0xd7, 0x2d, 0xde, 0xe3, 0xbf, 0x26, 0xff, 0x08, 0xdb, - 0x14, 0x53, 0x3c, 0xbf, 0x16, 0xf6, 0xa1, 0xf7, 0xfe, 0x71, 0xc4, 0xd4, 0xe7, 0x7c, 0xe2, 0x04, - 0x3c, 0x71, 0x13, 0x16, 0x08, 0x2e, 0xf9, 0x54, 0xb9, 0x09, 0x0f, 0x5c, 0x91, 0x05, 0xee, 0x92, - 0xc9, 0x9d, 0x33, 0x4d, 0x2c, 0x7d, 0xf5, 0x9f, 0xfc, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x84, 0xa5, - 0xb9, 0x84, 0x3c, 0x07, 0x00, 0x00, + // 710 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0x4f, 0x6f, 0xd3, 0x4e, + 0x10, 0xad, 0x13, 0xc7, 0xbf, 0x64, 0x52, 0xe5, 0x57, 0x2d, 0xa8, 0x0d, 0xe1, 0x8f, 0xa2, 0x14, + 0xa1, 0x00, 0x95, 0x83, 0x52, 0x8e, 0x5c, 0x9a, 0xf0, 0xef, 0x04, 0x68, 0x53, 0x38, 0x00, 0xa2, + 0x72, 0xd6, 0x13, 0x77, 0x85, 0xed, 0x35, 0xeb, 0x75, 0xab, 0xdc, 0x38, 0xf2, 0x55, 0xf8, 0x00, + 0x7c, 0x34, 0x2e, 0x9c, 0x90, 0xd7, 0x4e, 0xe2, 0x54, 0x0d, 0x4d, 0xa5, 0xf6, 0x14, 0xef, 0xbc, + 0x99, 0x37, 0x33, 0xef, 0xc5, 0x6b, 0x68, 0x07, 0x82, 0x1d, 0x31, 0x5f, 0x24, 0xae, 0xe3, 0x61, + 0xa8, 0x8e, 0x18, 0x4a, 0xc5, 0x27, 0x9c, 0x39, 0x0a, 0xed, 0x48, 0x0a, 0x25, 0xc8, 0x4e, 0x20, + 0x98, 0xbd, 0xc8, 0xb0, 0x63, 0x64, 0x89, 0xe4, 0x6a, 0xda, 0xba, 0xe7, 0x09, 0xe1, 0xf9, 0xd8, + 0xd3, 0x69, 0xe3, 0x64, 0xd2, 0x3b, 0x95, 0x4e, 0x14, 0xa1, 0x8c, 0xb3, 0xc2, 0xd6, 0x8e, 0xa6, + 0x16, 0x41, 0x20, 0xc2, 0xfc, 0x27, 0x03, 0x3a, 0x5f, 0x80, 0x0c, 0x17, 0x6d, 0x28, 0x7e, 0x4b, + 0x30, 0x56, 0xe4, 0x35, 0x6c, 0x16, 0xa2, 0x71, 0xd3, 0x68, 0x97, 0xbb, 0xf5, 0xfe, 0x7d, 0x7b, + 0x45, 0x7b, 0xbb, 0x48, 0xb1, 0x54, 0xd9, 0x39, 0x04, 0x18, 0x8e, 0xe8, 0x8c, 0xf7, 0x25, 0x98, + 0xc3, 0x11, 0x9d, 0xf1, 0xf5, 0xd7, 0xe1, 0x1b, 0x71, 0x2f, 0xe4, 0xa1, 0x97, 0x33, 0x50, 0x5d, + 0xdf, 0xf9, 0x69, 0xc0, 0x8d, 0xa5, 0xb1, 0xe3, 0x48, 0x84, 0x31, 0x5e, 0xdd, 0xdc, 0xa4, 0x0f, + 0x16, 0xc5, 0x38, 0xf1, 0x55, 0xb3, 0xd4, 0x36, 0xba, 0xf5, 0x7e, 0xcb, 0xce, 0x14, 0xb6, 0x67, + 0x0a, 0xdb, 0x03, 0x21, 0xfc, 0x0f, 0x8e, 0x9f, 0x20, 0xcd, 0x33, 0xc9, 0x4d, 0xa8, 0xbc, 0x90, + 0x52, 0xc8, 0x66, 0xb9, 0x6d, 0x74, 0x6b, 0x34, 0x3b, 0x74, 0x26, 0xd0, 0x2a, 0x30, 0xbf, 0x93, + 0xc8, 0x8e, 0x91, 0x7d, 0xbd, 0x7a, 0xa5, 0x3d, 0xb8, 0x7d, 0x6e, 0x9f, 0x5c, 0x9a, 0xc5, 0x42, + 0xc6, 0xe5, 0x17, 0x2a, 0x15, 0x17, 0xfa, 0x53, 0x82, 0x5b, 0x2b, 0x0d, 0x22, 0x04, 0xcc, 0xd0, + 0x09, 0x50, 0x77, 0xa9, 0x51, 0xfd, 0x4c, 0xb6, 0xa1, 0xcc, 0xe2, 0x9c, 0x65, 0x60, 0xfe, 0xf8, + 0xd5, 0x34, 0x68, 0x1a, 0x20, 0x7b, 0xd0, 0x10, 0xbe, 0x5b, 0xe0, 0xca, 0x94, 0xcb, 0x53, 0xce, + 0x60, 0x64, 0x17, 0xac, 0x58, 0x39, 0x2a, 0x89, 0x9b, 0xa6, 0xde, 0xa0, 0xae, 0x45, 0x1a, 0xe9, + 0x10, 0xcd, 0x21, 0xb2, 0x0d, 0x16, 0x73, 0xde, 0xa4, 0x03, 0x54, 0xf4, 0x00, 0xf9, 0x89, 0xdc, + 0x81, 0x9a, 0x27, 0x45, 0x12, 0x69, 0xc8, 0xd2, 0xd0, 0x22, 0x90, 0xa2, 0x27, 0x4e, 0xe2, 0x2b, + 0x8d, 0xfe, 0x97, 0xa1, 0xf3, 0x00, 0xe9, 0xc0, 0xa6, 0x2f, 0x98, 0xa3, 0xb8, 0x08, 0x75, 0x42, + 0x55, 0x27, 0x2c, 0xc5, 0x48, 0x0b, 0xaa, 0xdc, 0xc5, 0x50, 0x71, 0x35, 0x6d, 0xd6, 0x34, 0x3e, + 0x3f, 0xa7, 0xd8, 0x89, 0xe3, 0x73, 0x37, 0xc5, 0xa0, 0x6d, 0x74, 0xcb, 0x74, 0x7e, 0x26, 0x36, + 0x98, 0x3c, 0x1e, 0x1e, 0x34, 0xeb, 0x17, 0x9a, 0xa2, 0xf3, 0x3a, 0xbf, 0x4b, 0x50, 0x2f, 0x8a, + 0x72, 0x9e, 0xdc, 0x0d, 0x28, 0x71, 0x37, 0xf7, 0xac, 0xc4, 0xdd, 0x74, 0xbb, 0x50, 0xa8, 0x01, + 0x4e, 0x84, 0xcc, 0x14, 0x2e, 0xd3, 0x45, 0x20, 0x9d, 0x2e, 0x14, 0xea, 0x60, 0xa2, 0x50, 0x6a, + 0x61, 0xcb, 0x74, 0x7e, 0x26, 0x0f, 0xa0, 0x5e, 0xb8, 0x84, 0x32, 0x49, 0x73, 0x77, 0x8a, 0x40, + 0xc1, 0x1a, 0x6b, 0xb5, 0x35, 0xcf, 0xc0, 0x54, 0xd3, 0x28, 0xd3, 0xb7, 0xd1, 0xef, 0xae, 0xf3, + 0x17, 0x3f, 0x9c, 0x46, 0x48, 0x75, 0xd5, 0xb2, 0x81, 0xd5, 0x7f, 0x1a, 0x58, 0xbb, 0xc8, 0x40, + 0x38, 0xc7, 0xc0, 0xbb, 0x60, 0x2a, 0xc7, 0x8b, 0x73, 0x23, 0x6a, 0x7a, 0xba, 0x43, 0xc7, 0x8b, + 0xa9, 0x0e, 0x3f, 0x7a, 0x08, 0xff, 0x9f, 0x99, 0x8b, 0x00, 0x58, 0x43, 0x9f, 0x63, 0xa8, 0xb6, + 0x36, 0xd2, 0xe7, 0x11, 0xca, 0x13, 0x94, 0x5b, 0x46, 0xff, 0x7b, 0x05, 0xb6, 0x0a, 0xb9, 0x07, + 0xe9, 0x76, 0x24, 0x80, 0xc6, 0x50, 0xa2, 0xa3, 0xf0, 0xad, 0x7c, 0x1f, 0xb9, 0xa9, 0x66, 0x8f, + 0xd7, 0x7a, 0xc7, 0xb3, 0xb7, 0xaa, 0xb5, 0xb7, 0x5e, 0x72, 0xf6, 0xae, 0x77, 0x36, 0xc8, 0x18, + 0xca, 0xaf, 0x50, 0x5d, 0x6f, 0x0f, 0x04, 0xeb, 0x39, 0xfa, 0x78, 0xdd, 0xab, 0x7c, 0x02, 0x33, + 0xbd, 0x62, 0xc8, 0xee, 0xea, 0xba, 0xf9, 0x07, 0xe6, 0xd2, 0xe4, 0x9f, 0xa1, 0x42, 0x31, 0xc4, + 0xd3, 0xeb, 0x61, 0x3f, 0x85, 0xea, 0xec, 0x1e, 0x26, 0xfb, 0xeb, 0xd4, 0x9e, 0xf9, 0x3a, 0xb4, + 0x9e, 0x5e, 0xae, 0x68, 0xd6, 0x78, 0xd0, 0xff, 0xf8, 0xc4, 0xe3, 0xea, 0x38, 0x19, 0xdb, 0x4c, + 0x04, 0xbd, 0x80, 0x33, 0x29, 0x62, 0x31, 0x51, 0xbd, 0x40, 0xb0, 0x9e, 0x8c, 0x58, 0x6f, 0xc1, + 0xd8, 0x9b, 0x31, 0x8e, 0x2d, 0x7d, 0xe7, 0xec, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x6e, 0xf7, + 0x3d, 0xb3, 0x86, 0x08, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -496,6 +589,8 @@ type CertificateAgentClient interface { Delete(ctx context.Context, in *CertificateRequest, opts ...grpc.CallOption) (*CertificateResponse, error) Sign(ctx context.Context, in *CSRRequest, opts ...grpc.CallOption) (*CertificateResponse, error) Renew(ctx context.Context, in *CSRRequest, opts ...grpc.CallOption) (*CertificateResponse, error) + // Prechecks whether the system is able to create specified certificates (but does not actually create them). + Precheck(ctx context.Context, in *CertificatePrecheckRequest, opts ...grpc.CallOption) (*CertificatePrecheckResponse, error) } type certificateAgentClient struct { @@ -551,6 +646,15 @@ func (c *certificateAgentClient) Renew(ctx context.Context, in *CSRRequest, opts return out, nil } +func (c *certificateAgentClient) Precheck(ctx context.Context, in *CertificatePrecheckRequest, opts ...grpc.CallOption) (*CertificatePrecheckResponse, error) { + out := new(CertificatePrecheckResponse) + err := c.cc.Invoke(ctx, "/moc.cloudagent.security.CertificateAgent/Precheck", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // CertificateAgentServer is the server API for CertificateAgent service. type CertificateAgentServer interface { CreateOrUpdate(context.Context, *CertificateRequest) (*CertificateResponse, error) @@ -558,6 +662,8 @@ type CertificateAgentServer interface { Delete(context.Context, *CertificateRequest) (*CertificateResponse, error) Sign(context.Context, *CSRRequest) (*CertificateResponse, error) Renew(context.Context, *CSRRequest) (*CertificateResponse, error) + // Prechecks whether the system is able to create specified certificates (but does not actually create them). + Precheck(context.Context, *CertificatePrecheckRequest) (*CertificatePrecheckResponse, error) } // UnimplementedCertificateAgentServer can be embedded to have forward compatible implementations. @@ -579,6 +685,9 @@ func (*UnimplementedCertificateAgentServer) Sign(ctx context.Context, req *CSRRe func (*UnimplementedCertificateAgentServer) Renew(ctx context.Context, req *CSRRequest) (*CertificateResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Renew not implemented") } +func (*UnimplementedCertificateAgentServer) Precheck(ctx context.Context, req *CertificatePrecheckRequest) (*CertificatePrecheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Precheck not implemented") +} func RegisterCertificateAgentServer(s *grpc.Server, srv CertificateAgentServer) { s.RegisterService(&_CertificateAgent_serviceDesc, srv) @@ -674,6 +783,24 @@ func _CertificateAgent_Renew_Handler(srv interface{}, ctx context.Context, dec f return interceptor(ctx, in, info, handler) } +func _CertificateAgent_Precheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CertificatePrecheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CertificateAgentServer).Precheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/moc.cloudagent.security.CertificateAgent/Precheck", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CertificateAgentServer).Precheck(ctx, req.(*CertificatePrecheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _CertificateAgent_serviceDesc = grpc.ServiceDesc{ ServiceName: "moc.cloudagent.security.CertificateAgent", HandlerType: (*CertificateAgentServer)(nil), @@ -698,6 +825,10 @@ var _CertificateAgent_serviceDesc = grpc.ServiceDesc{ MethodName: "Renew", Handler: _CertificateAgent_Renew_Handler, }, + { + MethodName: "Precheck", + Handler: _CertificateAgent_Precheck_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "moc_cloudagent_certificate.proto", diff --git a/rpc/cloudagent/security/moc_cloudagent_identity.pb.go b/rpc/cloudagent/security/moc_cloudagent_identity.pb.go index 5057362..fe28471 100644 --- a/rpc/cloudagent/security/moc_cloudagent_identity.pb.go +++ b/rpc/cloudagent/security/moc_cloudagent_identity.pb.go @@ -303,6 +303,94 @@ func (m *IdentityCertificateResponse) GetError() string { return "" } +type IdentityPrecheckRequest struct { + Identities []*Identity `protobuf:"bytes,1,rep,name=Identities,proto3" json:"Identities,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IdentityPrecheckRequest) Reset() { *m = IdentityPrecheckRequest{} } +func (m *IdentityPrecheckRequest) String() string { return proto.CompactTextString(m) } +func (*IdentityPrecheckRequest) ProtoMessage() {} +func (*IdentityPrecheckRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_df50a18f5e732c64, []int{5} +} + +func (m *IdentityPrecheckRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IdentityPrecheckRequest.Unmarshal(m, b) +} +func (m *IdentityPrecheckRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IdentityPrecheckRequest.Marshal(b, m, deterministic) +} +func (m *IdentityPrecheckRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_IdentityPrecheckRequest.Merge(m, src) +} +func (m *IdentityPrecheckRequest) XXX_Size() int { + return xxx_messageInfo_IdentityPrecheckRequest.Size(m) +} +func (m *IdentityPrecheckRequest) XXX_DiscardUnknown() { + xxx_messageInfo_IdentityPrecheckRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_IdentityPrecheckRequest proto.InternalMessageInfo + +func (m *IdentityPrecheckRequest) GetIdentities() []*Identity { + if m != nil { + return m.Identities + } + return nil +} + +type IdentityPrecheckResponse struct { + // The precheck result: true if the precheck criteria is passed; otherwise, false + Result *wrappers.BoolValue `protobuf:"bytes,1,opt,name=Result,proto3" json:"Result,omitempty"` + // The error message if the precheck is not passed; otherwise, empty string + Error string `protobuf:"bytes,2,opt,name=Error,proto3" json:"Error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IdentityPrecheckResponse) Reset() { *m = IdentityPrecheckResponse{} } +func (m *IdentityPrecheckResponse) String() string { return proto.CompactTextString(m) } +func (*IdentityPrecheckResponse) ProtoMessage() {} +func (*IdentityPrecheckResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_df50a18f5e732c64, []int{6} +} + +func (m *IdentityPrecheckResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IdentityPrecheckResponse.Unmarshal(m, b) +} +func (m *IdentityPrecheckResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IdentityPrecheckResponse.Marshal(b, m, deterministic) +} +func (m *IdentityPrecheckResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_IdentityPrecheckResponse.Merge(m, src) +} +func (m *IdentityPrecheckResponse) XXX_Size() int { + return xxx_messageInfo_IdentityPrecheckResponse.Size(m) +} +func (m *IdentityPrecheckResponse) XXX_DiscardUnknown() { + xxx_messageInfo_IdentityPrecheckResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_IdentityPrecheckResponse proto.InternalMessageInfo + +func (m *IdentityPrecheckResponse) GetResult() *wrappers.BoolValue { + if m != nil { + return m.Result + } + return nil +} + +func (m *IdentityPrecheckResponse) GetError() string { + if m != nil { + return m.Error + } + return "" +} + type Identity struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` @@ -332,7 +420,7 @@ func (m *Identity) Reset() { *m = Identity{} } func (m *Identity) String() string { return proto.CompactTextString(m) } func (*Identity) ProtoMessage() {} func (*Identity) Descriptor() ([]byte, []int) { - return fileDescriptor_df50a18f5e732c64, []int{5} + return fileDescriptor_df50a18f5e732c64, []int{7} } func (m *Identity) XXX_Unmarshal(b []byte) error { @@ -494,6 +582,8 @@ func init() { proto.RegisterType((*IdentityOperationRequest)(nil), "moc.cloudagent.security.IdentityOperationRequest") proto.RegisterType((*IdentityCertificateRequest)(nil), "moc.cloudagent.security.IdentityCertificateRequest") proto.RegisterType((*IdentityCertificateResponse)(nil), "moc.cloudagent.security.IdentityCertificateResponse") + proto.RegisterType((*IdentityPrecheckRequest)(nil), "moc.cloudagent.security.IdentityPrecheckRequest") + proto.RegisterType((*IdentityPrecheckResponse)(nil), "moc.cloudagent.security.IdentityPrecheckResponse") proto.RegisterType((*Identity)(nil), "moc.cloudagent.security.Identity") proto.RegisterMapType((map[string]string)(nil), "moc.cloudagent.security.Identity.CertificatesEntry") } @@ -501,64 +591,67 @@ func init() { func init() { proto.RegisterFile("moc_cloudagent_identity.proto", fileDescriptor_df50a18f5e732c64) } var fileDescriptor_df50a18f5e732c64 = []byte{ - // 897 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0xcb, 0x6e, 0xdb, 0x46, - 0x14, 0x2d, 0x25, 0xbf, 0x74, 0xe5, 0x57, 0x26, 0x8e, 0x3d, 0x55, 0x93, 0x40, 0x51, 0xbd, 0x50, - 0x37, 0x54, 0xab, 0x04, 0x68, 0xd1, 0x4d, 0x60, 0xb9, 0x4a, 0x6b, 0xa0, 0xa8, 0xdd, 0x91, 0xd1, - 0x45, 0xd1, 0xc2, 0xa0, 0x87, 0x63, 0x7a, 0x60, 0x8a, 0xc3, 0xcc, 0x0c, 0x9d, 0x6a, 0xdb, 0x55, - 0x7e, 0xa2, 0x40, 0x97, 0xdd, 0x76, 0xd1, 0xff, 0xe9, 0x47, 0xf4, 0x03, 0x0a, 0x5e, 0x92, 0x22, - 0xe9, 0x07, 0x1c, 0xb7, 0x59, 0x49, 0x3c, 0xf7, 0x31, 0xe7, 0x9e, 0x7b, 0x38, 0x84, 0x27, 0x53, - 0xc5, 0x4f, 0x78, 0xa8, 0x12, 0xdf, 0x0b, 0x44, 0x64, 0x4f, 0xa4, 0x2f, 0x22, 0x2b, 0xed, 0xcc, - 0x8d, 0xb5, 0xb2, 0x8a, 0xec, 0x4c, 0x15, 0x77, 0xcb, 0xb0, 0x6b, 0x04, 0x4f, 0xb4, 0xb4, 0xb3, - 0xce, 0xd3, 0x40, 0xa9, 0x20, 0x14, 0x03, 0x4c, 0x3b, 0x4d, 0xce, 0x06, 0x6f, 0xb4, 0x17, 0xc7, - 0x42, 0x9b, 0xac, 0xb0, 0xd3, 0xbd, 0xd2, 0x97, 0x0b, 0x6d, 0xe5, 0x99, 0xe4, 0x9e, 0x15, 0x79, - 0xc6, 0x0e, 0x66, 0xa8, 0xe9, 0x54, 0x45, 0xf9, 0x4f, 0x1e, 0xf8, 0xb0, 0x12, 0x28, 0xce, 0xcb, - 0x42, 0xbd, 0xb7, 0x0e, 0x6c, 0x1c, 0xe4, 0x0c, 0x99, 0x78, 0x9d, 0x08, 0x63, 0xc9, 0x4b, 0x68, - 0x15, 0x90, 0xa1, 0x4e, 0xb7, 0xd9, 0x6f, 0x0f, 0x9f, 0xb9, 0xb7, 0xd0, 0x76, 0xe7, 0xc5, 0x65, - 0x0d, 0x79, 0x01, 0x6b, 0x87, 0xb1, 0xd0, 0x9e, 0x95, 0x2a, 0x3a, 0x9e, 0xc5, 0x82, 0x36, 0xba, - 0x4e, 0x7f, 0x7d, 0xb8, 0x8e, 0x4d, 0xe6, 0x11, 0x56, 0x4f, 0xea, 0xfd, 0xe6, 0xc0, 0x66, 0x49, - 0xc5, 0xc4, 0x2a, 0x32, 0xe2, 0xff, 0x73, 0x19, 0xc2, 0x12, 0x13, 0x26, 0x09, 0x2d, 0x92, 0x68, - 0x0f, 0x3b, 0x6e, 0xa6, 0xb3, 0x5b, 0xe8, 0xec, 0x8e, 0x94, 0x0a, 0x7f, 0xf0, 0xc2, 0x44, 0xb0, - 0x3c, 0x93, 0x6c, 0xc1, 0xe2, 0x58, 0x6b, 0xa5, 0x69, 0xb3, 0xeb, 0xf4, 0x5b, 0x2c, 0x7b, 0xe8, - 0xfd, 0xe3, 0x00, 0x2d, 0xfa, 0x96, 0x43, 0xe4, 0x9a, 0xed, 0x01, 0xe4, 0x31, 0x29, 0xee, 0x41, - 0xb4, 0x52, 0x44, 0xbe, 0x87, 0xed, 0xc3, 0xd1, 0xe4, 0xf0, 0xdb, 0xf1, 0xf1, 0xf8, 0xe4, 0x26, - 0xf9, 0xb6, 0xb1, 0xdd, 0x35, 0x06, 0xa3, 0x06, 0x75, 0xd8, 0xa3, 0xa2, 0xb2, 0x56, 0x48, 0x46, - 0x57, 0x17, 0xd1, 0xc4, 0x4e, 0x8f, 0xb1, 0xd3, 0x91, 0x56, 0x97, 0xd2, 0x17, 0x7a, 0x8f, 0x73, - 0x61, 0xcc, 0xad, 0x6b, 0xf9, 0xa3, 0x01, 0x9d, 0xe2, 0xd0, 0xfd, 0xd2, 0x73, 0xc5, 0xe0, 0x3d, - 0x58, 0x2d, 0xa2, 0xdf, 0x79, 0x53, 0x41, 0x1d, 0x94, 0xac, 0x86, 0x91, 0xaf, 0xa0, 0xb9, 0x3f, - 0x61, 0xb4, 0x81, 0xaa, 0x0c, 0x6f, 0x55, 0xa5, 0xd2, 0x7d, 0x22, 0x83, 0x48, 0x46, 0x41, 0x7e, - 0x08, 0x4b, 0xcb, 0xc9, 0x4f, 0xb7, 0xea, 0x93, 0x4d, 0xf5, 0xac, 0xa6, 0x4f, 0xa5, 0xd9, 0x7f, - 0x93, 0x6a, 0xe1, 0xfe, 0x52, 0xfd, 0xe9, 0xc0, 0x47, 0x37, 0x4a, 0x95, 0x9b, 0xf9, 0x1b, 0x58, - 0xad, 0xc0, 0x85, 0x4d, 0x76, 0xdf, 0x45, 0x10, 0x56, 0xab, 0x7c, 0x8f, 0xae, 0xfe, 0x7d, 0x09, - 0x56, 0x0a, 0xce, 0x84, 0xc0, 0x42, 0x54, 0x2e, 0x11, 0xff, 0x93, 0x75, 0x68, 0x48, 0x1f, 0x8f, - 0x69, 0xb1, 0x86, 0xf4, 0xc9, 0x2e, 0xac, 0x69, 0x61, 0x54, 0xa2, 0xb9, 0xf8, 0x5a, 0xab, 0x24, - 0xce, 0xdb, 0xd5, 0x41, 0xd2, 0x85, 0x95, 0xd8, 0x33, 0xe6, 0x8d, 0xd2, 0x3e, 0x2a, 0xd9, 0x1a, - 0x2d, 0xbc, 0xfd, 0x8b, 0x3a, 0x6c, 0x8e, 0x92, 0x0e, 0x2c, 0x5a, 0x75, 0x21, 0x22, 0xba, 0x58, - 0x09, 0x67, 0x10, 0xf9, 0x18, 0x96, 0x8c, 0xf5, 0x6c, 0x62, 0xe8, 0x32, 0x8e, 0xd7, 0x46, 0x89, - 0x26, 0x08, 0xb1, 0x3c, 0x94, 0x3a, 0x2f, 0x54, 0x1c, 0xd5, 0x47, 0xe7, 0x41, 0xe6, 0xbc, 0x2a, - 0x46, 0x9e, 0xc0, 0x82, 0xf5, 0x02, 0x43, 0xdb, 0xd8, 0xa6, 0x85, 0x6d, 0x8e, 0xbd, 0xc0, 0x30, - 0x84, 0xc9, 0xcf, 0xb0, 0xca, 0xab, 0x0b, 0x59, 0xc5, 0x85, 0x3c, 0xbf, 0xf3, 0xbd, 0xad, 0x6e, - 0xc6, 0x8c, 0x23, 0xab, 0x67, 0x39, 0xff, 0x5a, 0x3b, 0xb2, 0x0b, 0x6d, 0x9c, 0x67, 0xfc, 0x4b, - 0x2c, 0xf5, 0x8c, 0xae, 0x75, 0x9d, 0x7e, 0x13, 0x3d, 0x58, 0x85, 0xc9, 0x00, 0x80, 0x87, 0x52, - 0x44, 0x16, 0x6d, 0xb7, 0x8e, 0xb6, 0xdb, 0x40, 0x0a, 0xfb, 0x73, 0x98, 0x55, 0x52, 0xc8, 0x63, - 0x68, 0x21, 0xb9, 0x57, 0xaf, 0xfd, 0x88, 0x6e, 0xe0, 0xd4, 0x25, 0x30, 0x8f, 0x1e, 0x29, 0x6d, - 0xe9, 0x66, 0xd7, 0xe9, 0x2f, 0xb2, 0x12, 0x48, 0xb7, 0x87, 0x0f, 0x7b, 0x89, 0x3d, 0xc7, 0x8c, - 0x07, 0x98, 0x51, 0x07, 0xc9, 0xe7, 0xb0, 0xe2, 0x25, 0xf6, 0x1c, 0x09, 0x11, 0x24, 0xb4, 0x83, - 0x84, 0xd2, 0x84, 0x54, 0x01, 0x3e, 0xf7, 0x3c, 0x8e, 0x33, 0x4f, 0x26, 0x14, 0x96, 0xb5, 0xb8, - 0x54, 0x17, 0xc2, 0xa7, 0x0f, 0xbb, 0x4e, 0x7f, 0x85, 0x15, 0x8f, 0xe4, 0x29, 0x80, 0x97, 0x58, - 0xc5, 0x94, 0xf5, 0xac, 0xa0, 0x5b, 0x18, 0xac, 0x20, 0x29, 0xb1, 0x50, 0x05, 0x32, 0x7a, 0x25, - 0x43, 0x71, 0xe4, 0xd9, 0x73, 0xfa, 0x28, 0xb3, 0x55, 0x0d, 0x24, 0x43, 0xd8, 0xaa, 0x48, 0x77, - 0x10, 0x4d, 0x04, 0x57, 0x91, 0x6f, 0xe8, 0x76, 0x2a, 0x2d, 0xbb, 0x31, 0xd6, 0x79, 0x09, 0x0f, - 0xae, 0xad, 0x8b, 0x6c, 0x42, 0xf3, 0x42, 0xcc, 0x72, 0xa3, 0xa7, 0x7f, 0xd3, 0xd7, 0xe3, 0x32, - 0x7d, 0x5f, 0x72, 0xab, 0x67, 0x0f, 0x5f, 0x36, 0xbe, 0x70, 0x86, 0x7f, 0x37, 0x60, 0xad, 0xd8, - 0xfc, 0x5e, 0x6a, 0x08, 0x72, 0x02, 0x4b, 0x07, 0x51, 0x3a, 0x17, 0xe9, 0xdf, 0x7d, 0xc7, 0x67, - 0x77, 0x58, 0xe7, 0x93, 0x77, 0xc8, 0xcc, 0xee, 0x89, 0xde, 0x07, 0x44, 0xc2, 0x72, 0x76, 0xb5, - 0x08, 0xf2, 0xd9, 0x9d, 0x75, 0x57, 0x3f, 0x46, 0xf7, 0x3b, 0xea, 0x57, 0x07, 0x1e, 0xe6, 0x67, - 0xd5, 0xae, 0x98, 0xbb, 0xdf, 0x82, 0xeb, 0x5f, 0x83, 0xce, 0x8b, 0xfb, 0x15, 0x15, 0x24, 0x46, - 0xc3, 0x1f, 0x3f, 0x0d, 0xa4, 0x3d, 0x4f, 0x4e, 0x5d, 0xae, 0xa6, 0x83, 0xa9, 0xe4, 0x5a, 0x19, - 0x75, 0x66, 0x07, 0x53, 0xc5, 0x07, 0x3a, 0xe6, 0x83, 0xb2, 0xe3, 0xa0, 0xe8, 0x78, 0xba, 0x84, - 0x77, 0xdd, 0xf3, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x00, 0x7a, 0xf4, 0xc4, 0x71, 0x09, 0x00, - 0x00, + // 946 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0x4d, 0x6f, 0xdb, 0x46, + 0x13, 0x7e, 0x29, 0xd9, 0xb2, 0x34, 0xf2, 0x57, 0x36, 0x8e, 0xbd, 0xaf, 0x9a, 0x04, 0x8a, 0xea, + 0x83, 0x7a, 0x91, 0x12, 0x25, 0x40, 0x8b, 0x5e, 0x02, 0xcb, 0x55, 0x5a, 0x03, 0x45, 0xed, 0x52, + 0x46, 0x0f, 0x45, 0x0a, 0x83, 0x5e, 0xae, 0xa9, 0x85, 0x29, 0x2e, 0xbd, 0xbb, 0x74, 0xaa, 0x6b, + 0x4f, 0xf9, 0x13, 0x05, 0x7a, 0xec, 0xb5, 0x87, 0xfe, 0x92, 0xfe, 0x95, 0xfe, 0x80, 0x82, 0x43, + 0x52, 0x24, 0xfd, 0x01, 0x45, 0x6d, 0x4e, 0xd2, 0x3e, 0xf3, 0xb1, 0xcf, 0x3c, 0x33, 0xb3, 0x84, + 0x27, 0x53, 0xc9, 0xce, 0x98, 0x2f, 0x23, 0xd7, 0xf1, 0x78, 0x60, 0xce, 0x84, 0xcb, 0x03, 0x23, + 0xcc, 0xac, 0x17, 0x2a, 0x69, 0x24, 0xd9, 0x9b, 0x4a, 0xd6, 0xcb, 0xcd, 0x3d, 0xcd, 0x59, 0xa4, + 0x84, 0x99, 0xb5, 0x9e, 0x7a, 0x52, 0x7a, 0x3e, 0xef, 0xa3, 0xdb, 0x79, 0x74, 0xd1, 0x7f, 0xa7, + 0x9c, 0x30, 0xe4, 0x4a, 0x27, 0x81, 0xad, 0xf6, 0x8d, 0xbc, 0x8c, 0x2b, 0x23, 0x2e, 0x04, 0x73, + 0x0c, 0x4f, 0x3d, 0xf6, 0xd0, 0x43, 0x4e, 0xa7, 0x32, 0x48, 0x7f, 0x52, 0xc3, 0xff, 0x0b, 0x86, + 0xec, 0xbe, 0xc4, 0xd4, 0x79, 0x6f, 0xc1, 0xd6, 0x51, 0xca, 0xd0, 0xe6, 0x57, 0x11, 0xd7, 0x86, + 0xbc, 0x86, 0x46, 0x06, 0x69, 0x6a, 0xb5, 0xab, 0xdd, 0xe6, 0xe0, 0x59, 0xef, 0x1e, 0xda, 0xbd, + 0x79, 0x70, 0x1e, 0x43, 0x5e, 0xc1, 0xc6, 0x71, 0xc8, 0x95, 0x63, 0x84, 0x0c, 0x4e, 0x67, 0x21, + 0xa7, 0x95, 0xb6, 0xd5, 0xdd, 0x1c, 0x6c, 0x62, 0x92, 0xb9, 0xc5, 0x2e, 0x3b, 0x75, 0x7e, 0xb5, + 0x60, 0x3b, 0xa7, 0xa2, 0x43, 0x19, 0x68, 0xfe, 0xdf, 0xb9, 0x0c, 0xa0, 0x66, 0x73, 0x1d, 0xf9, + 0x06, 0x49, 0x34, 0x07, 0xad, 0x5e, 0xa2, 0x73, 0x2f, 0xd3, 0xb9, 0x37, 0x94, 0xd2, 0xff, 0xc1, + 0xf1, 0x23, 0x6e, 0xa7, 0x9e, 0x64, 0x07, 0x56, 0x47, 0x4a, 0x49, 0x45, 0xab, 0x6d, 0xab, 0xdb, + 0xb0, 0x93, 0x43, 0xe7, 0x6f, 0x0b, 0x68, 0x96, 0x37, 0x2f, 0x22, 0xd5, 0xec, 0x00, 0x20, 0xb5, + 0x09, 0xbe, 0x04, 0xd1, 0x42, 0x10, 0xf9, 0x1e, 0x76, 0x8f, 0x87, 0xe3, 0xe3, 0x6f, 0x47, 0xa7, + 0xa3, 0xb3, 0xbb, 0xe4, 0xdb, 0xc5, 0x74, 0xb7, 0x18, 0x0c, 0x2b, 0xd4, 0xb2, 0x1f, 0x65, 0x91, + 0xa5, 0x40, 0x32, 0xbc, 0xd9, 0x88, 0x2a, 0x66, 0x7a, 0x8c, 0x99, 0x4e, 0x94, 0xbc, 0x16, 0x2e, + 0x57, 0x07, 0x8c, 0x71, 0xad, 0xef, 0x6d, 0xcb, 0xef, 0x15, 0x68, 0x65, 0x97, 0x1e, 0xe6, 0x33, + 0x97, 0x15, 0xde, 0x81, 0xf5, 0xcc, 0xfa, 0x9d, 0x33, 0xe5, 0xd4, 0x42, 0xc9, 0x4a, 0x18, 0xf9, + 0x0a, 0xaa, 0x87, 0x63, 0x9b, 0x56, 0x50, 0x95, 0xc1, 0xbd, 0xaa, 0x14, 0xb2, 0x8f, 0x85, 0x17, + 0x88, 0xc0, 0x4b, 0x2f, 0xb1, 0xe3, 0x70, 0xf2, 0xf6, 0x5e, 0x7d, 0x92, 0xaa, 0x9e, 0x95, 0xf4, + 0x29, 0x24, 0xfb, 0x77, 0x52, 0xad, 0x2c, 0x2f, 0xd5, 0x1f, 0x16, 0x7c, 0x72, 0xa7, 0x54, 0xe9, + 0x30, 0x7f, 0x03, 0xeb, 0x05, 0x38, 0x1b, 0x93, 0xfd, 0x0f, 0x11, 0xc4, 0x2e, 0x45, 0x7e, 0xc4, + 0xa9, 0x7e, 0x0b, 0x7b, 0x19, 0xe5, 0x13, 0xc5, 0xd9, 0x84, 0xb3, 0xcb, 0x8f, 0x37, 0xd3, 0x1d, + 0x37, 0x5f, 0x99, 0x3c, 0x7b, 0xaa, 0x46, 0x5e, 0x83, 0xb5, 0x7c, 0x0d, 0x95, 0x62, 0x0d, 0xbf, + 0xd5, 0xa0, 0x9e, 0x5d, 0x43, 0x08, 0xac, 0x04, 0xf9, 0x20, 0xe2, 0x7f, 0xb2, 0x09, 0x15, 0xe1, + 0xa6, 0x31, 0x15, 0xe1, 0x92, 0x7d, 0xd8, 0x50, 0x5c, 0xcb, 0x48, 0x31, 0xfe, 0xb5, 0x92, 0x51, + 0x98, 0x4a, 0x52, 0x06, 0x49, 0x1b, 0xea, 0xa1, 0xa3, 0xf5, 0x3b, 0xa9, 0x5c, 0x9c, 0x86, 0xc6, + 0x70, 0xe5, 0xfd, 0x9f, 0xd4, 0xb2, 0xe7, 0x28, 0x69, 0xc1, 0xaa, 0x91, 0x97, 0x3c, 0xa0, 0xab, + 0x05, 0x73, 0x02, 0x91, 0x4f, 0xa1, 0xa6, 0x8d, 0x63, 0x22, 0x4d, 0xd7, 0xb0, 0xbc, 0x26, 0x2a, + 0x37, 0x46, 0xc8, 0x4e, 0x4d, 0xf1, 0xf6, 0xf8, 0x92, 0xe1, 0x04, 0xe1, 0xf6, 0x40, 0xb2, 0x3d, + 0x45, 0x8c, 0x3c, 0x81, 0x15, 0xe3, 0x78, 0x9a, 0x36, 0x31, 0x4d, 0x03, 0xd3, 0x9c, 0x3a, 0x9e, + 0xb6, 0x11, 0x26, 0x3f, 0xc1, 0x3a, 0x2b, 0x0e, 0xd5, 0x3a, 0xf6, 0xe9, 0xe5, 0xc2, 0x3e, 0x15, + 0xa7, 0x4b, 0x8f, 0x02, 0xa3, 0x66, 0x29, 0xff, 0x52, 0x3a, 0xb2, 0x0f, 0x4d, 0xac, 0x67, 0xf4, + 0x73, 0x28, 0xd4, 0x8c, 0x6e, 0xb4, 0xad, 0x6e, 0x15, 0xf7, 0xa8, 0x08, 0x93, 0x3e, 0x00, 0xf3, + 0x05, 0x0f, 0x0c, 0xae, 0xce, 0x26, 0xae, 0xce, 0x16, 0x52, 0x38, 0x9c, 0xc3, 0x76, 0xc1, 0x85, + 0x3c, 0x86, 0x06, 0x92, 0x7b, 0x73, 0xe5, 0x06, 0x74, 0x0b, 0xab, 0xce, 0x81, 0xb9, 0xf5, 0x44, + 0x2a, 0x43, 0xb7, 0xdb, 0x56, 0x77, 0xd5, 0xce, 0x81, 0xb8, 0x7b, 0x78, 0x38, 0x88, 0xcc, 0x04, + 0x3d, 0x1e, 0xa0, 0x47, 0x19, 0x24, 0x9f, 0x43, 0xdd, 0x89, 0xcc, 0x04, 0x09, 0x11, 0x24, 0xb4, + 0x87, 0x84, 0x62, 0x87, 0x58, 0x01, 0x36, 0xdf, 0x5b, 0x2c, 0x67, 0xee, 0x4c, 0x28, 0xac, 0x29, + 0x7e, 0x2d, 0x2f, 0xb9, 0x4b, 0x1f, 0xb6, 0xad, 0x6e, 0xdd, 0xce, 0x8e, 0xe4, 0x29, 0x80, 0x13, + 0x19, 0x69, 0x4b, 0xe3, 0x18, 0x4e, 0x77, 0xd0, 0x58, 0x40, 0x62, 0x62, 0xbe, 0xf4, 0x44, 0xf0, + 0x46, 0xf8, 0xfc, 0xc4, 0x31, 0x13, 0xfa, 0x28, 0x19, 0xab, 0x12, 0x48, 0x06, 0xb0, 0x53, 0x90, + 0xee, 0x28, 0x18, 0x73, 0x26, 0x03, 0x57, 0xd3, 0xdd, 0x58, 0x5a, 0xfb, 0x4e, 0x5b, 0xeb, 0x35, + 0x3c, 0xb8, 0xd5, 0x2e, 0xb2, 0x0d, 0xd5, 0x4b, 0x3e, 0x4b, 0x07, 0x3d, 0xfe, 0x1b, 0xaf, 0xc7, + 0x75, 0xbc, 0x2f, 0xd9, 0x7a, 0xe0, 0xe1, 0xcb, 0xca, 0x17, 0xd6, 0xe0, 0xaf, 0x2a, 0x6c, 0x64, + 0x9d, 0x3f, 0x88, 0x07, 0x82, 0x9c, 0x41, 0xed, 0x28, 0x88, 0xeb, 0x22, 0xdd, 0xc5, 0x3b, 0x9d, + 0xbc, 0x08, 0xad, 0xcf, 0x3e, 0xc0, 0x33, 0xd9, 0xee, 0xce, 0xff, 0x88, 0x80, 0xb5, 0xe4, 0x79, + 0xe4, 0xe4, 0xc5, 0xc2, 0xb8, 0x9b, 0x1f, 0xd4, 0xe5, 0xae, 0xfa, 0xc5, 0x82, 0x87, 0xe9, 0x5d, + 0xa5, 0x67, 0x72, 0xf1, 0x16, 0xdc, 0xfe, 0xa2, 0xb5, 0x5e, 0x2d, 0x17, 0x34, 0x27, 0x71, 0x05, + 0xf5, 0xec, 0x8d, 0x23, 0xcf, 0x17, 0xe6, 0xb8, 0xf1, 0xd8, 0xb6, 0x5e, 0x2c, 0x11, 0x91, 0x5d, + 0x39, 0x1c, 0xfc, 0xf8, 0xdc, 0x13, 0x66, 0x12, 0x9d, 0xf7, 0x98, 0x9c, 0xf6, 0xa7, 0x82, 0x29, + 0xa9, 0xe5, 0x85, 0xe9, 0x4f, 0x25, 0xeb, 0xab, 0x90, 0xf5, 0xf3, 0x74, 0xfd, 0x2c, 0xdd, 0x79, + 0x0d, 0x9f, 0xd7, 0x97, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x1d, 0x54, 0xc9, 0x8b, 0xa8, 0x0a, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -576,6 +669,8 @@ type IdentityAgentClient interface { Invoke(ctx context.Context, in *IdentityRequest, opts ...grpc.CallOption) (*IdentityResponse, error) Operate(ctx context.Context, in *IdentityOperationRequest, opts ...grpc.CallOption) (*IdentityResponse, error) OperateCertificates(ctx context.Context, in *IdentityCertificateRequest, opts ...grpc.CallOption) (*IdentityCertificateResponse, error) + // Prechecks whether the system is able to create specified identities (but does not actually create them). + Precheck(ctx context.Context, in *IdentityPrecheckRequest, opts ...grpc.CallOption) (*IdentityPrecheckResponse, error) } type identityAgentClient struct { @@ -613,11 +708,22 @@ func (c *identityAgentClient) OperateCertificates(ctx context.Context, in *Ident return out, nil } +func (c *identityAgentClient) Precheck(ctx context.Context, in *IdentityPrecheckRequest, opts ...grpc.CallOption) (*IdentityPrecheckResponse, error) { + out := new(IdentityPrecheckResponse) + err := c.cc.Invoke(ctx, "/moc.cloudagent.security.IdentityAgent/Precheck", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // IdentityAgentServer is the server API for IdentityAgent service. type IdentityAgentServer interface { Invoke(context.Context, *IdentityRequest) (*IdentityResponse, error) Operate(context.Context, *IdentityOperationRequest) (*IdentityResponse, error) OperateCertificates(context.Context, *IdentityCertificateRequest) (*IdentityCertificateResponse, error) + // Prechecks whether the system is able to create specified identities (but does not actually create them). + Precheck(context.Context, *IdentityPrecheckRequest) (*IdentityPrecheckResponse, error) } // UnimplementedIdentityAgentServer can be embedded to have forward compatible implementations. @@ -633,6 +739,9 @@ func (*UnimplementedIdentityAgentServer) Operate(ctx context.Context, req *Ident func (*UnimplementedIdentityAgentServer) OperateCertificates(ctx context.Context, req *IdentityCertificateRequest) (*IdentityCertificateResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method OperateCertificates not implemented") } +func (*UnimplementedIdentityAgentServer) Precheck(ctx context.Context, req *IdentityPrecheckRequest) (*IdentityPrecheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Precheck not implemented") +} func RegisterIdentityAgentServer(s *grpc.Server, srv IdentityAgentServer) { s.RegisterService(&_IdentityAgent_serviceDesc, srv) @@ -692,6 +801,24 @@ func _IdentityAgent_OperateCertificates_Handler(srv interface{}, ctx context.Con return interceptor(ctx, in, info, handler) } +func _IdentityAgent_Precheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdentityPrecheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityAgentServer).Precheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/moc.cloudagent.security.IdentityAgent/Precheck", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityAgentServer).Precheck(ctx, req.(*IdentityPrecheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _IdentityAgent_serviceDesc = grpc.ServiceDesc{ ServiceName: "moc.cloudagent.security.IdentityAgent", HandlerType: (*IdentityAgentServer)(nil), @@ -708,6 +835,10 @@ var _IdentityAgent_serviceDesc = grpc.ServiceDesc{ MethodName: "OperateCertificates", Handler: _IdentityAgent_OperateCertificates_Handler, }, + { + MethodName: "Precheck", + Handler: _IdentityAgent_Precheck_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "moc_cloudagent_identity.proto", diff --git a/rpc/cloudagent/storage/container/moc_cloudagent_container.proto b/rpc/cloudagent/storage/container/moc_cloudagent_container.proto index 55b8d6d..af6b32a 100644 --- a/rpc/cloudagent/storage/container/moc_cloudagent_container.proto +++ b/rpc/cloudagent/storage/container/moc_cloudagent_container.proto @@ -28,6 +28,18 @@ message ContainerResponse { string Error = 3; } +message ContainerPrecheckRequest { + repeated Container Containers = 1; +} + +message ContainerPrecheckResponse { + // The precheck result: true if the precheck criteria is passed; otherwise, false + google.protobuf.BoolValue Result = 1; + + // The error message if the precheck is not passed; otherwise, empty string + string Error = 2; +} + message Container { string name = 1; string id = 2; @@ -41,6 +53,9 @@ message Container { service ContainerAgent { rpc Invoke(ContainerRequest) returns (ContainerResponse) {} + + // Prechecks whether the system is able to create specified containers (but does not actually create them). + rpc Precheck(ContainerPrecheckRequest) returns (ContainerPrecheckResponse) {} } diff --git a/rpc/cloudagent/storage/moc_cloudagent_container.pb.go b/rpc/cloudagent/storage/moc_cloudagent_container.pb.go index e64e452..251ebb5 100644 --- a/rpc/cloudagent/storage/moc_cloudagent_container.pb.go +++ b/rpc/cloudagent/storage/moc_cloudagent_container.pb.go @@ -162,6 +162,94 @@ func (m *ContainerResponse) GetError() string { return "" } +type ContainerPrecheckRequest struct { + Containers []*Container `protobuf:"bytes,1,rep,name=Containers,proto3" json:"Containers,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ContainerPrecheckRequest) Reset() { *m = ContainerPrecheckRequest{} } +func (m *ContainerPrecheckRequest) String() string { return proto.CompactTextString(m) } +func (*ContainerPrecheckRequest) ProtoMessage() {} +func (*ContainerPrecheckRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_736e2a9bece4cac4, []int{2} +} + +func (m *ContainerPrecheckRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ContainerPrecheckRequest.Unmarshal(m, b) +} +func (m *ContainerPrecheckRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ContainerPrecheckRequest.Marshal(b, m, deterministic) +} +func (m *ContainerPrecheckRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ContainerPrecheckRequest.Merge(m, src) +} +func (m *ContainerPrecheckRequest) XXX_Size() int { + return xxx_messageInfo_ContainerPrecheckRequest.Size(m) +} +func (m *ContainerPrecheckRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ContainerPrecheckRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ContainerPrecheckRequest proto.InternalMessageInfo + +func (m *ContainerPrecheckRequest) GetContainers() []*Container { + if m != nil { + return m.Containers + } + return nil +} + +type ContainerPrecheckResponse struct { + // The precheck result: true if the precheck criteria is passed; otherwise, false + Result *wrappers.BoolValue `protobuf:"bytes,1,opt,name=Result,proto3" json:"Result,omitempty"` + // The error message if the precheck is not passed; otherwise, empty string + Error string `protobuf:"bytes,2,opt,name=Error,proto3" json:"Error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ContainerPrecheckResponse) Reset() { *m = ContainerPrecheckResponse{} } +func (m *ContainerPrecheckResponse) String() string { return proto.CompactTextString(m) } +func (*ContainerPrecheckResponse) ProtoMessage() {} +func (*ContainerPrecheckResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_736e2a9bece4cac4, []int{3} +} + +func (m *ContainerPrecheckResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ContainerPrecheckResponse.Unmarshal(m, b) +} +func (m *ContainerPrecheckResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ContainerPrecheckResponse.Marshal(b, m, deterministic) +} +func (m *ContainerPrecheckResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ContainerPrecheckResponse.Merge(m, src) +} +func (m *ContainerPrecheckResponse) XXX_Size() int { + return xxx_messageInfo_ContainerPrecheckResponse.Size(m) +} +func (m *ContainerPrecheckResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ContainerPrecheckResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ContainerPrecheckResponse proto.InternalMessageInfo + +func (m *ContainerPrecheckResponse) GetResult() *wrappers.BoolValue { + if m != nil { + return m.Result + } + return nil +} + +func (m *ContainerPrecheckResponse) GetError() string { + if m != nil { + return m.Error + } + return "" +} + type Container struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` @@ -180,7 +268,7 @@ func (m *Container) Reset() { *m = Container{} } func (m *Container) String() string { return proto.CompactTextString(m) } func (*Container) ProtoMessage() {} func (*Container) Descriptor() ([]byte, []int) { - return fileDescriptor_736e2a9bece4cac4, []int{2} + return fileDescriptor_736e2a9bece4cac4, []int{4} } func (m *Container) XXX_Unmarshal(b []byte) error { @@ -261,45 +349,51 @@ func init() { proto.RegisterEnum("moc.cloudagent.storage.ContainerType", ContainerType_name, ContainerType_value) proto.RegisterType((*ContainerRequest)(nil), "moc.cloudagent.storage.ContainerRequest") proto.RegisterType((*ContainerResponse)(nil), "moc.cloudagent.storage.ContainerResponse") + proto.RegisterType((*ContainerPrecheckRequest)(nil), "moc.cloudagent.storage.ContainerPrecheckRequest") + proto.RegisterType((*ContainerPrecheckResponse)(nil), "moc.cloudagent.storage.ContainerPrecheckResponse") proto.RegisterType((*Container)(nil), "moc.cloudagent.storage.Container") } func init() { proto.RegisterFile("moc_cloudagent_container.proto", fileDescriptor_736e2a9bece4cac4) } var fileDescriptor_736e2a9bece4cac4 = []byte{ - // 508 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x52, 0xc1, 0x6e, 0xd3, 0x40, - 0x10, 0xad, 0x13, 0x37, 0x6d, 0x26, 0x34, 0x32, 0x2b, 0x04, 0x4b, 0x04, 0x55, 0x08, 0x97, 0x80, - 0x84, 0x2d, 0x02, 0x1f, 0x40, 0x52, 0x38, 0x54, 0x88, 0x54, 0xda, 0x94, 0x22, 0x71, 0x89, 0x36, - 0xce, 0xc6, 0xb5, 0xb0, 0x3d, 0xee, 0xee, 0x1a, 0xc4, 0x1f, 0x20, 0xf1, 0x13, 0xfc, 0x04, 0x7f, - 0xc7, 0x01, 0x79, 0xec, 0x3a, 0xa9, 0x84, 0x04, 0x07, 0x4e, 0xde, 0x7d, 0xef, 0xcd, 0xdb, 0xe7, - 0x99, 0x81, 0xe3, 0x14, 0xc3, 0x65, 0x98, 0x60, 0xb1, 0x96, 0x91, 0xca, 0xec, 0x32, 0xc4, 0xcc, - 0xca, 0x38, 0x53, 0xda, 0xcf, 0x35, 0x5a, 0x64, 0x77, 0x53, 0x0c, 0xfd, 0x2d, 0xef, 0x1b, 0x8b, - 0x5a, 0x46, 0x6a, 0x70, 0x1c, 0x21, 0x46, 0x89, 0x0a, 0x48, 0xb5, 0x2a, 0x36, 0xc1, 0x17, 0x2d, - 0xf3, 0x5c, 0x69, 0x53, 0xd5, 0x0d, 0xee, 0x91, 0x2f, 0xa6, 0x29, 0x66, 0xf5, 0xa7, 0x26, 0x1e, - 0xec, 0x10, 0xb5, 0x59, 0x9c, 0x6d, 0xb0, 0x62, 0x47, 0xdf, 0x1d, 0xf0, 0x4e, 0xae, 0x23, 0x08, - 0x75, 0x55, 0x28, 0x63, 0xd9, 0x14, 0xa0, 0xc1, 0x0c, 0x77, 0x86, 0xed, 0x71, 0x6f, 0xf2, 0xc8, - 0xff, 0x73, 0x30, 0x7f, 0x5b, 0xbd, 0x53, 0xc4, 0x5e, 0xc2, 0xd1, 0x59, 0xae, 0xb4, 0xb4, 0x31, - 0x66, 0xe7, 0x5f, 0x73, 0xc5, 0x5b, 0x43, 0x67, 0xdc, 0x9f, 0xf4, 0xc9, 0xa5, 0x61, 0xc4, 0x4d, - 0xd1, 0xe8, 0x87, 0x03, 0xb7, 0x77, 0xd2, 0x98, 0x1c, 0x33, 0xa3, 0xfe, 0x47, 0x9c, 0x09, 0x74, - 0x84, 0x32, 0x45, 0x62, 0x29, 0x47, 0x6f, 0x32, 0xf0, 0xab, 0x76, 0xfa, 0xd7, 0xed, 0xf4, 0x67, - 0x88, 0xc9, 0x85, 0x4c, 0x0a, 0x25, 0x6a, 0x25, 0xbb, 0x03, 0xfb, 0x6f, 0xb4, 0x46, 0xcd, 0xdb, - 0x43, 0x67, 0xdc, 0x15, 0xd5, 0x65, 0xf4, 0xcb, 0x81, 0x6e, 0x63, 0xcc, 0x18, 0xb8, 0x99, 0x4c, - 0x15, 0x77, 0x48, 0x42, 0x67, 0xd6, 0x87, 0x56, 0xbc, 0xa6, 0x77, 0xba, 0xa2, 0x15, 0xaf, 0x19, - 0x07, 0x37, 0x97, 0xf6, 0x92, 0xbb, 0x25, 0x32, 0x73, 0xbf, 0xfd, 0xe4, 0x8e, 0x20, 0x84, 0x3d, - 0x86, 0x8e, 0xb1, 0xd2, 0x16, 0x86, 0xef, 0x53, 0xaa, 0x1e, 0xfd, 0xd4, 0x82, 0x20, 0x51, 0x53, - 0x6c, 0x04, 0xb7, 0x12, 0x0c, 0xa9, 0x47, 0xf3, 0xf2, 0xa9, 0x0e, 0x19, 0xdf, 0xc0, 0xd8, 0x33, - 0x70, 0xcb, 0x99, 0xf2, 0x03, 0xb2, 0xb9, 0x5f, 0xdb, 0x50, 0x43, 0x9a, 0xac, 0xa7, 0xd9, 0x06, - 0x05, 0xc9, 0xd8, 0x43, 0x70, 0xad, 0x8c, 0x0c, 0x3f, 0x24, 0x79, 0x97, 0xe4, 0xe7, 0x32, 0x32, - 0x82, 0x60, 0x36, 0x80, 0xc3, 0xd8, 0x60, 0x22, 0xad, 0x5a, 0xf3, 0xee, 0xd0, 0x19, 0x1f, 0x8a, - 0xe6, 0xfe, 0xf4, 0x15, 0x1c, 0x35, 0x8e, 0xe5, 0xc8, 0x58, 0x0f, 0x0e, 0xde, 0xcf, 0xdf, 0xce, - 0xcf, 0x3e, 0xcc, 0xbd, 0x3d, 0x76, 0x00, 0xed, 0xc5, 0x74, 0xee, 0x39, 0xe5, 0xe1, 0x64, 0x71, - 0xe1, 0xb5, 0x08, 0x79, 0x37, 0xf3, 0xda, 0xe5, 0xe1, 0xf5, 0x74, 0xe1, 0xb9, 0x93, 0x2b, 0xe8, - 0x37, 0x0e, 0xd3, 0x72, 0x74, 0x6c, 0x09, 0x9d, 0xd3, 0xec, 0x33, 0x7e, 0x52, 0x6c, 0xfc, 0xf7, - 0xa9, 0x56, 0x2b, 0x3a, 0x78, 0xf2, 0x0f, 0xca, 0x6a, 0x7d, 0x46, 0x7b, 0xb3, 0xe7, 0x1f, 0x83, - 0x28, 0xb6, 0x97, 0xc5, 0xca, 0x0f, 0x31, 0x0d, 0xd2, 0x38, 0xd4, 0x68, 0x70, 0x63, 0x83, 0x14, - 0xc3, 0x40, 0xe7, 0x61, 0xb0, 0xb5, 0x09, 0x6a, 0x9b, 0x55, 0x87, 0x16, 0xe3, 0xc5, 0xef, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xda, 0x7b, 0xa6, 0x3e, 0xaf, 0x03, 0x00, 0x00, + // 561 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x52, 0x5d, 0x6e, 0xd3, 0x4c, + 0x14, 0xad, 0x13, 0x37, 0x4d, 0x6e, 0xbe, 0x46, 0xfe, 0x46, 0x08, 0x5c, 0x0b, 0xaa, 0x60, 0x5e, + 0x02, 0x12, 0x36, 0x0d, 0x2c, 0x80, 0xa4, 0xf0, 0x50, 0x21, 0x52, 0xe4, 0x94, 0x22, 0x21, 0xa1, + 0x6a, 0x32, 0x99, 0x38, 0x56, 0x6d, 0x5f, 0x77, 0x66, 0x0c, 0x62, 0x07, 0x48, 0x6c, 0x82, 0x4d, + 0xb0, 0x23, 0x96, 0xc1, 0x03, 0xf2, 0xd8, 0x71, 0x52, 0x54, 0xa9, 0x54, 0xea, 0x93, 0xc7, 0xe7, + 0x9e, 0x7b, 0xee, 0xb9, 0x3f, 0xb0, 0x9f, 0x20, 0x3b, 0x63, 0x31, 0xe6, 0x73, 0x1a, 0xf2, 0x54, + 0x9d, 0x31, 0x4c, 0x15, 0x8d, 0x52, 0x2e, 0xbc, 0x4c, 0xa0, 0x42, 0x72, 0x37, 0x41, 0xe6, 0xad, + 0xe3, 0x9e, 0x54, 0x28, 0x68, 0xc8, 0x9d, 0xfd, 0x10, 0x31, 0x8c, 0xb9, 0xaf, 0x59, 0xb3, 0x7c, + 0xe1, 0x7f, 0x11, 0x34, 0xcb, 0xb8, 0x90, 0x65, 0x9e, 0x73, 0x4f, 0xeb, 0x62, 0x92, 0x60, 0x5a, + 0x7d, 0xaa, 0xc0, 0xfd, 0x8d, 0x40, 0x25, 0x16, 0xa5, 0x0b, 0x2c, 0xa3, 0xee, 0x77, 0x03, 0xac, + 0xc3, 0x95, 0x85, 0x80, 0x5f, 0xe4, 0x5c, 0x2a, 0x32, 0x02, 0xa8, 0x31, 0x69, 0x1b, 0xfd, 0xe6, + 0xa0, 0x3b, 0x7c, 0xe8, 0x5d, 0x6d, 0xcc, 0x5b, 0x67, 0x6f, 0x24, 0x91, 0x17, 0xb0, 0x7b, 0x9c, + 0x71, 0x41, 0x55, 0x84, 0xe9, 0xc9, 0xd7, 0x8c, 0xdb, 0x8d, 0xbe, 0x31, 0xe8, 0x0d, 0x7b, 0x5a, + 0xa5, 0x8e, 0x04, 0x97, 0x49, 0xee, 0x0f, 0x03, 0xfe, 0xdf, 0x70, 0x23, 0x33, 0x4c, 0x25, 0xbf, + 0x0d, 0x3b, 0x43, 0x68, 0x05, 0x5c, 0xe6, 0xb1, 0xd2, 0x3e, 0xba, 0x43, 0xc7, 0x2b, 0xc7, 0xe9, + 0xad, 0xc6, 0xe9, 0x8d, 0x11, 0xe3, 0x53, 0x1a, 0xe7, 0x3c, 0xa8, 0x98, 0xe4, 0x0e, 0x6c, 0xbf, + 0x16, 0x02, 0x85, 0xdd, 0xec, 0x1b, 0x83, 0x4e, 0x50, 0xfe, 0xb8, 0x9f, 0xc0, 0xae, 0x75, 0xdf, + 0x09, 0xce, 0x96, 0x9c, 0x9d, 0xdf, 0xde, 0xdc, 0x5c, 0x0e, 0x7b, 0x57, 0xc8, 0x57, 0x83, 0x58, + 0x77, 0x61, 0xdc, 0xbc, 0x8b, 0xc6, 0x66, 0x17, 0xbf, 0x0d, 0xe8, 0xd4, 0x75, 0x08, 0x01, 0x33, + 0xa5, 0x09, 0xd7, 0xaa, 0x9d, 0x40, 0xbf, 0x49, 0x0f, 0x1a, 0xd1, 0xbc, 0x4a, 0x6a, 0x44, 0x73, + 0x62, 0x83, 0x99, 0x51, 0xb5, 0xb4, 0xcd, 0x02, 0x19, 0x9b, 0xdf, 0x7e, 0xda, 0x46, 0xa0, 0x11, + 0xf2, 0x08, 0x5a, 0x52, 0x51, 0x95, 0x4b, 0x7b, 0x5b, 0xbb, 0xea, 0xea, 0x8e, 0xa7, 0x1a, 0x0a, + 0xaa, 0x10, 0x71, 0xe1, 0xbf, 0x18, 0x99, 0xde, 0xf4, 0xa4, 0x28, 0xd5, 0xd2, 0xc2, 0x97, 0x30, + 0xf2, 0x14, 0xcc, 0xe2, 0x32, 0xed, 0x1d, 0x2d, 0xb3, 0x57, 0xc9, 0xe8, 0x69, 0xd5, 0x5e, 0x8f, + 0xd2, 0x05, 0x06, 0x9a, 0x46, 0x1e, 0x80, 0xa9, 0x68, 0x28, 0xed, 0xb6, 0xa6, 0x77, 0x34, 0xfd, + 0x84, 0x86, 0x32, 0xd0, 0x30, 0x71, 0xa0, 0x1d, 0x49, 0x8c, 0xa9, 0xe2, 0x73, 0xbb, 0xd3, 0x37, + 0x06, 0xed, 0xa0, 0xfe, 0x7f, 0xf2, 0x12, 0x76, 0x6b, 0xc5, 0xe2, 0xf0, 0x48, 0x17, 0x76, 0xde, + 0x4f, 0xde, 0x4c, 0x8e, 0x3f, 0x4c, 0xac, 0x2d, 0xb2, 0x03, 0xcd, 0xe9, 0x68, 0x62, 0x19, 0xc5, + 0xe3, 0x70, 0x7a, 0x6a, 0x35, 0x34, 0xf2, 0x76, 0x6c, 0x35, 0x8b, 0xc7, 0xab, 0xd1, 0xd4, 0x32, + 0x87, 0xbf, 0x0c, 0xe8, 0xd5, 0x12, 0xa3, 0x62, 0xb1, 0xe4, 0x0c, 0x5a, 0x47, 0xe9, 0x67, 0x3c, + 0xe7, 0x64, 0x70, 0xfd, 0xce, 0xcb, 0x8b, 0x71, 0x1e, 0xff, 0x03, 0xb3, 0x5c, 0xbe, 0xbb, 0x45, + 0x2e, 0xa0, 0xbd, 0x3a, 0x09, 0xf2, 0xec, 0xda, 0xc4, 0xbf, 0x8e, 0xd3, 0x39, 0xb8, 0x41, 0xc6, + 0xaa, 0xe4, 0xf8, 0xe0, 0xa3, 0x1f, 0x46, 0x6a, 0x99, 0xcf, 0x3c, 0x86, 0x89, 0x9f, 0x44, 0x4c, + 0xa0, 0xc4, 0x85, 0xf2, 0x13, 0x64, 0xbe, 0xc8, 0x98, 0xbf, 0x96, 0xf3, 0x2b, 0xb9, 0x59, 0x4b, + 0x1f, 0xe3, 0xf3, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x34, 0x27, 0x5d, 0xbf, 0xe9, 0x04, 0x00, + 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -315,6 +409,8 @@ const _ = grpc.SupportPackageIsVersion4 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type ContainerAgentClient interface { Invoke(ctx context.Context, in *ContainerRequest, opts ...grpc.CallOption) (*ContainerResponse, error) + // Prechecks whether the system is able to create specified containers (but does not actually create them). + Precheck(ctx context.Context, in *ContainerPrecheckRequest, opts ...grpc.CallOption) (*ContainerPrecheckResponse, error) } type containerAgentClient struct { @@ -334,9 +430,20 @@ func (c *containerAgentClient) Invoke(ctx context.Context, in *ContainerRequest, return out, nil } +func (c *containerAgentClient) Precheck(ctx context.Context, in *ContainerPrecheckRequest, opts ...grpc.CallOption) (*ContainerPrecheckResponse, error) { + out := new(ContainerPrecheckResponse) + err := c.cc.Invoke(ctx, "/moc.cloudagent.storage.ContainerAgent/Precheck", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // ContainerAgentServer is the server API for ContainerAgent service. type ContainerAgentServer interface { Invoke(context.Context, *ContainerRequest) (*ContainerResponse, error) + // Prechecks whether the system is able to create specified containers (but does not actually create them). + Precheck(context.Context, *ContainerPrecheckRequest) (*ContainerPrecheckResponse, error) } // UnimplementedContainerAgentServer can be embedded to have forward compatible implementations. @@ -346,6 +453,9 @@ type UnimplementedContainerAgentServer struct { func (*UnimplementedContainerAgentServer) Invoke(ctx context.Context, req *ContainerRequest) (*ContainerResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Invoke not implemented") } +func (*UnimplementedContainerAgentServer) Precheck(ctx context.Context, req *ContainerPrecheckRequest) (*ContainerPrecheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Precheck not implemented") +} func RegisterContainerAgentServer(s *grpc.Server, srv ContainerAgentServer) { s.RegisterService(&_ContainerAgent_serviceDesc, srv) @@ -369,6 +479,24 @@ func _ContainerAgent_Invoke_Handler(srv interface{}, ctx context.Context, dec fu return interceptor(ctx, in, info, handler) } +func _ContainerAgent_Precheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ContainerPrecheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ContainerAgentServer).Precheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/moc.cloudagent.storage.ContainerAgent/Precheck", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ContainerAgentServer).Precheck(ctx, req.(*ContainerPrecheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _ContainerAgent_serviceDesc = grpc.ServiceDesc{ ServiceName: "moc.cloudagent.storage.ContainerAgent", HandlerType: (*ContainerAgentServer)(nil), @@ -377,6 +505,10 @@ var _ContainerAgent_serviceDesc = grpc.ServiceDesc{ MethodName: "Invoke", Handler: _ContainerAgent_Invoke_Handler, }, + { + MethodName: "Precheck", + Handler: _ContainerAgent_Precheck_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "moc_cloudagent_container.proto",