api/execution: remove ProcessID from rpc calls

Now that the shim handles all container's processes the system pid is
sufficient.

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
This commit is contained in:
Kenfe-Mickael Laventure 2017-02-02 15:36:10 -08:00
parent 40b0b211b7
commit 6f9eda1134
9 changed files with 151 additions and 241 deletions

View File

@ -178,14 +178,13 @@ func (*Container) ProtoMessage() {}
func (*Container) Descriptor() ([]byte, []int) { return fileDescriptorExecution, []int{8} }
type Process struct {
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Pid uint32 `protobuf:"varint,2,opt,name=pid,proto3" json:"pid,omitempty"`
Args []string `protobuf:"bytes,3,rep,name=args" json:"args,omitempty"`
Env []string `protobuf:"bytes,4,rep,name=env" json:"env,omitempty"`
User *User `protobuf:"bytes,5,opt,name=user" json:"user,omitempty"`
Cwd string `protobuf:"bytes,6,opt,name=cwd,proto3" json:"cwd,omitempty"`
Terminal bool `protobuf:"varint,7,opt,name=terminal,proto3" json:"terminal,omitempty"`
ExitStatus uint32 `protobuf:"varint,8,opt,name=exit_status,json=exitStatus,proto3" json:"exit_status,omitempty"`
Pid uint32 `protobuf:"varint,1,opt,name=pid,proto3" json:"pid,omitempty"`
Args []string `protobuf:"bytes,2,rep,name=args" json:"args,omitempty"`
Env []string `protobuf:"bytes,3,rep,name=env" json:"env,omitempty"`
User *User `protobuf:"bytes,4,opt,name=user" json:"user,omitempty"`
Cwd string `protobuf:"bytes,5,opt,name=cwd,proto3" json:"cwd,omitempty"`
Terminal bool `protobuf:"varint,6,opt,name=terminal,proto3" json:"terminal,omitempty"`
ExitStatus uint32 `protobuf:"varint,7,opt,name=exit_status,json=exitStatus,proto3" json:"exit_status,omitempty"`
}
func (m *Process) Reset() { *m = Process{} }
@ -245,7 +244,7 @@ func (*ResumeContainerRequest) Descriptor() ([]byte, []int) { return fileDescrip
type GetProcessRequest struct {
ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
ProcessID string `protobuf:"bytes,2,opt,name=process_id,json=processId,proto3" json:"process_id,omitempty"`
Pid uint32 `protobuf:"varint,2,opt,name=pid,proto3" json:"pid,omitempty"`
}
func (m *GetProcessRequest) Reset() { *m = GetProcessRequest{} }
@ -262,7 +261,7 @@ func (*GetProcessResponse) Descriptor() ([]byte, []int) { return fileDescriptorE
type SignalProcessRequest struct {
ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
ProcessID string `protobuf:"bytes,2,opt,name=process_id,json=processId,proto3" json:"process_id,omitempty"`
Pid uint32 `protobuf:"varint,2,opt,name=pid,proto3" json:"pid,omitempty"`
Signal uint32 `protobuf:"varint,3,opt,name=signal,proto3" json:"signal,omitempty"`
}
@ -272,7 +271,7 @@ func (*SignalProcessRequest) Descriptor() ([]byte, []int) { return fileDescripto
type DeleteProcessRequest struct {
ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
ProcessID string `protobuf:"bytes,2,opt,name=process_id,json=processId,proto3" json:"process_id,omitempty"`
Pid uint32 `protobuf:"varint,2,opt,name=pid,proto3" json:"pid,omitempty"`
}
func (m *DeleteProcessRequest) Reset() { *m = DeleteProcessRequest{} }
@ -280,7 +279,7 @@ func (*DeleteProcessRequest) ProtoMessage() {}
func (*DeleteProcessRequest) Descriptor() ([]byte, []int) { return fileDescriptorExecution, []int{19} }
type ListProcessesRequest struct {
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
}
func (m *ListProcessesRequest) Reset() { *m = ListProcessesRequest{} }
@ -438,9 +437,8 @@ func (this *Process) GoString() string {
if this == nil {
return "nil"
}
s := make([]string, 0, 12)
s := make([]string, 0, 11)
s = append(s, "&execution.Process{")
s = append(s, "ID: "+fmt.Sprintf("%#v", this.ID)+",\n")
s = append(s, "Pid: "+fmt.Sprintf("%#v", this.Pid)+",\n")
s = append(s, "Args: "+fmt.Sprintf("%#v", this.Args)+",\n")
s = append(s, "Env: "+fmt.Sprintf("%#v", this.Env)+",\n")
@ -525,7 +523,7 @@ func (this *GetProcessRequest) GoString() string {
s := make([]string, 0, 6)
s = append(s, "&execution.GetProcessRequest{")
s = append(s, "ContainerID: "+fmt.Sprintf("%#v", this.ContainerID)+",\n")
s = append(s, "ProcessID: "+fmt.Sprintf("%#v", this.ProcessID)+",\n")
s = append(s, "Pid: "+fmt.Sprintf("%#v", this.Pid)+",\n")
s = append(s, "}")
return strings.Join(s, "")
}
@ -548,7 +546,7 @@ func (this *SignalProcessRequest) GoString() string {
s := make([]string, 0, 7)
s = append(s, "&execution.SignalProcessRequest{")
s = append(s, "ContainerID: "+fmt.Sprintf("%#v", this.ContainerID)+",\n")
s = append(s, "ProcessID: "+fmt.Sprintf("%#v", this.ProcessID)+",\n")
s = append(s, "Pid: "+fmt.Sprintf("%#v", this.Pid)+",\n")
s = append(s, "Signal: "+fmt.Sprintf("%#v", this.Signal)+",\n")
s = append(s, "}")
return strings.Join(s, "")
@ -560,7 +558,7 @@ func (this *DeleteProcessRequest) GoString() string {
s := make([]string, 0, 6)
s = append(s, "&execution.DeleteProcessRequest{")
s = append(s, "ContainerID: "+fmt.Sprintf("%#v", this.ContainerID)+",\n")
s = append(s, "ProcessID: "+fmt.Sprintf("%#v", this.ProcessID)+",\n")
s = append(s, "Pid: "+fmt.Sprintf("%#v", this.Pid)+",\n")
s = append(s, "}")
return strings.Join(s, "")
}
@ -570,7 +568,7 @@ func (this *ListProcessesRequest) GoString() string {
}
s := make([]string, 0, 5)
s = append(s, "&execution.ListProcessesRequest{")
s = append(s, "ID: "+fmt.Sprintf("%#v", this.ID)+",\n")
s = append(s, "ContainerID: "+fmt.Sprintf("%#v", this.ContainerID)+",\n")
s = append(s, "}")
return strings.Join(s, "")
}
@ -1433,20 +1431,14 @@ func (m *Process) MarshalTo(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if len(m.ID) > 0 {
dAtA[i] = 0xa
i++
i = encodeVarintExecution(dAtA, i, uint64(len(m.ID)))
i += copy(dAtA[i:], m.ID)
}
if m.Pid != 0 {
dAtA[i] = 0x10
dAtA[i] = 0x8
i++
i = encodeVarintExecution(dAtA, i, uint64(m.Pid))
}
if len(m.Args) > 0 {
for _, s := range m.Args {
dAtA[i] = 0x1a
dAtA[i] = 0x12
i++
l = len(s)
for l >= 1<<7 {
@ -1461,7 +1453,7 @@ func (m *Process) MarshalTo(dAtA []byte) (int, error) {
}
if len(m.Env) > 0 {
for _, s := range m.Env {
dAtA[i] = 0x22
dAtA[i] = 0x1a
i++
l = len(s)
for l >= 1<<7 {
@ -1475,7 +1467,7 @@ func (m *Process) MarshalTo(dAtA []byte) (int, error) {
}
}
if m.User != nil {
dAtA[i] = 0x2a
dAtA[i] = 0x22
i++
i = encodeVarintExecution(dAtA, i, uint64(m.User.Size()))
n5, err := m.User.MarshalTo(dAtA[i:])
@ -1485,13 +1477,13 @@ func (m *Process) MarshalTo(dAtA []byte) (int, error) {
i += n5
}
if len(m.Cwd) > 0 {
dAtA[i] = 0x32
dAtA[i] = 0x2a
i++
i = encodeVarintExecution(dAtA, i, uint64(len(m.Cwd)))
i += copy(dAtA[i:], m.Cwd)
}
if m.Terminal {
dAtA[i] = 0x38
dAtA[i] = 0x30
i++
if m.Terminal {
dAtA[i] = 1
@ -1501,7 +1493,7 @@ func (m *Process) MarshalTo(dAtA []byte) (int, error) {
i++
}
if m.ExitStatus != 0 {
dAtA[i] = 0x40
dAtA[i] = 0x38
i++
i = encodeVarintExecution(dAtA, i, uint64(m.ExitStatus))
}
@ -1704,11 +1696,10 @@ func (m *GetProcessRequest) MarshalTo(dAtA []byte) (int, error) {
i = encodeVarintExecution(dAtA, i, uint64(len(m.ContainerID)))
i += copy(dAtA[i:], m.ContainerID)
}
if len(m.ProcessID) > 0 {
dAtA[i] = 0x12
if m.Pid != 0 {
dAtA[i] = 0x10
i++
i = encodeVarintExecution(dAtA, i, uint64(len(m.ProcessID)))
i += copy(dAtA[i:], m.ProcessID)
i = encodeVarintExecution(dAtA, i, uint64(m.Pid))
}
return i, nil
}
@ -1762,11 +1753,10 @@ func (m *SignalProcessRequest) MarshalTo(dAtA []byte) (int, error) {
i = encodeVarintExecution(dAtA, i, uint64(len(m.ContainerID)))
i += copy(dAtA[i:], m.ContainerID)
}
if len(m.ProcessID) > 0 {
dAtA[i] = 0x12
if m.Pid != 0 {
dAtA[i] = 0x10
i++
i = encodeVarintExecution(dAtA, i, uint64(len(m.ProcessID)))
i += copy(dAtA[i:], m.ProcessID)
i = encodeVarintExecution(dAtA, i, uint64(m.Pid))
}
if m.Signal != 0 {
dAtA[i] = 0x18
@ -1797,11 +1787,10 @@ func (m *DeleteProcessRequest) MarshalTo(dAtA []byte) (int, error) {
i = encodeVarintExecution(dAtA, i, uint64(len(m.ContainerID)))
i += copy(dAtA[i:], m.ContainerID)
}
if len(m.ProcessID) > 0 {
dAtA[i] = 0x12
if m.Pid != 0 {
dAtA[i] = 0x10
i++
i = encodeVarintExecution(dAtA, i, uint64(len(m.ProcessID)))
i += copy(dAtA[i:], m.ProcessID)
i = encodeVarintExecution(dAtA, i, uint64(m.Pid))
}
return i, nil
}
@ -1821,11 +1810,11 @@ func (m *ListProcessesRequest) MarshalTo(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if len(m.ID) > 0 {
if len(m.ContainerID) > 0 {
dAtA[i] = 0xa
i++
i = encodeVarintExecution(dAtA, i, uint64(len(m.ID)))
i += copy(dAtA[i:], m.ID)
i = encodeVarintExecution(dAtA, i, uint64(len(m.ContainerID)))
i += copy(dAtA[i:], m.ContainerID)
}
return i, nil
}
@ -2036,10 +2025,6 @@ func (m *Container) Size() (n int) {
func (m *Process) Size() (n int) {
var l int
_ = l
l = len(m.ID)
if l > 0 {
n += 1 + l + sovExecution(uint64(l))
}
if m.Pid != 0 {
n += 1 + sovExecution(uint64(m.Pid))
}
@ -2152,9 +2137,8 @@ func (m *GetProcessRequest) Size() (n int) {
if l > 0 {
n += 1 + l + sovExecution(uint64(l))
}
l = len(m.ProcessID)
if l > 0 {
n += 1 + l + sovExecution(uint64(l))
if m.Pid != 0 {
n += 1 + sovExecution(uint64(m.Pid))
}
return n
}
@ -2176,9 +2160,8 @@ func (m *SignalProcessRequest) Size() (n int) {
if l > 0 {
n += 1 + l + sovExecution(uint64(l))
}
l = len(m.ProcessID)
if l > 0 {
n += 1 + l + sovExecution(uint64(l))
if m.Pid != 0 {
n += 1 + sovExecution(uint64(m.Pid))
}
if m.Signal != 0 {
n += 1 + sovExecution(uint64(m.Signal))
@ -2193,9 +2176,8 @@ func (m *DeleteProcessRequest) Size() (n int) {
if l > 0 {
n += 1 + l + sovExecution(uint64(l))
}
l = len(m.ProcessID)
if l > 0 {
n += 1 + l + sovExecution(uint64(l))
if m.Pid != 0 {
n += 1 + sovExecution(uint64(m.Pid))
}
return n
}
@ -2203,7 +2185,7 @@ func (m *DeleteProcessRequest) Size() (n int) {
func (m *ListProcessesRequest) Size() (n int) {
var l int
_ = l
l = len(m.ID)
l = len(m.ContainerID)
if l > 0 {
n += 1 + l + sovExecution(uint64(l))
}
@ -2344,7 +2326,6 @@ func (this *Process) String() string {
return "nil"
}
s := strings.Join([]string{`&Process{`,
`ID:` + fmt.Sprintf("%v", this.ID) + `,`,
`Pid:` + fmt.Sprintf("%v", this.Pid) + `,`,
`Args:` + fmt.Sprintf("%v", this.Args) + `,`,
`Env:` + fmt.Sprintf("%v", this.Env) + `,`,
@ -2425,7 +2406,7 @@ func (this *GetProcessRequest) String() string {
}
s := strings.Join([]string{`&GetProcessRequest{`,
`ContainerID:` + fmt.Sprintf("%v", this.ContainerID) + `,`,
`ProcessID:` + fmt.Sprintf("%v", this.ProcessID) + `,`,
`Pid:` + fmt.Sprintf("%v", this.Pid) + `,`,
`}`,
}, "")
return s
@ -2446,7 +2427,7 @@ func (this *SignalProcessRequest) String() string {
}
s := strings.Join([]string{`&SignalProcessRequest{`,
`ContainerID:` + fmt.Sprintf("%v", this.ContainerID) + `,`,
`ProcessID:` + fmt.Sprintf("%v", this.ProcessID) + `,`,
`Pid:` + fmt.Sprintf("%v", this.Pid) + `,`,
`Signal:` + fmt.Sprintf("%v", this.Signal) + `,`,
`}`,
}, "")
@ -2458,7 +2439,7 @@ func (this *DeleteProcessRequest) String() string {
}
s := strings.Join([]string{`&DeleteProcessRequest{`,
`ContainerID:` + fmt.Sprintf("%v", this.ContainerID) + `,`,
`ProcessID:` + fmt.Sprintf("%v", this.ProcessID) + `,`,
`Pid:` + fmt.Sprintf("%v", this.Pid) + `,`,
`}`,
}, "")
return s
@ -2468,7 +2449,7 @@ func (this *ListProcessesRequest) String() string {
return "nil"
}
s := strings.Join([]string{`&ListProcessesRequest{`,
`ID:` + fmt.Sprintf("%v", this.ID) + `,`,
`ContainerID:` + fmt.Sprintf("%v", this.ContainerID) + `,`,
`}`,
}, "")
return s
@ -3618,35 +3599,6 @@ func (m *Process) Unmarshal(dAtA []byte) error {
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ID", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExecution
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthExecution
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Pid", wireType)
}
@ -3665,7 +3617,7 @@ func (m *Process) Unmarshal(dAtA []byte) error {
break
}
}
case 3:
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Args", wireType)
}
@ -3694,7 +3646,7 @@ func (m *Process) Unmarshal(dAtA []byte) error {
}
m.Args = append(m.Args, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
case 4:
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Env", wireType)
}
@ -3723,7 +3675,7 @@ func (m *Process) Unmarshal(dAtA []byte) error {
}
m.Env = append(m.Env, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
case 5:
case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field User", wireType)
}
@ -3756,7 +3708,7 @@ func (m *Process) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
case 6:
case 5:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Cwd", wireType)
}
@ -3785,7 +3737,7 @@ func (m *Process) Unmarshal(dAtA []byte) error {
}
m.Cwd = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 7:
case 6:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Terminal", wireType)
}
@ -3805,7 +3757,7 @@ func (m *Process) Unmarshal(dAtA []byte) error {
}
}
m.Terminal = bool(v != 0)
case 8:
case 7:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field ExitStatus", wireType)
}
@ -4482,10 +4434,10 @@ func (m *GetProcessRequest) Unmarshal(dAtA []byte) error {
m.ContainerID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ProcessID", wireType)
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Pid", wireType)
}
var stringLen uint64
m.Pid = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExecution
@ -4495,21 +4447,11 @@ func (m *GetProcessRequest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
m.Pid |= (uint32(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthExecution
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ProcessID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipExecution(dAtA[iNdEx:])
@ -4673,10 +4615,10 @@ func (m *SignalProcessRequest) Unmarshal(dAtA []byte) error {
m.ContainerID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ProcessID", wireType)
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Pid", wireType)
}
var stringLen uint64
m.Pid = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExecution
@ -4686,21 +4628,11 @@ func (m *SignalProcessRequest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
m.Pid |= (uint32(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthExecution
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ProcessID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 3:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Signal", wireType)
@ -4800,10 +4732,10 @@ func (m *DeleteProcessRequest) Unmarshal(dAtA []byte) error {
m.ContainerID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ProcessID", wireType)
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Pid", wireType)
}
var stringLen uint64
m.Pid = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExecution
@ -4813,21 +4745,11 @@ func (m *DeleteProcessRequest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
m.Pid |= (uint32(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthExecution
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ProcessID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipExecution(dAtA[iNdEx:])
@ -4880,7 +4802,7 @@ func (m *ListProcessesRequest) Unmarshal(dAtA []byte) error {
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ID", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field ContainerID", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@ -4905,7 +4827,7 @@ func (m *ListProcessesRequest) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ID = string(dAtA[iNdEx:postIndex])
m.ContainerID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
@ -5117,69 +5039,68 @@ var (
func init() { proto.RegisterFile("execution.proto", fileDescriptorExecution) }
var fileDescriptorExecution = []byte{
// 1018 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xbc, 0x56, 0xcf, 0x6f, 0xe3, 0x44,
0x14, 0xae, 0x93, 0x34, 0x69, 0x5e, 0xea, 0x34, 0x4c, 0x53, 0x63, 0x05, 0x94, 0x16, 0xb3, 0xbb,
0xac, 0x10, 0x4d, 0x97, 0x80, 0xd0, 0x4a, 0x9c, 0xb6, 0x4d, 0x28, 0x91, 0x4a, 0x08, 0x93, 0x8d,
0x56, 0x42, 0x42, 0xc5, 0x8d, 0x87, 0xac, 0x51, 0x6a, 0x07, 0x8f, 0xdd, 0x2d, 0x37, 0xee, 0x5c,
0xf8, 0x57, 0xf8, 0x2f, 0xf6, 0x08, 0x37, 0x24, 0xa4, 0x8a, 0xe6, 0xc0, 0x99, 0x3f, 0x01, 0xcd,
0x78, 0xec, 0xc4, 0x3f, 0xf2, 0x83, 0x05, 0x7a, 0x9b, 0x19, 0x7f, 0xf3, 0xfc, 0x7d, 0xef, 0xcd,
0x7c, 0xf3, 0x60, 0x87, 0x5c, 0x93, 0xa1, 0xe7, 0x9a, 0xb6, 0xd5, 0x98, 0x38, 0xb6, 0x6b, 0x23,
0x79, 0x68, 0x5b, 0xae, 0x6e, 0x5a, 0xc4, 0x31, 0x1a, 0x57, 0xef, 0xd7, 0xde, 0x18, 0xd9, 0xf6,
0x68, 0x4c, 0x8e, 0xf8, 0xc7, 0x0b, 0xef, 0x9b, 0x23, 0x72, 0x39, 0x71, 0xbf, 0xf7, 0xb1, 0xb5,
0xea, 0xc8, 0x1e, 0xd9, 0x7c, 0x78, 0xc4, 0x46, 0xfe, 0xaa, 0x76, 0x04, 0x7b, 0x7d, 0x57, 0x77,
0xdc, 0x93, 0x20, 0x10, 0x26, 0xdf, 0x79, 0x84, 0xba, 0x48, 0x81, 0x8c, 0x69, 0xa8, 0xd2, 0x81,
0xf4, 0xb0, 0x78, 0x9c, 0x9f, 0xde, 0xec, 0x67, 0x3a, 0x2d, 0x9c, 0x31, 0x0d, 0xed, 0x67, 0x09,
0x94, 0x13, 0x87, 0xe8, 0x2e, 0x59, 0x77, 0x0b, 0xda, 0x87, 0xd2, 0x85, 0x67, 0x19, 0x63, 0x72,
0x3e, 0xd1, 0xdd, 0xe7, 0x6a, 0x86, 0x01, 0x30, 0xf8, 0x4b, 0x3d, 0xdd, 0x7d, 0x8e, 0x54, 0x28,
0x0c, 0x6d, 0x8b, 0xda, 0x63, 0xa2, 0x66, 0x0f, 0xa4, 0x87, 0x5b, 0x38, 0x98, 0xa2, 0x2a, 0x6c,
0x52, 0xd7, 0x30, 0x2d, 0x35, 0xc7, 0x37, 0xf9, 0x13, 0xa4, 0x40, 0x9e, 0xba, 0x86, 0xed, 0xb9,
0xea, 0x26, 0x5f, 0x16, 0x33, 0xb1, 0x4e, 0x1c, 0x47, 0xcd, 0x87, 0xeb, 0xc4, 0x71, 0xb4, 0x1f,
0x25, 0x78, 0x3d, 0xc1, 0x99, 0x4e, 0x6c, 0x8b, 0x12, 0xf4, 0x11, 0x14, 0xc3, 0x24, 0x72, 0xee,
0xa5, 0xa6, 0xda, 0x88, 0xa4, 0xb5, 0x31, 0xdb, 0x34, 0x83, 0xa2, 0xc7, 0x50, 0x32, 0x2d, 0xd3,
0xed, 0x39, 0xf6, 0x90, 0x50, 0xca, 0x45, 0x95, 0x9a, 0x4a, 0x6c, 0xa7, 0xf8, 0x8a, 0xe7, 0xa1,
0xda, 0x31, 0x28, 0x2d, 0x32, 0x26, 0xff, 0x20, 0x81, 0x15, 0xc8, 0x4e, 0x4c, 0x83, 0xff, 0x43,
0xc6, 0x6c, 0xa8, 0x1d, 0xc2, 0xde, 0x99, 0x49, 0x67, 0x55, 0xa3, 0x41, 0x88, 0x2a, 0x6c, 0xda,
0x2f, 0x7c, 0x29, 0x59, 0x96, 0x30, 0x3e, 0xd1, 0x30, 0x28, 0x71, 0xb8, 0x90, 0xff, 0x18, 0x20,
0xa4, 0x4c, 0xf9, 0xa6, 0x65, 0xfa, 0xe7, 0xb0, 0xda, 0xef, 0x12, 0xec, 0xf2, 0xa3, 0x13, 0x88,
0x14, 0x0c, 0x9a, 0xb0, 0x1d, 0xa2, 0xce, 0x43, 0x39, 0x3b, 0xd3, 0x9b, 0xfd, 0x52, 0x18, 0xa8,
0xd3, 0xc2, 0xa5, 0x10, 0xd4, 0x31, 0xd0, 0x23, 0x28, 0x4c, 0xd6, 0x4a, 0x64, 0x00, 0xfb, 0xdf,
0x8f, 0xcc, 0xa7, 0x50, 0x8d, 0x8a, 0x13, 0xf9, 0x9a, 0x63, 0x2a, 0xad, 0xc5, 0x54, 0xfb, 0x16,
0x8a, 0xa1, 0xee, 0x85, 0x15, 0x56, 0x20, 0xef, 0xdf, 0x07, 0x71, 0x3b, 0xc4, 0x0c, 0x1d, 0x32,
0x7a, 0xba, 0xeb, 0x51, 0xae, 0xa6, 0xdc, 0xdc, 0x8b, 0xfd, 0xad, 0xcf, 0x3f, 0x62, 0x01, 0xd2,
0x7e, 0x95, 0xa0, 0x20, 0x08, 0xac, 0x7f, 0x98, 0x10, 0x82, 0x9c, 0xee, 0x8c, 0xa8, 0x9a, 0xe5,
0x47, 0x86, 0x8f, 0x19, 0x8a, 0x58, 0x57, 0x6a, 0x8e, 0x2f, 0xb1, 0x21, 0x7a, 0x07, 0x72, 0x1e,
0x25, 0x0e, 0xcf, 0x5f, 0xa9, 0xb9, 0x1b, 0x23, 0x32, 0xa0, 0xc4, 0xc1, 0x1c, 0xc0, 0xb6, 0x0e,
0x5f, 0x18, 0x22, 0x9f, 0x6c, 0x88, 0x6a, 0xb0, 0xe5, 0x12, 0xe7, 0xd2, 0xb4, 0xf4, 0xb1, 0x5a,
0xe0, 0xd5, 0x0a, 0xe7, 0xcc, 0x1c, 0xc8, 0xb5, 0xe9, 0x9e, 0x0b, 0x99, 0x5b, 0x9c, 0x16, 0xb0,
0x25, 0x5f, 0x9b, 0x86, 0x21, 0x37, 0x10, 0x61, 0x3d, 0x21, 0x48, 0xc6, 0x6c, 0xc8, 0x56, 0x46,
0x33, 0x25, 0x23, 0xd3, 0x40, 0x0f, 0xa0, 0xac, 0x1b, 0x86, 0xc9, 0x1c, 0x52, 0x1f, 0x9f, 0x9a,
0x86, 0xaf, 0x49, 0xc6, 0xb1, 0x55, 0xed, 0x10, 0x76, 0x4f, 0xc9, 0xfa, 0x9e, 0xd7, 0x85, 0x6a,
0x14, 0xfe, 0xef, 0xbc, 0x43, 0xbb, 0x04, 0x65, 0x30, 0x31, 0xd2, 0x2c, 0xf4, 0x55, 0x2e, 0xcf,
0x2a, 0x7b, 0x65, 0x1e, 0xdf, 0xd3, 0x3d, 0xba, 0xb6, 0xdf, 0x68, 0x8f, 0x40, 0xc1, 0x84, 0x7a,
0x97, 0xeb, 0xef, 0xf0, 0xe0, 0xb5, 0x53, 0xf2, 0x5f, 0x38, 0xc1, 0x7b, 0x00, 0xe2, 0xe2, 0x9c,
0x8b, 0xd2, 0x16, 0x8f, 0xe5, 0xe9, 0xcd, 0x7e, 0x51, 0xc4, 0xee, 0xb4, 0x70, 0x51, 0x00, 0x3a,
0x86, 0xf6, 0x09, 0xa0, 0xf9, 0xdf, 0xbe, 0xf2, 0x1d, 0xfd, 0x49, 0x82, 0x6a, 0xdf, 0x1c, 0x59,
0xfa, 0xf8, 0xae, 0x25, 0x70, 0x03, 0xe2, 0x7f, 0xe6, 0x3e, 0x26, 0x63, 0x31, 0xd3, 0xae, 0xa1,
0xea, 0xbf, 0x12, 0x77, 0x9e, 0xd4, 0x06, 0x54, 0xd9, 0x63, 0x21, 0xbe, 0x11, 0xba, 0xaa, 0xf6,
0x9f, 0xf9, 0x6f, 0xd1, 0x1c, 0x5e, 0xd4, 0xe1, 0x43, 0x08, 0xa2, 0x92, 0xe0, 0x69, 0x59, 0x54,
0x89, 0x19, 0xf0, 0xdd, 0x8f, 0x21, 0xef, 0xdf, 0x7c, 0x54, 0x82, 0xc2, 0x09, 0x6e, 0x3f, 0x79,
0xda, 0x6e, 0x55, 0x36, 0xd8, 0x04, 0x0f, 0xba, 0xdd, 0x4e, 0xf7, 0xb4, 0x22, 0xb1, 0x49, 0xff,
0xe9, 0xe7, 0xbd, 0x5e, 0xbb, 0x55, 0xc9, 0x20, 0x80, 0x7c, 0xef, 0xc9, 0xa0, 0xdf, 0x6e, 0x55,
0xb2, 0xcd, 0x3f, 0xb7, 0xa0, 0xd2, 0x0e, 0x9a, 0xa4, 0x3e, 0x71, 0xae, 0xcc, 0x21, 0x41, 0x5f,
0xc3, 0x4e, 0xec, 0xf5, 0x47, 0xf7, 0xe3, 0xd7, 0x34, 0xb5, 0xa3, 0xa9, 0x3d, 0x58, 0x05, 0x13,
0x4a, 0xbb, 0x50, 0x8e, 0x76, 0x51, 0xe8, 0x5e, 0xd2, 0xa8, 0x93, 0x4d, 0x56, 0x4d, 0x69, 0xf8,
0x1d, 0x5b, 0x23, 0xe8, 0xd8, 0x1a, 0x6d, 0xd6, 0xb1, 0xa1, 0x1e, 0xec, 0xc4, 0x0c, 0x22, 0xc1,
0x38, 0xdd, 0x40, 0x16, 0x46, 0xec, 0x42, 0x39, 0xea, 0x01, 0x09, 0x86, 0xa9, 0x16, 0xb1, 0x8c,
0x61, 0xcc, 0x22, 0x12, 0x0c, 0xd3, 0x2d, 0x64, 0x59, 0xc4, 0x58, 0x5b, 0x94, 0x88, 0x98, 0xde,
0x36, 0x2d, 0x8c, 0xf8, 0x0c, 0xb6, 0xe7, 0x6d, 0x1b, 0x69, 0xb1, 0x70, 0x29, 0x4f, 0x40, 0xed,
0xed, 0xa5, 0x18, 0x51, 0xee, 0xaf, 0xa0, 0x1c, 0x6d, 0xa7, 0x12, 0xc9, 0x4c, 0x6d, 0xce, 0x6a,
0xf7, 0x57, 0xa0, 0x44, 0xf8, 0x67, 0xb0, 0x3d, 0xdf, 0x7b, 0x24, 0x78, 0xa7, 0x74, 0x5d, 0x09,
0xde, 0xa9, 0xcd, 0xcb, 0x17, 0x00, 0x33, 0xbb, 0x44, 0x07, 0x49, 0xa9, 0xb1, 0xa0, 0x6f, 0x2d,
0x41, 0x88, 0x90, 0x67, 0x20, 0x47, 0x8c, 0x13, 0x25, 0x88, 0xa4, 0xd8, 0xea, 0xc2, 0x8a, 0x9d,
0x81, 0x1c, 0x31, 0xbd, 0x44, 0xb4, 0x34, 0x4b, 0x5c, 0x18, 0xed, 0x4b, 0x90, 0x23, 0xc6, 0x94,
0x88, 0x96, 0x66, 0x73, 0xb5, 0x7b, 0xcb, 0x41, 0xbe, 0xee, 0xe3, 0x37, 0x5f, 0xde, 0xd6, 0x37,
0x7e, 0xbb, 0xad, 0x6f, 0xfc, 0x75, 0x5b, 0x97, 0x7e, 0x98, 0xd6, 0xa5, 0x97, 0xd3, 0xba, 0xf4,
0xcb, 0xb4, 0x2e, 0xfd, 0x31, 0xad, 0x4b, 0x17, 0x79, 0xce, 0xe4, 0x83, 0xbf, 0x03, 0x00, 0x00,
0xff, 0xff, 0xb4, 0x16, 0x52, 0xf1, 0xb1, 0x0d, 0x00, 0x00,
// 998 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x56, 0xcf, 0x6f, 0xe3, 0x44,
0x14, 0xae, 0x93, 0x36, 0x69, 0x5f, 0x9a, 0x34, 0x4c, 0x53, 0x63, 0x05, 0x94, 0x16, 0xb3, 0xbb,
0xac, 0x90, 0x9a, 0x2e, 0x01, 0xa1, 0x95, 0x38, 0x6d, 0x9b, 0x50, 0x8a, 0x4a, 0x08, 0x93, 0x8d,
0x56, 0x20, 0x50, 0x71, 0xe3, 0x21, 0x6b, 0x94, 0xda, 0xc6, 0x33, 0xee, 0x2e, 0x37, 0xee, 0xfc,
0x35, 0x1c, 0xf9, 0x0f, 0xf6, 0xc8, 0x11, 0x09, 0x69, 0x45, 0x73, 0xe0, 0xcc, 0x9f, 0x80, 0x66,
0x3c, 0x76, 0xe2, 0x1f, 0x49, 0xc3, 0x76, 0x7b, 0x9b, 0x79, 0xfe, 0xe6, 0xf3, 0xf7, 0x9e, 0xe7,
0x7d, 0x7e, 0xb0, 0x45, 0x9e, 0x93, 0xa1, 0xcf, 0x2c, 0xc7, 0x6e, 0xba, 0x9e, 0xc3, 0x1c, 0x54,
0x1e, 0x3a, 0x36, 0x33, 0x2c, 0x9b, 0x78, 0x66, 0xf3, 0xf2, 0x83, 0xfa, 0x5b, 0x23, 0xc7, 0x19,
0x8d, 0xc9, 0x81, 0x78, 0x78, 0xee, 0xff, 0x70, 0x40, 0x2e, 0x5c, 0xf6, 0x73, 0x80, 0xad, 0xd7,
0x46, 0xce, 0xc8, 0x11, 0xcb, 0x03, 0xbe, 0x0a, 0xa2, 0xfa, 0x01, 0xec, 0xf4, 0x99, 0xe1, 0xb1,
0xa3, 0x90, 0x08, 0x93, 0x9f, 0x7c, 0x42, 0x19, 0x52, 0x21, 0x67, 0x99, 0x9a, 0xb2, 0xa7, 0xdc,
0xdf, 0x38, 0x2c, 0x4c, 0x5e, 0xee, 0xe6, 0x4e, 0xda, 0x38, 0x67, 0x99, 0xfa, 0x6f, 0x0a, 0xa8,
0x47, 0x1e, 0x31, 0x18, 0x59, 0xf6, 0x08, 0xda, 0x85, 0xd2, 0xb9, 0x6f, 0x9b, 0x63, 0x72, 0xe6,
0x1a, 0xec, 0xa9, 0x96, 0xe3, 0x00, 0x0c, 0x41, 0xa8, 0x67, 0xb0, 0xa7, 0x48, 0x83, 0xe2, 0xd0,
0xb1, 0xa9, 0x33, 0x26, 0x5a, 0x7e, 0x4f, 0xb9, 0xbf, 0x8e, 0xc3, 0x2d, 0xaa, 0xc1, 0x1a, 0x65,
0xa6, 0x65, 0x6b, 0xab, 0xe2, 0x50, 0xb0, 0x41, 0x2a, 0x14, 0x28, 0x33, 0x1d, 0x9f, 0x69, 0x6b,
0x22, 0x2c, 0x77, 0x32, 0x4e, 0x3c, 0x4f, 0x2b, 0x44, 0x71, 0xe2, 0x79, 0xfa, 0xaf, 0x0a, 0xbc,
0x99, 0xd2, 0x4c, 0x5d, 0xc7, 0xa6, 0x04, 0x7d, 0x0c, 0x1b, 0x51, 0x11, 0x85, 0xf6, 0x52, 0x4b,
0x6b, 0xc6, 0xca, 0xda, 0x9c, 0x1e, 0x9a, 0x42, 0xd1, 0x43, 0x28, 0x59, 0xb6, 0xc5, 0x7a, 0x9e,
0x33, 0x24, 0x94, 0x8a, 0xa4, 0x4a, 0x2d, 0x35, 0x71, 0x52, 0x3e, 0xc5, 0xb3, 0x50, 0xfd, 0x10,
0xd4, 0x36, 0x19, 0x93, 0xff, 0x51, 0xc0, 0x2a, 0xe4, 0x5d, 0xcb, 0x14, 0xef, 0x28, 0x63, 0xbe,
0xd4, 0xf7, 0x61, 0xe7, 0xd4, 0xa2, 0xd3, 0xaf, 0x46, 0x43, 0x8a, 0x1a, 0xac, 0x39, 0xcf, 0x82,
0x54, 0xf2, 0xbc, 0x60, 0x62, 0xa3, 0x63, 0x50, 0x93, 0x70, 0x99, 0xfe, 0x43, 0x80, 0x48, 0x32,
0x15, 0x87, 0x16, 0xe5, 0x3f, 0x83, 0xd5, 0xff, 0x52, 0x60, 0x5b, 0x5c, 0x9d, 0x30, 0x49, 0xa9,
0xa0, 0x05, 0x9b, 0x11, 0xea, 0x2c, 0x4a, 0x67, 0x6b, 0xf2, 0x72, 0xb7, 0x14, 0x11, 0x9d, 0xb4,
0x71, 0x29, 0x02, 0x9d, 0x98, 0xe8, 0x01, 0x14, 0xdd, 0xa5, 0x0a, 0x19, 0xc2, 0x6e, 0xfd, 0xca,
0x7c, 0x06, 0xb5, 0x78, 0x72, 0xb2, 0x5e, 0x33, 0x4a, 0x95, 0xa5, 0x94, 0xea, 0x3f, 0xc2, 0x46,
0x94, 0xf7, 0xdc, 0x2f, 0xac, 0x42, 0x21, 0xe8, 0x07, 0xd9, 0x1d, 0x72, 0x87, 0xf6, 0xb9, 0x3c,
0x83, 0xf9, 0x54, 0x64, 0x53, 0x69, 0xed, 0x24, 0xde, 0xd6, 0x17, 0x0f, 0xb1, 0x04, 0xe9, 0xbf,
0x2b, 0x50, 0x94, 0x02, 0xc2, 0x4b, 0xa3, 0x44, 0x97, 0x06, 0x21, 0x58, 0x35, 0xbc, 0x11, 0x2f,
0x31, 0xbf, 0x1a, 0x62, 0xcd, 0x51, 0xc4, 0xbe, 0xd4, 0xf2, 0x22, 0xc4, 0x97, 0xe8, 0x3d, 0x58,
0xf5, 0x29, 0xf1, 0xc4, 0x0b, 0x4b, 0xad, 0xed, 0xc4, 0x0b, 0x07, 0x94, 0x78, 0x58, 0x00, 0xf8,
0xd1, 0xe1, 0x33, 0x53, 0xd6, 0x93, 0x2f, 0x51, 0x1d, 0xd6, 0x19, 0xf1, 0x2e, 0x2c, 0xdb, 0x18,
0x8b, 0x72, 0xae, 0xe3, 0x68, 0xcf, 0x4d, 0x80, 0x3c, 0xb7, 0xd8, 0x99, 0x4c, 0xa7, 0x28, 0x64,
0x01, 0x0f, 0x05, 0x39, 0xe8, 0x18, 0x56, 0x07, 0x92, 0xd6, 0x9f, 0xea, 0xf6, 0x83, 0xeb, 0x3f,
0x9a, 0x5e, 0xff, 0x91, 0x65, 0xa2, 0x7b, 0x50, 0x31, 0x4c, 0xd3, 0xe2, 0x4e, 0x68, 0x8c, 0x8f,
0x2d, 0x93, 0x8a, 0x04, 0xca, 0x38, 0x11, 0xd5, 0xf7, 0x61, 0xfb, 0x98, 0x2c, 0xef, 0x6d, 0x5d,
0xa8, 0xc5, 0xe1, 0x37, 0xf3, 0x08, 0xfd, 0x02, 0xd4, 0x81, 0x6b, 0x66, 0x59, 0xe5, 0xab, 0x34,
0xc9, 0x75, 0x36, 0xca, 0xbd, 0xbc, 0x67, 0xf8, 0x74, 0x69, 0x5f, 0xd1, 0x1f, 0x80, 0x8a, 0x09,
0xf5, 0x2f, 0x96, 0x3f, 0xf1, 0x35, 0xbc, 0x71, 0x4c, 0x5e, 0x47, 0xc7, 0xa7, 0x2d, 0xed, 0x53,
0x40, 0xb3, 0xd4, 0xaf, 0xdc, 0x6f, 0x0c, 0x6a, 0x7d, 0x6b, 0x64, 0x1b, 0xe3, 0xdb, 0x50, 0x29,
0xfc, 0x42, 0xb0, 0x0b, 0xdb, 0x29, 0x63, 0xb9, 0xd3, 0xbf, 0x85, 0x5a, 0x60, 0xea, 0xb7, 0x52,
0x9b, 0xcf, 0xa1, 0xc6, 0xfd, 0x5b, 0x72, 0x93, 0x9b, 0xb0, 0xeb, 0x5f, 0x04, 0xbf, 0x8e, 0x19,
0x2e, 0x59, 0xea, 0x8f, 0x60, 0xc3, 0x0d, 0x83, 0xf2, 0x4f, 0x30, 0xaf, 0xd8, 0x53, 0xe0, 0xfb,
0x9f, 0x40, 0x21, 0x68, 0x60, 0x54, 0x82, 0xe2, 0x11, 0xee, 0x3c, 0x7a, 0xdc, 0x69, 0x57, 0x57,
0xf8, 0x06, 0x0f, 0xba, 0xdd, 0x93, 0xee, 0x71, 0x55, 0xe1, 0x9b, 0xfe, 0xe3, 0x2f, 0x7b, 0xbd,
0x4e, 0xbb, 0x9a, 0x43, 0x00, 0x85, 0xde, 0xa3, 0x41, 0xbf, 0xd3, 0xae, 0xe6, 0x5b, 0xff, 0xac,
0x43, 0xb5, 0x13, 0xce, 0x34, 0x7d, 0xe2, 0x5d, 0x5a, 0x43, 0x82, 0xbe, 0x87, 0xad, 0xc4, 0xcf,
0x1a, 0xdd, 0x4d, 0x76, 0x5b, 0xe6, 0x00, 0x52, 0xbf, 0x77, 0x1d, 0x4c, 0x66, 0xda, 0x85, 0x4a,
0x7c, 0xe8, 0x41, 0x77, 0xd2, 0xbe, 0x9a, 0x9e, 0x89, 0xea, 0x6a, 0x33, 0x18, 0xb0, 0x9a, 0xe1,
0x80, 0xd5, 0xec, 0xf0, 0x01, 0x0b, 0xf5, 0x60, 0x2b, 0xd1, 0xe7, 0x29, 0xc5, 0xd9, 0x3e, 0x30,
0x97, 0xb1, 0x0b, 0x95, 0x78, 0x2b, 0xa7, 0x14, 0x66, 0x76, 0xfa, 0x22, 0x85, 0x89, 0x4e, 0x4f,
0x29, 0xcc, 0x76, 0x82, 0x45, 0x8c, 0x89, 0x29, 0x26, 0xc5, 0x98, 0x3d, 0xe5, 0xcc, 0x65, 0x7c,
0x02, 0x9b, 0xb3, 0xee, 0x8b, 0xf4, 0x04, 0x5d, 0x86, 0x93, 0xd7, 0xdf, 0x5d, 0x88, 0x91, 0x9f,
0xfb, 0x3b, 0xa8, 0xc4, 0xa7, 0x9f, 0x54, 0x31, 0x33, 0x67, 0xa9, 0xfa, 0xdd, 0x6b, 0x50, 0x92,
0xfe, 0x09, 0x6c, 0xce, 0x8e, 0x0a, 0x29, 0xdd, 0x19, 0x43, 0x52, 0x4a, 0x77, 0xe6, 0xac, 0xf1,
0x15, 0xc0, 0xd4, 0x11, 0xd1, 0x5e, 0x3a, 0xd5, 0x04, 0xe9, 0x3b, 0x0b, 0x10, 0x92, 0xf2, 0x14,
0xca, 0x31, 0x73, 0x44, 0x29, 0x21, 0x19, 0xd6, 0x39, 0xf7, 0x8b, 0x9d, 0x42, 0x39, 0x66, 0x7a,
0x29, 0xb6, 0x2c, 0x4b, 0x9c, 0xcb, 0xf6, 0x0d, 0x94, 0x63, 0xc6, 0x94, 0x62, 0xcb, 0xb2, 0xc0,
0xfa, 0x9d, 0xc5, 0xa0, 0x20, 0xef, 0xc3, 0xb7, 0x5f, 0x5c, 0x35, 0x56, 0xfe, 0xbc, 0x6a, 0xac,
0xfc, 0x7b, 0xd5, 0x50, 0x7e, 0x99, 0x34, 0x94, 0x17, 0x93, 0x86, 0xf2, 0xc7, 0xa4, 0xa1, 0xfc,
0x3d, 0x69, 0x28, 0xe7, 0x05, 0xa1, 0xe4, 0xc3, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x24, 0xc6,
0xc8, 0x88, 0x60, 0x0d, 0x00, 0x00,
}

View File

@ -74,14 +74,13 @@ message Container {
}
message Process {
string id = 1 [(gogoproto.customname) = "ID"];
uint32 pid = 2;
repeated string args = 3;
repeated string env = 4;
User user = 5;
string cwd = 6;
bool terminal = 7;
uint32 exit_status = 8;
uint32 pid = 1;
repeated string args = 2;
repeated string env = 3;
User user = 4;
string cwd = 5;
bool terminal = 6;
uint32 exit_status = 7;
}
enum Status {
@ -120,7 +119,7 @@ message ResumeContainerRequest {
message GetProcessRequest {
string container_id = 1 [(gogoproto.customname) = "ContainerID"];
string process_id = 2 [(gogoproto.customname) = "ProcessID"];
uint32 pid = 2;
}
message GetProcessResponse {
@ -129,17 +128,17 @@ message GetProcessResponse {
message SignalProcessRequest {
string container_id = 1 [(gogoproto.customname) = "ContainerID"];
string process_id = 2 [(gogoproto.customname) = "ProcessID"];
uint32 pid = 2;
uint32 signal = 3;
}
message DeleteProcessRequest {
string container_id = 1 [(gogoproto.customname) = "ContainerID"];
string process_id = 2 [(gogoproto.customname) = "ProcessID"];
uint32 pid = 2;
}
message ListProcessesRequest {
string id = 1 [(gogoproto.customname) = "ID"];
string container_id = 1 [(gogoproto.customname) = "ContainerID"];
}
message ListProcessesResponse {

View File

@ -9,7 +9,6 @@ import (
"net/url"
"os"
"os/signal"
"path/filepath"
"runtime"
"strconv"
"strings"
@ -135,11 +134,6 @@ func main() {
execCtx := log.WithModule(ctx, "execution")
execCtx = events.WithPoster(execCtx, events.GetNATSPoster(nec))
root := filepath.Join(context.GlobalString("root"), "shim")
err = os.Mkdir(root, 0700)
if err != nil && !os.IsExist(err) {
return err
}
execService, err := supervisor.New(execCtx, context.GlobalString("root"))
if err != nil {
return err

View File

@ -29,11 +29,11 @@ var deleteCommand = cli.Command{
return fmt.Errorf("container id must be provided")
}
pid := context.String("pid")
if pid != "" {
pid := uint32(context.Int64("pid"))
if pid != 0 {
_, err = executionService.DeleteProcess(gocontext.Background(), &execution.DeleteProcessRequest{
ContainerID: id,
ProcessID: pid,
Pid: pid,
})
if err != nil {
return err

View File

@ -3,6 +3,7 @@ package main
import (
"os"
"path/filepath"
"time"
gocontext "context"
@ -18,10 +19,6 @@ var execCommand = cli.Command{
Name: "id, i",
Usage: "target container id",
},
cli.StringFlag{
Name: "pid, p",
Usage: "new process id",
},
cli.StringFlag{
Name: "cwd, c",
Usage: "current working directory for the process",
@ -42,7 +39,7 @@ var execCommand = cli.Command{
return err
}
id := context.String("id")
id := time.Now().Format("2006-_2-01_15:04:05")
tmpDir, err := getTempDir(id)
if err != nil {
return err
@ -52,7 +49,6 @@ var execCommand = cli.Command{
sOpts := &execution.StartProcessRequest{
ContainerID: id,
Process: &execution.Process{
ID: context.String("pid"),
Cwd: context.String("cwd"),
Terminal: context.Bool("tty"),
Args: context.Args(),
@ -76,7 +72,7 @@ var execCommand = cli.Command{
_, err = executionService.DeleteProcess(gocontext.Background(), &execution.DeleteProcessRequest{
ContainerID: id,
ProcessID: sr.Process.ID,
Pid: sr.Process.Pid,
})
if err != nil {
return err

View File

@ -28,7 +28,7 @@ var inspectCommand = cli.Command{
return err
}
listProcResponse, err := executionService.ListProcesses(gocontext.Background(),
&execution.ListProcessesRequest{ID: id})
&execution.ListProcessesRequest{ContainerID: id})
if err != nil {
return err
}

View File

@ -25,7 +25,7 @@ var listCommand = cli.Command{
fmt.Printf("ID\tSTATUS\tPROCS\tBUNDLE\n")
for _, c := range listResponse.Containers {
listProcResponse, err := executionService.ListProcesses(gocontext.Background(),
&execution.ListProcessesRequest{ID: c.ID})
&execution.ListProcessesRequest{ContainerID: c.ID})
if err != nil {
return err
}

View File

@ -118,7 +118,7 @@ var runCommand = cli.Command{
break eventLoop
}
if e.ID == cr.Container.ID && e.PID == cr.InitProcess.ID {
if e.ID == cr.Container.ID && e.PID == cr.InitProcess.Pid {
ec = e.StatusCode
break eventLoop
}

View File

@ -10,7 +10,7 @@ type ContainerEvent struct {
type ContainerExitEvent struct {
ContainerEvent
PID string
PID uint32
StatusCode uint32
}