mirror of
https://github.com/aljazceru/kata-containers.git
synced 2025-12-23 17:24:18 +01:00
vendor: Move virtcontainers to project's root directory
Lets have a global vendor base on virtcontainers. Signed-off-by: Julio Montes <julio.montes@intel.com> Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com> Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
This commit is contained in:
183
vendor/github.com/clearcontainers/proxy/api/payload.go
generated
vendored
Normal file
183
vendor/github.com/clearcontainers/proxy/api/payload.go
generated
vendored
Normal file
@@ -0,0 +1,183 @@
|
||||
// Copyright (c) 2016,2017 Intel Corporation
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package api
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
)
|
||||
|
||||
// The RegisterVM payload is issued first after connecting to the proxy socket.
|
||||
// It is used to let the proxy know about a new container on the system along
|
||||
// with the paths go hyperstart's command and I/O channels (AF_UNIX sockets).
|
||||
//
|
||||
// Console can be used to indicate the path of a socket linked to the VM
|
||||
// console. The proxy can output this data when asked for verbose output.
|
||||
//
|
||||
// {
|
||||
// "containerId": "756535dc6e9ab9b560f84c8...",
|
||||
// "ctlSerial": "/tmp/sh.hyper.channel.0.sock",
|
||||
// "ioSerial": "/tmp/sh.hyper.channel.1.sock",
|
||||
// "numIOStreams: 1
|
||||
// }
|
||||
type RegisterVM struct {
|
||||
ContainerID string `json:"containerId"`
|
||||
CtlSerial string `json:"ctlSerial"`
|
||||
IoSerial string `json:"ioSerial"`
|
||||
Console string `json:"console,omitempty"`
|
||||
// NumIOStreams asks for a number of I/O tokens. An I/O token
|
||||
// represents the communication between a container process inside
|
||||
// the VM and a shim process outside the VM. This communication
|
||||
// includes I/O streams (stdin, out, err) but also signals, exit
|
||||
// status, ...
|
||||
// The response frame will contain NumIOStreams I/O tokens.
|
||||
NumIOStreams int `json:"numIOStreams,omitempty"`
|
||||
}
|
||||
|
||||
// IOResponse is the response data in RegisterVMResponse and AttachVMResponse
|
||||
// when the client is asking for I/O tokens from the proxy (NumIOStreams > 0).
|
||||
type IOResponse struct {
|
||||
// URL is the URL a shim process should connect to in order to initiate
|
||||
// the I/O communication with the process inside the VM
|
||||
URL string
|
||||
// IOTokens is a array of I/O tokens of length NumIOStreams. See
|
||||
// RegisterVM for some details on I/O tokens.
|
||||
Tokens []string `json:"tokens"`
|
||||
}
|
||||
|
||||
// RegisterVMResponse is the result from a successful RegisterVM.
|
||||
//
|
||||
// {
|
||||
// "io": {
|
||||
// "url": "unix:///run/clearcontainers/proxy.sock",
|
||||
// "tokens": [
|
||||
// "bwgxfmQj9uG3YCsFHrvontwDw41CJJ76Y7qVt4Bi9wc="
|
||||
// ]
|
||||
// }
|
||||
// }
|
||||
type RegisterVMResponse struct {
|
||||
// IO contains the proxy answer when asking for I/O tokens.
|
||||
IO IOResponse `json:"io,omitempty"`
|
||||
}
|
||||
|
||||
// The AttachVM payload can be used to associate clients to an already known
|
||||
// VM. AttachVM cannot be issued if a RegisterVM for this container hasn't been
|
||||
// issued beforehand.
|
||||
//
|
||||
// {
|
||||
// "containerId": "756535dc6e9ab9b560f84c8...".
|
||||
// "numIOStreams: 1
|
||||
// }
|
||||
type AttachVM struct {
|
||||
ContainerID string `json:"containerId"`
|
||||
// NumIOStreams asks for a number of I/O tokens. See RegisterVM for
|
||||
// some details on I/O tokens.
|
||||
NumIOStreams int `json:"numIOStreams,omitempty"`
|
||||
}
|
||||
|
||||
// AttachVMResponse is the result from a successful AttachVM.
|
||||
//
|
||||
// {
|
||||
// "io": {
|
||||
// "url": "unix:///run/clearcontainers/proxy.sock",
|
||||
// "tokens": [
|
||||
// "bwgxfmQj9uG3YCsFHrvontwDw41CJJ76Y7qVt4Bi9wc="
|
||||
// ]
|
||||
// }
|
||||
// }
|
||||
type AttachVMResponse struct {
|
||||
// IO contains the proxy answer when asking for I/O tokens.
|
||||
IO IOResponse `json:"io,omitempty"`
|
||||
}
|
||||
|
||||
// The UnregisterVM payload does the opposite of what RegisterVM does,
|
||||
// indicating to the proxy it should release resources created by RegisterVM
|
||||
// for the container identified by containerId.
|
||||
//
|
||||
// {
|
||||
// "containerId": "756535dc6e9ab9b560f84c8..."
|
||||
// }
|
||||
type UnregisterVM struct {
|
||||
ContainerID string `json:"containerId"`
|
||||
}
|
||||
|
||||
// The Hyper payload will forward an hyperstart command to hyperstart.
|
||||
//
|
||||
// Note: the newcontainer and execmd hyperstart commands start one or more
|
||||
// processes. When sending those commands, tokens acquired through either
|
||||
// RegisterVM or AttachVM need to be sent along in the tokens array. The number
|
||||
// of tokens sent has to match the number of processes to be started.
|
||||
//
|
||||
// {
|
||||
// "hyperName": "newcontainer",
|
||||
// "tokens": [
|
||||
// "bwgxfmQj9uG3YCsFHrvontwDw41CJJ76Y7qVt4Bi9wc="
|
||||
// ],
|
||||
// "data": {
|
||||
// "id": "756535dc6e9ab9b560f84c8...",
|
||||
// "rootfs": "/foo/bar",
|
||||
// ...
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
type Hyper struct {
|
||||
HyperName string `json:"hyperName"`
|
||||
Tokens []string `json:"tokens"`
|
||||
Data json.RawMessage `json:"data,omitempty"`
|
||||
}
|
||||
|
||||
// ConnectShim identifies a shim against the proxy. A shim process is a process
|
||||
// running on host shadowing a container process running inside the VM. A shim
|
||||
// will forward stdin and signals to the process inside the VM and will receive
|
||||
// stdout, stderr and the exit status.
|
||||
type ConnectShim struct {
|
||||
// Token is id corresponding to the process the shim wants to handle
|
||||
// the I/O streams, signals, exit status for. Tokens are allocated with
|
||||
// a call to RegisterVM or AttachVM.
|
||||
Token string `json:"token"`
|
||||
}
|
||||
|
||||
// DisconnectShim unregister a shim from the proxy.
|
||||
type DisconnectShim struct {
|
||||
}
|
||||
|
||||
// Signal is used to send signals to the container process inside the VM. This
|
||||
// payload is only valid after a successful ConnectShim.
|
||||
type Signal struct {
|
||||
SignalNumber int `json:"signalNumber"`
|
||||
// Columns is only valid for SIGWINCH and is the new number of columns of
|
||||
// the terminal.
|
||||
Columns int `json:"columns,omitempty"`
|
||||
// Rows is only valid for SIGWINCH and is the new number of rows of the
|
||||
// terminal.
|
||||
Rows int `json:"rows,omitempty"`
|
||||
}
|
||||
|
||||
// ErrorResponse is the payload send in Responses where the Error flag is set.
|
||||
type ErrorResponse struct {
|
||||
Message string `json:"msg"`
|
||||
}
|
||||
|
||||
// LogEntry is the payload for the StreamLog data.
|
||||
type LogEntry struct {
|
||||
// Source is the source of the log entry. One of "shim" or "runtime".
|
||||
Source string `json:"source"`
|
||||
// ContainerID is the ID of the container the log entry is for (optional).
|
||||
ContainerID string `json:"containerId,omitempty"`
|
||||
// Level is the verbosity level of the log entry. One of "debug", "info", "warn"
|
||||
// or "error".
|
||||
Level string `json:"level"`
|
||||
// Message is the log message
|
||||
Message string `json:"msg"`
|
||||
}
|
||||
Reference in New Issue
Block a user