This repository has been archived by the owner on May 6, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 70
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #10 from dlespiau/20170126-runtime-cli-shell
Runtime CLI shell
- Loading branch information
Showing
255 changed files
with
132,160 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
#!/bin/bash | ||
# This file is part of cc-oci-runtime. | ||
# | ||
# Copyright (C) 2016 Intel Corporation | ||
# | ||
# This program is free software; you can redistribute it and/or | ||
# modify it under the terms of the GNU General Public License | ||
# as published by the Free Software Foundation; either version 2 | ||
# of the License, or (at your option) any later version. | ||
# | ||
# This program is distributed in the hope that it will be useful, | ||
# but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
# GNU General Public License for more details. | ||
# | ||
# You should have received a copy of the GNU General Public License | ||
# along with this program; if not, write to the Free Software | ||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | ||
|
||
set -e | ||
|
||
# Perform static go tests. | ||
|
||
function usage { | ||
echo "Usage $0 [OPTIONS] [PACKAGES]" | ||
echo "Perform static go checks on PACKAGES (./... by default)." | ||
echo | ||
echo "List of options:" | ||
echo " -h, --help print this help" | ||
echo " -n, --no-network do not access the network" | ||
} | ||
|
||
for i in "$@"; do | ||
case $i in | ||
-h|--help) | ||
usage | ||
exit 0 | ||
;; | ||
-n|--no-network) | ||
NONETWORK=1 | ||
shift | ||
;; | ||
*) | ||
args="$args $i" | ||
;; | ||
esac | ||
done | ||
|
||
go_packages=$args | ||
|
||
[ -z "$go_packages" ] && { | ||
go_packages=$(go list ./... | grep -v vendor |\ | ||
sed -e 's#.*/cc-oci-runtime/#./#') | ||
} | ||
|
||
function install_package { | ||
url="$1" | ||
name=${url##*/} | ||
|
||
[ -n "$NONETWORK" ] && return | ||
|
||
echo Updating $name... | ||
go get -u $url | ||
} | ||
|
||
install_package github.com/fzipp/gocyclo | ||
install_package github.com/client9/misspell/cmd/misspell | ||
install_package github.com/golang/lint/golint | ||
install_package github.com/gordonklaus/ineffassign | ||
|
||
echo Doing go static checks on packages: $go_packages | ||
|
||
echo "Running misspell..." | ||
go list -f '{{.Dir}}/*.go' $go_packages |\ | ||
xargs -I % bash -c "misspell -error %" | ||
|
||
echo "Running go vet..." | ||
go vet $go_packages | ||
|
||
echo "Running gofmt..." | ||
go list -f '{{.Dir}}' $go_packages |\ | ||
xargs gofmt -s -l | tee /dev/tty | \ | ||
wc -l | xargs -I % bash -c "test % -eq 0" | ||
|
||
echo "Running cyclo..." | ||
gocyclo -over 15 `go list -f '{{.Dir}}/*.go' $go_packages` | ||
|
||
echo "Running golint..." | ||
for p in $go_packages; do golint -set_exit_status $p; done | ||
|
||
echo "Running ineffassign..." | ||
go list -f '{{.Dir}}' $go_packages | xargs -L 1 ineffassign | ||
|
||
echo "All Good!" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/cc-runtime |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
language: go | ||
go_import_path: github.com/clearcontainers/runtime | ||
go: | ||
- 1.7 | ||
- tip | ||
|
||
script: | ||
- make | ||
- make check |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
SOURCES := $(shell find . 2>&1 | grep -E '.*\.(c|h|go)$$') | ||
VERSION := ${shell cat ./VERSION} | ||
COMMIT_NO := $(shell git rev-parse HEAD 2> /dev/null || true) | ||
COMMIT := $(if $(shell git status --porcelain --untracked-files=no),"${COMMIT_NO}-dirty","${COMMIT_NO}") | ||
|
||
.DEFAULT: cc-runtime | ||
cc-runtime: $(SOURCES) | ||
go build -i -ldflags "-X main.commit=${COMMIT} -X main.version=${VERSION}" -o $@ . | ||
|
||
.PHONY: check check-go-static | ||
check: check-go-static | ||
|
||
check-go-static: | ||
.ci/go-static-checks.sh $(GO_STATIC_CHECKS_ARGS) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,4 @@ | ||
# runtime | ||
[![Build Status](https://travis-ci.org/clearcontainers/runtime.svg?branch=master)](https://travis-ci.org/clearcontainers/runtime) | ||
[![Go Report Card](https://goreportcard.com/badge/github.com/clearcontainers/runtime)](https://goreportcard.com/report/github.com/clearcontainers/runtime) | ||
|
||
# runtime |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
3.0.0-rc1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
// Copyright (c) 2014,2015,2016 Docker, Inc. | ||
// Copyright (c) 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 main | ||
|
||
import ( | ||
"github.com/urfave/cli" | ||
) | ||
|
||
var createCommand = cli.Command{ | ||
Name: "create", | ||
Usage: "Create a container", | ||
ArgsUsage: `<container-id> | ||
<container-id> is your name for the instance of the container that you | ||
are starting. The name you provide for the container instance must be unique | ||
on your host.`, | ||
Description: `The create command creates an instance of a container for a bundle. The | ||
bundle is a directory with a specification file named "` + specConfig + `" and a | ||
root filesystem. | ||
The specification file includes an args parameter. The args parameter is | ||
used to specify command(s) that get run when the container is started. | ||
To change the command(s) that get executed on start, edit the args | ||
parameter of the spec.`, | ||
Flags: []cli.Flag{ | ||
cli.StringFlag{ | ||
Name: "bundle, b", | ||
Value: "", | ||
Usage: `path to the root of the bundle directory, defaults to the current directory`, | ||
}, | ||
cli.StringFlag{ | ||
Name: "console", | ||
Value: "", | ||
Usage: "path to a pseudo terminal", | ||
}, | ||
cli.StringFlag{ | ||
Name: "pid-file", | ||
Value: "", | ||
Usage: "specify the file to write the process id to", | ||
}, | ||
}, | ||
Action: func(context *cli.Context) error { | ||
// TODO | ||
return nil | ||
}, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
// Copyright (c) 2014,2015,2016 Docker, Inc. | ||
// Copyright (c) 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 main | ||
|
||
import ( | ||
"github.com/urfave/cli" | ||
) | ||
|
||
var deleteCommand = cli.Command{ | ||
Name: "delete", | ||
Usage: "Delete any resources held by one or more containers", | ||
ArgsUsage: `<container-id> [container-id...] | ||
<container-id> is the name for the instance of the container. | ||
EXAMPLE: | ||
If the container id is "ubuntu01" and ` + name + ` list currently shows the | ||
status of "ubuntu01" as "stopped" the following will delete resources held | ||
for "ubuntu01" removing "ubuntu01" from the ` + name + ` list of containers: | ||
# ` + name + ` delete ubuntu01`, | ||
Flags: []cli.Flag{ | ||
cli.BoolFlag{ | ||
Name: "force, f", | ||
Usage: "Forcibly deletes the container if it is still running (uses SIGKILL)", | ||
}, | ||
}, | ||
Action: func(context *cli.Context) error { | ||
// TODO | ||
return nil | ||
}, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
// Copyright (c) 2014,2015,2016 Docker, Inc. | ||
// Copyright (c) 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 main | ||
|
||
import ( | ||
"github.com/urfave/cli" | ||
) | ||
|
||
var execCommand = cli.Command{ | ||
Name: "exec", | ||
Usage: "Execute new process inside the container", | ||
ArgsUsage: `<container-id> <command> [command options] || -p process.json <container-id> | ||
<container-id> is the name for the instance of the container and <command> | ||
is the command to be executed in the container. <command> can't be empty | ||
unless a "-p" flag provided. | ||
EXAMPLE: | ||
If the container is configured to run the linux ps command the following | ||
will output a list of processes running in the container: | ||
# runc exec <container-id> ps`, | ||
Flags: []cli.Flag{ | ||
cli.StringFlag{ | ||
Name: "console", | ||
Usage: "path to a pseudo terminal", | ||
}, | ||
cli.StringFlag{ | ||
Name: "cwd", | ||
Usage: "current working directory in the container", | ||
}, | ||
cli.StringSliceFlag{ | ||
Name: "env, e", | ||
Usage: "set environment variables", | ||
}, | ||
cli.BoolFlag{ | ||
Name: "tty, t", | ||
Usage: "allocate a pseudo-TTY", | ||
}, | ||
cli.StringFlag{ | ||
Name: "user, u", | ||
Usage: "UID (format: <uid>[:<gid>])", | ||
}, | ||
cli.StringFlag{ | ||
Name: "process, p", | ||
Usage: "path to the process.json", | ||
}, | ||
cli.BoolFlag{ | ||
Name: "detach,d", | ||
Usage: "detach from the container's process", | ||
}, | ||
cli.StringFlag{ | ||
Name: "pid-file", | ||
Value: "", | ||
Usage: "specify the file to write the process id to", | ||
}, | ||
cli.StringFlag{ | ||
Name: "process-label", | ||
Usage: "set the asm process label for the process commonly used with selinux", | ||
}, | ||
cli.StringFlag{ | ||
Name: "apparmor", | ||
Usage: "set the apparmor profile for the process", | ||
}, | ||
cli.BoolFlag{ | ||
Name: "no-new-privs", | ||
Usage: "set the no new privileges value for the process", | ||
}, | ||
cli.StringSliceFlag{ | ||
Name: "cap, c", | ||
Value: &cli.StringSlice{}, | ||
Usage: "add a capability to the bounding set for the process", | ||
}, | ||
cli.BoolFlag{ | ||
Name: "no-subreaper", | ||
Usage: "disable the use of the subreaper used to reap reparented processes", | ||
Hidden: true, | ||
}, | ||
}, | ||
Action: func(context *cli.Context) error { | ||
// TODO | ||
return nil | ||
}, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
// Copyright (c) 2014,2015,2016 Docker, Inc. | ||
// Copyright (c) 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 main | ||
|
||
import ( | ||
"github.com/urfave/cli" | ||
) | ||
|
||
var killCommand = cli.Command{ | ||
Name: "kill", | ||
Usage: "Kill sends signals to the container's init process", | ||
ArgsUsage: `<container-id> [signal] | ||
<container-id> is the name for the instance of the container | ||
[signal] is the signal to be sent to the init process (default: SIGTERM) | ||
EXAMPLE: | ||
If the container id is "ubuntu01" the following will send a "KILL" signal | ||
to the init process of the "ubuntu01" container: | ||
# runc kill ubuntu01 KILL`, | ||
Flags: []cli.Flag{ | ||
cli.BoolFlag{ | ||
Name: "all, a", | ||
Usage: "send the specified signal to all processes inside the container", | ||
}, | ||
}, | ||
Action: func(context *cli.Context) error { | ||
// TODO | ||
return nil | ||
}, | ||
} |
Oops, something went wrong.