refactor: Move kubeconfig to machined

This moves the Kubeconfig api endpoint to machined and consolidates the
"read a file" code into machined. This also changes Kubeconfig to
use the CopyOut method which changes Kubeconfig to a streaming grpc call.

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
This commit is contained in:
Brad Beam 2019-11-04 20:11:28 +00:00 committed by Andrew Rynhard
parent 3fd8abf426
commit a4e1479b07
13 changed files with 551 additions and 528 deletions

View File

@ -389,18 +389,6 @@ func (p *ApiProxy) Proxy(ctx context.Context, method string, creds credentials.T
resp.Response = append(resp.Response, msg.(*common.DataReply).Response[0])
}
response = resp
case "/os.OS/Kubeconfig":
// Initialize target clients
clients, err := createOSClient(targets, creds, proxyMd)
if err != nil {
break
}
resp := &common.DataReply{}
msgs, err = proxyOSRunner(clients, in, proxyKubeconfig)
for _, msg := range msgs {
resp.Response = append(resp.Response, msg.(*common.DataReply).Response[0])
}
response = resp
case "/os.OS/Processes":
// Initialize target clients
clients, err := createOSClient(targets, creds, proxyMd)
@ -473,30 +461,6 @@ func (p *ApiProxy) Proxy(ctx context.Context, method string, creds credentials.T
resp.Response = append(resp.Response, msg.(*machine.ResetReply).Response[0])
}
response = resp
case "/machine.Machine/Shutdown":
// Initialize target clients
clients, err := createMachineClient(targets, creds, proxyMd)
if err != nil {
break
}
resp := &machine.ShutdownReply{}
msgs, err = proxyMachineRunner(clients, in, proxyShutdown)
for _, msg := range msgs {
resp.Response = append(resp.Response, msg.(*machine.ShutdownReply).Response[0])
}
response = resp
case "/machine.Machine/Upgrade":
// Initialize target clients
clients, err := createMachineClient(targets, creds, proxyMd)
if err != nil {
break
}
resp := &machine.UpgradeReply{}
msgs, err = proxyMachineRunner(clients, in, proxyUpgrade)
for _, msg := range msgs {
resp.Response = append(resp.Response, msg.(*machine.UpgradeReply).Response[0])
}
response = resp
case "/machine.Machine/ServiceList":
// Initialize target clients
clients, err := createMachineClient(targets, creds, proxyMd)
@ -509,6 +473,18 @@ func (p *ApiProxy) Proxy(ctx context.Context, method string, creds credentials.T
resp.Response = append(resp.Response, msg.(*machine.ServiceListReply).Response[0])
}
response = resp
case "/machine.Machine/ServiceRestart":
// Initialize target clients
clients, err := createMachineClient(targets, creds, proxyMd)
if err != nil {
break
}
resp := &machine.ServiceRestartReply{}
msgs, err = proxyMachineRunner(clients, in, proxyServiceRestart)
for _, msg := range msgs {
resp.Response = append(resp.Response, msg.(*machine.ServiceRestartReply).Response[0])
}
response = resp
case "/machine.Machine/ServiceStart":
// Initialize target clients
clients, err := createMachineClient(targets, creds, proxyMd)
@ -533,16 +509,28 @@ func (p *ApiProxy) Proxy(ctx context.Context, method string, creds credentials.T
resp.Response = append(resp.Response, msg.(*machine.ServiceStopReply).Response[0])
}
response = resp
case "/machine.Machine/ServiceRestart":
case "/machine.Machine/Shutdown":
// Initialize target clients
clients, err := createMachineClient(targets, creds, proxyMd)
if err != nil {
break
}
resp := &machine.ServiceRestartReply{}
msgs, err = proxyMachineRunner(clients, in, proxyServiceRestart)
resp := &machine.ShutdownReply{}
msgs, err = proxyMachineRunner(clients, in, proxyShutdown)
for _, msg := range msgs {
resp.Response = append(resp.Response, msg.(*machine.ServiceRestartReply).Response[0])
resp.Response = append(resp.Response, msg.(*machine.ShutdownReply).Response[0])
}
response = resp
case "/machine.Machine/Upgrade":
// Initialize target clients
clients, err := createMachineClient(targets, creds, proxyMd)
if err != nil {
break
}
resp := &machine.UpgradeReply{}
msgs, err = proxyMachineRunner(clients, in, proxyUpgrade)
for _, msg := range msgs {
resp.Response = append(resp.Response, msg.(*machine.UpgradeReply).Response[0])
}
response = resp
case "/machine.Machine/Version":
@ -690,17 +678,6 @@ func proxyDmesg(client *proxyOSClient, in interface{}, wg *sync.WaitGroup, respC
respCh <- resp
}
func proxyKubeconfig(client *proxyOSClient, in interface{}, wg *sync.WaitGroup, respCh chan proto.Message, errCh chan error) {
defer wg.Done()
resp, err := client.Conn.Kubeconfig(client.Context, in.(*empty.Empty))
if err != nil {
errCh <- err
return
}
resp.Response[0].Metadata = &NodeMetadata{Hostname: client.Target}
respCh <- resp
}
func proxyProcesses(client *proxyOSClient, in interface{}, wg *sync.WaitGroup, respCh chan proto.Message, errCh chan error) {
defer wg.Done()
resp, err := client.Conn.Processes(client.Context, in.(*empty.Empty))
@ -801,28 +778,6 @@ func proxyReset(client *proxyMachineClient, in interface{}, wg *sync.WaitGroup,
respCh <- resp
}
func proxyShutdown(client *proxyMachineClient, in interface{}, wg *sync.WaitGroup, respCh chan proto.Message, errCh chan error) {
defer wg.Done()
resp, err := client.Conn.Shutdown(client.Context, in.(*empty.Empty))
if err != nil {
errCh <- err
return
}
resp.Response[0].Metadata = &NodeMetadata{Hostname: client.Target}
respCh <- resp
}
func proxyUpgrade(client *proxyMachineClient, in interface{}, wg *sync.WaitGroup, respCh chan proto.Message, errCh chan error) {
defer wg.Done()
resp, err := client.Conn.Upgrade(client.Context, in.(*machine.UpgradeRequest))
if err != nil {
errCh <- err
return
}
resp.Response[0].Metadata = &NodeMetadata{Hostname: client.Target}
respCh <- resp
}
func proxyServiceList(client *proxyMachineClient, in interface{}, wg *sync.WaitGroup, respCh chan proto.Message, errCh chan error) {
defer wg.Done()
resp, err := client.Conn.ServiceList(client.Context, in.(*empty.Empty))
@ -834,6 +789,17 @@ func proxyServiceList(client *proxyMachineClient, in interface{}, wg *sync.WaitG
respCh <- resp
}
func proxyServiceRestart(client *proxyMachineClient, in interface{}, wg *sync.WaitGroup, respCh chan proto.Message, errCh chan error) {
defer wg.Done()
resp, err := client.Conn.ServiceRestart(client.Context, in.(*machine.ServiceRestartRequest))
if err != nil {
errCh <- err
return
}
resp.Response[0].Metadata = &NodeMetadata{Hostname: client.Target}
respCh <- resp
}
func proxyServiceStart(client *proxyMachineClient, in interface{}, wg *sync.WaitGroup, respCh chan proto.Message, errCh chan error) {
defer wg.Done()
resp, err := client.Conn.ServiceStart(client.Context, in.(*machine.ServiceStartRequest))
@ -856,9 +822,20 @@ func proxyServiceStop(client *proxyMachineClient, in interface{}, wg *sync.WaitG
respCh <- resp
}
func proxyServiceRestart(client *proxyMachineClient, in interface{}, wg *sync.WaitGroup, respCh chan proto.Message, errCh chan error) {
func proxyShutdown(client *proxyMachineClient, in interface{}, wg *sync.WaitGroup, respCh chan proto.Message, errCh chan error) {
defer wg.Done()
resp, err := client.Conn.ServiceRestart(client.Context, in.(*machine.ServiceRestartRequest))
resp, err := client.Conn.Shutdown(client.Context, in.(*empty.Empty))
if err != nil {
errCh <- err
return
}
resp.Response[0].Metadata = &NodeMetadata{Hostname: client.Target}
respCh <- resp
}
func proxyUpgrade(client *proxyMachineClient, in interface{}, wg *sync.WaitGroup, respCh chan proto.Message, errCh chan error) {
defer wg.Done()
resp, err := client.Conn.Upgrade(client.Context, in.(*machine.UpgradeRequest))
if err != nil {
errCh <- err
return
@ -1108,10 +1085,6 @@ func (r *Registrator) Dmesg(ctx context.Context, in *empty.Empty) (*common.DataR
return r.OSClient.Dmesg(ctx, in)
}
func (r *Registrator) Kubeconfig(ctx context.Context, in *empty.Empty) (*common.DataReply, error) {
return r.OSClient.Kubeconfig(ctx, in)
}
func (r *Registrator) Logs(in *os.LogsRequest, srv os.OS_LogsServer) error {
client, err := r.OSClient.Logs(srv.Context(), in)
if err != nil {
@ -1142,8 +1115,13 @@ func (r *Registrator) CopyOut(in *machine.CopyOutRequest, srv machine.Machine_Co
return copyClientServer(&msg, client, srv)
}
func (r *Registrator) Mounts(ctx context.Context, in *empty.Empty) (*machine.MountsReply, error) {
return r.MachineClient.Mounts(ctx, in)
func (r *Registrator) Kubeconfig(in *empty.Empty, srv machine.Machine_KubeconfigServer) error {
client, err := r.MachineClient.Kubeconfig(srv.Context(), in)
if err != nil {
return err
}
var msg machine.StreamingData
return copyClientServer(&msg, client, srv)
}
func (r *Registrator) LS(in *machine.LSRequest, srv machine.Machine_LSServer) error {
@ -1155,6 +1133,10 @@ func (r *Registrator) LS(in *machine.LSRequest, srv machine.Machine_LSServer) er
return copyClientServer(&msg, client, srv)
}
func (r *Registrator) Mounts(ctx context.Context, in *empty.Empty) (*machine.MountsReply, error) {
return r.MachineClient.Mounts(ctx, in)
}
func (r *Registrator) Reboot(ctx context.Context, in *empty.Empty) (*machine.RebootReply, error) {
return r.MachineClient.Reboot(ctx, in)
}
@ -1163,18 +1145,14 @@ func (r *Registrator) Reset(ctx context.Context, in *empty.Empty) (*machine.Rese
return r.MachineClient.Reset(ctx, in)
}
func (r *Registrator) Shutdown(ctx context.Context, in *empty.Empty) (*machine.ShutdownReply, error) {
return r.MachineClient.Shutdown(ctx, in)
}
func (r *Registrator) Upgrade(ctx context.Context, in *machine.UpgradeRequest) (*machine.UpgradeReply, error) {
return r.MachineClient.Upgrade(ctx, in)
}
func (r *Registrator) ServiceList(ctx context.Context, in *empty.Empty) (*machine.ServiceListReply, error) {
return r.MachineClient.ServiceList(ctx, in)
}
func (r *Registrator) ServiceRestart(ctx context.Context, in *machine.ServiceRestartRequest) (*machine.ServiceRestartReply, error) {
return r.MachineClient.ServiceRestart(ctx, in)
}
func (r *Registrator) ServiceStart(ctx context.Context, in *machine.ServiceStartRequest) (*machine.ServiceStartReply, error) {
return r.MachineClient.ServiceStart(ctx, in)
}
@ -1183,8 +1161,12 @@ func (r *Registrator) ServiceStop(ctx context.Context, in *machine.ServiceStopRe
return r.MachineClient.ServiceStop(ctx, in)
}
func (r *Registrator) ServiceRestart(ctx context.Context, in *machine.ServiceRestartRequest) (*machine.ServiceRestartReply, error) {
return r.MachineClient.ServiceRestart(ctx, in)
func (r *Registrator) Shutdown(ctx context.Context, in *empty.Empty) (*machine.ShutdownReply, error) {
return r.MachineClient.Shutdown(ctx, in)
}
func (r *Registrator) Upgrade(ctx context.Context, in *machine.UpgradeRequest) (*machine.UpgradeReply, error) {
return r.MachineClient.Upgrade(ctx, in)
}
func (r *Registrator) Start(ctx context.Context, in *machine.StartRequest) (*machine.StartReply, error) {
@ -1239,10 +1221,6 @@ func (c *LocalOSClient) Dmesg(ctx context.Context, in *empty.Empty, opts ...grpc
return c.OSClient.Dmesg(ctx, in, opts...)
}
func (c *LocalOSClient) Kubeconfig(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*common.DataReply, error) {
return c.OSClient.Kubeconfig(ctx, in, opts...)
}
func (c *LocalOSClient) Logs(ctx context.Context, in *os.LogsRequest, opts ...grpc.CallOption) (os.OS_LogsClient, error) {
return c.OSClient.Logs(ctx, in, opts...)
}
@ -1279,14 +1257,18 @@ func (c *LocalMachineClient) CopyOut(ctx context.Context, in *machine.CopyOutReq
return c.MachineClient.CopyOut(ctx, in, opts...)
}
func (c *LocalMachineClient) Mounts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*machine.MountsReply, error) {
return c.MachineClient.Mounts(ctx, in, opts...)
func (c *LocalMachineClient) Kubeconfig(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (machine.Machine_KubeconfigClient, error) {
return c.MachineClient.Kubeconfig(ctx, in, opts...)
}
func (c *LocalMachineClient) LS(ctx context.Context, in *machine.LSRequest, opts ...grpc.CallOption) (machine.Machine_LSClient, error) {
return c.MachineClient.LS(ctx, in, opts...)
}
func (c *LocalMachineClient) Mounts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*machine.MountsReply, error) {
return c.MachineClient.Mounts(ctx, in, opts...)
}
func (c *LocalMachineClient) Reboot(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*machine.RebootReply, error) {
return c.MachineClient.Reboot(ctx, in, opts...)
}
@ -1295,18 +1277,14 @@ func (c *LocalMachineClient) Reset(ctx context.Context, in *empty.Empty, opts ..
return c.MachineClient.Reset(ctx, in, opts...)
}
func (c *LocalMachineClient) Shutdown(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*machine.ShutdownReply, error) {
return c.MachineClient.Shutdown(ctx, in, opts...)
}
func (c *LocalMachineClient) Upgrade(ctx context.Context, in *machine.UpgradeRequest, opts ...grpc.CallOption) (*machine.UpgradeReply, error) {
return c.MachineClient.Upgrade(ctx, in, opts...)
}
func (c *LocalMachineClient) ServiceList(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*machine.ServiceListReply, error) {
return c.MachineClient.ServiceList(ctx, in, opts...)
}
func (c *LocalMachineClient) ServiceRestart(ctx context.Context, in *machine.ServiceRestartRequest, opts ...grpc.CallOption) (*machine.ServiceRestartReply, error) {
return c.MachineClient.ServiceRestart(ctx, in, opts...)
}
func (c *LocalMachineClient) ServiceStart(ctx context.Context, in *machine.ServiceStartRequest, opts ...grpc.CallOption) (*machine.ServiceStartReply, error) {
return c.MachineClient.ServiceStart(ctx, in, opts...)
}
@ -1315,8 +1293,12 @@ func (c *LocalMachineClient) ServiceStop(ctx context.Context, in *machine.Servic
return c.MachineClient.ServiceStop(ctx, in, opts...)
}
func (c *LocalMachineClient) ServiceRestart(ctx context.Context, in *machine.ServiceRestartRequest, opts ...grpc.CallOption) (*machine.ServiceRestartReply, error) {
return c.MachineClient.ServiceRestart(ctx, in, opts...)
func (c *LocalMachineClient) Shutdown(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*machine.ShutdownReply, error) {
return c.MachineClient.Shutdown(ctx, in, opts...)
}
func (c *LocalMachineClient) Upgrade(ctx context.Context, in *machine.UpgradeRequest, opts ...grpc.CallOption) (*machine.UpgradeReply, error) {
return c.MachineClient.Upgrade(ctx, in, opts...)
}
func (c *LocalMachineClient) Start(ctx context.Context, in *machine.StartRequest, opts ...grpc.CallOption) (*machine.StartReply, error) {

View File

@ -2005,93 +2005,94 @@ func init() {
func init() { proto.RegisterFile("machine/machine.proto", fileDescriptor_84b4f59d98cc997c) }
var fileDescriptor_84b4f59d98cc997c = []byte{
// 1372 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0xfd, 0x6e, 0x13, 0x47,
0x10, 0x97, 0xed, 0xf8, 0x6b, 0x9c, 0x38, 0xb0, 0xf9, 0xa8, 0x31, 0xe1, 0xeb, 0xa0, 0x05, 0x21,
0xc5, 0x41, 0x01, 0x2a, 0x0a, 0x6d, 0x05, 0x21, 0x20, 0xaa, 0x26, 0x01, 0x9d, 0x4b, 0xff, 0x68,
0xab, 0x5a, 0x6b, 0x7b, 0x63, 0xaf, 0xb8, 0xbb, 0xbd, 0xde, 0xae, 0x83, 0x5c, 0xf5, 0x01, 0xaa,
0xfe, 0xdb, 0x47, 0xe8, 0xcb, 0xf4, 0x35, 0xfa, 0x26, 0xd5, 0x7e, 0xdc, 0x7a, 0x7d, 0xce, 0x01,
0x22, 0xfc, 0xe5, 0xdd, 0xd9, 0xd9, 0x99, 0xdf, 0x6f, 0x67, 0x76, 0x76, 0xce, 0xb0, 0x11, 0xe2,
0xc1, 0x98, 0x46, 0x64, 0xc7, 0xfc, 0x76, 0xe2, 0x84, 0x09, 0x86, 0xaa, 0x66, 0xda, 0xbe, 0x38,
0x62, 0x6c, 0x14, 0x90, 0x1d, 0x25, 0xee, 0x4f, 0x8e, 0x77, 0x48, 0x18, 0x8b, 0xa9, 0xd6, 0x6a,
0x5f, 0xc9, 0x2e, 0x0a, 0x1a, 0x12, 0x2e, 0x70, 0x18, 0x1b, 0x85, 0xb5, 0x01, 0x0b, 0x43, 0x16,
0xed, 0xe8, 0x1f, 0x2d, 0xf4, 0xf6, 0xa0, 0xe9, 0x93, 0x3e, 0x63, 0xc2, 0x27, 0x3c, 0x66, 0x11,
0x27, 0xe8, 0x0e, 0xd4, 0x42, 0x22, 0xf0, 0x10, 0x0b, 0xdc, 0x2a, 0x5c, 0x2d, 0xdc, 0x6a, 0xec,
0xae, 0x77, 0xcc, 0x96, 0x23, 0x36, 0x24, 0x87, 0x66, 0xcd, 0xb7, 0x5a, 0xde, 0x1e, 0x34, 0x52,
0x1b, 0x71, 0x30, 0x45, 0x77, 0xa1, 0x96, 0x18, 0x63, 0xad, 0xc2, 0xd5, 0xd2, 0xad, 0xc6, 0xee,
0x67, 0x9d, 0x94, 0xd0, 0xbc, 0x2f, 0xdf, 0x2a, 0x7a, 0x4f, 0x60, 0xc5, 0x27, 0x9c, 0x9c, 0x05,
0xc6, 0x63, 0x00, 0x63, 0x42, 0xa2, 0xd8, 0x5d, 0x40, 0xb1, 0xe9, 0xa0, 0x70, 0x3c, 0x39, 0x20,
0xf6, 0xe1, 0x5c, 0x77, 0x3c, 0x11, 0x43, 0xf6, 0x36, 0x3a, 0x03, 0x8e, 0xe7, 0xb0, 0x32, 0xb3,
0x22, 0xa1, 0xdc, 0x5f, 0x80, 0x72, 0xc1, 0x42, 0xc9, 0xfa, 0x73, 0xd0, 0x7c, 0x01, 0xcd, 0xd7,
0xf1, 0x28, 0xc1, 0x43, 0xe2, 0x93, 0xdf, 0x26, 0x84, 0x0b, 0xb4, 0x0e, 0x65, 0x1a, 0xe2, 0x11,
0x51, 0x40, 0xea, 0xbe, 0x9e, 0x78, 0xaf, 0x61, 0xd5, 0xea, 0x7d, 0x2c, 0x68, 0x74, 0x0e, 0x4a,
0x78, 0xf0, 0xa6, 0x55, 0x54, 0x86, 0xe5, 0xd0, 0xdb, 0x87, 0x65, 0x6b, 0x56, 0xb2, 0xb8, 0xb7,
0xc0, 0xa2, 0x65, 0x59, 0x64, 0xfc, 0x3b, 0x24, 0xa6, 0xb0, 0xd6, 0x25, 0xc9, 0x09, 0x1d, 0x90,
0x03, 0xca, 0xcf, 0x10, 0x5d, 0xb9, 0x83, 0x6b, 0x43, 0xbc, 0x55, 0x54, 0xee, 0xd7, 0x67, 0x87,
0xa8, 0x17, 0xbe, 0x8b, 0x8e, 0x99, 0x6f, 0xb5, 0xbc, 0x03, 0x38, 0x37, 0xe7, 0x5a, 0x92, 0x78,
0xb0, 0x40, 0x62, 0x2b, 0x6b, 0xc5, 0xc5, 0xe9, 0x10, 0xf9, 0xbb, 0x00, 0x0d, 0xc7, 0x0f, 0x6a,
0x42, 0x91, 0x0e, 0x4d, 0x20, 0x8a, 0x74, 0x28, 0x63, 0xc3, 0x05, 0x16, 0xc4, 0x1c, 0xa1, 0x9e,
0xa0, 0x0e, 0x54, 0xc8, 0x09, 0x89, 0x04, 0x6f, 0x95, 0x14, 0xcb, 0xcd, 0xac, 0xb7, 0x67, 0x6a,
0xd5, 0x37, 0x5a, 0x52, 0x7f, 0x4c, 0x70, 0x20, 0xc6, 0xad, 0xa5, 0xd3, 0xf5, 0x5f, 0xa8, 0x55,
0xdf, 0x68, 0x79, 0xdf, 0xc2, 0xca, 0x9c, 0x21, 0xb4, 0x6d, 0x1d, 0x6a, 0x7a, 0x1b, 0xa7, 0x3a,
0x4c, 0xfd, 0x79, 0x7d, 0x58, 0x76, 0xe5, 0x32, 0x0d, 0x42, 0x3e, 0x32, 0xb4, 0xe4, 0x30, 0x87,
0xd7, 0x6d, 0x28, 0x5a, 0x4e, 0xed, 0x8e, 0xae, 0x3c, 0x9d, 0xb4, 0xf2, 0x74, 0x7e, 0x48, 0x2b,
0x8f, 0x5f, 0x14, 0xdc, 0xfb, 0xa7, 0x60, 0x41, 0x6a, 0xf4, 0xa8, 0x05, 0xd5, 0x49, 0xf4, 0x26,
0x62, 0x6f, 0x23, 0xe5, 0xa9, 0xe6, 0xa7, 0x53, 0xb9, 0xa2, 0x99, 0x4d, 0x95, 0xbf, 0x9a, 0x9f,
0x4e, 0xd1, 0x35, 0x58, 0x0e, 0x30, 0x17, 0xbd, 0x90, 0x70, 0x2e, 0xaf, 0x40, 0x49, 0xc1, 0x69,
0x48, 0xd9, 0xa1, 0x16, 0xa1, 0x47, 0xa0, 0xa6, 0xbd, 0xc1, 0x18, 0x47, 0x23, 0x62, 0x4e, 0xf0,
0x5d, 0xe8, 0x40, 0xaa, 0x3f, 0x55, 0xda, 0xde, 0xe7, 0x36, 0x51, 0xbb, 0x02, 0x27, 0x22, 0xbd,
0x72, 0x99, 0x30, 0x7b, 0xbf, 0xc0, 0xfa, 0xbc, 0xda, 0x47, 0x27, 0x34, 0x82, 0x25, 0x99, 0x5c,
0xe6, 0x5c, 0xd5, 0xd8, 0x3b, 0x82, 0xf3, 0xf3, 0xd6, 0x65, 0xce, 0x7e, 0xb5, 0x90, 0xb3, 0x97,
0xb2, 0x41, 0x9d, 0xc3, 0xe2, 0x24, 0xed, 0x0d, 0x40, 0x56, 0x83, 0xc5, 0x79, 0x9c, 0x7e, 0x76,
0xa8, 0x4b, 0xad, 0x4f, 0x4a, 0x69, 0x76, 0x0b, 0xb5, 0xf1, 0x0f, 0xbc, 0x85, 0x2e, 0x12, 0x87,
0xd0, 0x4d, 0xd8, 0x30, 0x0a, 0xbe, 0x8c, 0x61, 0x7e, 0x9c, 0x7e, 0x85, 0xcd, 0xac, 0xe2, 0x27,
0xa5, 0xe5, 0xdb, 0x33, 0xb3, 0xf6, 0x25, 0xb3, 0x47, 0x0b, 0xcc, 0xae, 0x64, 0x99, 0x65, 0xf0,
0x38, 0xe4, 0x3c, 0x58, 0x7e, 0x57, 0xee, 0x3d, 0x2c, 0xb6, 0x0a, 0xde, 0x0d, 0x00, 0x27, 0x35,
0x52, 0x64, 0x85, 0x19, 0x32, 0xa5, 0x75, 0x0d, 0x1a, 0xef, 0x08, 0xb8, 0x52, 0xb9, 0x0e, 0xf5,
0x59, 0x40, 0xf2, 0xec, 0x7c, 0x03, 0x2b, 0x5d, 0x91, 0x10, 0x1c, 0xd2, 0x68, 0xb4, 0x2f, 0x8f,
0x62, 0x1d, 0xca, 0xfd, 0xa9, 0x20, 0x5c, 0x69, 0x2e, 0xfb, 0x7a, 0x82, 0x36, 0xa1, 0x42, 0x92,
0x84, 0x25, 0xdc, 0x1c, 0x91, 0x99, 0x79, 0xdb, 0xd0, 0x7c, 0xca, 0xe2, 0xe9, 0xcb, 0x89, 0xa5,
0x74, 0x11, 0xea, 0x09, 0x63, 0xa2, 0x17, 0x63, 0x31, 0x36, 0xde, 0x6a, 0x52, 0xf0, 0x0a, 0x8b,
0xb1, 0xd7, 0x87, 0xfa, 0x41, 0x37, 0xd5, 0x94, 0x90, 0x18, 0x13, 0x16, 0x12, 0x63, 0x42, 0x56,
0x87, 0x84, 0x0c, 0x26, 0x09, 0x27, 0x69, 0x75, 0x30, 0x53, 0x74, 0x13, 0x56, 0xf5, 0x90, 0xb2,
0xa8, 0x37, 0x24, 0xb1, 0x18, 0xab, 0x02, 0x51, 0xf6, 0x9b, 0x56, 0xbc, 0x2f, 0xa5, 0xde, 0xbf,
0x05, 0xa8, 0x3d, 0xa7, 0x81, 0xae, 0xe1, 0x08, 0x96, 0x22, 0x1c, 0xa6, 0xcf, 0xa9, 0x1a, 0x4b,
0x19, 0xa7, 0xbf, 0x6b, 0x07, 0x25, 0x5f, 0x8d, 0xa5, 0x2c, 0x64, 0x43, 0x5d, 0x73, 0x56, 0x7c,
0x35, 0x46, 0x6d, 0xa8, 0x85, 0x6c, 0x48, 0x8f, 0x29, 0x19, 0xaa, 0x4a, 0x53, 0xf2, 0xed, 0x1c,
0x6d, 0x40, 0x85, 0xf2, 0xde, 0x90, 0x26, 0xad, 0xb2, 0x82, 0x59, 0xa6, 0x7c, 0x9f, 0x26, 0xf2,
0xf0, 0xd4, 0xc1, 0xb4, 0x2a, 0xba, 0x94, 0xaa, 0x89, 0x34, 0x1e, 0xd0, 0xe8, 0x4d, 0xab, 0xaa,
0x41, 0xc8, 0x31, 0xba, 0x0e, 0x2b, 0x09, 0x09, 0xb0, 0xa0, 0x27, 0xa4, 0xa7, 0x10, 0xd6, 0xd4,
0xe2, 0x72, 0x2a, 0x3c, 0xc2, 0x21, 0xf1, 0x02, 0x68, 0x1e, 0xb2, 0x89, 0x7c, 0x3d, 0x3e, 0x3e,
0xb5, 0x6f, 0xe9, 0xea, 0x9e, 0x3e, 0xa9, 0xc8, 0x26, 0xab, 0xb2, 0xdc, 0x15, 0x58, 0xe8, 0x8a,
0xcf, 0x65, 0x93, 0x97, 0x7a, 0x7b, 0x5f, 0x93, 0x37, 0x8f, 0xca, 0x49, 0xf0, 0x3f, 0xa0, 0x6e,
0xed, 0xa2, 0xcb, 0x00, 0xc7, 0x34, 0x20, 0x7c, 0xca, 0x05, 0x09, 0x4d, 0x08, 0x1c, 0xc9, 0x5c,
0x20, 0x96, 0x4c, 0x20, 0xb6, 0xa0, 0x8e, 0x4f, 0x30, 0x0d, 0x70, 0x3f, 0xd0, 0xd1, 0x58, 0xf2,
0x67, 0x02, 0x74, 0x09, 0x20, 0x94, 0xe6, 0xc9, 0xb0, 0xc7, 0x22, 0x15, 0x94, 0xba, 0x5f, 0x37,
0x92, 0x97, 0x91, 0xc7, 0x61, 0xf5, 0x47, 0xa2, 0x52, 0xe1, 0x0c, 0x07, 0xd6, 0x81, 0xea, 0x89,
0x36, 0xa2, 0x80, 0xb9, 0x5d, 0x88, 0x31, 0xae, 0xba, 0x90, 0x54, 0x49, 0x76, 0x51, 0xd6, 0xe9,
0xfb, 0xba, 0xa8, 0x0c, 0x3a, 0xe7, 0xe0, 0xfe, 0x2a, 0x40, 0xc3, 0x31, 0x2f, 0x9f, 0x69, 0x81,
0xed, 0x33, 0x2d, 0xf0, 0x48, 0x4a, 0xf8, 0x18, 0xa7, 0xfd, 0x1b, 0x1f, 0xeb, 0xab, 0x3a, 0xa1,
0x81, 0x30, 0x2f, 0xa5, 0x9e, 0xc8, 0x33, 0x1a, 0xb1, 0x5e, 0x4a, 0xc1, 0x9c, 0xd1, 0x88, 0x19,
0xe3, 0xb2, 0x52, 0x30, 0xae, 0xb2, 0xb6, 0xee, 0x17, 0x19, 0x97, 0x41, 0xc0, 0xc9, 0x60, 0x6c,
0x32, 0x56, 0x8d, 0x77, 0xff, 0xab, 0x40, 0xf5, 0x50, 0x43, 0x46, 0x5f, 0x43, 0xd5, 0xdc, 0x70,
0x34, 0x8b, 0xff, 0xfc, 0x9d, 0x6f, 0x3b, 0x3d, 0x8c, 0x5b, 0x4b, 0xee, 0x14, 0xd0, 0x97, 0x50,
0xd1, 0xb9, 0x82, 0x36, 0x17, 0x5e, 0xe9, 0x67, 0xf2, 0xd3, 0xa6, 0xbd, 0xbe, 0x90, 0x54, 0xf2,
0x10, 0xb7, 0xa1, 0x78, 0xd0, 0x45, 0xb3, 0x64, 0xb5, 0x55, 0xa3, 0x7d, 0xde, 0xca, 0xd2, 0x4b,
0xae, 0xdd, 0xe8, 0xef, 0x8e, 0x0f, 0x70, 0xe3, 0x7e, 0xc8, 0xdc, 0x83, 0xb2, 0xfa, 0x52, 0xc8,
0xdd, 0xb6, 0x96, 0xfd, 0xa2, 0x90, 0xbb, 0x1e, 0x42, 0x2d, 0x6d, 0xea, 0x73, 0x37, 0x6e, 0x9e,
0xd2, 0xff, 0xeb, 0xa7, 0xbe, 0x6a, 0x5a, 0x69, 0xe7, 0x38, 0xe7, 0x3f, 0x02, 0xda, 0x1b, 0x8b,
0x0b, 0x72, 0xeb, 0x63, 0xdb, 0x9e, 0xca, 0x06, 0x36, 0xd7, 0xf3, 0x85, 0xd3, 0xdb, 0x5d, 0x69,
0xe1, 0x85, 0xed, 0x05, 0xd5, 0x0b, 0x83, 0xb6, 0x72, 0xba, 0x0c, 0x0d, 0xa3, 0x9d, 0xb3, 0x2a,
0x2d, 0x3d, 0xb3, 0x58, 0xe4, 0x13, 0x83, 0x2e, 0x9e, 0xfe, 0xb8, 0x6b, 0x3b, 0x17, 0x4e, 0x5f,
0x94, 0x66, 0x8e, 0xa0, 0x39, 0xff, 0x66, 0xa2, 0xcb, 0xb9, 0x8f, 0xa9, 0x36, 0xb6, 0x95, 0xbb,
0xae, 0xdb, 0x8e, 0xb2, 0x66, 0xe6, 0x34, 0xc5, 0xee, 0xee, 0xb5, 0xac, 0x38, 0x0e, 0xa6, 0x5e,
0xe9, 0xcf, 0x62, 0x01, 0xdd, 0x87, 0x25, 0xc5, 0xc4, 0xf9, 0xe4, 0x70, 0x28, 0xa0, 0x8c, 0xd4,
0x6e, 0x7b, 0x00, 0xd5, 0xf4, 0x62, 0xe5, 0xc5, 0x63, 0x63, 0xf1, 0xf6, 0xc7, 0xc1, 0x74, 0xef,
0x7b, 0x58, 0x1d, 0xb0, 0xd0, 0xae, 0xe1, 0x98, 0xee, 0x81, 0xb9, 0x73, 0x4f, 0x62, 0xfa, 0xaa,
0xf0, 0xd3, 0xed, 0x11, 0x15, 0xe3, 0x49, 0x5f, 0x56, 0xab, 0x1d, 0x81, 0x03, 0xc6, 0xb7, 0x75,
0xd9, 0xe4, 0x7a, 0xb6, 0x83, 0x63, 0x9a, 0xfe, 0x8b, 0xd0, 0xaf, 0x28, 0x9f, 0x77, 0xff, 0x0f,
0x00, 0x00, 0xff, 0xff, 0xa9, 0x42, 0x1a, 0x4f, 0x5f, 0x10, 0x00, 0x00,
// 1388 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0xe9, 0x6e, 0x1b, 0x37,
0x10, 0x86, 0x24, 0xeb, 0x1a, 0xd9, 0x72, 0x42, 0x1f, 0x55, 0x14, 0xe7, 0xda, 0xa4, 0x4d, 0x10,
0xc0, 0x72, 0xe0, 0x1c, 0xc8, 0xd1, 0x06, 0x89, 0xe3, 0x04, 0x29, 0x62, 0x3b, 0xc1, 0xaa, 0xe9,
0x8f, 0xb6, 0xa8, 0x40, 0x49, 0xb4, 0x44, 0x64, 0x77, 0xb9, 0x5d, 0x52, 0x0e, 0x54, 0xf4, 0x01,
0x8a, 0xfe, 0xed, 0x13, 0x14, 0x7d, 0x99, 0x3e, 0x56, 0xc1, 0x63, 0x29, 0x6a, 0x65, 0x39, 0x81,
0x9d, 0x5f, 0x22, 0x87, 0xb3, 0x33, 0xdf, 0xc7, 0x19, 0x0e, 0x87, 0x82, 0xb5, 0x10, 0xf7, 0x86,
0x34, 0x22, 0x5b, 0xe6, 0xb7, 0x15, 0x27, 0x4c, 0x30, 0x54, 0x36, 0xd3, 0xe6, 0xc5, 0x01, 0x63,
0x83, 0x80, 0x6c, 0x29, 0x71, 0x77, 0x74, 0xb8, 0x45, 0xc2, 0x58, 0x8c, 0xb5, 0x56, 0xf3, 0x4a,
0x76, 0x51, 0xd0, 0x90, 0x70, 0x81, 0xc3, 0xd8, 0x28, 0xac, 0xf4, 0x58, 0x18, 0xb2, 0x68, 0x4b,
0xff, 0x68, 0xa1, 0xb7, 0x03, 0x75, 0x9f, 0x74, 0x19, 0x13, 0x3e, 0xe1, 0x31, 0x8b, 0x38, 0x41,
0x77, 0xa0, 0x12, 0x12, 0x81, 0xfb, 0x58, 0xe0, 0x46, 0xee, 0x6a, 0xee, 0x56, 0x6d, 0x7b, 0xb5,
0x65, 0x3e, 0x39, 0x60, 0x7d, 0xb2, 0x6f, 0xd6, 0x7c, 0xab, 0xe5, 0xed, 0x40, 0x2d, 0xb5, 0x11,
0x07, 0x63, 0x74, 0x17, 0x2a, 0x89, 0x31, 0xd6, 0xc8, 0x5d, 0x2d, 0xdc, 0xaa, 0x6d, 0x7f, 0xd5,
0x4a, 0x09, 0x4d, 0xfb, 0xf2, 0xad, 0xa2, 0xf7, 0x1c, 0x96, 0x7c, 0xc2, 0xc9, 0x59, 0x60, 0x3c,
0x03, 0x30, 0x26, 0x24, 0x8a, 0xed, 0x19, 0x14, 0xeb, 0x0e, 0x0a, 0xc7, 0x93, 0x03, 0x62, 0x17,
0xce, 0xb5, 0x87, 0x23, 0xd1, 0x67, 0x1f, 0xa3, 0x33, 0xe0, 0x78, 0x05, 0x4b, 0x13, 0x2b, 0x12,
0xca, 0xfd, 0x19, 0x28, 0x17, 0x2c, 0x94, 0xac, 0x3f, 0x07, 0xcd, 0x37, 0x50, 0x7f, 0x1f, 0x0f,
0x12, 0xdc, 0x27, 0x3e, 0xf9, 0x6d, 0x44, 0xb8, 0x40, 0xab, 0x50, 0xa4, 0x21, 0x1e, 0x10, 0x05,
0xa4, 0xea, 0xeb, 0x89, 0xf7, 0x1e, 0x96, 0xad, 0xde, 0x69, 0x41, 0xa3, 0x73, 0x50, 0xc0, 0xbd,
0x0f, 0x8d, 0xbc, 0x32, 0x2c, 0x87, 0xde, 0x2e, 0x2c, 0x5a, 0xb3, 0x92, 0xc5, 0xbd, 0x19, 0x16,
0x0d, 0xcb, 0x22, 0xe3, 0xdf, 0x21, 0x31, 0x86, 0x95, 0x36, 0x49, 0x8e, 0x68, 0x8f, 0xec, 0x51,
0x7e, 0x86, 0xe8, 0xca, 0x2f, 0xb8, 0x36, 0xc4, 0x1b, 0x79, 0xe5, 0x7e, 0x75, 0xb2, 0x89, 0x7a,
0xe1, 0xfb, 0xe8, 0x90, 0xf9, 0x56, 0xcb, 0xdb, 0x83, 0x73, 0x53, 0xae, 0x25, 0x89, 0x87, 0x33,
0x24, 0x36, 0xb2, 0x56, 0x5c, 0x9c, 0x0e, 0x91, 0xbf, 0x73, 0x50, 0x73, 0xfc, 0xa0, 0x3a, 0xe4,
0x69, 0xdf, 0x04, 0x22, 0x4f, 0xfb, 0x32, 0x36, 0x5c, 0x60, 0x41, 0xcc, 0x16, 0xea, 0x09, 0x6a,
0x41, 0x89, 0x1c, 0x91, 0x48, 0xf0, 0x46, 0x41, 0xb1, 0x5c, 0xcf, 0x7a, 0x7b, 0xa9, 0x56, 0x7d,
0xa3, 0x25, 0xf5, 0x87, 0x04, 0x07, 0x62, 0xd8, 0x58, 0x38, 0x5e, 0xff, 0xb5, 0x5a, 0xf5, 0x8d,
0x96, 0xf7, 0x14, 0x96, 0xa6, 0x0c, 0xa1, 0x4d, 0xeb, 0x50, 0xd3, 0x5b, 0x3b, 0xd6, 0x61, 0xea,
0xcf, 0xeb, 0xc2, 0xa2, 0x2b, 0x97, 0x69, 0x10, 0xf2, 0x81, 0xa1, 0x25, 0x87, 0x73, 0x78, 0xdd,
0x86, 0xbc, 0xe5, 0xd4, 0x6c, 0xe9, 0xca, 0xd3, 0x4a, 0x2b, 0x4f, 0xeb, 0x87, 0xb4, 0xf2, 0xf8,
0x79, 0xc1, 0xbd, 0x7f, 0x73, 0x16, 0xa4, 0x46, 0x8f, 0x1a, 0x50, 0x1e, 0x45, 0x1f, 0x22, 0xf6,
0x31, 0x52, 0x9e, 0x2a, 0x7e, 0x3a, 0x95, 0x2b, 0x9a, 0xd9, 0x58, 0xf9, 0xab, 0xf8, 0xe9, 0x14,
0x5d, 0x83, 0xc5, 0x00, 0x73, 0xd1, 0x09, 0x09, 0xe7, 0xf2, 0x08, 0x14, 0x14, 0x9c, 0x9a, 0x94,
0xed, 0x6b, 0x11, 0x7a, 0x02, 0x6a, 0xda, 0xe9, 0x0d, 0x71, 0x34, 0x20, 0x66, 0x07, 0x4f, 0x42,
0x07, 0x52, 0xfd, 0x85, 0xd2, 0xf6, 0xbe, 0xb6, 0x89, 0xda, 0x16, 0x38, 0x11, 0xe9, 0x91, 0xcb,
0x84, 0xd9, 0xfb, 0x05, 0x56, 0xa7, 0xd5, 0x4e, 0x9d, 0xd0, 0x08, 0x16, 0x64, 0x72, 0x99, 0x7d,
0x55, 0x63, 0xef, 0x00, 0xce, 0x4f, 0x5b, 0x97, 0x39, 0xfb, 0x68, 0x26, 0x67, 0x2f, 0x65, 0x83,
0x3a, 0x85, 0xc5, 0x49, 0xda, 0x1b, 0x80, 0xac, 0x06, 0x8b, 0xe7, 0x71, 0xfa, 0xd9, 0xa1, 0x2e,
0xb5, 0xbe, 0x28, 0xa5, 0xc9, 0x29, 0xd4, 0xc6, 0x3f, 0xf3, 0x14, 0xba, 0x48, 0x1c, 0x42, 0x37,
0x61, 0xcd, 0x28, 0xf8, 0x32, 0x86, 0xf3, 0xe3, 0xf4, 0x2b, 0xac, 0x67, 0x15, 0xbf, 0x28, 0x2d,
0xdf, 0xee, 0x99, 0xb5, 0x2f, 0x99, 0x3d, 0x99, 0x61, 0x76, 0x25, 0xcb, 0x2c, 0x83, 0xc7, 0x21,
0xe7, 0xc1, 0xe2, 0x49, 0xb9, 0xf7, 0x38, 0xdf, 0xc8, 0x79, 0x37, 0x00, 0x9c, 0xd4, 0x48, 0x91,
0xe5, 0x26, 0xc8, 0x94, 0xd6, 0x35, 0xa8, 0x9d, 0x10, 0x70, 0xa5, 0x72, 0x1d, 0xaa, 0x93, 0x80,
0xcc, 0xb3, 0xf3, 0x1d, 0x2c, 0xb5, 0x45, 0x42, 0x70, 0x48, 0xa3, 0xc1, 0xae, 0xdc, 0x8a, 0x55,
0x28, 0x76, 0xc7, 0x82, 0x70, 0xa5, 0xb9, 0xe8, 0xeb, 0x09, 0x5a, 0x87, 0x12, 0x49, 0x12, 0x96,
0x70, 0xb3, 0x45, 0x66, 0xe6, 0x6d, 0x42, 0xfd, 0x05, 0x8b, 0xc7, 0x6f, 0x47, 0x96, 0xd2, 0x45,
0xa8, 0x26, 0x8c, 0x89, 0x4e, 0x8c, 0xc5, 0xd0, 0x78, 0xab, 0x48, 0xc1, 0x3b, 0x2c, 0x86, 0x5e,
0x17, 0xaa, 0x7b, 0xed, 0x54, 0x53, 0x42, 0x62, 0x4c, 0x58, 0x48, 0x8c, 0x09, 0x59, 0x1d, 0x12,
0xd2, 0x1b, 0x25, 0x9c, 0xa4, 0xd5, 0xc1, 0x4c, 0xd1, 0x4d, 0x58, 0xd6, 0x43, 0xca, 0xa2, 0x4e,
0x9f, 0xc4, 0x62, 0xa8, 0x0a, 0x44, 0xd1, 0xaf, 0x5b, 0xf1, 0xae, 0x94, 0x7a, 0xff, 0xe5, 0xa0,
0xf2, 0x8a, 0x06, 0xba, 0x86, 0x23, 0x58, 0x88, 0x70, 0x98, 0x5e, 0xa7, 0x6a, 0x2c, 0x65, 0x9c,
0xfe, 0xae, 0x1d, 0x14, 0x7c, 0x35, 0x96, 0xb2, 0x90, 0xf5, 0x75, 0xcd, 0x59, 0xf2, 0xd5, 0x18,
0x35, 0xa1, 0x12, 0xb2, 0x3e, 0x3d, 0xa4, 0xa4, 0xaf, 0x2a, 0x4d, 0xc1, 0xb7, 0x73, 0xb4, 0x06,
0x25, 0xca, 0x3b, 0x7d, 0x9a, 0x34, 0x8a, 0x0a, 0x66, 0x91, 0xf2, 0x5d, 0x9a, 0xc8, 0xcd, 0x53,
0x1b, 0xd3, 0x28, 0xe9, 0x52, 0xaa, 0x26, 0xd2, 0x78, 0x40, 0xa3, 0x0f, 0x8d, 0xb2, 0x06, 0x21,
0xc7, 0xe8, 0x3a, 0x2c, 0x25, 0x24, 0xc0, 0x82, 0x1e, 0x91, 0x8e, 0x42, 0x58, 0x51, 0x8b, 0x8b,
0xa9, 0xf0, 0x00, 0x87, 0xc4, 0x0b, 0xa0, 0xbe, 0xcf, 0x46, 0xf2, 0xf6, 0x38, 0x7d, 0x6a, 0xdf,
0xd2, 0xd5, 0x3d, 0xbd, 0x52, 0x91, 0x4d, 0x56, 0x65, 0xb9, 0x2d, 0xb0, 0xd0, 0x15, 0x9f, 0xcb,
0x26, 0x2f, 0xf5, 0xf6, 0xa9, 0x26, 0x6f, 0x1a, 0x95, 0x93, 0xe0, 0x7f, 0x40, 0xd5, 0xda, 0x45,
0x97, 0x01, 0x0e, 0x69, 0x40, 0xf8, 0x98, 0x0b, 0x12, 0x9a, 0x10, 0x38, 0x92, 0xa9, 0x40, 0x2c,
0x98, 0x40, 0x6c, 0x40, 0x15, 0x1f, 0x61, 0x1a, 0xe0, 0x6e, 0xa0, 0xa3, 0xb1, 0xe0, 0x4f, 0x04,
0xe8, 0x12, 0x40, 0x28, 0xcd, 0x93, 0x7e, 0x87, 0x45, 0x2a, 0x28, 0x55, 0xbf, 0x6a, 0x24, 0x6f,
0x23, 0x8f, 0xc3, 0xf2, 0x8f, 0x44, 0xa5, 0xc2, 0x19, 0x36, 0xac, 0x05, 0xe5, 0x23, 0x6d, 0x44,
0x01, 0x73, 0xbb, 0x10, 0x63, 0x5c, 0x75, 0x21, 0xa9, 0x92, 0xec, 0xa2, 0xac, 0xd3, 0x4f, 0x75,
0x51, 0x19, 0x74, 0xce, 0xc6, 0xfd, 0x95, 0x83, 0x9a, 0x63, 0x5e, 0x5e, 0xd3, 0x02, 0xdb, 0x6b,
0x5a, 0xe0, 0x81, 0x94, 0xf0, 0x21, 0x4e, 0xfb, 0x37, 0x3e, 0xd4, 0x47, 0x75, 0x44, 0x03, 0x61,
0x6e, 0x4a, 0x3d, 0x91, 0x7b, 0x34, 0x60, 0x9d, 0x94, 0x82, 0xd9, 0xa3, 0x01, 0x33, 0xc6, 0x65,
0xa5, 0x60, 0x5c, 0x65, 0x6d, 0xd5, 0xcf, 0x33, 0x2e, 0x83, 0x80, 0x93, 0xde, 0xd0, 0x64, 0xac,
0x1a, 0x6f, 0xff, 0x53, 0x86, 0xf2, 0xbe, 0x86, 0x8c, 0xbe, 0x85, 0xb2, 0x39, 0xe1, 0x68, 0x12,
0xff, 0xe9, 0x33, 0xdf, 0x74, 0x7a, 0x18, 0xb7, 0x96, 0xdc, 0xc9, 0xa1, 0xa7, 0x00, 0x6f, 0x46,
0x5d, 0xd2, 0x63, 0xd1, 0x21, 0x1d, 0xa0, 0xf5, 0x99, 0x9b, 0xfa, 0xa5, 0x7c, 0xde, 0x9c, 0xf0,
0xfd, 0x26, 0xe4, 0xf7, 0xda, 0x68, 0x92, 0xb4, 0xb6, 0x7a, 0x34, 0xcf, 0x5b, 0x59, 0x7a, 0xd8,
0xef, 0xe4, 0xd0, 0x03, 0x28, 0xe9, 0xd4, 0x9c, 0xeb, 0x6a, 0x75, 0x26, 0x87, 0x65, 0xcc, 0x1e,
0x40, 0x49, 0xbf, 0x5b, 0x3e, 0xe3, 0x3b, 0xf7, 0x21, 0x74, 0x0f, 0x8a, 0xea, 0xa5, 0x31, 0xf7,
0xb3, 0x95, 0xec, 0x8b, 0x44, 0x7e, 0xf5, 0xcc, 0xf6, 0x99, 0xb2, 0x13, 0x9d, 0xfb, 0xed, 0x85,
0xe3, 0xfb, 0x56, 0x69, 0xe1, 0x00, 0xea, 0xd3, 0x77, 0x0d, 0xba, 0x3c, 0xf7, 0x12, 0xd2, 0xdb,
0xb5, 0x31, 0x77, 0x5d, 0xda, 0x7b, 0x6d, 0x9b, 0x44, 0x75, 0xf5, 0xa0, 0x8d, 0x39, 0xed, 0x87,
0xb6, 0xd5, 0x9c, 0xb3, 0x2a, 0x2d, 0xbd, 0xb4, 0xdc, 0xe4, 0xdd, 0x83, 0x2e, 0x1e, 0x7f, 0xeb,
0x6b, 0x3b, 0x17, 0x8e, 0x5f, 0x94, 0x66, 0x1e, 0x43, 0x25, 0x7d, 0x37, 0x7d, 0x4e, 0xd6, 0x4c,
0x3d, 0xc6, 0x1e, 0x41, 0xd9, 0xbc, 0x56, 0x9c, 0x8c, 0x9d, 0x7e, 0x67, 0x35, 0xd7, 0x66, 0x17,
0x74, 0xdb, 0x52, 0xd4, 0x1b, 0xe0, 0x34, 0xd5, 0x2e, 0xf3, 0x95, 0xac, 0x38, 0x0e, 0xc6, 0x5e,
0xe1, 0xcf, 0x7c, 0x0e, 0xdd, 0x87, 0x05, 0x45, 0xd8, 0x79, 0xb2, 0x38, 0x4c, 0x51, 0x46, 0x6a,
0x3f, 0x7b, 0x08, 0xe5, 0xf4, 0x60, 0xce, 0xa3, 0xb9, 0x36, 0x5b, 0x3d, 0xe2, 0x60, 0xbc, 0xf3,
0x06, 0x96, 0x7b, 0x2c, 0xb4, 0x6b, 0x38, 0xa6, 0x3b, 0x60, 0xce, 0xec, 0xf3, 0x98, 0xbe, 0xcb,
0xfd, 0x74, 0x7b, 0x40, 0xc5, 0x70, 0xd4, 0x95, 0xd5, 0x6e, 0x4b, 0xe0, 0x80, 0xf1, 0x4d, 0x5d,
0x76, 0xb9, 0x9e, 0x6d, 0xe1, 0x98, 0xa6, 0xff, 0x42, 0x74, 0x4b, 0xca, 0xe7, 0xdd, 0xff, 0x03,
0x00, 0x00, 0xff, 0xff, 0x35, 0x80, 0xc3, 0xe3, 0x9f, 0x10, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -2107,16 +2108,17 @@ const _ = grpc.SupportPackageIsVersion4
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type MachineClient interface {
CopyOut(ctx context.Context, in *CopyOutRequest, opts ...grpc.CallOption) (Machine_CopyOutClient, error)
Mounts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*MountsReply, error)
Kubeconfig(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (Machine_KubeconfigClient, error)
LS(ctx context.Context, in *LSRequest, opts ...grpc.CallOption) (Machine_LSClient, error)
Mounts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*MountsReply, error)
Reboot(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*RebootReply, error)
Reset(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ResetReply, error)
Shutdown(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ShutdownReply, error)
Upgrade(ctx context.Context, in *UpgradeRequest, opts ...grpc.CallOption) (*UpgradeReply, error)
ServiceList(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ServiceListReply, error)
ServiceRestart(ctx context.Context, in *ServiceRestartRequest, opts ...grpc.CallOption) (*ServiceRestartReply, error)
ServiceStart(ctx context.Context, in *ServiceStartRequest, opts ...grpc.CallOption) (*ServiceStartReply, error)
ServiceStop(ctx context.Context, in *ServiceStopRequest, opts ...grpc.CallOption) (*ServiceStopReply, error)
ServiceRestart(ctx context.Context, in *ServiceRestartRequest, opts ...grpc.CallOption) (*ServiceRestartReply, error)
Shutdown(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ShutdownReply, error)
Upgrade(ctx context.Context, in *UpgradeRequest, opts ...grpc.CallOption) (*UpgradeReply, error)
Start(ctx context.Context, in *StartRequest, opts ...grpc.CallOption) (*StartReply, error)
Stop(ctx context.Context, in *StopRequest, opts ...grpc.CallOption) (*StopReply, error)
Version(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*VersionReply, error)
@ -2162,17 +2164,40 @@ func (x *machineCopyOutClient) Recv() (*StreamingData, error) {
return m, nil
}
func (c *machineClient) Mounts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*MountsReply, error) {
out := new(MountsReply)
err := c.cc.Invoke(ctx, "/machine.Machine/Mounts", in, out, opts...)
func (c *machineClient) Kubeconfig(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (Machine_KubeconfigClient, error) {
stream, err := c.cc.NewStream(ctx, &_Machine_serviceDesc.Streams[1], "/machine.Machine/Kubeconfig", opts...)
if err != nil {
return nil, err
}
return out, nil
x := &machineKubeconfigClient{stream}
if err := x.ClientStream.SendMsg(in); err != nil {
return nil, err
}
if err := x.ClientStream.CloseSend(); err != nil {
return nil, err
}
return x, nil
}
type Machine_KubeconfigClient interface {
Recv() (*StreamingData, error)
grpc.ClientStream
}
type machineKubeconfigClient struct {
grpc.ClientStream
}
func (x *machineKubeconfigClient) Recv() (*StreamingData, error) {
m := new(StreamingData)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
func (c *machineClient) LS(ctx context.Context, in *LSRequest, opts ...grpc.CallOption) (Machine_LSClient, error) {
stream, err := c.cc.NewStream(ctx, &_Machine_serviceDesc.Streams[1], "/machine.Machine/LS", opts...)
stream, err := c.cc.NewStream(ctx, &_Machine_serviceDesc.Streams[2], "/machine.Machine/LS", opts...)
if err != nil {
return nil, err
}
@ -2203,6 +2228,15 @@ func (x *machineLSClient) Recv() (*FileInfo, error) {
return m, nil
}
func (c *machineClient) Mounts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*MountsReply, error) {
out := new(MountsReply)
err := c.cc.Invoke(ctx, "/machine.Machine/Mounts", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *machineClient) Reboot(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*RebootReply, error) {
out := new(RebootReply)
err := c.cc.Invoke(ctx, "/machine.Machine/Reboot", in, out, opts...)
@ -2221,24 +2255,6 @@ func (c *machineClient) Reset(ctx context.Context, in *empty.Empty, opts ...grpc
return out, nil
}
func (c *machineClient) Shutdown(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ShutdownReply, error) {
out := new(ShutdownReply)
err := c.cc.Invoke(ctx, "/machine.Machine/Shutdown", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *machineClient) Upgrade(ctx context.Context, in *UpgradeRequest, opts ...grpc.CallOption) (*UpgradeReply, error) {
out := new(UpgradeReply)
err := c.cc.Invoke(ctx, "/machine.Machine/Upgrade", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *machineClient) ServiceList(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ServiceListReply, error) {
out := new(ServiceListReply)
err := c.cc.Invoke(ctx, "/machine.Machine/ServiceList", in, out, opts...)
@ -2248,6 +2264,15 @@ func (c *machineClient) ServiceList(ctx context.Context, in *empty.Empty, opts .
return out, nil
}
func (c *machineClient) ServiceRestart(ctx context.Context, in *ServiceRestartRequest, opts ...grpc.CallOption) (*ServiceRestartReply, error) {
out := new(ServiceRestartReply)
err := c.cc.Invoke(ctx, "/machine.Machine/ServiceRestart", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *machineClient) ServiceStart(ctx context.Context, in *ServiceStartRequest, opts ...grpc.CallOption) (*ServiceStartReply, error) {
out := new(ServiceStartReply)
err := c.cc.Invoke(ctx, "/machine.Machine/ServiceStart", in, out, opts...)
@ -2266,9 +2291,18 @@ func (c *machineClient) ServiceStop(ctx context.Context, in *ServiceStopRequest,
return out, nil
}
func (c *machineClient) ServiceRestart(ctx context.Context, in *ServiceRestartRequest, opts ...grpc.CallOption) (*ServiceRestartReply, error) {
out := new(ServiceRestartReply)
err := c.cc.Invoke(ctx, "/machine.Machine/ServiceRestart", in, out, opts...)
func (c *machineClient) Shutdown(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ShutdownReply, error) {
out := new(ShutdownReply)
err := c.cc.Invoke(ctx, "/machine.Machine/Shutdown", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *machineClient) Upgrade(ctx context.Context, in *UpgradeRequest, opts ...grpc.CallOption) (*UpgradeReply, error) {
out := new(UpgradeReply)
err := c.cc.Invoke(ctx, "/machine.Machine/Upgrade", in, out, opts...)
if err != nil {
return nil, err
}
@ -2307,16 +2341,17 @@ func (c *machineClient) Version(ctx context.Context, in *empty.Empty, opts ...gr
// MachineServer is the server API for Machine service.
type MachineServer interface {
CopyOut(*CopyOutRequest, Machine_CopyOutServer) error
Mounts(context.Context, *empty.Empty) (*MountsReply, error)
Kubeconfig(*empty.Empty, Machine_KubeconfigServer) error
LS(*LSRequest, Machine_LSServer) error
Mounts(context.Context, *empty.Empty) (*MountsReply, error)
Reboot(context.Context, *empty.Empty) (*RebootReply, error)
Reset(context.Context, *empty.Empty) (*ResetReply, error)
Shutdown(context.Context, *empty.Empty) (*ShutdownReply, error)
Upgrade(context.Context, *UpgradeRequest) (*UpgradeReply, error)
ServiceList(context.Context, *empty.Empty) (*ServiceListReply, error)
ServiceRestart(context.Context, *ServiceRestartRequest) (*ServiceRestartReply, error)
ServiceStart(context.Context, *ServiceStartRequest) (*ServiceStartReply, error)
ServiceStop(context.Context, *ServiceStopRequest) (*ServiceStopReply, error)
ServiceRestart(context.Context, *ServiceRestartRequest) (*ServiceRestartReply, error)
Shutdown(context.Context, *empty.Empty) (*ShutdownReply, error)
Upgrade(context.Context, *UpgradeRequest) (*UpgradeReply, error)
Start(context.Context, *StartRequest) (*StartReply, error)
Stop(context.Context, *StopRequest) (*StopReply, error)
Version(context.Context, *empty.Empty) (*VersionReply, error)
@ -2347,22 +2382,25 @@ func (x *machineCopyOutServer) Send(m *StreamingData) error {
return x.ServerStream.SendMsg(m)
}
func _Machine_Mounts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(empty.Empty)
if err := dec(in); err != nil {
return nil, err
func _Machine_Kubeconfig_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(empty.Empty)
if err := stream.RecvMsg(m); err != nil {
return err
}
if interceptor == nil {
return srv.(MachineServer).Mounts(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/machine.Machine/Mounts",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MachineServer).Mounts(ctx, req.(*empty.Empty))
}
return interceptor(ctx, in, info, handler)
return srv.(MachineServer).Kubeconfig(m, &machineKubeconfigServer{stream})
}
type Machine_KubeconfigServer interface {
Send(*StreamingData) error
grpc.ServerStream
}
type machineKubeconfigServer struct {
grpc.ServerStream
}
func (x *machineKubeconfigServer) Send(m *StreamingData) error {
return x.ServerStream.SendMsg(m)
}
func _Machine_LS_Handler(srv interface{}, stream grpc.ServerStream) error {
@ -2386,6 +2424,24 @@ func (x *machineLSServer) Send(m *FileInfo) error {
return x.ServerStream.SendMsg(m)
}
func _Machine_Mounts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(empty.Empty)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MachineServer).Mounts(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/machine.Machine/Mounts",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MachineServer).Mounts(ctx, req.(*empty.Empty))
}
return interceptor(ctx, in, info, handler)
}
func _Machine_Reboot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(empty.Empty)
if err := dec(in); err != nil {
@ -2422,42 +2478,6 @@ func _Machine_Reset_Handler(srv interface{}, ctx context.Context, dec func(inter
return interceptor(ctx, in, info, handler)
}
func _Machine_Shutdown_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(empty.Empty)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MachineServer).Shutdown(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/machine.Machine/Shutdown",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MachineServer).Shutdown(ctx, req.(*empty.Empty))
}
return interceptor(ctx, in, info, handler)
}
func _Machine_Upgrade_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UpgradeRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MachineServer).Upgrade(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/machine.Machine/Upgrade",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MachineServer).Upgrade(ctx, req.(*UpgradeRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Machine_ServiceList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(empty.Empty)
if err := dec(in); err != nil {
@ -2476,6 +2496,24 @@ func _Machine_ServiceList_Handler(srv interface{}, ctx context.Context, dec func
return interceptor(ctx, in, info, handler)
}
func _Machine_ServiceRestart_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ServiceRestartRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MachineServer).ServiceRestart(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/machine.Machine/ServiceRestart",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MachineServer).ServiceRestart(ctx, req.(*ServiceRestartRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Machine_ServiceStart_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ServiceStartRequest)
if err := dec(in); err != nil {
@ -2512,20 +2550,38 @@ func _Machine_ServiceStop_Handler(srv interface{}, ctx context.Context, dec func
return interceptor(ctx, in, info, handler)
}
func _Machine_ServiceRestart_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ServiceRestartRequest)
func _Machine_Shutdown_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(empty.Empty)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MachineServer).ServiceRestart(ctx, in)
return srv.(MachineServer).Shutdown(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/machine.Machine/ServiceRestart",
FullMethod: "/machine.Machine/Shutdown",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MachineServer).ServiceRestart(ctx, req.(*ServiceRestartRequest))
return srv.(MachineServer).Shutdown(ctx, req.(*empty.Empty))
}
return interceptor(ctx, in, info, handler)
}
func _Machine_Upgrade_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UpgradeRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MachineServer).Upgrade(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/machine.Machine/Upgrade",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MachineServer).Upgrade(ctx, req.(*UpgradeRequest))
}
return interceptor(ctx, in, info, handler)
}
@ -2600,18 +2656,14 @@ var _Machine_serviceDesc = grpc.ServiceDesc{
MethodName: "Reset",
Handler: _Machine_Reset_Handler,
},
{
MethodName: "Shutdown",
Handler: _Machine_Shutdown_Handler,
},
{
MethodName: "Upgrade",
Handler: _Machine_Upgrade_Handler,
},
{
MethodName: "ServiceList",
Handler: _Machine_ServiceList_Handler,
},
{
MethodName: "ServiceRestart",
Handler: _Machine_ServiceRestart_Handler,
},
{
MethodName: "ServiceStart",
Handler: _Machine_ServiceStart_Handler,
@ -2621,8 +2673,12 @@ var _Machine_serviceDesc = grpc.ServiceDesc{
Handler: _Machine_ServiceStop_Handler,
},
{
MethodName: "ServiceRestart",
Handler: _Machine_ServiceRestart_Handler,
MethodName: "Shutdown",
Handler: _Machine_Shutdown_Handler,
},
{
MethodName: "Upgrade",
Handler: _Machine_Upgrade_Handler,
},
{
MethodName: "Start",
@ -2643,6 +2699,11 @@ var _Machine_serviceDesc = grpc.ServiceDesc{
Handler: _Machine_CopyOut_Handler,
ServerStreams: true,
},
{
StreamName: "Kubeconfig",
Handler: _Machine_Kubeconfig_Handler,
ServerStreams: true,
},
{
StreamName: "LS",
Handler: _Machine_LS_Handler,

View File

@ -14,16 +14,17 @@ import "common/common.proto";
// The machine service definition.
service Machine {
rpc CopyOut(CopyOutRequest) returns (stream StreamingData);
rpc Mounts(google.protobuf.Empty) returns (MountsReply);
rpc Kubeconfig(google.protobuf.Empty) returns (stream StreamingData);
rpc LS(LSRequest) returns (stream FileInfo);
rpc Mounts(google.protobuf.Empty) returns (MountsReply);
rpc Reboot(google.protobuf.Empty) returns (RebootReply);
rpc Reset(google.protobuf.Empty) returns (ResetReply);
rpc Shutdown(google.protobuf.Empty) returns (ShutdownReply);
rpc Upgrade(UpgradeRequest) returns (UpgradeReply);
rpc ServiceList(google.protobuf.Empty) returns (ServiceListReply);
rpc ServiceRestart(ServiceRestartRequest) returns (ServiceRestartReply);
rpc ServiceStart(ServiceStartRequest) returns (ServiceStartReply);
rpc ServiceStop(ServiceStopRequest) returns (ServiceStopReply);
rpc ServiceRestart(ServiceRestartRequest) returns (ServiceRestartReply);
rpc Shutdown(google.protobuf.Empty) returns (ShutdownReply);
rpc Upgrade(UpgradeRequest) returns (UpgradeReply);
rpc Start(StartRequest) returns (StartReply) {
option deprecated = true;

View File

@ -1001,61 +1001,60 @@ func init() {
func init() { proto.RegisterFile("os/os.proto", fileDescriptor_b20a722d09fd3254) }
var fileDescriptor_b20a722d09fd3254 = []byte{
// 853 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0x51, 0x6f, 0xdb, 0x36,
0x10, 0x9e, 0x6c, 0xcb, 0xb2, 0xce, 0x89, 0xec, 0x30, 0x6d, 0xa1, 0xb9, 0x43, 0x91, 0x09, 0x28,
0x9a, 0x76, 0x88, 0xd5, 0x79, 0x0f, 0x1d, 0xb0, 0x01, 0x43, 0x1a, 0xf7, 0x21, 0xd8, 0x9a, 0x14,
0x6c, 0xf7, 0xb0, 0x3d, 0x2c, 0xa0, 0x25, 0xd6, 0x21, 0x66, 0x89, 0x9c, 0x48, 0x15, 0xf3, 0x3f,
0xd9, 0xdb, 0x5e, 0xf6, 0xe7, 0xf6, 0x2f, 0x06, 0x92, 0x92, 0x2c, 0xa7, 0xdd, 0xda, 0x04, 0x58,
0x9f, 0x24, 0x7e, 0x77, 0xbc, 0xe3, 0x7d, 0xf7, 0xf1, 0x08, 0x43, 0x2e, 0x63, 0x2e, 0xa7, 0xa2,
0xe0, 0x8a, 0xa3, 0x0e, 0x97, 0x93, 0xbb, 0x4b, 0xce, 0x97, 0x2b, 0x1a, 0x1b, 0x64, 0x51, 0xbe,
0x8e, 0x69, 0x26, 0xd4, 0xda, 0x3a, 0x4c, 0xf6, 0x13, 0x9e, 0x65, 0x3c, 0x8f, 0xed, 0xc7, 0x82,
0xd1, 0x2f, 0xb0, 0x77, 0xc2, 0x73, 0x45, 0x58, 0x4e, 0x0b, 0x89, 0xe9, 0x6f, 0x25, 0x95, 0x0a,
0x7d, 0x06, 0x7e, 0x4e, 0x32, 0x2a, 0x05, 0x49, 0x68, 0xe8, 0x1c, 0x38, 0x87, 0x3e, 0xde, 0x00,
0xe8, 0x0b, 0xe8, 0xa7, 0x05, 0x7b, 0x43, 0x8b, 0xb0, 0x73, 0xe0, 0x1c, 0x06, 0xb3, 0xfd, 0x29,
0x97, 0xd3, 0x26, 0xc8, 0xdc, 0x98, 0x70, 0xe5, 0x12, 0xfd, 0xe5, 0x80, 0xdf, 0xd8, 0xde, 0x13,
0x38, 0x80, 0x0e, 0x4b, 0x4d, 0x50, 0x1f, 0x77, 0x58, 0x8a, 0x6e, 0x81, 0xcb, 0x32, 0xb2, 0xa4,
0x61, 0xd7, 0x40, 0x76, 0x81, 0xc6, 0xd0, 0x15, 0x2c, 0x0d, 0x7b, 0x07, 0xce, 0xe1, 0x2e, 0xd6,
0xbf, 0xe8, 0x0e, 0xf4, 0xa5, 0x22, 0xaa, 0x94, 0xa1, 0x6b, 0x1c, 0xab, 0x15, 0xba, 0x0d, 0x7d,
0xc1, 0xd3, 0x0b, 0x96, 0x86, 0x7d, 0x1b, 0x40, 0xf0, 0xf4, 0x34, 0x45, 0x08, 0x7a, 0x3a, 0x67,
0xe8, 0x19, 0xd0, 0xfc, 0x47, 0xaa, 0x45, 0x03, 0xa6, 0x52, 0xf0, 0x5c, 0x52, 0xf4, 0x18, 0x06,
0x19, 0x55, 0x24, 0x25, 0x8a, 0x98, 0xc3, 0x0e, 0x67, 0xb7, 0xa6, 0x15, 0x79, 0x67, 0x3c, 0xa5,
0xcf, 0x2b, 0x1b, 0x6e, 0xbc, 0xd0, 0x11, 0x40, 0xd2, 0xb0, 0x19, 0x76, 0x0e, 0xba, 0x87, 0xc3,
0xd9, 0xee, 0x16, 0x3d, 0xb8, 0xe5, 0x10, 0xcd, 0x61, 0xd4, 0x26, 0x5f, 0xac, 0xd6, 0xe8, 0x4b,
0x18, 0x14, 0x55, 0xfe, 0xd0, 0x31, 0xfb, 0x6f, 0x6f, 0xef, 0xaf, 0x8c, 0xb8, 0x71, 0x8b, 0x2e,
0x61, 0xf8, 0x03, 0x5f, 0x7e, 0x60, 0xf3, 0xae, 0x72, 0xbc, 0x69, 0x66, 0xf7, 0xfd, 0xcd, 0x44,
0x30, 0x7e, 0x51, 0xf0, 0x84, 0x4a, 0x49, 0xeb, 0x74, 0xd1, 0x31, 0x04, 0x2d, 0x4c, 0x97, 0x10,
0xbf, 0x55, 0x82, 0x09, 0x5a, 0x79, 0xbd, 0xa3, 0x80, 0x1c, 0x46, 0x57, 0x8c, 0x37, 0xa0, 0xfe,
0x21, 0xf8, 0xa2, 0x3e, 0x47, 0xc5, 0xfc, 0xb0, 0x9d, 0x76, 0x63, 0x8d, 0xfe, 0xe8, 0x80, 0x57,
0xc1, 0xb5, 0x9a, 0x74, 0x0e, 0xd7, 0xaa, 0x09, 0x41, 0x4f, 0x88, 0x8a, 0x23, 0x17, 0x9b, 0x7f,
0xad, 0x44, 0xad, 0xa9, 0x46, 0x89, 0x66, 0x81, 0x42, 0xf0, 0xd4, 0x65, 0x41, 0x49, 0x2a, 0x8d,
0x1a, 0x5d, 0x5c, 0x2f, 0xd1, 0xa7, 0x30, 0x48, 0x44, 0x79, 0xa1, 0x58, 0x46, 0x8d, 0x26, 0x1d,
0xec, 0x25, 0xa2, 0x7c, 0xc5, 0x32, 0x8a, 0xee, 0x43, 0xf0, 0x86, 0x15, 0xaa, 0x24, 0xab, 0x8b,
0x8c, 0x66, 0xbc, 0x58, 0x1b, 0x71, 0xf6, 0xf0, 0x6e, 0x85, 0x3e, 0x37, 0x20, 0x7a, 0x00, 0xa3,
0x82, 0x4a, 0x96, 0xd2, 0x5c, 0xd5, 0x7e, 0x9e, 0xf1, 0x0b, 0x6a, 0xb8, 0x72, 0x0c, 0xc1, 0xd3,
0xc4, 0x90, 0x3c, 0x0d, 0x07, 0xe6, 0x70, 0xf5, 0x12, 0xdd, 0x03, 0xa0, 0xbf, 0xd3, 0xa4, 0x54,
0x64, 0xb1, 0xa2, 0xa1, 0x6f, 0x8c, 0x2d, 0x44, 0x17, 0x4a, 0x8a, 0xa5, 0x0c, 0xc1, 0xde, 0x03,
0xfd, 0x1f, 0xfd, 0x0a, 0x01, 0xa6, 0x52, 0x91, 0x42, 0x7d, 0x04, 0x39, 0x9d, 0xc0, 0xa8, 0x49,
0x76, 0xd3, 0xbe, 0x47, 0xdf, 0xc1, 0x4e, 0x13, 0xe4, 0x3f, 0xd4, 0x77, 0x25, 0x51, 0x4b, 0x7d,
0x3f, 0xc1, 0xce, 0x4b, 0x45, 0xd4, 0xff, 0x31, 0xfc, 0x08, 0xec, 0x56, 0xa1, 0x6f, 0x2c, 0xeb,
0x7b, 0x56, 0x79, 0xb5, 0xa4, 0x07, 0x3a, 0x9d, 0x8e, 0x69, 0x35, 0x28, 0xa3, 0x6f, 0x00, 0xaa,
0x14, 0xba, 0xf8, 0xa3, 0xb7, 0x8a, 0xdf, 0xab, 0x37, 0xbc, 0xeb, 0xe2, 0xfd, 0xe9, 0x40, 0x4f,
0xdb, 0xae, 0xd9, 0xe4, 0xcf, 0x61, 0xc7, 0x4a, 0xf2, 0xa2, 0x94, 0x7a, 0x3c, 0xf7, 0x8c, 0x30,
0x87, 0x16, 0xfb, 0x51, 0x43, 0xe8, 0x2e, 0xf8, 0xfa, 0x02, 0x58, 0xbb, 0x6b, 0xec, 0xfa, 0x46,
0x58, 0xe3, 0x87, 0xcf, 0xe5, 0x47, 0x8f, 0x5a, 0x13, 0xd2, 0x92, 0x8b, 0x02, 0x80, 0x93, 0xf3,
0xb3, 0x57, 0xc7, 0xa7, 0x67, 0xcf, 0xf0, 0x7c, 0xfc, 0x09, 0xf2, 0xa0, 0x7b, 0x82, 0x4f, 0xc7,
0xce, 0xec, 0xef, 0x0e, 0x74, 0xce, 0x5f, 0xa2, 0xaf, 0x01, 0x36, 0x43, 0x15, 0x6d, 0x4f, 0xcf,
0xba, 0xc9, 0x93, 0xfd, 0xab, 0xb0, 0x66, 0x6f, 0x06, 0xee, 0x3c, 0xa3, 0x72, 0x89, 0xee, 0x4c,
0xed, 0x3b, 0x3a, 0xad, 0xdf, 0xd1, 0xe9, 0x33, 0xfd, 0x8e, 0x4e, 0xf6, 0xea, 0x66, 0xcd, 0x75,
0x93, 0xcc, 0x9e, 0x27, 0x00, 0xdf, 0x97, 0x0b, 0x9a, 0xf0, 0xfc, 0x35, 0xbb, 0xd6, 0xc6, 0x07,
0xd0, 0xd3, 0x53, 0x1b, 0x8d, 0xf4, 0x49, 0x5a, 0xf3, 0x7b, 0xb2, 0xd3, 0xf6, 0x7d, 0xec, 0xa0,
0x27, 0xe0, 0x37, 0x03, 0xf6, 0x5f, 0x13, 0xa0, 0xd6, 0xa8, 0xdb, 0xcc, 0x61, 0xaf, 0x52, 0x3d,
0x42, 0x5b, 0x57, 0xc0, 0xe6, 0x19, 0x6f, 0x61, 0x7a, 0xc3, 0x43, 0x70, 0x8d, 0x52, 0xd0, 0xb8,
0x25, 0x1a, 0xeb, 0x1c, 0xb4, 0x10, 0xb1, 0x5a, 0x3f, 0xfd, 0x56, 0x3f, 0x74, 0x99, 0x06, 0x89,
0x60, 0x4f, 0xdd, 0x73, 0x79, 0x2c, 0xd8, 0x0b, 0xe7, 0xe7, 0xfb, 0x4b, 0xa6, 0x2e, 0xcb, 0x85,
0xae, 0x20, 0x56, 0x64, 0xc5, 0xe5, 0x91, 0x5c, 0x4b, 0x45, 0x33, 0x69, 0x57, 0x31, 0x11, 0x2c,
0xe6, 0x72, 0xd1, 0x37, 0xa7, 0xff, 0xea, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xde, 0xde, 0x4b,
0x15, 0xc0, 0x08, 0x00, 0x00,
// 839 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0x51, 0x8f, 0xdb, 0x44,
0x10, 0xc6, 0x4e, 0x1c, 0xc7, 0x93, 0x3b, 0x27, 0xb7, 0xd7, 0x56, 0x26, 0x45, 0x55, 0xb0, 0x54,
0x35, 0x2d, 0xba, 0xb8, 0x84, 0x07, 0x90, 0x40, 0x42, 0xd7, 0xa4, 0x0f, 0x27, 0xd1, 0xbb, 0x6a,
0x5b, 0x1e, 0xe0, 0x81, 0x68, 0x13, 0x2f, 0x39, 0x8b, 0xd8, 0xbb, 0x78, 0xd7, 0x15, 0xf9, 0x27,
0xbc, 0xf1, 0xc2, 0x0f, 0xe0, 0x27, 0xa2, 0xdd, 0xb5, 0x1d, 0x27, 0x2d, 0xf4, 0x38, 0x89, 0x3e,
0xd9, 0xfb, 0xcd, 0xec, 0xcc, 0xce, 0x37, 0xdf, 0xce, 0x42, 0x8f, 0x89, 0x88, 0x89, 0x09, 0xcf,
0x99, 0x64, 0xc8, 0x66, 0x62, 0x78, 0x7f, 0xcd, 0xd8, 0x7a, 0x43, 0x23, 0x8d, 0x2c, 0x8b, 0x9f,
0x23, 0x9a, 0x72, 0xb9, 0x35, 0x0e, 0xc3, 0xd3, 0x15, 0x4b, 0x53, 0x96, 0x45, 0xe6, 0x63, 0xc0,
0xf0, 0x27, 0x38, 0x99, 0xb1, 0x4c, 0x92, 0x24, 0xa3, 0xb9, 0xc0, 0xf4, 0xd7, 0x82, 0x0a, 0x89,
0x3e, 0x01, 0x2f, 0x23, 0x29, 0x15, 0x9c, 0xac, 0x68, 0x60, 0x8d, 0xac, 0xb1, 0x87, 0x77, 0x00,
0xfa, 0x0c, 0x3a, 0x71, 0x9e, 0xbc, 0xa1, 0x79, 0x60, 0x8f, 0xac, 0xb1, 0x3f, 0x3d, 0x9d, 0x30,
0x31, 0xa9, 0x83, 0xcc, 0xb5, 0x09, 0x97, 0x2e, 0xe1, 0x9f, 0x16, 0x78, 0xb5, 0xed, 0x3d, 0x81,
0x7d, 0xb0, 0x93, 0x58, 0x07, 0xf5, 0xb0, 0x9d, 0xc4, 0xe8, 0x0e, 0x38, 0x49, 0x4a, 0xd6, 0x34,
0x68, 0x69, 0xc8, 0x2c, 0xd0, 0x00, 0x5a, 0x3c, 0x89, 0x83, 0xf6, 0xc8, 0x1a, 0x1f, 0x63, 0xf5,
0x8b, 0xee, 0x41, 0x47, 0x48, 0x22, 0x0b, 0x11, 0x38, 0xda, 0xb1, 0x5c, 0xa1, 0xbb, 0xd0, 0xe1,
0x2c, 0x5e, 0x24, 0x71, 0xd0, 0x31, 0x01, 0x38, 0x8b, 0x2f, 0x62, 0x84, 0xa0, 0xad, 0x72, 0x06,
0xae, 0x06, 0xf5, 0x7f, 0x28, 0x1b, 0x34, 0x60, 0x2a, 0x38, 0xcb, 0x04, 0x45, 0x4f, 0xa1, 0x9b,
0x52, 0x49, 0x62, 0x22, 0x89, 0x3e, 0x6c, 0x6f, 0x7a, 0x67, 0x52, 0x92, 0x77, 0xc9, 0x62, 0xfa,
0xa2, 0xb4, 0xe1, 0xda, 0x0b, 0x9d, 0x01, 0xac, 0x6a, 0x36, 0x03, 0x7b, 0xd4, 0x1a, 0xf7, 0xa6,
0xc7, 0x7b, 0xf4, 0xe0, 0x86, 0x43, 0x38, 0x87, 0x7e, 0x93, 0x7c, 0xbe, 0xd9, 0xa2, 0xcf, 0xa1,
0x9b, 0x97, 0xf9, 0x03, 0x4b, 0xef, 0xbf, 0xbb, 0xbf, 0xbf, 0x34, 0xe2, 0xda, 0x2d, 0xbc, 0x86,
0xde, 0x77, 0x6c, 0x7d, 0xc3, 0xe6, 0x1d, 0x72, 0xbc, 0x6b, 0x66, 0xeb, 0xfd, 0xcd, 0x44, 0x30,
0x78, 0x99, 0xb3, 0x15, 0x15, 0x82, 0x56, 0xe9, 0xc2, 0x73, 0xf0, 0x1b, 0x98, 0x2a, 0x21, 0x7a,
0xab, 0x04, 0x1d, 0xb4, 0xf4, 0x7a, 0x47, 0x01, 0x19, 0xf4, 0x0f, 0x8c, 0xb7, 0xa0, 0xfe, 0x31,
0x78, 0xbc, 0x3a, 0x47, 0xc9, 0x7c, 0xaf, 0x99, 0x76, 0x67, 0x0d, 0x7f, 0xb7, 0xc1, 0x2d, 0xe1,
0x4a, 0x4d, 0x2a, 0x87, 0x63, 0xd4, 0x84, 0xa0, 0xcd, 0x79, 0xc9, 0x91, 0x83, 0xf5, 0xbf, 0x52,
0xa2, 0xd2, 0x54, 0xad, 0x44, 0xbd, 0x40, 0x01, 0xb8, 0xf2, 0x3a, 0xa7, 0x24, 0x16, 0x5a, 0x8d,
0x0e, 0xae, 0x96, 0xe8, 0x63, 0xe8, 0xae, 0x78, 0xb1, 0x90, 0x49, 0x4a, 0xb5, 0x26, 0x2d, 0xec,
0xae, 0x78, 0xf1, 0x3a, 0x49, 0x29, 0x7a, 0x08, 0xfe, 0x9b, 0x24, 0x97, 0x05, 0xd9, 0x2c, 0x52,
0x9a, 0xb2, 0x7c, 0xab, 0xc5, 0xd9, 0xc6, 0xc7, 0x25, 0xfa, 0x42, 0x83, 0xe8, 0x11, 0xf4, 0x73,
0x2a, 0x92, 0x98, 0x66, 0xb2, 0xf2, 0x73, 0xb5, 0x9f, 0x5f, 0xc1, 0xa5, 0x63, 0x00, 0xae, 0x22,
0x86, 0x64, 0x71, 0xd0, 0xd5, 0x87, 0xab, 0x96, 0xe8, 0x01, 0x00, 0xfd, 0x8d, 0xae, 0x0a, 0x49,
0x96, 0x1b, 0x1a, 0x78, 0xda, 0xd8, 0x40, 0x54, 0xa1, 0x24, 0x5f, 0x8b, 0x00, 0xcc, 0x3d, 0x50,
0xff, 0xe1, 0x2f, 0xe0, 0x63, 0x2a, 0x24, 0xc9, 0xe5, 0x07, 0x90, 0xd3, 0x0c, 0xfa, 0x75, 0xb2,
0xdb, 0xf6, 0x3d, 0xfc, 0x16, 0x8e, 0xea, 0x20, 0xff, 0xa2, 0xbe, 0x83, 0x44, 0x0d, 0xf5, 0xfd,
0x00, 0x47, 0xaf, 0x24, 0x91, 0xff, 0xc7, 0xf0, 0x23, 0x70, 0x5c, 0x86, 0xbe, 0xb5, 0xac, 0x1f,
0x18, 0xe5, 0x55, 0x92, 0xee, 0xaa, 0x74, 0x2a, 0xa6, 0xd1, 0xa0, 0x08, 0xbf, 0x06, 0x28, 0x53,
0xa8, 0xe2, 0xcf, 0xde, 0x2a, 0xfe, 0xa4, 0xda, 0xf0, 0xae, 0x8b, 0xf7, 0x87, 0x05, 0x6d, 0x65,
0xfb, 0x8f, 0x4d, 0xfe, 0x14, 0x8e, 0x8c, 0x24, 0x17, 0x85, 0x50, 0xe3, 0xb9, 0xad, 0x85, 0xd9,
0x33, 0xd8, 0xf7, 0x0a, 0x42, 0xf7, 0xc1, 0x53, 0x17, 0xc0, 0xd8, 0x1d, 0x6d, 0x57, 0x37, 0xc2,
0x18, 0x6f, 0x3e, 0x97, 0x9f, 0x3c, 0x69, 0x4c, 0x48, 0x43, 0x2e, 0xf2, 0x01, 0x66, 0x57, 0x97,
0xaf, 0xcf, 0x2f, 0x2e, 0x9f, 0xe3, 0xf9, 0xe0, 0x23, 0xe4, 0x42, 0x6b, 0x86, 0x2f, 0x06, 0xd6,
0xf4, 0x2f, 0x1b, 0xec, 0xab, 0x57, 0xe8, 0x2b, 0x80, 0xdd, 0x50, 0x45, 0xfb, 0xd3, 0xb3, 0x6a,
0xf2, 0xf0, 0xf4, 0x10, 0x56, 0xec, 0x4d, 0xc1, 0x99, 0xa7, 0x54, 0xac, 0xd1, 0xbd, 0x89, 0x79,
0x47, 0x27, 0xd5, 0x3b, 0x3a, 0x79, 0xae, 0xde, 0xd1, 0xe1, 0x49, 0xd5, 0xac, 0xb9, 0x6a, 0x92,
0xde, 0xf3, 0x08, 0xda, 0x6a, 0xf8, 0xa2, 0xbe, 0x0a, 0xd8, 0x18, 0xc3, 0xc3, 0xa3, 0xa6, 0xef,
0x53, 0x0b, 0x7d, 0x09, 0x5e, 0x3d, 0x27, 0xff, 0x31, 0x01, 0x6a, 0x4c, 0xac, 0xdd, 0x38, 0x75,
0x4b, 0xf1, 0x22, 0xb4, 0xa7, 0x64, 0x93, 0x67, 0xb0, 0x87, 0xa9, 0x0d, 0x8f, 0xc1, 0xd1, 0x0d,
0x47, 0x83, 0x46, 0xef, 0x8d, 0xb3, 0xdf, 0x40, 0xf8, 0x66, 0xfb, 0xec, 0x1b, 0xf5, 0x5e, 0xa5,
0x0a, 0x24, 0x3c, 0x79, 0xe6, 0x5c, 0x89, 0x73, 0x9e, 0xbc, 0xb4, 0x7e, 0x7c, 0xb8, 0x4e, 0xe4,
0x75, 0xb1, 0x54, 0x15, 0x44, 0x92, 0x6c, 0x98, 0x38, 0x13, 0x5b, 0x21, 0x69, 0x2a, 0xcc, 0x2a,
0x22, 0x3c, 0x89, 0x98, 0x58, 0x76, 0xf4, 0xe9, 0xbf, 0xf8, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x53,
0xad, 0xbd, 0x10, 0x87, 0x08, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -1072,7 +1071,6 @@ const _ = grpc.SupportPackageIsVersion4
type OSClient interface {
Containers(ctx context.Context, in *ContainersRequest, opts ...grpc.CallOption) (*ContainersReply, error)
Dmesg(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*common.DataReply, error)
Kubeconfig(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*common.DataReply, error)
Logs(ctx context.Context, in *LogsRequest, opts ...grpc.CallOption) (OS_LogsClient, error)
Processes(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ProcessesReply, error)
Restart(ctx context.Context, in *RestartRequest, opts ...grpc.CallOption) (*RestartReply, error)
@ -1105,15 +1103,6 @@ func (c *oSClient) Dmesg(ctx context.Context, in *empty.Empty, opts ...grpc.Call
return out, nil
}
func (c *oSClient) Kubeconfig(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*common.DataReply, error) {
out := new(common.DataReply)
err := c.cc.Invoke(ctx, "/os.OS/Kubeconfig", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *oSClient) Logs(ctx context.Context, in *LogsRequest, opts ...grpc.CallOption) (OS_LogsClient, error) {
stream, err := c.cc.NewStream(ctx, &_OS_serviceDesc.Streams[0], "/os.OS/Logs", opts...)
if err != nil {
@ -1177,7 +1166,6 @@ func (c *oSClient) Stats(ctx context.Context, in *StatsRequest, opts ...grpc.Cal
type OSServer interface {
Containers(context.Context, *ContainersRequest) (*ContainersReply, error)
Dmesg(context.Context, *empty.Empty) (*common.DataReply, error)
Kubeconfig(context.Context, *empty.Empty) (*common.DataReply, error)
Logs(*LogsRequest, OS_LogsServer) error
Processes(context.Context, *empty.Empty) (*ProcessesReply, error)
Restart(context.Context, *RestartRequest) (*RestartReply, error)
@ -1224,24 +1212,6 @@ func _OS_Dmesg_Handler(srv interface{}, ctx context.Context, dec func(interface{
return interceptor(ctx, in, info, handler)
}
func _OS_Kubeconfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(empty.Empty)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(OSServer).Kubeconfig(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/os.OS/Kubeconfig",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(OSServer).Kubeconfig(ctx, req.(*empty.Empty))
}
return interceptor(ctx, in, info, handler)
}
func _OS_Logs_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(LogsRequest)
if err := stream.RecvMsg(m); err != nil {
@ -1329,10 +1299,6 @@ var _OS_serviceDesc = grpc.ServiceDesc{
MethodName: "Dmesg",
Handler: _OS_Dmesg_Handler,
},
{
MethodName: "Kubeconfig",
Handler: _OS_Kubeconfig_Handler,
},
{
MethodName: "Processes",
Handler: _OS_Processes_Handler,

View File

@ -16,7 +16,6 @@ import "common/common.proto";
service OS {
rpc Containers(ContainersRequest) returns (ContainersReply);
rpc Dmesg(google.protobuf.Empty) returns (common.DataReply);
rpc Kubeconfig(google.protobuf.Empty) returns (common.DataReply);
rpc Logs(LogsRequest) returns (stream common.Data);
rpc Processes(google.protobuf.Empty) returns (ProcessesReply);
rpc Restart(RestartRequest) returns (RestartReply);

View File

@ -5,8 +5,6 @@
package cmd
import (
"archive/tar"
"compress/gzip"
"fmt"
"io"
"os"
@ -81,59 +79,7 @@ captures ownership and permission bits.`,
}
}
zr, err := gzip.NewReader(r)
if err != nil {
helpers.Fatalf("error initializing gzip: %s", err)
}
tr := tar.NewReader(zr)
for {
hdr, err := tr.Next()
if err != nil {
if err == io.EOF {
break
}
helpers.Fatalf("error reading tar header: %s", err)
}
path := filepath.Clean(filepath.Join(localPath, hdr.Name))
// TODO: do we need to clean up any '..' references?
switch hdr.Typeflag {
case tar.TypeDir:
mode := hdr.FileInfo().Mode()
mode |= 0700 // make rwx for the owner
if err = os.Mkdir(path, mode); err != nil {
helpers.Fatalf("error creating directory %q mode %s: %s", path, mode, err)
}
if err = os.Chmod(path, mode); err != nil {
helpers.Fatalf("error updating mode %s for %q: %s", mode, path, err)
}
case tar.TypeSymlink:
if err = os.Symlink(hdr.Linkname, path); err != nil {
helpers.Fatalf("error creating symlink %q -> %q: %s", path, hdr.Linkname, err)
}
default:
mode := hdr.FileInfo().Mode()
fp, err := os.OpenFile(path, os.O_CREATE|os.O_WRONLY|os.O_EXCL, mode)
if err != nil {
helpers.Fatalf("error creating file %q mode %s: %s", path, mode, err)
}
_, err = io.Copy(fp, tr)
if err != nil {
helpers.Fatalf("error copying data to %q: %s", path, err)
}
if err = fp.Close(); err != nil {
helpers.Fatalf("error closing %q: %s", path, err)
}
if err = os.Chmod(path, mode); err != nil {
helpers.Fatalf("error updating mode %s for %q: %s", mode, path, err)
}
}
}
extractTarGz(localPath, r)
})
},
}

View File

@ -8,9 +8,10 @@ package cmd
import (
"fmt"
"os"
"path/filepath"
"sync"
"github.com/spf13/cobra"
"google.golang.org/grpc/metadata"
"github.com/talos-systems/talos/cmd/osctl/pkg/client"
"github.com/talos-systems/talos/cmd/osctl/pkg/helpers"
@ -18,31 +19,44 @@ import (
// kubeconfigCmd represents the kubeconfig command
var kubeconfigCmd = &cobra.Command{
Use: "kubeconfig",
Use: "kubeconfig [local-path]",
Short: "Download the admin kubeconfig from the node",
Long: ``,
Long: `Download the admin kubeconfig from the node.
Kubeconfig will be written to PWD/kubeconfig or [local-path]/kubeconfig if specified.`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 0 {
if len(args) > 1 {
helpers.Should(cmd.Usage())
os.Exit(1)
}
setupClient(func(c *client.Client) {
md := metadata.New(make(map[string]string))
md.Set("targets", target...)
reply, err := c.Kubeconfig(metadata.NewOutgoingContext(globalCtx, md))
r, errCh, err := c.Kubeconfig(globalCtx)
if err != nil {
helpers.Fatalf("error fetching kubeconfig: %s", err)
helpers.Fatalf("error copying: %s", err)
}
for _, resp := range reply.Response {
if len(reply.Response) > 1 {
fmt.Println(resp.Metadata.Hostname)
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
for err := range errCh {
fmt.Fprintln(os.Stderr, err.Error())
}
}()
_, err = os.Stdout.Write(resp.Bytes.Bytes)
helpers.Should(err)
defer wg.Wait()
localPath, err := os.Getwd()
if err != nil {
helpers.Fatalf("error getting current working directory: %s", err)
}
if len(args) == 1 {
localPath = args[0]
}
extractTarGz(filepath.Clean(localPath), r)
})
},
}

View File

@ -5,11 +5,15 @@
package cmd
import (
"archive/tar"
"compress/gzip"
"context"
"fmt"
"io"
"os"
"os/signal"
"path"
"path/filepath"
"syscall"
"github.com/spf13/cobra"
@ -125,3 +129,67 @@ func setupClient(action func(*client.Client)) {
action(c)
}
// nolint: gocyclo
func extractTarGz(localPath string, r io.Reader) {
zr, err := gzip.NewReader(r)
if err != nil {
helpers.Fatalf("error initializing gzip: %s", err)
}
tr := tar.NewReader(zr)
for {
hdr, err := tr.Next()
if err != nil {
if err == io.EOF {
break
}
helpers.Fatalf("error reading tar header: %s", err)
}
path := filepath.Clean(filepath.Join(localPath, hdr.Name))
// TODO: do we need to clean up any '..' references?
switch hdr.Typeflag {
case tar.TypeDir:
mode := hdr.FileInfo().Mode()
mode |= 0700 // make rwx for the owner
if err = os.Mkdir(path, mode); err != nil {
helpers.Fatalf("error creating directory %q mode %s: %s", path, mode, err)
}
if err = os.Chmod(path, mode); err != nil {
helpers.Fatalf("error updating mode %s for %q: %s", mode, path, err)
}
case tar.TypeSymlink:
if err = os.Symlink(hdr.Linkname, path); err != nil {
helpers.Fatalf("error creating symlink %q -> %q: %s", path, hdr.Linkname, err)
}
default:
mode := hdr.FileInfo().Mode()
fp, err := os.OpenFile(path, os.O_CREATE|os.O_WRONLY|os.O_EXCL, mode)
if err != nil {
helpers.Fatalf("error creating file %q mode %s: %s", path, mode, err)
}
_, err = io.Copy(fp, tr)
if err != nil {
helpers.Fatalf("error copying data to %q: %s", path, err)
}
if err = fp.Close(); err != nil {
helpers.Fatalf("error closing %q: %s", path, err)
}
if err = os.Chmod(path, mode); err != nil {
helpers.Fatalf("error updating mode %s for %q: %s", mode, path, err)
}
}
}
}

View File

@ -146,8 +146,13 @@ func (c *Client) Close() error {
}
// Kubeconfig implements the proto.OSClient interface.
func (c *Client) Kubeconfig(ctx context.Context) (*common.DataReply, error) {
return c.client.Kubeconfig(ctx, &empty.Empty{})
func (c *Client) Kubeconfig(ctx context.Context) (io.Reader, <-chan error, error) {
stream, err := c.MachineClient.Kubeconfig(ctx, &empty.Empty{})
if err != nil {
return nil, nil, err
}
return readStream(stream)
}
// Stats implements the proto.OSClient interface.
@ -254,40 +259,7 @@ func (c *Client) CopyOut(ctx context.Context, rootPath string) (io.Reader, <-cha
return nil, nil, err
}
errCh := make(chan error)
pr, pw := io.Pipe()
go func() {
//nolint: errcheck
defer pw.Close()
defer close(errCh)
for {
data, err := stream.Recv()
if err != nil {
if err == io.EOF || status.Code(err) == codes.Canceled {
return
}
//nolint: errcheck
pw.CloseWithError(err)
return
}
if data.Bytes != nil {
_, err = pw.Write(data.Bytes)
if err != nil {
return
}
}
if data.Errors != "" {
errCh <- errors.New(data.Errors)
}
}
}()
return pr, errCh, nil
return readStream(stream)
}
// Upgrade initiates a Talos upgrade ... and implements the proto.OSClient
@ -333,3 +305,44 @@ func (c *Client) Time(ctx context.Context) (*timeapi.TimeReply, error) {
func (c *Client) TimeCheck(ctx context.Context, server string) (*timeapi.TimeReply, error) {
return c.TimeClient.TimeCheck(ctx, &timeapi.TimeRequest{Server: server})
}
type machineStream interface {
Recv() (*machineapi.StreamingData, error)
grpc.ClientStream
}
func readStream(stream machineStream) (io.Reader, <-chan error, error) {
errCh := make(chan error)
pr, pw := io.Pipe()
go func() {
//nolint: errcheck
defer pw.Close()
defer close(errCh)
for {
data, err := stream.Recv()
if err != nil {
if err == io.EOF || status.Code(err) == codes.Canceled {
return
}
//nolint: errcheck
pw.CloseWithError(err)
return
}
if data.Bytes != nil {
_, err = pw.Write(data.Bytes)
if err != nil {
return
}
}
if data.Errors != "" {
errCh <- errors.New(data.Errors)
}
}
}()
return pr, errCh, nil
}

View File

@ -52,7 +52,7 @@ run "timeout=\$((\$(date +%s) + ${TIMEOUT}))
## Fetch kubeconfig
run "timeout=\$((\$(date +%s) + ${TIMEOUT}))
until osctl kubeconfig > ${KUBECONFIG}; do
until osctl kubeconfig ${TMP}; do
[[ \$(date +%s) -gt \$timeout ]] && exit 1
sleep 2
done"

View File

@ -31,7 +31,7 @@ e2e_run "timeout=\$((\$(date +%s) + ${TIMEOUT}))
## Wait for kubeconfig from capi master-0
e2e_run "timeout=\$((\$(date +%s) + ${TIMEOUT}))
until /bin/osctl kubeconfig > ${KUBECONFIG}; do
until /bin/osctl kubeconfig ${TMPPLATFORM}; do
[[ \$(date +%s) -gt \$timeout ]] && exit 1
sleep 10
done"

View File

@ -19,6 +19,7 @@ import (
"golang.org/x/sys/unix"
"google.golang.org/grpc"
"github.com/talos-systems/talos/api/machine"
machineapi "github.com/talos-systems/talos/api/machine"
"github.com/talos-systems/talos/internal/app/machined/pkg/system"
"github.com/talos-systems/talos/internal/pkg/event"
@ -381,3 +382,10 @@ func (r *Registrator) Mounts(ctx context.Context, in *empty.Empty) (reply *machi
func (r *Registrator) Version(ctx context.Context, in *empty.Empty) (reply *machineapi.VersionReply, err error) {
return version.NewVersion(), nil
}
// Kubeconfig implements the osapi.OSDServer interface.
func (r *Registrator) Kubeconfig(empty *empty.Empty, s machineapi.Machine_KubeconfigServer) error {
in := &machine.CopyOutRequest{RootPath: constants.AdminKubeconfig}
return r.CopyOut(in, s)
}

View File

@ -9,13 +9,11 @@ import (
"errors"
"fmt"
"io"
"io/ioutil"
"log"
"os"
"path/filepath"
"strings"
"syscall"
"time"
criconstants "github.com/containerd/cri/pkg/constants"
"github.com/golang/protobuf/ptypes/empty"
@ -31,7 +29,6 @@ import (
"github.com/talos-systems/talos/pkg/chunker"
filechunker "github.com/talos-systems/talos/pkg/chunker/file"
"github.com/talos-systems/talos/pkg/constants"
"github.com/talos-systems/talos/pkg/retry"
)
// Registrator is the concrete type that implements the factory.Registrator and
@ -43,38 +40,6 @@ func (r *Registrator) Register(s *grpc.Server) {
osapi.RegisterOSServer(s, r)
}
// Kubeconfig implements the osapi.OSDServer interface.
func (r *Registrator) Kubeconfig(ctx context.Context, in *empty.Empty) (data *common.DataReply, err error) {
var fileBytes []byte
err = retry.Constant(5*time.Minute, retry.WithUnits(5*time.Second)).Retry(func() error {
fileBytes, err = ioutil.ReadFile(constants.AdminKubeconfig)
if err != nil {
if os.IsNotExist(err) {
return retry.ExpectedError(err)
}
return retry.UnexpectedError(err)
}
return nil
})
if err != nil {
return
}
data = &common.DataReply{
Response: []*common.DataResponse{
{
Bytes: &common.Data{Bytes: fileBytes},
},
},
}
return data, err
}
// Containers implements the osapi.OSDServer interface.
func (r *Registrator) Containers(ctx context.Context, in *osapi.ContainersRequest) (reply *osapi.ContainersReply, err error) {
inspector, err := getContainerInspector(ctx, in.Namespace, in.Driver)