Merge pull request #7731 from mxpv/cri
[Sandbox API] CRI status cleanup
This commit is contained in:
		| @@ -974,6 +974,13 @@ file { | |||||||
|       type: TYPE_STRING |       type: TYPE_STRING | ||||||
|       json_name: "sandboxId" |       json_name: "sandboxId" | ||||||
|     } |     } | ||||||
|  |     field { | ||||||
|  |       name: "verbose" | ||||||
|  |       number: 2 | ||||||
|  |       label: LABEL_OPTIONAL | ||||||
|  |       type: TYPE_BOOL | ||||||
|  |       json_name: "verbose" | ||||||
|  |     } | ||||||
|   } |   } | ||||||
|   message_type { |   message_type { | ||||||
|     name: "SandboxStatusResponse" |     name: "SandboxStatusResponse" | ||||||
| @@ -999,15 +1006,24 @@ file { | |||||||
|       json_name: "state" |       json_name: "state" | ||||||
|     } |     } | ||||||
|     field { |     field { | ||||||
|       name: "exit_status" |       name: "info" | ||||||
|       number: 4 |       number: 4 | ||||||
|  |       label: LABEL_REPEATED | ||||||
|  |       type: TYPE_MESSAGE | ||||||
|  |       type_name: ".containerd.runtime.sandbox.v1.SandboxStatusResponse.InfoEntry" | ||||||
|  |       json_name: "info" | ||||||
|  |     } | ||||||
|  |     field { | ||||||
|  |       name: "created_at" | ||||||
|  |       number: 5 | ||||||
|       label: LABEL_OPTIONAL |       label: LABEL_OPTIONAL | ||||||
|       type: TYPE_UINT32 |       type: TYPE_MESSAGE | ||||||
|       json_name: "exitStatus" |       type_name: ".google.protobuf.Timestamp" | ||||||
|  |       json_name: "createdAt" | ||||||
|     } |     } | ||||||
|     field { |     field { | ||||||
|       name: "exited_at" |       name: "exited_at" | ||||||
|       number: 5 |       number: 6 | ||||||
|       label: LABEL_OPTIONAL |       label: LABEL_OPTIONAL | ||||||
|       type: TYPE_MESSAGE |       type: TYPE_MESSAGE | ||||||
|       type_name: ".google.protobuf.Timestamp" |       type_name: ".google.protobuf.Timestamp" | ||||||
| @@ -1015,12 +1031,32 @@ file { | |||||||
|     } |     } | ||||||
|     field { |     field { | ||||||
|       name: "extra" |       name: "extra" | ||||||
|       number: 6 |       number: 7 | ||||||
|       label: LABEL_OPTIONAL |       label: LABEL_OPTIONAL | ||||||
|       type: TYPE_MESSAGE |       type: TYPE_MESSAGE | ||||||
|       type_name: ".google.protobuf.Any" |       type_name: ".google.protobuf.Any" | ||||||
|       json_name: "extra" |       json_name: "extra" | ||||||
|     } |     } | ||||||
|  |     nested_type { | ||||||
|  |       name: "InfoEntry" | ||||||
|  |       field { | ||||||
|  |         name: "key" | ||||||
|  |         number: 1 | ||||||
|  |         label: LABEL_OPTIONAL | ||||||
|  |         type: TYPE_STRING | ||||||
|  |         json_name: "key" | ||||||
|  |       } | ||||||
|  |       field { | ||||||
|  |         name: "value" | ||||||
|  |         number: 2 | ||||||
|  |         label: LABEL_OPTIONAL | ||||||
|  |         type: TYPE_STRING | ||||||
|  |         json_name: "value" | ||||||
|  |       } | ||||||
|  |       options { | ||||||
|  |         map_entry: true | ||||||
|  |       } | ||||||
|  |     } | ||||||
|   } |   } | ||||||
|   message_type { |   message_type { | ||||||
|     name: "PingRequest" |     name: "PingRequest" | ||||||
| @@ -4331,6 +4367,13 @@ file { | |||||||
|       type: TYPE_STRING |       type: TYPE_STRING | ||||||
|       json_name: "sandboxId" |       json_name: "sandboxId" | ||||||
|     } |     } | ||||||
|  |     field { | ||||||
|  |       name: "verbose" | ||||||
|  |       number: 2 | ||||||
|  |       label: LABEL_OPTIONAL | ||||||
|  |       type: TYPE_BOOL | ||||||
|  |       json_name: "verbose" | ||||||
|  |     } | ||||||
|   } |   } | ||||||
|   message_type { |   message_type { | ||||||
|     name: "ControllerStatusResponse" |     name: "ControllerStatusResponse" | ||||||
| @@ -4356,15 +4399,24 @@ file { | |||||||
|       json_name: "state" |       json_name: "state" | ||||||
|     } |     } | ||||||
|     field { |     field { | ||||||
|       name: "exit_status" |       name: "info" | ||||||
|       number: 4 |       number: 4 | ||||||
|  |       label: LABEL_REPEATED | ||||||
|  |       type: TYPE_MESSAGE | ||||||
|  |       type_name: ".containerd.services.sandbox.v1.ControllerStatusResponse.InfoEntry" | ||||||
|  |       json_name: "info" | ||||||
|  |     } | ||||||
|  |     field { | ||||||
|  |       name: "created_at" | ||||||
|  |       number: 5 | ||||||
|       label: LABEL_OPTIONAL |       label: LABEL_OPTIONAL | ||||||
|       type: TYPE_UINT32 |       type: TYPE_MESSAGE | ||||||
|       json_name: "exitStatus" |       type_name: ".google.protobuf.Timestamp" | ||||||
|  |       json_name: "createdAt" | ||||||
|     } |     } | ||||||
|     field { |     field { | ||||||
|       name: "exited_at" |       name: "exited_at" | ||||||
|       number: 5 |       number: 6 | ||||||
|       label: LABEL_OPTIONAL |       label: LABEL_OPTIONAL | ||||||
|       type: TYPE_MESSAGE |       type: TYPE_MESSAGE | ||||||
|       type_name: ".google.protobuf.Timestamp" |       type_name: ".google.protobuf.Timestamp" | ||||||
| @@ -4372,12 +4424,32 @@ file { | |||||||
|     } |     } | ||||||
|     field { |     field { | ||||||
|       name: "extra" |       name: "extra" | ||||||
|       number: 6 |       number: 7 | ||||||
|       label: LABEL_OPTIONAL |       label: LABEL_OPTIONAL | ||||||
|       type: TYPE_MESSAGE |       type: TYPE_MESSAGE | ||||||
|       type_name: ".google.protobuf.Any" |       type_name: ".google.protobuf.Any" | ||||||
|       json_name: "extra" |       json_name: "extra" | ||||||
|     } |     } | ||||||
|  |     nested_type { | ||||||
|  |       name: "InfoEntry" | ||||||
|  |       field { | ||||||
|  |         name: "key" | ||||||
|  |         number: 1 | ||||||
|  |         label: LABEL_OPTIONAL | ||||||
|  |         type: TYPE_STRING | ||||||
|  |         json_name: "key" | ||||||
|  |       } | ||||||
|  |       field { | ||||||
|  |         name: "value" | ||||||
|  |         number: 2 | ||||||
|  |         label: LABEL_OPTIONAL | ||||||
|  |         type: TYPE_STRING | ||||||
|  |         json_name: "value" | ||||||
|  |       } | ||||||
|  |       options { | ||||||
|  |         map_entry: true | ||||||
|  |       } | ||||||
|  |     } | ||||||
|   } |   } | ||||||
|   message_type { |   message_type { | ||||||
|     name: "ControllerDeleteRequest" |     name: "ControllerDeleteRequest" | ||||||
|   | |||||||
| @@ -551,6 +551,7 @@ type SandboxStatusRequest struct { | |||||||
| 	unknownFields protoimpl.UnknownFields | 	unknownFields protoimpl.UnknownFields | ||||||
|  |  | ||||||
| 	SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"` | 	SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"` | ||||||
|  | 	Verbose   bool   `protobuf:"varint,2,opt,name=verbose,proto3" json:"verbose,omitempty"` | ||||||
| } | } | ||||||
|  |  | ||||||
| func (x *SandboxStatusRequest) Reset() { | func (x *SandboxStatusRequest) Reset() { | ||||||
| @@ -592,17 +593,25 @@ func (x *SandboxStatusRequest) GetSandboxID() string { | |||||||
| 	return "" | 	return "" | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func (x *SandboxStatusRequest) GetVerbose() bool { | ||||||
|  | 	if x != nil { | ||||||
|  | 		return x.Verbose | ||||||
|  | 	} | ||||||
|  | 	return false | ||||||
|  | } | ||||||
|  |  | ||||||
| type SandboxStatusResponse struct { | type SandboxStatusResponse struct { | ||||||
| 	state         protoimpl.MessageState | 	state         protoimpl.MessageState | ||||||
| 	sizeCache     protoimpl.SizeCache | 	sizeCache     protoimpl.SizeCache | ||||||
| 	unknownFields protoimpl.UnknownFields | 	unknownFields protoimpl.UnknownFields | ||||||
|  |  | ||||||
| 	ID         string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` | 	ID        string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` | ||||||
| 	Pid        uint32                 `protobuf:"varint,2,opt,name=pid,proto3" json:"pid,omitempty"` | 	Pid       uint32                 `protobuf:"varint,2,opt,name=pid,proto3" json:"pid,omitempty"` | ||||||
| 	State      string                 `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` | 	State     string                 `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` | ||||||
| 	ExitStatus uint32                 `protobuf:"varint,4,opt,name=exit_status,json=exitStatus,proto3" json:"exit_status,omitempty"` | 	Info      map[string]string      `protobuf:"bytes,4,rep,name=info,proto3" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` | ||||||
| 	ExitedAt   *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=exited_at,json=exitedAt,proto3" json:"exited_at,omitempty"` | 	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` | ||||||
| 	Extra      *anypb.Any             `protobuf:"bytes,6,opt,name=extra,proto3" json:"extra,omitempty"` | 	ExitedAt  *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=exited_at,json=exitedAt,proto3" json:"exited_at,omitempty"` | ||||||
|  | 	Extra     *anypb.Any             `protobuf:"bytes,7,opt,name=extra,proto3" json:"extra,omitempty"` | ||||||
| } | } | ||||||
|  |  | ||||||
| func (x *SandboxStatusResponse) Reset() { | func (x *SandboxStatusResponse) Reset() { | ||||||
| @@ -658,11 +667,18 @@ func (x *SandboxStatusResponse) GetState() string { | |||||||
| 	return "" | 	return "" | ||||||
| } | } | ||||||
|  |  | ||||||
| func (x *SandboxStatusResponse) GetExitStatus() uint32 { | func (x *SandboxStatusResponse) GetInfo() map[string]string { | ||||||
| 	if x != nil { | 	if x != nil { | ||||||
| 		return x.ExitStatus | 		return x.Info | ||||||
| 	} | 	} | ||||||
| 	return 0 | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (x *SandboxStatusResponse) GetCreatedAt() *timestamppb.Timestamp { | ||||||
|  | 	if x != nil { | ||||||
|  | 		return x.CreatedAt | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
| func (x *SandboxStatusResponse) GetExitedAt() *timestamppb.Timestamp { | func (x *SandboxStatusResponse) GetExitedAt() *timestamppb.Timestamp { | ||||||
| @@ -839,78 +855,90 @@ var file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_r | |||||||
| 	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, | 	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, | ||||||
| 	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x41, | 	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x41, | ||||||
| 	0x74, 0x22, 0x17, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, | 	0x74, 0x22, 0x17, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, | ||||||
| 	0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x0a, 0x14, 0x53, 0x61, | 	0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4f, 0x0a, 0x14, 0x53, 0x61, | ||||||
| 	0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, | 	0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, | ||||||
| 	0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, | 	0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, | ||||||
| 	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, | 	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, | ||||||
| 	0x64, 0x22, 0xd5, 0x01, 0x0a, 0x15, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, | 	0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, | ||||||
| 	0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, | 	0x28, 0x08, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x22, 0xfc, 0x02, 0x0a, 0x15, | ||||||
| 	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, | 	0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, | ||||||
| 	0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x14, 0x0a, | 	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, | ||||||
| 	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, | 	0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, | ||||||
| 	0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, | 	0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, | ||||||
| 	0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x69, 0x74, 0x53, 0x74, | 	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, | ||||||
| 	0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x61, | 	0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x63, 0x6f, | ||||||
| 	0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |  | ||||||
| 	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, |  | ||||||
| 	0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2a, 0x0a, |  | ||||||
| 	0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, |  | ||||||
| 	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, |  | ||||||
| 	0x6e, 0x79, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0x2c, 0x0a, 0x0b, 0x50, 0x69, 0x6e, |  | ||||||
| 	0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, |  | ||||||
| 	0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, |  | ||||||
| 	0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x22, 0x0e, 0x0a, 0x0c, 0x50, 0x69, 0x6e, 0x67, 0x52, |  | ||||||
| 	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xce, 0x05, 0x0a, 0x07, 0x53, 0x61, 0x6e, 0x64, |  | ||||||
| 	0x62, 0x6f, 0x78, 0x12, 0x7a, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, |  | ||||||
| 	0x64, 0x62, 0x6f, 0x78, 0x12, 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, |  | ||||||
| 	0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, |  | ||||||
| 	0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, |  | ||||||
| 	0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x74, |  | ||||||
| 	0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, |  | ||||||
| 	0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, |  | ||||||
| 	0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, |  | ||||||
| 	0x77, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, |  | ||||||
| 	0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, |  | ||||||
| 	0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, |  | ||||||
| 	0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, |  | ||||||
| 	0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, |  | ||||||
| 	0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, |  | ||||||
| 	0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, |  | ||||||
| 	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x0b, 0x53, 0x74, 0x6f, 0x70, |  | ||||||
| 	0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, |  | ||||||
| 	0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, |  | ||||||
| 	0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x61, 0x6e, 0x64, |  | ||||||
| 	0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x6e, |  | ||||||
| 	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, |  | ||||||
| 	0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x53, |  | ||||||
| 	0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, |  | ||||||
| 	0x0a, 0x0b, 0x57, 0x61, 0x69, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x31, 0x2e, |  | ||||||
| 	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, |  | ||||||
| 	0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x61, |  | ||||||
| 	0x69, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, |  | ||||||
| 	0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, |  | ||||||
| 	0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, |  | ||||||
| 	0x2e, 0x57, 0x61, 0x69, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, |  | ||||||
| 	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x0d, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, |  | ||||||
| 	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, |  | ||||||
| 	0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, |  | ||||||
| 	0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, |  | ||||||
| 	0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x6e, |  | ||||||
| 	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, |  | ||||||
| 	0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, |  | ||||||
| 	0x6f, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, |  | ||||||
| 	0x12, 0x66, 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, |  | ||||||
| 	0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, |  | ||||||
| 	0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, |  | ||||||
| 	0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, |  | ||||||
| 	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, | 	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, | ||||||
| 	0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, | 	0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x6e, 0x64, | ||||||
| 	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x41, 0x5a, 0x3f, 0x67, 0x69, 0x74, 0x68, | 	0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, | ||||||
| 	0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, | 	0x65, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x69, 0x6e, 0x66, | ||||||
| 	0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, | 	0x6f, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, | ||||||
| 	0x2f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, | 	0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, | ||||||
| 	0x2f, 0x76, 0x31, 0x3b, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x62, 0x06, 0x70, 0x72, 0x6f, | 	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, | ||||||
| 	0x74, 0x6f, 0x33, | 	0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x09, | ||||||
|  | 	0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, | ||||||
|  | 	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, | ||||||
|  | 	0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x78, 0x69, | ||||||
|  | 	0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x07, | ||||||
|  | 	0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, | ||||||
|  | 	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, | ||||||
|  | 	0x61, 0x1a, 0x37, 0x0a, 0x09, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, | ||||||
|  | 	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, | ||||||
|  | 	0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, | ||||||
|  | 	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2c, 0x0a, 0x0b, 0x50, 0x69, | ||||||
|  | 	0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, | ||||||
|  | 	0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, | ||||||
|  | 	0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x22, 0x0e, 0x0a, 0x0c, 0x50, 0x69, 0x6e, 0x67, | ||||||
|  | 	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xce, 0x05, 0x0a, 0x07, 0x53, 0x61, 0x6e, | ||||||
|  | 	0x64, 0x62, 0x6f, 0x78, 0x12, 0x7a, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, | ||||||
|  | 	0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, | ||||||
|  | 	0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, | ||||||
|  | 	0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, | ||||||
|  | 	0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x6e, | ||||||
|  | 	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, | ||||||
|  | 	0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, | ||||||
|  | 	0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, | ||||||
|  | 	0x12, 0x77, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, | ||||||
|  | 	0x12, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, | ||||||
|  | 	0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, | ||||||
|  | 	0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, | ||||||
|  | 	0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, | ||||||
|  | 	0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, | ||||||
|  | 	0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, | ||||||
|  | 	0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x0b, 0x53, 0x74, 0x6f, | ||||||
|  | 	0x70, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, | ||||||
|  | 	0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, | ||||||
|  | 	0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x61, 0x6e, | ||||||
|  | 	0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x6f, | ||||||
|  | 	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, | ||||||
|  | 	0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, | ||||||
|  | 	0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, | ||||||
|  | 	0x74, 0x0a, 0x0b, 0x57, 0x61, 0x69, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x31, | ||||||
|  | 	0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, | ||||||
|  | 	0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x57, | ||||||
|  | 	0x61, 0x69, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, | ||||||
|  | 	0x74, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, | ||||||
|  | 	0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, | ||||||
|  | 	0x31, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, | ||||||
|  | 	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x0d, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, | ||||||
|  | 	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, | ||||||
|  | 	0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, | ||||||
|  | 	0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, | ||||||
|  | 	0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x6f, | ||||||
|  | 	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, | ||||||
|  | 	0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x6e, 0x64, | ||||||
|  | 	0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, | ||||||
|  | 	0x65, 0x12, 0x66, 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, | ||||||
|  | 	0x12, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, | ||||||
|  | 	0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, | ||||||
|  | 	0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, | ||||||
|  | 	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, | ||||||
|  | 	0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, | ||||||
|  | 	0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x41, 0x5a, 0x3f, 0x67, 0x69, 0x74, | ||||||
|  | 	0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, | ||||||
|  | 	0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, | ||||||
|  | 	0x69, 0x2f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, | ||||||
|  | 	0x78, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x62, 0x06, 0x70, 0x72, | ||||||
|  | 	0x6f, 0x74, 0x6f, 0x33, | ||||||
| } | } | ||||||
|  |  | ||||||
| var ( | var ( | ||||||
| @@ -925,7 +953,7 @@ func file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_ | |||||||
| 	return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescData | 	return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescData | ||||||
| } | } | ||||||
|  |  | ||||||
| var file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes = make([]protoimpl.MessageInfo, 15) | var file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes = make([]protoimpl.MessageInfo, 16) | ||||||
| var file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_goTypes = []interface{}{ | var file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_goTypes = []interface{}{ | ||||||
| 	(*CreateSandboxRequest)(nil),  // 0: containerd.runtime.sandbox.v1.CreateSandboxRequest | 	(*CreateSandboxRequest)(nil),  // 0: containerd.runtime.sandbox.v1.CreateSandboxRequest | ||||||
| 	(*CreateSandboxResponse)(nil), // 1: containerd.runtime.sandbox.v1.CreateSandboxResponse | 	(*CreateSandboxResponse)(nil), // 1: containerd.runtime.sandbox.v1.CreateSandboxResponse | ||||||
| @@ -942,36 +970,39 @@ var file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_g | |||||||
| 	(*PingRequest)(nil),           // 12: containerd.runtime.sandbox.v1.PingRequest | 	(*PingRequest)(nil),           // 12: containerd.runtime.sandbox.v1.PingRequest | ||||||
| 	(*PingResponse)(nil),          // 13: containerd.runtime.sandbox.v1.PingResponse | 	(*PingResponse)(nil),          // 13: containerd.runtime.sandbox.v1.PingResponse | ||||||
| 	nil,                           // 14: containerd.runtime.sandbox.v1.UpdateSandboxRequest.AnnotationsEntry | 	nil,                           // 14: containerd.runtime.sandbox.v1.UpdateSandboxRequest.AnnotationsEntry | ||||||
| 	(*types.Mount)(nil),           // 15: containerd.types.Mount | 	nil,                           // 15: containerd.runtime.sandbox.v1.SandboxStatusResponse.InfoEntry | ||||||
| 	(*anypb.Any)(nil),             // 16: google.protobuf.Any | 	(*types.Mount)(nil),           // 16: containerd.types.Mount | ||||||
| 	(*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp | 	(*anypb.Any)(nil),             // 17: google.protobuf.Any | ||||||
|  | 	(*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp | ||||||
| } | } | ||||||
| var file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_depIdxs = []int32{ | var file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_depIdxs = []int32{ | ||||||
| 	15, // 0: containerd.runtime.sandbox.v1.CreateSandboxRequest.rootfs:type_name -> containerd.types.Mount | 	16, // 0: containerd.runtime.sandbox.v1.CreateSandboxRequest.rootfs:type_name -> containerd.types.Mount | ||||||
| 	16, // 1: containerd.runtime.sandbox.v1.CreateSandboxRequest.options:type_name -> google.protobuf.Any | 	17, // 1: containerd.runtime.sandbox.v1.CreateSandboxRequest.options:type_name -> google.protobuf.Any | ||||||
| 	17, // 2: containerd.runtime.sandbox.v1.StartSandboxResponse.created_at:type_name -> google.protobuf.Timestamp | 	18, // 2: containerd.runtime.sandbox.v1.StartSandboxResponse.created_at:type_name -> google.protobuf.Timestamp | ||||||
| 	16, // 3: containerd.runtime.sandbox.v1.UpdateSandboxRequest.resources:type_name -> google.protobuf.Any | 	17, // 3: containerd.runtime.sandbox.v1.UpdateSandboxRequest.resources:type_name -> google.protobuf.Any | ||||||
| 	14, // 4: containerd.runtime.sandbox.v1.UpdateSandboxRequest.annotations:type_name -> containerd.runtime.sandbox.v1.UpdateSandboxRequest.AnnotationsEntry | 	14, // 4: containerd.runtime.sandbox.v1.UpdateSandboxRequest.annotations:type_name -> containerd.runtime.sandbox.v1.UpdateSandboxRequest.AnnotationsEntry | ||||||
| 	17, // 5: containerd.runtime.sandbox.v1.WaitSandboxResponse.exited_at:type_name -> google.protobuf.Timestamp | 	18, // 5: containerd.runtime.sandbox.v1.WaitSandboxResponse.exited_at:type_name -> google.protobuf.Timestamp | ||||||
| 	17, // 6: containerd.runtime.sandbox.v1.SandboxStatusResponse.exited_at:type_name -> google.protobuf.Timestamp | 	15, // 6: containerd.runtime.sandbox.v1.SandboxStatusResponse.info:type_name -> containerd.runtime.sandbox.v1.SandboxStatusResponse.InfoEntry | ||||||
| 	16, // 7: containerd.runtime.sandbox.v1.SandboxStatusResponse.extra:type_name -> google.protobuf.Any | 	18, // 7: containerd.runtime.sandbox.v1.SandboxStatusResponse.created_at:type_name -> google.protobuf.Timestamp | ||||||
| 	0,  // 8: containerd.runtime.sandbox.v1.Sandbox.CreateSandbox:input_type -> containerd.runtime.sandbox.v1.CreateSandboxRequest | 	18, // 8: containerd.runtime.sandbox.v1.SandboxStatusResponse.exited_at:type_name -> google.protobuf.Timestamp | ||||||
| 	2,  // 9: containerd.runtime.sandbox.v1.Sandbox.StartSandbox:input_type -> containerd.runtime.sandbox.v1.StartSandboxRequest | 	17, // 9: containerd.runtime.sandbox.v1.SandboxStatusResponse.extra:type_name -> google.protobuf.Any | ||||||
| 	4,  // 10: containerd.runtime.sandbox.v1.Sandbox.StopSandbox:input_type -> containerd.runtime.sandbox.v1.StopSandboxRequest | 	0,  // 10: containerd.runtime.sandbox.v1.Sandbox.CreateSandbox:input_type -> containerd.runtime.sandbox.v1.CreateSandboxRequest | ||||||
| 	7,  // 11: containerd.runtime.sandbox.v1.Sandbox.WaitSandbox:input_type -> containerd.runtime.sandbox.v1.WaitSandboxRequest | 	2,  // 11: containerd.runtime.sandbox.v1.Sandbox.StartSandbox:input_type -> containerd.runtime.sandbox.v1.StartSandboxRequest | ||||||
| 	10, // 12: containerd.runtime.sandbox.v1.Sandbox.SandboxStatus:input_type -> containerd.runtime.sandbox.v1.SandboxStatusRequest | 	4,  // 12: containerd.runtime.sandbox.v1.Sandbox.StopSandbox:input_type -> containerd.runtime.sandbox.v1.StopSandboxRequest | ||||||
| 	12, // 13: containerd.runtime.sandbox.v1.Sandbox.PingSandbox:input_type -> containerd.runtime.sandbox.v1.PingRequest | 	7,  // 13: containerd.runtime.sandbox.v1.Sandbox.WaitSandbox:input_type -> containerd.runtime.sandbox.v1.WaitSandboxRequest | ||||||
| 	1,  // 14: containerd.runtime.sandbox.v1.Sandbox.CreateSandbox:output_type -> containerd.runtime.sandbox.v1.CreateSandboxResponse | 	10, // 14: containerd.runtime.sandbox.v1.Sandbox.SandboxStatus:input_type -> containerd.runtime.sandbox.v1.SandboxStatusRequest | ||||||
| 	3,  // 15: containerd.runtime.sandbox.v1.Sandbox.StartSandbox:output_type -> containerd.runtime.sandbox.v1.StartSandboxResponse | 	12, // 15: containerd.runtime.sandbox.v1.Sandbox.PingSandbox:input_type -> containerd.runtime.sandbox.v1.PingRequest | ||||||
| 	5,  // 16: containerd.runtime.sandbox.v1.Sandbox.StopSandbox:output_type -> containerd.runtime.sandbox.v1.StopSandboxResponse | 	1,  // 16: containerd.runtime.sandbox.v1.Sandbox.CreateSandbox:output_type -> containerd.runtime.sandbox.v1.CreateSandboxResponse | ||||||
| 	8,  // 17: containerd.runtime.sandbox.v1.Sandbox.WaitSandbox:output_type -> containerd.runtime.sandbox.v1.WaitSandboxResponse | 	3,  // 17: containerd.runtime.sandbox.v1.Sandbox.StartSandbox:output_type -> containerd.runtime.sandbox.v1.StartSandboxResponse | ||||||
| 	11, // 18: containerd.runtime.sandbox.v1.Sandbox.SandboxStatus:output_type -> containerd.runtime.sandbox.v1.SandboxStatusResponse | 	5,  // 18: containerd.runtime.sandbox.v1.Sandbox.StopSandbox:output_type -> containerd.runtime.sandbox.v1.StopSandboxResponse | ||||||
| 	13, // 19: containerd.runtime.sandbox.v1.Sandbox.PingSandbox:output_type -> containerd.runtime.sandbox.v1.PingResponse | 	8,  // 19: containerd.runtime.sandbox.v1.Sandbox.WaitSandbox:output_type -> containerd.runtime.sandbox.v1.WaitSandboxResponse | ||||||
| 	14, // [14:20] is the sub-list for method output_type | 	11, // 20: containerd.runtime.sandbox.v1.Sandbox.SandboxStatus:output_type -> containerd.runtime.sandbox.v1.SandboxStatusResponse | ||||||
| 	8,  // [8:14] is the sub-list for method input_type | 	13, // 21: containerd.runtime.sandbox.v1.Sandbox.PingSandbox:output_type -> containerd.runtime.sandbox.v1.PingResponse | ||||||
| 	8,  // [8:8] is the sub-list for extension type_name | 	16, // [16:22] is the sub-list for method output_type | ||||||
| 	8,  // [8:8] is the sub-list for extension extendee | 	10, // [10:16] is the sub-list for method input_type | ||||||
| 	0,  // [0:8] is the sub-list for field type_name | 	10, // [10:10] is the sub-list for extension type_name | ||||||
|  | 	10, // [10:10] is the sub-list for extension extendee | ||||||
|  | 	0,  // [0:10] is the sub-list for field type_name | ||||||
| } | } | ||||||
|  |  | ||||||
| func init() { file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_init() } | func init() { file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_init() } | ||||||
| @@ -1155,7 +1186,7 @@ func file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_ | |||||||
| 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(), | 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(), | ||||||
| 			RawDescriptor: file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDesc, | 			RawDescriptor: file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDesc, | ||||||
| 			NumEnums:      0, | 			NumEnums:      0, | ||||||
| 			NumMessages:   15, | 			NumMessages:   16, | ||||||
| 			NumExtensions: 0, | 			NumExtensions: 0, | ||||||
| 			NumServices:   1, | 			NumServices:   1, | ||||||
| 		}, | 		}, | ||||||
|   | |||||||
| @@ -93,15 +93,17 @@ message UpdateSandboxResponse {} | |||||||
|  |  | ||||||
| message SandboxStatusRequest { | message SandboxStatusRequest { | ||||||
| 	string sandbox_id = 1; | 	string sandbox_id = 1; | ||||||
|  | 	bool verbose = 2; | ||||||
| } | } | ||||||
|  |  | ||||||
| message SandboxStatusResponse { | message SandboxStatusResponse { | ||||||
| 	string id = 1; | 	string id = 1; | ||||||
| 	uint32 pid = 2; | 	uint32 pid = 2; | ||||||
| 	string state = 3; | 	string state = 3; | ||||||
| 	uint32 exit_status = 4; | 	map<string, string> info = 4; | ||||||
| 	google.protobuf.Timestamp exited_at = 5; | 	google.protobuf.Timestamp created_at = 5; | ||||||
| 	google.protobuf.Any extra = 6; | 	google.protobuf.Timestamp exited_at = 6; | ||||||
|  | 	google.protobuf.Any extra = 7; | ||||||
| } | } | ||||||
|  |  | ||||||
| message PingRequest { | message PingRequest { | ||||||
|   | |||||||
| @@ -944,6 +944,7 @@ type ControllerStatusRequest struct { | |||||||
| 	unknownFields protoimpl.UnknownFields | 	unknownFields protoimpl.UnknownFields | ||||||
|  |  | ||||||
| 	SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"` | 	SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"` | ||||||
|  | 	Verbose   bool   `protobuf:"varint,2,opt,name=verbose,proto3" json:"verbose,omitempty"` | ||||||
| } | } | ||||||
|  |  | ||||||
| func (x *ControllerStatusRequest) Reset() { | func (x *ControllerStatusRequest) Reset() { | ||||||
| @@ -985,17 +986,25 @@ func (x *ControllerStatusRequest) GetSandboxID() string { | |||||||
| 	return "" | 	return "" | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func (x *ControllerStatusRequest) GetVerbose() bool { | ||||||
|  | 	if x != nil { | ||||||
|  | 		return x.Verbose | ||||||
|  | 	} | ||||||
|  | 	return false | ||||||
|  | } | ||||||
|  |  | ||||||
| type ControllerStatusResponse struct { | type ControllerStatusResponse struct { | ||||||
| 	state         protoimpl.MessageState | 	state         protoimpl.MessageState | ||||||
| 	sizeCache     protoimpl.SizeCache | 	sizeCache     protoimpl.SizeCache | ||||||
| 	unknownFields protoimpl.UnknownFields | 	unknownFields protoimpl.UnknownFields | ||||||
|  |  | ||||||
| 	ID         string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` | 	ID        string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` | ||||||
| 	Pid        uint32                 `protobuf:"varint,2,opt,name=pid,proto3" json:"pid,omitempty"` | 	Pid       uint32                 `protobuf:"varint,2,opt,name=pid,proto3" json:"pid,omitempty"` | ||||||
| 	State      string                 `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` | 	State     string                 `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` | ||||||
| 	ExitStatus uint32                 `protobuf:"varint,4,opt,name=exit_status,json=exitStatus,proto3" json:"exit_status,omitempty"` | 	Info      map[string]string      `protobuf:"bytes,4,rep,name=info,proto3" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` | ||||||
| 	ExitedAt   *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=exited_at,json=exitedAt,proto3" json:"exited_at,omitempty"` | 	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` | ||||||
| 	Extra      *anypb.Any             `protobuf:"bytes,6,opt,name=extra,proto3" json:"extra,omitempty"` | 	ExitedAt  *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=exited_at,json=exitedAt,proto3" json:"exited_at,omitempty"` | ||||||
|  | 	Extra     *anypb.Any             `protobuf:"bytes,7,opt,name=extra,proto3" json:"extra,omitempty"` | ||||||
| } | } | ||||||
|  |  | ||||||
| func (x *ControllerStatusResponse) Reset() { | func (x *ControllerStatusResponse) Reset() { | ||||||
| @@ -1051,11 +1060,18 @@ func (x *ControllerStatusResponse) GetState() string { | |||||||
| 	return "" | 	return "" | ||||||
| } | } | ||||||
|  |  | ||||||
| func (x *ControllerStatusResponse) GetExitStatus() uint32 { | func (x *ControllerStatusResponse) GetInfo() map[string]string { | ||||||
| 	if x != nil { | 	if x != nil { | ||||||
| 		return x.ExitStatus | 		return x.Info | ||||||
| 	} | 	} | ||||||
| 	return 0 | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (x *ControllerStatusResponse) GetCreatedAt() *timestamppb.Timestamp { | ||||||
|  | 	if x != nil { | ||||||
|  | 		return x.CreatedAt | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
| func (x *ControllerStatusResponse) GetExitedAt() *timestamppb.Timestamp { | func (x *ControllerStatusResponse) GetExitedAt() *timestamppb.Timestamp { | ||||||
| @@ -1270,117 +1286,129 @@ var file_github_com_containerd_containerd_api_services_sandbox_v1_sandbox_proto_ | |||||||
| 	0x09, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, | 	0x09, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, | ||||||
| 	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, | 	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, | ||||||
| 	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x78, | 	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x78, | ||||||
| 	0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x38, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, | 	0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x52, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, | ||||||
| 	0x6c, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, | 	0x6c, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, | ||||||
| 	0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, | 	0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, | ||||||
| 	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, | 	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, | ||||||
| 	0x22, 0xd8, 0x01, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, | 	0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, | ||||||
| 	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, | 	0x08, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x22, 0x83, 0x03, 0x0a, 0x18, 0x43, | ||||||
| 	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, | 	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, | ||||||
| 	0x03, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, | 	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, | ||||||
| 	0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, | 	0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x02, | ||||||
| 	0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x73, 0x74, | 	0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, | ||||||
| 	0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x69, 0x74, | 	0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, | ||||||
| 	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, | 	0x56, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, | ||||||
| 	0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |  | ||||||
| 	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, |  | ||||||
| 	0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, |  | ||||||
| 	0x2a, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, |  | ||||||
| 	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, |  | ||||||
| 	0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0x38, 0x0a, 0x17, 0x43, |  | ||||||
| 	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, |  | ||||||
| 	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, |  | ||||||
| 	0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, |  | ||||||
| 	0x62, 0x6f, 0x78, 0x49, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, |  | ||||||
| 	0x6c, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, |  | ||||||
| 	0x65, 0x32, 0xb7, 0x04, 0x0a, 0x05, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x71, 0x0a, 0x06, 0x43, |  | ||||||
| 	0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, |  | ||||||
| 	0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, |  | ||||||
| 	0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x72, 0x65, 0x61, |  | ||||||
| 	0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x74, |  | ||||||
| 	0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, |  | ||||||
| 	0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, |  | ||||||
| 	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, |  | ||||||
| 	0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, |  | ||||||
| 	0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, |  | ||||||
| 	0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x55, |  | ||||||
| 	0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, |  | ||||||
| 	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, |  | ||||||
| 	0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, |  | ||||||
| 	0x6f, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, |  | ||||||
| 	0x65, 0x12, 0x71, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x63, 0x6f, |  | ||||||
| 	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, |  | ||||||
| 	0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, |  | ||||||
| 	0x72, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, |  | ||||||
| 	0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, |  | ||||||
| 	0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, |  | ||||||
| 	0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, |  | ||||||
| 	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x2e, 0x63, |  | ||||||
| 	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, |  | ||||||
| 	0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, |  | ||||||
| 	0x6f, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, |  | ||||||
| 	0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, |  | ||||||
| 	0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, |  | ||||||
| 	0x53, 0x74, 0x6f, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, |  | ||||||
| 	0x65, 0x12, 0x68, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x2f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, |  | ||||||
| 	0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, |  | ||||||
| 	0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x47, |  | ||||||
| 	0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x6f, 0x6e, 0x74, |  | ||||||
| 	0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, |  | ||||||
| 	0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, |  | ||||||
| 	0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xeb, 0x05, 0x0a, 0x0a, |  | ||||||
| 	0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x7b, 0x0a, 0x06, 0x43, 0x72, |  | ||||||
| 	0x65, 0x61, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, |  | ||||||
| 	0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, |  | ||||||
| 	0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, |  | ||||||
| 	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, |  | ||||||
| 	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, | 	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, | ||||||
| 	0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, | 	0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, | ||||||
| 	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, | 	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, | ||||||
| 	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, | 	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, | ||||||
| 	0x12, 0x36, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, | 	0x79, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, | ||||||
|  | 	0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, | ||||||
|  | 	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, | ||||||
|  | 	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, | ||||||
|  | 	0x41, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, | ||||||
|  | 	0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, | ||||||
|  | 	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, | ||||||
|  | 	0x70, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x65, | ||||||
|  | 	0x78, 0x74, 0x72, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, | ||||||
|  | 	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, | ||||||
|  | 	0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x49, 0x6e, 0x66, 0x6f, 0x45, | ||||||
|  | 	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, | ||||||
|  | 	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, | ||||||
|  | 	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, | ||||||
|  | 	0x22, 0x38, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x44, 0x65, | ||||||
|  | 	0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, | ||||||
|  | 	0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, | ||||||
|  | 	0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x43, 0x6f, | ||||||
|  | 	0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, | ||||||
|  | 	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xb7, 0x04, 0x0a, 0x05, 0x53, 0x74, 0x6f, 0x72, 0x65, | ||||||
|  | 	0x12, 0x71, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x6e, | ||||||
|  | 	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, | ||||||
|  | 	0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, | ||||||
|  | 	0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, | ||||||
|  | 	0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, | ||||||
|  | 	0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, | ||||||
|  | 	0x53, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, | ||||||
|  | 	0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x32, 0x2e, | ||||||
|  | 	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, | ||||||
|  | 	0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, | ||||||
|  | 	0x74, 0x6f, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, | ||||||
|  | 	0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, | ||||||
|  | 	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, | ||||||
|  | 	0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, | ||||||
|  | 	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, | ||||||
|  | 	0x12, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, | ||||||
| 	0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, | 	0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, | ||||||
| 	0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, | 	0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, | ||||||
| 	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, | 	0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, | ||||||
| 	0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, | 	0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, | ||||||
| 	0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, | 	0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, | ||||||
| 	0x6c, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, | 	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x04, 0x4c, 0x69, 0x73, | ||||||
| 	0x65, 0x12, 0x75, 0x0a, 0x04, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x35, 0x2e, 0x63, 0x6f, 0x6e, 0x74, | 	0x74, 0x12, 0x30, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, | ||||||
|  | 	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, | ||||||
|  | 	0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, | ||||||
|  | 	0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, | ||||||
|  | 	0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, | ||||||
|  | 	0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, | ||||||
|  | 	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x2f, 0x2e, | ||||||
|  | 	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, | ||||||
|  | 	0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, | ||||||
|  | 	0x74, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, | ||||||
|  | 	0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, | ||||||
|  | 	0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, | ||||||
|  | 	0x53, 0x74, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, | ||||||
|  | 	0x32, 0xeb, 0x05, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, | ||||||
|  | 	0x7b, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x6e, 0x74, | ||||||
| 	0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, | 	0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, | ||||||
| 	0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, | 	0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, | ||||||
| 	0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, | 	0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, | ||||||
| 	0x1a, 0x36, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, |  | ||||||
| 	0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, |  | ||||||
| 	0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x70, |  | ||||||
| 	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x04, 0x57, 0x61, 0x69, 0x74, |  | ||||||
| 	0x12, 0x35, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, |  | ||||||
| 	0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, |  | ||||||
| 	0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x57, 0x61, 0x69, 0x74, |  | ||||||
| 	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, |  | ||||||
| 	0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, |  | ||||||
| 	0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, |  | ||||||
| 	0x6c, 0x65, 0x72, 0x57, 0x61, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, |  | ||||||
| 	0x7b, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x6e, 0x74, |  | ||||||
| 	0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, |  | ||||||
| 	0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, |  | ||||||
| 	0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, |  | ||||||
| 	0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, | 	0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, | ||||||
| 	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, | 	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, | ||||||
| 	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x74, | 	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x43, 0x72, | ||||||
| 	0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x06, | 	0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x05, | ||||||
| 	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, | 	0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x36, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, | ||||||
| 	0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, | 	0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, | ||||||
| 	0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, | 	0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, | ||||||
| 	0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, | 	0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, | ||||||
| 	0x38, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, | 	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, | ||||||
| 	0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, | 	0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, | ||||||
| 	0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, | 	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, | ||||||
| 	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x42, 0x5a, 0x40, 0x67, 0x69, 0x74, | 	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x04, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x35, | ||||||
| 	0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, | 	0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, | ||||||
| 	0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, | 	0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, | ||||||
| 	0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x61, 0x6e, 0x64, 0x62, | 	0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, | ||||||
| 	0x6f, 0x78, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x62, 0x06, 0x70, | 	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, | ||||||
| 	0x72, 0x6f, 0x74, 0x6f, 0x33, | 	0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, | ||||||
|  | 	0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, | ||||||
|  | 	0x72, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, | ||||||
|  | 	0x04, 0x57, 0x61, 0x69, 0x74, 0x12, 0x35, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, | ||||||
|  | 	0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, | ||||||
|  | 	0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, | ||||||
|  | 	0x72, 0x57, 0x61, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x63, | ||||||
|  | 	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, | ||||||
|  | 	0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, | ||||||
|  | 	0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x57, 0x61, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, | ||||||
|  | 	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, | ||||||
|  | 	0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, | ||||||
|  | 	0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, | ||||||
|  | 	0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, | ||||||
|  | 	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, | ||||||
|  | 	0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, | ||||||
|  | 	0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, | ||||||
|  | 	0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, | ||||||
|  | 	0x65, 0x12, 0x7b, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x63, 0x6f, | ||||||
|  | 	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, | ||||||
|  | 	0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, | ||||||
|  | 	0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, | ||||||
|  | 	0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, | ||||||
|  | 	0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, | ||||||
|  | 	0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, | ||||||
|  | 	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x42, | ||||||
|  | 	0x5a, 0x40, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, | ||||||
|  | 	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, | ||||||
|  | 	0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, | ||||||
|  | 	0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x61, 0x6e, 0x64, 0x62, | ||||||
|  | 	0x6f, 0x78, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, | ||||||
| } | } | ||||||
|  |  | ||||||
| var ( | var ( | ||||||
| @@ -1395,7 +1423,7 @@ func file_github_com_containerd_containerd_api_services_sandbox_v1_sandbox_proto | |||||||
| 	return file_github_com_containerd_containerd_api_services_sandbox_v1_sandbox_proto_rawDescData | 	return file_github_com_containerd_containerd_api_services_sandbox_v1_sandbox_proto_rawDescData | ||||||
| } | } | ||||||
|  |  | ||||||
| var file_github_com_containerd_containerd_api_services_sandbox_v1_sandbox_proto_msgTypes = make([]protoimpl.MessageInfo, 23) | var file_github_com_containerd_containerd_api_services_sandbox_v1_sandbox_proto_msgTypes = make([]protoimpl.MessageInfo, 24) | ||||||
| var file_github_com_containerd_containerd_api_services_sandbox_v1_sandbox_proto_goTypes = []interface{}{ | var file_github_com_containerd_containerd_api_services_sandbox_v1_sandbox_proto_goTypes = []interface{}{ | ||||||
| 	(*StoreCreateRequest)(nil),       // 0: containerd.services.sandbox.v1.StoreCreateRequest | 	(*StoreCreateRequest)(nil),       // 0: containerd.services.sandbox.v1.StoreCreateRequest | ||||||
| 	(*StoreCreateResponse)(nil),      // 1: containerd.services.sandbox.v1.StoreCreateResponse | 	(*StoreCreateResponse)(nil),      // 1: containerd.services.sandbox.v1.StoreCreateResponse | ||||||
| @@ -1420,52 +1448,55 @@ var file_github_com_containerd_containerd_api_services_sandbox_v1_sandbox_proto_ | |||||||
| 	(*ControllerDeleteRequest)(nil),  // 20: containerd.services.sandbox.v1.ControllerDeleteRequest | 	(*ControllerDeleteRequest)(nil),  // 20: containerd.services.sandbox.v1.ControllerDeleteRequest | ||||||
| 	(*ControllerDeleteResponse)(nil), // 21: containerd.services.sandbox.v1.ControllerDeleteResponse | 	(*ControllerDeleteResponse)(nil), // 21: containerd.services.sandbox.v1.ControllerDeleteResponse | ||||||
| 	nil,                              // 22: containerd.services.sandbox.v1.ControllerStartResponse.LabelsEntry | 	nil,                              // 22: containerd.services.sandbox.v1.ControllerStartResponse.LabelsEntry | ||||||
| 	(*types.Sandbox)(nil),            // 23: containerd.types.Sandbox | 	nil,                              // 23: containerd.services.sandbox.v1.ControllerStatusResponse.InfoEntry | ||||||
| 	(*types.Mount)(nil),              // 24: containerd.types.Mount | 	(*types.Sandbox)(nil),            // 24: containerd.types.Sandbox | ||||||
| 	(*anypb.Any)(nil),                // 25: google.protobuf.Any | 	(*types.Mount)(nil),              // 25: containerd.types.Mount | ||||||
| 	(*timestamppb.Timestamp)(nil),    // 26: google.protobuf.Timestamp | 	(*anypb.Any)(nil),                // 26: google.protobuf.Any | ||||||
|  | 	(*timestamppb.Timestamp)(nil),    // 27: google.protobuf.Timestamp | ||||||
| } | } | ||||||
| var file_github_com_containerd_containerd_api_services_sandbox_v1_sandbox_proto_depIdxs = []int32{ | var file_github_com_containerd_containerd_api_services_sandbox_v1_sandbox_proto_depIdxs = []int32{ | ||||||
| 	23, // 0: containerd.services.sandbox.v1.StoreCreateRequest.sandbox:type_name -> containerd.types.Sandbox | 	24, // 0: containerd.services.sandbox.v1.StoreCreateRequest.sandbox:type_name -> containerd.types.Sandbox | ||||||
| 	23, // 1: containerd.services.sandbox.v1.StoreCreateResponse.sandbox:type_name -> containerd.types.Sandbox | 	24, // 1: containerd.services.sandbox.v1.StoreCreateResponse.sandbox:type_name -> containerd.types.Sandbox | ||||||
| 	23, // 2: containerd.services.sandbox.v1.StoreUpdateRequest.sandbox:type_name -> containerd.types.Sandbox | 	24, // 2: containerd.services.sandbox.v1.StoreUpdateRequest.sandbox:type_name -> containerd.types.Sandbox | ||||||
| 	23, // 3: containerd.services.sandbox.v1.StoreUpdateResponse.sandbox:type_name -> containerd.types.Sandbox | 	24, // 3: containerd.services.sandbox.v1.StoreUpdateResponse.sandbox:type_name -> containerd.types.Sandbox | ||||||
| 	23, // 4: containerd.services.sandbox.v1.StoreListResponse.list:type_name -> containerd.types.Sandbox | 	24, // 4: containerd.services.sandbox.v1.StoreListResponse.list:type_name -> containerd.types.Sandbox | ||||||
| 	23, // 5: containerd.services.sandbox.v1.StoreGetResponse.sandbox:type_name -> containerd.types.Sandbox | 	24, // 5: containerd.services.sandbox.v1.StoreGetResponse.sandbox:type_name -> containerd.types.Sandbox | ||||||
| 	24, // 6: containerd.services.sandbox.v1.ControllerCreateRequest.rootfs:type_name -> containerd.types.Mount | 	25, // 6: containerd.services.sandbox.v1.ControllerCreateRequest.rootfs:type_name -> containerd.types.Mount | ||||||
| 	25, // 7: containerd.services.sandbox.v1.ControllerCreateRequest.options:type_name -> google.protobuf.Any | 	26, // 7: containerd.services.sandbox.v1.ControllerCreateRequest.options:type_name -> google.protobuf.Any | ||||||
| 	26, // 8: containerd.services.sandbox.v1.ControllerStartResponse.created_at:type_name -> google.protobuf.Timestamp | 	27, // 8: containerd.services.sandbox.v1.ControllerStartResponse.created_at:type_name -> google.protobuf.Timestamp | ||||||
| 	22, // 9: containerd.services.sandbox.v1.ControllerStartResponse.labels:type_name -> containerd.services.sandbox.v1.ControllerStartResponse.LabelsEntry | 	22, // 9: containerd.services.sandbox.v1.ControllerStartResponse.labels:type_name -> containerd.services.sandbox.v1.ControllerStartResponse.LabelsEntry | ||||||
| 	26, // 10: containerd.services.sandbox.v1.ControllerWaitResponse.exited_at:type_name -> google.protobuf.Timestamp | 	27, // 10: containerd.services.sandbox.v1.ControllerWaitResponse.exited_at:type_name -> google.protobuf.Timestamp | ||||||
| 	26, // 11: containerd.services.sandbox.v1.ControllerStatusResponse.exited_at:type_name -> google.protobuf.Timestamp | 	23, // 11: containerd.services.sandbox.v1.ControllerStatusResponse.info:type_name -> containerd.services.sandbox.v1.ControllerStatusResponse.InfoEntry | ||||||
| 	25, // 12: containerd.services.sandbox.v1.ControllerStatusResponse.extra:type_name -> google.protobuf.Any | 	27, // 12: containerd.services.sandbox.v1.ControllerStatusResponse.created_at:type_name -> google.protobuf.Timestamp | ||||||
| 	0,  // 13: containerd.services.sandbox.v1.Store.Create:input_type -> containerd.services.sandbox.v1.StoreCreateRequest | 	27, // 13: containerd.services.sandbox.v1.ControllerStatusResponse.exited_at:type_name -> google.protobuf.Timestamp | ||||||
| 	2,  // 14: containerd.services.sandbox.v1.Store.Update:input_type -> containerd.services.sandbox.v1.StoreUpdateRequest | 	26, // 14: containerd.services.sandbox.v1.ControllerStatusResponse.extra:type_name -> google.protobuf.Any | ||||||
| 	4,  // 15: containerd.services.sandbox.v1.Store.Delete:input_type -> containerd.services.sandbox.v1.StoreDeleteRequest | 	0,  // 15: containerd.services.sandbox.v1.Store.Create:input_type -> containerd.services.sandbox.v1.StoreCreateRequest | ||||||
| 	6,  // 16: containerd.services.sandbox.v1.Store.List:input_type -> containerd.services.sandbox.v1.StoreListRequest | 	2,  // 16: containerd.services.sandbox.v1.Store.Update:input_type -> containerd.services.sandbox.v1.StoreUpdateRequest | ||||||
| 	8,  // 17: containerd.services.sandbox.v1.Store.Get:input_type -> containerd.services.sandbox.v1.StoreGetRequest | 	4,  // 17: containerd.services.sandbox.v1.Store.Delete:input_type -> containerd.services.sandbox.v1.StoreDeleteRequest | ||||||
| 	10, // 18: containerd.services.sandbox.v1.Controller.Create:input_type -> containerd.services.sandbox.v1.ControllerCreateRequest | 	6,  // 18: containerd.services.sandbox.v1.Store.List:input_type -> containerd.services.sandbox.v1.StoreListRequest | ||||||
| 	12, // 19: containerd.services.sandbox.v1.Controller.Start:input_type -> containerd.services.sandbox.v1.ControllerStartRequest | 	8,  // 19: containerd.services.sandbox.v1.Store.Get:input_type -> containerd.services.sandbox.v1.StoreGetRequest | ||||||
| 	14, // 20: containerd.services.sandbox.v1.Controller.Stop:input_type -> containerd.services.sandbox.v1.ControllerStopRequest | 	10, // 20: containerd.services.sandbox.v1.Controller.Create:input_type -> containerd.services.sandbox.v1.ControllerCreateRequest | ||||||
| 	16, // 21: containerd.services.sandbox.v1.Controller.Wait:input_type -> containerd.services.sandbox.v1.ControllerWaitRequest | 	12, // 21: containerd.services.sandbox.v1.Controller.Start:input_type -> containerd.services.sandbox.v1.ControllerStartRequest | ||||||
| 	18, // 22: containerd.services.sandbox.v1.Controller.Status:input_type -> containerd.services.sandbox.v1.ControllerStatusRequest | 	14, // 22: containerd.services.sandbox.v1.Controller.Stop:input_type -> containerd.services.sandbox.v1.ControllerStopRequest | ||||||
| 	20, // 23: containerd.services.sandbox.v1.Controller.Delete:input_type -> containerd.services.sandbox.v1.ControllerDeleteRequest | 	16, // 23: containerd.services.sandbox.v1.Controller.Wait:input_type -> containerd.services.sandbox.v1.ControllerWaitRequest | ||||||
| 	1,  // 24: containerd.services.sandbox.v1.Store.Create:output_type -> containerd.services.sandbox.v1.StoreCreateResponse | 	18, // 24: containerd.services.sandbox.v1.Controller.Status:input_type -> containerd.services.sandbox.v1.ControllerStatusRequest | ||||||
| 	3,  // 25: containerd.services.sandbox.v1.Store.Update:output_type -> containerd.services.sandbox.v1.StoreUpdateResponse | 	20, // 25: containerd.services.sandbox.v1.Controller.Delete:input_type -> containerd.services.sandbox.v1.ControllerDeleteRequest | ||||||
| 	5,  // 26: containerd.services.sandbox.v1.Store.Delete:output_type -> containerd.services.sandbox.v1.StoreDeleteResponse | 	1,  // 26: containerd.services.sandbox.v1.Store.Create:output_type -> containerd.services.sandbox.v1.StoreCreateResponse | ||||||
| 	7,  // 27: containerd.services.sandbox.v1.Store.List:output_type -> containerd.services.sandbox.v1.StoreListResponse | 	3,  // 27: containerd.services.sandbox.v1.Store.Update:output_type -> containerd.services.sandbox.v1.StoreUpdateResponse | ||||||
| 	9,  // 28: containerd.services.sandbox.v1.Store.Get:output_type -> containerd.services.sandbox.v1.StoreGetResponse | 	5,  // 28: containerd.services.sandbox.v1.Store.Delete:output_type -> containerd.services.sandbox.v1.StoreDeleteResponse | ||||||
| 	11, // 29: containerd.services.sandbox.v1.Controller.Create:output_type -> containerd.services.sandbox.v1.ControllerCreateResponse | 	7,  // 29: containerd.services.sandbox.v1.Store.List:output_type -> containerd.services.sandbox.v1.StoreListResponse | ||||||
| 	13, // 30: containerd.services.sandbox.v1.Controller.Start:output_type -> containerd.services.sandbox.v1.ControllerStartResponse | 	9,  // 30: containerd.services.sandbox.v1.Store.Get:output_type -> containerd.services.sandbox.v1.StoreGetResponse | ||||||
| 	15, // 31: containerd.services.sandbox.v1.Controller.Stop:output_type -> containerd.services.sandbox.v1.ControllerStopResponse | 	11, // 31: containerd.services.sandbox.v1.Controller.Create:output_type -> containerd.services.sandbox.v1.ControllerCreateResponse | ||||||
| 	17, // 32: containerd.services.sandbox.v1.Controller.Wait:output_type -> containerd.services.sandbox.v1.ControllerWaitResponse | 	13, // 32: containerd.services.sandbox.v1.Controller.Start:output_type -> containerd.services.sandbox.v1.ControllerStartResponse | ||||||
| 	19, // 33: containerd.services.sandbox.v1.Controller.Status:output_type -> containerd.services.sandbox.v1.ControllerStatusResponse | 	15, // 33: containerd.services.sandbox.v1.Controller.Stop:output_type -> containerd.services.sandbox.v1.ControllerStopResponse | ||||||
| 	21, // 34: containerd.services.sandbox.v1.Controller.Delete:output_type -> containerd.services.sandbox.v1.ControllerDeleteResponse | 	17, // 34: containerd.services.sandbox.v1.Controller.Wait:output_type -> containerd.services.sandbox.v1.ControllerWaitResponse | ||||||
| 	24, // [24:35] is the sub-list for method output_type | 	19, // 35: containerd.services.sandbox.v1.Controller.Status:output_type -> containerd.services.sandbox.v1.ControllerStatusResponse | ||||||
| 	13, // [13:24] is the sub-list for method input_type | 	21, // 36: containerd.services.sandbox.v1.Controller.Delete:output_type -> containerd.services.sandbox.v1.ControllerDeleteResponse | ||||||
| 	13, // [13:13] is the sub-list for extension type_name | 	26, // [26:37] is the sub-list for method output_type | ||||||
| 	13, // [13:13] is the sub-list for extension extendee | 	15, // [15:26] is the sub-list for method input_type | ||||||
| 	0,  // [0:13] is the sub-list for field type_name | 	15, // [15:15] is the sub-list for extension type_name | ||||||
|  | 	15, // [15:15] is the sub-list for extension extendee | ||||||
|  | 	0,  // [0:15] is the sub-list for field type_name | ||||||
| } | } | ||||||
|  |  | ||||||
| func init() { file_github_com_containerd_containerd_api_services_sandbox_v1_sandbox_proto_init() } | func init() { file_github_com_containerd_containerd_api_services_sandbox_v1_sandbox_proto_init() } | ||||||
| @@ -1745,7 +1776,7 @@ func file_github_com_containerd_containerd_api_services_sandbox_v1_sandbox_proto | |||||||
| 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(), | 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(), | ||||||
| 			RawDescriptor: file_github_com_containerd_containerd_api_services_sandbox_v1_sandbox_proto_rawDesc, | 			RawDescriptor: file_github_com_containerd_containerd_api_services_sandbox_v1_sandbox_proto_rawDesc, | ||||||
| 			NumEnums:      0, | 			NumEnums:      0, | ||||||
| 			NumMessages:   23, | 			NumMessages:   24, | ||||||
| 			NumExtensions: 0, | 			NumExtensions: 0, | ||||||
| 			NumServices:   2, | 			NumServices:   2, | ||||||
| 		}, | 		}, | ||||||
|   | |||||||
| @@ -132,15 +132,17 @@ message ControllerWaitResponse { | |||||||
|  |  | ||||||
| message ControllerStatusRequest { | message ControllerStatusRequest { | ||||||
| 	string sandbox_id = 1; | 	string sandbox_id = 1; | ||||||
|  | 	bool verbose = 2; | ||||||
| } | } | ||||||
|  |  | ||||||
| message ControllerStatusResponse { | message ControllerStatusResponse { | ||||||
| 	string id = 1; | 	string id = 1; | ||||||
| 	uint32 pid = 2; | 	uint32 pid = 2; | ||||||
| 	string state = 3; | 	string state = 3; | ||||||
| 	uint32 exit_status = 4; | 	map<string, string> info = 4; | ||||||
| 	google.protobuf.Timestamp exited_at = 5; | 	google.protobuf.Timestamp created_at = 5; | ||||||
| 	google.protobuf.Any extra = 6; | 	google.protobuf.Timestamp exited_at = 6; | ||||||
|  | 	google.protobuf.Any extra = 7; | ||||||
| } | } | ||||||
|  |  | ||||||
| message ControllerDeleteRequest { | message ControllerDeleteRequest { | ||||||
|   | |||||||
| @@ -37,7 +37,7 @@ import ( | |||||||
| 	"github.com/stretchr/testify/require" | 	"github.com/stretchr/testify/require" | ||||||
| 	criapiv1 "k8s.io/cri-api/pkg/apis/runtime/v1" | 	criapiv1 "k8s.io/cri-api/pkg/apis/runtime/v1" | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd/pkg/cri/sbserver" | 	"github.com/containerd/containerd/pkg/cri/sbserver/podsandbox" | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store/sandbox" | 	"github.com/containerd/containerd/pkg/cri/store/sandbox" | ||||||
| 	"github.com/containerd/containerd/pkg/failpoint" | 	"github.com/containerd/containerd/pkg/failpoint" | ||||||
| 	"github.com/containerd/typeurl" | 	"github.com/containerd/typeurl" | ||||||
| @@ -333,7 +333,7 @@ func TestRunPodSandboxAndTeardownCNISlow(t *testing.T) { | |||||||
| } | } | ||||||
|  |  | ||||||
| // sbserverSandboxInfo gets sandbox info. | // sbserverSandboxInfo gets sandbox info. | ||||||
| func sbserverSandboxInfo(id string) (*criapiv1.PodSandboxStatus, *sbserver.SandboxInfo, error) { | func sbserverSandboxInfo(id string) (*criapiv1.PodSandboxStatus, *podsandbox.SandboxInfo, error) { | ||||||
| 	client, err := RawRuntimeClient() | 	client, err := RawRuntimeClient() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, nil, fmt.Errorf("failed to get raw runtime client: %w", err) | 		return nil, nil, fmt.Errorf("failed to get raw runtime client: %w", err) | ||||||
| @@ -346,7 +346,7 @@ func sbserverSandboxInfo(id string) (*criapiv1.PodSandboxStatus, *sbserver.Sandb | |||||||
| 		return nil, nil, fmt.Errorf("failed to get sandbox status: %w", err) | 		return nil, nil, fmt.Errorf("failed to get sandbox status: %w", err) | ||||||
| 	} | 	} | ||||||
| 	status := resp.GetStatus() | 	status := resp.GetStatus() | ||||||
| 	var info sbserver.SandboxInfo | 	var info podsandbox.SandboxInfo | ||||||
| 	if err := json.Unmarshal([]byte(resp.GetInfo()["info"]), &info); err != nil { | 	if err := json.Unmarshal([]byte(resp.GetInfo()["info"]), &info); err != nil { | ||||||
| 		return nil, nil, fmt.Errorf("failed to unmarshal sandbox info: %w", err) | 		return nil, nil, fmt.Errorf("failed to unmarshal sandbox info: %w", err) | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -56,14 +56,21 @@ func (c *criService) CreateContainer(ctx context.Context, r *runtime.CreateConta | |||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, fmt.Errorf("failed to find sandbox id %q: %w", r.GetPodSandboxId(), err) | 		return nil, fmt.Errorf("failed to find sandbox id %q: %w", r.GetPodSandboxId(), err) | ||||||
| 	} | 	} | ||||||
| 	sandboxID := sandbox.ID |  | ||||||
|  |  | ||||||
| 	// TODO: Add PID endpoint to Controller interface. | 	controller, err := c.getSandboxController(sandbox.Config, sandbox.RuntimeHandler) | ||||||
| 	s, err := sandbox.Container.Task(ctx, nil) |  | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, fmt.Errorf("failed to get sandbox container task: %w", err) | 		return nil, fmt.Errorf("failed to get sandbox controller: %w", err) | ||||||
| 	} | 	} | ||||||
| 	sandboxPid := s.Pid() |  | ||||||
|  | 	statusResponse, err := controller.Status(ctx, sandbox.ID, false) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, fmt.Errorf("failed to get controller status: %w", err) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	var ( | ||||||
|  | 		sandboxID  = statusResponse.GetID() | ||||||
|  | 		sandboxPid = statusResponse.GetPid() | ||||||
|  | 	) | ||||||
|  |  | ||||||
| 	// Generate unique id and name for the container and reserve the name. | 	// Generate unique id and name for the container and reserve the name. | ||||||
| 	// Reserve the container name to avoid concurrent `CreateContainer` request creating | 	// Reserve the container name to avoid concurrent `CreateContainer` request creating | ||||||
| @@ -245,6 +252,11 @@ func (c *criService) CreateContainer(ctx context.Context, r *runtime.CreateConta | |||||||
| 		containerd.WithContainerExtension(containerMetadataExtension, &meta), | 		containerd.WithContainerExtension(containerMetadataExtension, &meta), | ||||||
| 	) | 	) | ||||||
|  |  | ||||||
|  | 	// When using sandboxed shims, containerd's runtime needs to know which sandbox shim instance to use. | ||||||
|  | 	if ociRuntime.SandboxMode == string(criconfig.ModeShim) { | ||||||
|  | 		opts = append(opts, containerd.WithSandbox(sandboxID)) | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	var cntr containerd.Container | 	var cntr containerd.Container | ||||||
| 	if cntr, err = c.client.NewContainer(ctx, id, opts...); err != nil { | 	if cntr, err = c.client.NewContainer(ctx, id, opts...); err != nil { | ||||||
| 		return nil, fmt.Errorf("failed to create containerd container: %w", err) | 		return nil, fmt.Errorf("failed to create containerd container: %w", err) | ||||||
|   | |||||||
| @@ -84,26 +84,6 @@ func New( | |||||||
|  |  | ||||||
| var _ sandbox.Controller = (*Controller)(nil) | var _ sandbox.Controller = (*Controller)(nil) | ||||||
|  |  | ||||||
| func (c *Controller) Status(ctx context.Context, sandboxID string) (*api.ControllerStatusResponse, error) { |  | ||||||
| 	sandbox, err := c.sandboxStore.Get(sandboxID) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, fmt.Errorf("an error occurred while trying to find sandbox %q: %w", |  | ||||||
| 			sandboxID, err) |  | ||||||
| 	} |  | ||||||
| 	status := sandbox.Status.Get() |  | ||||||
| 	resp := &api.ControllerStatusResponse{ |  | ||||||
| 		ID:         sandboxID, |  | ||||||
| 		Pid:        status.Pid, |  | ||||||
| 		State:      status.State.String(), |  | ||||||
| 		ExitStatus: status.ExitStatus, |  | ||||||
| 		Extra:      nil, |  | ||||||
| 	} |  | ||||||
| 	if !status.ExitedAt.IsZero() { |  | ||||||
| 		resp.ExitedAt = protobuf.ToTimestamp(status.ExitedAt) |  | ||||||
| 	} |  | ||||||
| 	return resp, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (c *Controller) Wait(ctx context.Context, sandboxID string) (*api.ControllerWaitResponse, error) { | func (c *Controller) Wait(ctx context.Context, sandboxID string) (*api.ControllerWaitResponse, error) { | ||||||
| 	status := c.store.Get(sandboxID) | 	status := c.store.Get(sandboxID) | ||||||
| 	if status == nil { | 	if status == nil { | ||||||
|   | |||||||
| @@ -78,12 +78,11 @@ func Test_Status(t *testing.T) { | |||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		t.Fatal(err) | 		t.Fatal(err) | ||||||
| 	} | 	} | ||||||
| 	s, err := controller.Status(context.Background(), sandboxID) | 	s, err := controller.Status(context.Background(), sandboxID, false) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		t.Fatal(err) | 		t.Fatal(err) | ||||||
| 	} | 	} | ||||||
| 	assert.Equal(t, s.Pid, pid) | 	assert.Equal(t, s.Pid, pid) | ||||||
| 	assert.Equal(t, s.ExitStatus, exitStatus) |  | ||||||
| 	assert.Equal(t, s.ExitedAt, protobuf.ToTimestamp(exitedAt)) | 	assert.Equal(t, s.ExitedAt, protobuf.ToTimestamp(exitedAt)) | ||||||
| 	assert.Equal(t, s.State, sandboxstore.StateReady.String()) | 	assert.Equal(t, s.State, sandboxstore.StateReady.String()) | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										182
									
								
								pkg/cri/sbserver/podsandbox/sandbox_status.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										182
									
								
								pkg/cri/sbserver/podsandbox/sandbox_status.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,182 @@ | |||||||
|  | /* | ||||||
|  |    Copyright The containerd Authors. | ||||||
|  |  | ||||||
|  |    Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  |    you may not use this file except in compliance with the License. | ||||||
|  |    You may obtain a copy of the License at | ||||||
|  |  | ||||||
|  |        http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  | ||||||
|  |    Unless required by applicable law or agreed to in writing, software | ||||||
|  |    distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |    See the License for the specific language governing permissions and | ||||||
|  |    limitations under the License. | ||||||
|  | */ | ||||||
|  |  | ||||||
|  | package podsandbox | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"context" | ||||||
|  | 	"encoding/json" | ||||||
|  | 	"fmt" | ||||||
|  |  | ||||||
|  | 	"github.com/containerd/containerd" | ||||||
|  | 	api "github.com/containerd/containerd/api/services/sandbox/v1" | ||||||
|  | 	"github.com/containerd/containerd/containers" | ||||||
|  | 	"github.com/containerd/containerd/errdefs" | ||||||
|  | 	sandboxstore "github.com/containerd/containerd/pkg/cri/store/sandbox" | ||||||
|  | 	"github.com/containerd/containerd/protobuf" | ||||||
|  | 	"github.com/containerd/go-cni" | ||||||
|  | 	"github.com/containerd/typeurl" | ||||||
|  | 	runtimespec "github.com/opencontainers/runtime-spec/specs-go" | ||||||
|  | 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // SandboxInfo is extra information for sandbox. | ||||||
|  | // TODO (mikebrow): discuss predefining constants structures for some or all of these field names in CRI | ||||||
|  | type SandboxInfo struct { | ||||||
|  | 	Pid         uint32 `json:"pid"` | ||||||
|  | 	Status      string `json:"processStatus"` | ||||||
|  | 	NetNSClosed bool   `json:"netNamespaceClosed"` | ||||||
|  | 	Image       string `json:"image"` | ||||||
|  | 	SnapshotKey string `json:"snapshotKey"` | ||||||
|  | 	Snapshotter string `json:"snapshotter"` | ||||||
|  | 	// Note: a new field `RuntimeHandler` has been added into the CRI PodSandboxStatus struct, and | ||||||
|  | 	// should be set. This `RuntimeHandler` field will be deprecated after containerd 1.3 (tracked | ||||||
|  | 	// in https://github.com/containerd/cri/issues/1064). | ||||||
|  | 	RuntimeHandler string                    `json:"runtimeHandler"` // see the Note above | ||||||
|  | 	RuntimeType    string                    `json:"runtimeType"` | ||||||
|  | 	RuntimeOptions interface{}               `json:"runtimeOptions"` | ||||||
|  | 	Config         *runtime.PodSandboxConfig `json:"config"` | ||||||
|  | 	// Note: RuntimeSpec may not be populated if the sandbox has not been fully created. | ||||||
|  | 	RuntimeSpec *runtimespec.Spec      `json:"runtimeSpec"` | ||||||
|  | 	CNIResult   *cni.Result            `json:"cniResult"` | ||||||
|  | 	Metadata    *sandboxstore.Metadata `json:"sandboxMetadata"` | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (c *Controller) Status(ctx context.Context, sandboxID string, verbose bool) (*api.ControllerStatusResponse, error) { | ||||||
|  | 	sandbox, err := c.sandboxStore.Get(sandboxID) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, fmt.Errorf("an error occurred while trying to find sandbox %q: %w", | ||||||
|  | 			sandboxID, err) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	status := sandbox.Status.Get() | ||||||
|  | 	resp := &api.ControllerStatusResponse{ | ||||||
|  | 		ID:        sandboxID, | ||||||
|  | 		Pid:       status.Pid, | ||||||
|  | 		State:     status.State.String(), | ||||||
|  | 		CreatedAt: protobuf.ToTimestamp(status.CreatedAt), | ||||||
|  | 		Extra:     nil, | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	if !status.ExitedAt.IsZero() { | ||||||
|  | 		resp.ExitedAt = protobuf.ToTimestamp(status.ExitedAt) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	if verbose { | ||||||
|  | 		info, err := toCRISandboxInfo(ctx, sandbox) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return nil, err | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		resp.Info = info | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return resp, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // toCRISandboxInfo converts internal container object information to CRI sandbox status response info map. | ||||||
|  | func toCRISandboxInfo(ctx context.Context, sandbox sandboxstore.Sandbox) (map[string]string, error) { | ||||||
|  | 	si := &SandboxInfo{ | ||||||
|  | 		Pid:            sandbox.Status.Get().Pid, | ||||||
|  | 		Config:         sandbox.Config, | ||||||
|  | 		RuntimeHandler: sandbox.RuntimeHandler, | ||||||
|  | 		CNIResult:      sandbox.CNIResult, | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	if container := sandbox.Container; container != nil { | ||||||
|  | 		task, err := container.Task(ctx, nil) | ||||||
|  | 		if err != nil && !errdefs.IsNotFound(err) { | ||||||
|  | 			return nil, fmt.Errorf("failed to get sandbox container task: %w", err) | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		var processStatus containerd.ProcessStatus | ||||||
|  | 		if task != nil { | ||||||
|  | 			if taskStatus, err := task.Status(ctx); err != nil { | ||||||
|  | 				if !errdefs.IsNotFound(err) { | ||||||
|  | 					return nil, fmt.Errorf("failed to get task status: %w", err) | ||||||
|  | 				} | ||||||
|  | 				processStatus = containerd.Unknown | ||||||
|  | 			} else { | ||||||
|  | 				processStatus = taskStatus.Status | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		si.Status = string(processStatus) | ||||||
|  |  | ||||||
|  | 		spec, err := container.Spec(ctx) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return nil, fmt.Errorf("failed to get sandbox container runtime spec: %w", err) | ||||||
|  | 		} | ||||||
|  | 		si.RuntimeSpec = spec | ||||||
|  |  | ||||||
|  | 		ctrInfo, err := container.Info(ctx) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return nil, fmt.Errorf("failed to get sandbox container info: %w", err) | ||||||
|  | 		} | ||||||
|  | 		// Do not use config.SandboxImage because the configuration might | ||||||
|  | 		// be changed during restart. It may not reflect the actual image | ||||||
|  | 		// used by the sandbox container. | ||||||
|  | 		si.Image = ctrInfo.Image | ||||||
|  | 		si.SnapshotKey = ctrInfo.SnapshotKey | ||||||
|  | 		si.Snapshotter = ctrInfo.Snapshotter | ||||||
|  |  | ||||||
|  | 		runtimeOptions, err := getRuntimeOptions(ctrInfo) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return nil, fmt.Errorf("failed to get runtime options: %w", err) | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		si.RuntimeType = ctrInfo.Runtime.Name | ||||||
|  | 		si.RuntimeOptions = runtimeOptions | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	if si.Status == "" { | ||||||
|  | 		// If processStatus is empty, it means that the task is deleted. Apply "deleted" | ||||||
|  | 		// status which does not exist in containerd. | ||||||
|  | 		si.Status = "deleted" | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	if sandbox.NetNS != nil { | ||||||
|  | 		// Add network closed information if sandbox is not using host network. | ||||||
|  | 		closed, err := sandbox.NetNS.Closed() | ||||||
|  | 		if err != nil { | ||||||
|  | 			return nil, fmt.Errorf("failed to check network namespace closed: %w", err) | ||||||
|  | 		} | ||||||
|  | 		si.NetNSClosed = closed | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	si.Metadata = &sandbox.Metadata | ||||||
|  |  | ||||||
|  | 	infoBytes, err := json.Marshal(si) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, fmt.Errorf("failed to marshal info %v: %w", si, err) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return map[string]string{ | ||||||
|  | 		"info": string(infoBytes), | ||||||
|  | 	}, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // getRuntimeOptions get runtime options from container metadata. | ||||||
|  | func getRuntimeOptions(c containers.Container) (interface{}, error) { | ||||||
|  | 	from := c.Runtime.Options | ||||||
|  | 	if from == nil || from.GetValue() == nil { | ||||||
|  | 		return nil, nil | ||||||
|  | 	} | ||||||
|  | 	opts, err := typeurl.UnmarshalAny(from) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	return opts, nil | ||||||
|  | } | ||||||
| @@ -257,12 +257,15 @@ func (c *criService) RunPodSandbox(ctx context.Context, r *runtime.RunPodSandbox | |||||||
| 		} | 		} | ||||||
| 		return nil, fmt.Errorf("failed to start sandbox %q: %w", id, err) | 		return nil, fmt.Errorf("failed to start sandbox %q: %w", id, err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// TODO: get rid of this. sandbox object should no longer have Container field. | 	// TODO: get rid of this. sandbox object should no longer have Container field. | ||||||
| 	container, err := c.client.LoadContainer(ctx, id) | 	if ociRuntime.SandboxMode == string(criconfig.ModePodSandbox) { | ||||||
| 	if err != nil { | 		container, err := c.client.LoadContainer(ctx, id) | ||||||
| 		return nil, fmt.Errorf("failed to load container %q for sandbox: %w", id, err) | 		if err != nil { | ||||||
|  | 			return nil, fmt.Errorf("failed to load container %q for sandbox: %w", id, err) | ||||||
|  | 		} | ||||||
|  | 		sandbox.Container = container | ||||||
| 	} | 	} | ||||||
| 	sandbox.Container = container |  | ||||||
|  |  | ||||||
| 	labels := resp.GetLabels() | 	labels := resp.GetLabels() | ||||||
| 	if labels == nil { | 	if labels == nil { | ||||||
| @@ -293,17 +296,20 @@ func (c *criService) RunPodSandbox(ctx context.Context, r *runtime.RunPodSandbox | |||||||
| 	// but we don't care about sandbox TaskOOM right now, so it is fine. | 	// but we don't care about sandbox TaskOOM right now, so it is fine. | ||||||
| 	go func() { | 	go func() { | ||||||
| 		resp, err := controller.Wait(context.Background(), id) | 		resp, err := controller.Wait(context.Background(), id) | ||||||
| 		if err != nil && err != context.Canceled && err != context.DeadlineExceeded { | 		if err != nil { | ||||||
| 			e := &eventtypes.TaskExit{ | 			log.G(ctx).WithError(err).Error("failed to wait for sandbox controller, skipping exit event") | ||||||
| 				ContainerID: id, | 			return | ||||||
| 				ID:          id, |  | ||||||
| 				// Pid is not used |  | ||||||
| 				Pid:        0, |  | ||||||
| 				ExitStatus: resp.ExitStatus, |  | ||||||
| 				ExitedAt:   resp.ExitedAt, |  | ||||||
| 			} |  | ||||||
| 			c.eventMonitor.backOff.enBackOff(id, e) |  | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | 		e := &eventtypes.TaskExit{ | ||||||
|  | 			ContainerID: id, | ||||||
|  | 			ID:          id, | ||||||
|  | 			// Pid is not used | ||||||
|  | 			Pid:        0, | ||||||
|  | 			ExitStatus: resp.ExitStatus, | ||||||
|  | 			ExitedAt:   resp.ExitedAt, | ||||||
|  | 		} | ||||||
|  | 		c.eventMonitor.backOff.enBackOff(id, e) | ||||||
| 	}() | 	}() | ||||||
|  |  | ||||||
| 	sandboxRuntimeCreateTimer.WithValues(labels["oci_runtime_type"]).UpdateSince(runtimeStart) | 	sandboxRuntimeCreateTimer.WithValues(labels["oci_runtime_type"]).UpdateSince(runtimeStart) | ||||||
|   | |||||||
| @@ -18,17 +18,12 @@ package sbserver | |||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"encoding/json" |  | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	goruntime "runtime" | 	goruntime "runtime" | ||||||
|  | 	"time" | ||||||
| 	"github.com/containerd/containerd" |  | ||||||
| 	"github.com/containerd/containerd/errdefs" |  | ||||||
| 	"github.com/containerd/go-cni" |  | ||||||
| 	runtimespec "github.com/opencontainers/runtime-spec/specs-go" |  | ||||||
| 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" |  | ||||||
|  |  | ||||||
| 	sandboxstore "github.com/containerd/containerd/pkg/cri/store/sandbox" | 	sandboxstore "github.com/containerd/containerd/pkg/cri/store/sandbox" | ||||||
|  | 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // PodSandboxStatus returns the status of the PodSandbox. | // PodSandboxStatus returns the status of the PodSandbox. | ||||||
| @@ -42,7 +37,18 @@ func (c *criService) PodSandboxStatus(ctx context.Context, r *runtime.PodSandbox | |||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, fmt.Errorf("failed to get sandbox ip: %w", err) | 		return nil, fmt.Errorf("failed to get sandbox ip: %w", err) | ||||||
| 	} | 	} | ||||||
| 	status := toCRISandboxStatus(sandbox.Metadata, sandbox.Status.Get(), ip, additionalIPs) |  | ||||||
|  | 	controller, err := c.getSandboxController(sandbox.Config, sandbox.RuntimeHandler) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, fmt.Errorf("failed to get sandbox controller: %w", err) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	statusResponse, err := controller.Status(ctx, r.GetPodSandboxId(), r.GetVerbose()) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, fmt.Errorf("failed to query controller status: %w", err) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	status := toCRISandboxStatus(sandbox.Metadata, statusResponse.State, statusResponse.GetCreatedAt().AsTime(), ip, additionalIPs) | ||||||
| 	if status.GetCreatedAt() == 0 { | 	if status.GetCreatedAt() == 0 { | ||||||
| 		// CRI doesn't allow CreatedAt == 0. | 		// CRI doesn't allow CreatedAt == 0. | ||||||
| 		sandboxInfo, err := c.client.SandboxStore().Get(ctx, r.GetPodSandboxId()) | 		sandboxInfo, err := c.client.SandboxStore().Get(ctx, r.GetPodSandboxId()) | ||||||
| @@ -52,19 +58,9 @@ func (c *criService) PodSandboxStatus(ctx context.Context, r *runtime.PodSandbox | |||||||
| 		status.CreatedAt = sandboxInfo.CreatedAt.UnixNano() | 		status.CreatedAt = sandboxInfo.CreatedAt.UnixNano() | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if !r.GetVerbose() { |  | ||||||
| 		return &runtime.PodSandboxStatusResponse{Status: status}, nil |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	// Generate verbose information. |  | ||||||
| 	info, err := toCRISandboxInfo(ctx, sandbox) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, fmt.Errorf("failed to get verbose sandbox container info: %w", err) |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	return &runtime.PodSandboxStatusResponse{ | 	return &runtime.PodSandboxStatusResponse{ | ||||||
| 		Status: status, | 		Status: status, | ||||||
| 		Info:   info, | 		Info:   statusResponse.GetInfo(), | ||||||
| 	}, nil | 	}, nil | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -96,11 +92,11 @@ func (c *criService) getIPs(sandbox sandboxstore.Sandbox) (string, []string, err | |||||||
| } | } | ||||||
|  |  | ||||||
| // toCRISandboxStatus converts sandbox metadata into CRI pod sandbox status. | // toCRISandboxStatus converts sandbox metadata into CRI pod sandbox status. | ||||||
| func toCRISandboxStatus(meta sandboxstore.Metadata, status sandboxstore.Status, ip string, additionalIPs []string) *runtime.PodSandboxStatus { | func toCRISandboxStatus(meta sandboxstore.Metadata, status string, createdAt time.Time, ip string, additionalIPs []string) *runtime.PodSandboxStatus { | ||||||
| 	// Set sandbox state to NOTREADY by default. | 	// Set sandbox state to NOTREADY by default. | ||||||
| 	state := runtime.PodSandboxState_SANDBOX_NOTREADY | 	state := runtime.PodSandboxState_SANDBOX_NOTREADY | ||||||
| 	if status.State == sandboxstore.StateReady { | 	if value, ok := runtime.PodSandboxState_value[status]; ok { | ||||||
| 		state = runtime.PodSandboxState_SANDBOX_READY | 		state = runtime.PodSandboxState(value) | ||||||
| 	} | 	} | ||||||
| 	nsOpts := meta.Config.GetLinux().GetSecurityContext().GetNamespaceOptions() | 	nsOpts := meta.Config.GetLinux().GetSecurityContext().GetNamespaceOptions() | ||||||
| 	var ips []*runtime.PodIP | 	var ips []*runtime.PodIP | ||||||
| @@ -111,7 +107,7 @@ func toCRISandboxStatus(meta sandboxstore.Metadata, status sandboxstore.Status, | |||||||
| 		Id:        meta.ID, | 		Id:        meta.ID, | ||||||
| 		Metadata:  meta.Config.GetMetadata(), | 		Metadata:  meta.Config.GetMetadata(), | ||||||
| 		State:     state, | 		State:     state, | ||||||
| 		CreatedAt: status.CreatedAt.UnixNano(), | 		CreatedAt: createdAt.UnixNano(), | ||||||
| 		Network: &runtime.PodSandboxNetworkStatus{ | 		Network: &runtime.PodSandboxNetworkStatus{ | ||||||
| 			Ip:            ip, | 			Ip:            ip, | ||||||
| 			AdditionalIps: ips, | 			AdditionalIps: ips, | ||||||
| @@ -130,105 +126,3 @@ func toCRISandboxStatus(meta sandboxstore.Metadata, status sandboxstore.Status, | |||||||
| 		RuntimeHandler: meta.RuntimeHandler, | 		RuntimeHandler: meta.RuntimeHandler, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
| // SandboxInfo is extra information for sandbox. |  | ||||||
| // TODO (mikebrow): discuss predefining constants structures for some or all of these field names in CRI |  | ||||||
| type SandboxInfo struct { |  | ||||||
| 	Pid         uint32 `json:"pid"` |  | ||||||
| 	Status      string `json:"processStatus"` |  | ||||||
| 	NetNSClosed bool   `json:"netNamespaceClosed"` |  | ||||||
| 	Image       string `json:"image"` |  | ||||||
| 	SnapshotKey string `json:"snapshotKey"` |  | ||||||
| 	Snapshotter string `json:"snapshotter"` |  | ||||||
| 	// Note: a new field `RuntimeHandler` has been added into the CRI PodSandboxStatus struct, and |  | ||||||
| 	// should be set. This `RuntimeHandler` field will be deprecated after containerd 1.3 (tracked |  | ||||||
| 	// in https://github.com/containerd/cri/issues/1064). |  | ||||||
| 	RuntimeHandler string                    `json:"runtimeHandler"` // see the Note above |  | ||||||
| 	RuntimeType    string                    `json:"runtimeType"` |  | ||||||
| 	RuntimeOptions interface{}               `json:"runtimeOptions"` |  | ||||||
| 	Config         *runtime.PodSandboxConfig `json:"config"` |  | ||||||
| 	// Note: RuntimeSpec may not be populated if the sandbox has not been fully created. |  | ||||||
| 	RuntimeSpec *runtimespec.Spec      `json:"runtimeSpec"` |  | ||||||
| 	CNIResult   *cni.Result            `json:"cniResult"` |  | ||||||
| 	Metadata    *sandboxstore.Metadata `json:"sandboxMetadata"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // toCRISandboxInfo converts internal container object information to CRI sandbox status response info map. |  | ||||||
| func toCRISandboxInfo(ctx context.Context, sandbox sandboxstore.Sandbox) (map[string]string, error) { |  | ||||||
| 	si := &SandboxInfo{ |  | ||||||
| 		Pid:            sandbox.Status.Get().Pid, |  | ||||||
| 		Config:         sandbox.Config, |  | ||||||
| 		RuntimeHandler: sandbox.RuntimeHandler, |  | ||||||
| 		CNIResult:      sandbox.CNIResult, |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	if sandbox.Container != nil { |  | ||||||
| 		container := sandbox.Container |  | ||||||
| 		task, err := container.Task(ctx, nil) |  | ||||||
| 		if err != nil && !errdefs.IsNotFound(err) { |  | ||||||
| 			return nil, fmt.Errorf("failed to get sandbox container task: %w", err) |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		var processStatus containerd.ProcessStatus |  | ||||||
| 		if task != nil { |  | ||||||
| 			if taskStatus, err := task.Status(ctx); err != nil { |  | ||||||
| 				if !errdefs.IsNotFound(err) { |  | ||||||
| 					return nil, fmt.Errorf("failed to get task status: %w", err) |  | ||||||
| 				} |  | ||||||
| 				processStatus = containerd.Unknown |  | ||||||
| 			} else { |  | ||||||
| 				processStatus = taskStatus.Status |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 		si.Status = string(processStatus) |  | ||||||
|  |  | ||||||
| 		spec, err := container.Spec(ctx) |  | ||||||
| 		if err != nil { |  | ||||||
| 			return nil, fmt.Errorf("failed to get sandbox container runtime spec: %w", err) |  | ||||||
| 		} |  | ||||||
| 		si.RuntimeSpec = spec |  | ||||||
|  |  | ||||||
| 		ctrInfo, err := container.Info(ctx) |  | ||||||
| 		if err != nil { |  | ||||||
| 			return nil, fmt.Errorf("failed to get sandbox container info: %w", err) |  | ||||||
| 		} |  | ||||||
| 		// Do not use config.SandboxImage because the configuration might |  | ||||||
| 		// be changed during restart. It may not reflect the actual image |  | ||||||
| 		// used by the sandbox container. |  | ||||||
| 		si.Image = ctrInfo.Image |  | ||||||
| 		si.SnapshotKey = ctrInfo.SnapshotKey |  | ||||||
| 		si.Snapshotter = ctrInfo.Snapshotter |  | ||||||
|  |  | ||||||
| 		runtimeOptions, err := getRuntimeOptions(ctrInfo) |  | ||||||
| 		if err != nil { |  | ||||||
| 			return nil, fmt.Errorf("failed to get runtime options: %w", err) |  | ||||||
| 		} |  | ||||||
| 		si.RuntimeType = ctrInfo.Runtime.Name |  | ||||||
| 		si.RuntimeOptions = runtimeOptions |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	if si.Status == "" { |  | ||||||
| 		// If processStatus is empty, it means that the task is deleted. Apply "deleted" |  | ||||||
| 		// status which does not exist in containerd. |  | ||||||
| 		si.Status = "deleted" |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	if sandbox.NetNS != nil { |  | ||||||
| 		// Add network closed information if sandbox is not using host network. |  | ||||||
| 		closed, err := sandbox.NetNS.Closed() |  | ||||||
| 		if err != nil { |  | ||||||
| 			return nil, fmt.Errorf("failed to check network namespace closed: %w", err) |  | ||||||
| 		} |  | ||||||
| 		si.NetNSClosed = closed |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	si.Metadata = &sandbox.Metadata |  | ||||||
|  |  | ||||||
| 	infoBytes, err := json.Marshal(si) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, fmt.Errorf("failed to marshal info %v: %w", si, err) |  | ||||||
| 	} |  | ||||||
| 	return map[string]string{ |  | ||||||
| 		"info": string(infoBytes), |  | ||||||
| 	}, nil |  | ||||||
| } |  | ||||||
|   | |||||||
| @@ -88,29 +88,25 @@ func TestPodSandboxStatus(t *testing.T) { | |||||||
| 		RuntimeHandler: "test-runtime-handler", | 		RuntimeHandler: "test-runtime-handler", | ||||||
| 	} | 	} | ||||||
| 	for desc, test := range map[string]struct { | 	for desc, test := range map[string]struct { | ||||||
| 		state         sandboxstore.State | 		state         string | ||||||
| 		expectedState runtime.PodSandboxState | 		expectedState runtime.PodSandboxState | ||||||
| 	}{ | 	}{ | ||||||
| 		"sandbox state ready": { | 		"sandbox state ready": { | ||||||
| 			state:         sandboxstore.StateReady, | 			state:         sandboxstore.StateReady.String(), | ||||||
| 			expectedState: runtime.PodSandboxState_SANDBOX_READY, | 			expectedState: runtime.PodSandboxState_SANDBOX_READY, | ||||||
| 		}, | 		}, | ||||||
| 		"sandbox state not ready": { | 		"sandbox state not ready": { | ||||||
| 			state:         sandboxstore.StateNotReady, | 			state:         sandboxstore.StateNotReady.String(), | ||||||
| 			expectedState: runtime.PodSandboxState_SANDBOX_NOTREADY, | 			expectedState: runtime.PodSandboxState_SANDBOX_NOTREADY, | ||||||
| 		}, | 		}, | ||||||
| 		"sandbox state unknown": { | 		"sandbox state unknown": { | ||||||
| 			state:         sandboxstore.StateUnknown, | 			state:         sandboxstore.StateUnknown.String(), | ||||||
| 			expectedState: runtime.PodSandboxState_SANDBOX_NOTREADY, | 			expectedState: runtime.PodSandboxState_SANDBOX_NOTREADY, | ||||||
| 		}, | 		}, | ||||||
| 	} { | 	} { | ||||||
| 		t.Run(desc, func(t *testing.T) { | 		t.Run(desc, func(t *testing.T) { | ||||||
| 			status := sandboxstore.Status{ |  | ||||||
| 				CreatedAt: createdAt, |  | ||||||
| 				State:     test.state, |  | ||||||
| 			} |  | ||||||
| 			expected.State = test.expectedState | 			expected.State = test.expectedState | ||||||
| 			got := toCRISandboxStatus(metadata, status, ip, additionalIPs) | 			got := toCRISandboxStatus(metadata, test.state, createdAt, ip, additionalIPs) | ||||||
| 			assert.Equal(t, expected, got) | 			assert.Equal(t, expected, got) | ||||||
| 		}) | 		}) | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -165,7 +165,7 @@ func (c *Client) LoadSandbox(ctx context.Context, id string) (Sandbox, error) { | |||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	status, err := c.SandboxController().Status(ctx, id) | 	status, err := c.SandboxController().Status(ctx, id, false) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, fmt.Errorf("failed to load sandbox %s, status request failed: %w", id, err) | 		return nil, fmt.Errorf("failed to load sandbox %s, status request failed: %w", id, err) | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -36,7 +36,7 @@ type Controller interface { | |||||||
| 	Wait(ctx context.Context, sandboxID string) (*sandbox.ControllerWaitResponse, error) | 	Wait(ctx context.Context, sandboxID string) (*sandbox.ControllerWaitResponse, error) | ||||||
| 	// Status will query sandbox process status. It is heavier than Ping call and must be used whenever you need to | 	// Status will query sandbox process status. It is heavier than Ping call and must be used whenever you need to | ||||||
| 	// gather metadata about current sandbox state (status, uptime, resource use, etc). | 	// gather metadata about current sandbox state (status, uptime, resource use, etc). | ||||||
| 	Status(ctx context.Context, sandboxID string) (*sandbox.ControllerStatusResponse, error) | 	Status(ctx context.Context, sandboxID string, verbose bool) (*sandbox.ControllerStatusResponse, error) | ||||||
| 	// Delete deletes and cleans all tasks and sandbox instance. | 	// Delete deletes and cleans all tasks and sandbox instance. | ||||||
| 	Delete(ctx context.Context, sandboxID string) (*sandbox.ControllerDeleteResponse, error) | 	Delete(ctx context.Context, sandboxID string) (*sandbox.ControllerDeleteResponse, error) | ||||||
| } | } | ||||||
|   | |||||||
| @@ -81,8 +81,8 @@ func (s *remoteSandboxController) Wait(ctx context.Context, sandboxID string) (* | |||||||
| 	return resp, nil | 	return resp, nil | ||||||
| } | } | ||||||
|  |  | ||||||
| func (s *remoteSandboxController) Status(ctx context.Context, sandboxID string) (*api.ControllerStatusResponse, error) { | func (s *remoteSandboxController) Status(ctx context.Context, sandboxID string, verbose bool) (*api.ControllerStatusResponse, error) { | ||||||
| 	resp, err := s.client.Status(ctx, &api.ControllerStatusRequest{SandboxID: sandboxID}) | 	resp, err := s.client.Status(ctx, &api.ControllerStatusRequest{SandboxID: sandboxID, Verbose: verbose}) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, errdefs.FromGRPC(err) | 		return nil, errdefs.FromGRPC(err) | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -194,12 +194,11 @@ func (c *controllerLocal) Status(ctx context.Context, in *api.ControllerStatusRe | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return &api.ControllerStatusResponse{ | 	return &api.ControllerStatusResponse{ | ||||||
| 		ID:         resp.ID, | 		ID:       resp.ID, | ||||||
| 		Pid:        resp.Pid, | 		Pid:      resp.Pid, | ||||||
| 		State:      resp.State, | 		State:    resp.State, | ||||||
| 		ExitStatus: resp.ExitStatus, | 		ExitedAt: resp.ExitedAt, | ||||||
| 		ExitedAt:   resp.ExitedAt, | 		Extra:    resp.Extra, | ||||||
| 		Extra:      resp.Extra, |  | ||||||
| 	}, nil | 	}, nil | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Derek McGowan
					Derek McGowan