Merge pull request #915 from umohnani8/kpod_ps

Modified namespace field in json struct
This commit is contained in:
Daniel J Walsh 2017-09-16 05:02:32 -04:00 committed by GitHub
commit 8320d65581
2 changed files with 29 additions and 8 deletions

View file

@ -75,16 +75,16 @@ type psJSONParams struct {
Labels fields.Set `json:"labels"` Labels fields.Set `json:"labels"`
Mounts []specs.Mount `json:"mounts"` Mounts []specs.Mount `json:"mounts"`
ContainerRunning bool `json:"ctrRunning"` ContainerRunning bool `json:"ctrRunning"`
Namespaces namespace `json:"namespace,omitempty"` Namespaces *namespace `json:"namespace,omitempty"`
} }
type namespace struct { type namespace struct {
PID string `json:"ctrPID,omitempty"` PID string `json:"pid,omitempty"`
Cgroup string `json:"cgroup,omitempty"` Cgroup string `json:"cgroup,omitempty"`
IPC string `json:"ipc,omitempty"` IPC string `json:"ipc,omitempty"`
MNT string `json:"mnt,omitempty"` MNT string `json:"mnt,omitempty"`
NET string `json:"net,omitempty"` NET string `json:"net,omitempty"`
PIDNS string `json:"pid,omitempty"` PIDNS string `json:"pidns,omitempty"`
User string `json:"user,omitempty"` User string `json:"user,omitempty"`
UTS string `json:"uts,omitempty"` UTS string `json:"uts,omitempty"`
} }
@ -334,7 +334,7 @@ func getTemplateOutput(containers []*libkpod.ContainerData, opts psOptions) (psO
return return
} }
func getNamespaces(pid int) namespace { func getNamespaces(pid int) *namespace {
ctrPID := strconv.Itoa(pid) ctrPID := strconv.Itoa(pid)
cgroup, _ := getNamespaceInfo(filepath.Join("/proc", ctrPID, "ns", "cgroup")) cgroup, _ := getNamespaceInfo(filepath.Join("/proc", ctrPID, "ns", "cgroup"))
ipc, _ := getNamespaceInfo(filepath.Join("/proc", ctrPID, "ns", "ipc")) ipc, _ := getNamespaceInfo(filepath.Join("/proc", ctrPID, "ns", "ipc"))
@ -344,7 +344,7 @@ func getNamespaces(pid int) namespace {
user, _ := getNamespaceInfo(filepath.Join("/proc", ctrPID, "ns", "user")) user, _ := getNamespaceInfo(filepath.Join("/proc", ctrPID, "ns", "user"))
uts, _ := getNamespaceInfo(filepath.Join("/proc", ctrPID, "ns", "uts")) uts, _ := getNamespaceInfo(filepath.Join("/proc", ctrPID, "ns", "uts"))
return namespace{ return &namespace{
PID: ctrPID, PID: ctrPID,
Cgroup: cgroup, Cgroup: cgroup,
IPC: ipc, IPC: ipc,
@ -366,7 +366,7 @@ func getNamespaceInfo(path string) (string, error) {
// getJSONOutput returns the container info in its raw form // getJSONOutput returns the container info in its raw form
func getJSONOutput(containers []*libkpod.ContainerData, nSpace bool) (psOutput []psJSONParams) { func getJSONOutput(containers []*libkpod.ContainerData, nSpace bool) (psOutput []psJSONParams) {
var ns namespace var ns *namespace
for _, ctr := range containers { for _, ctr := range containers {
if nSpace { if nSpace {
ns = getNamespaces(ctr.State.Pid) ns = getNamespaces(ctr.State.Pid)

View file

@ -203,7 +203,7 @@ KPOD_OPTIONS="--root $ROOT --runroot $RUNROOT ${STORAGE_OPTS}"
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
} }
@test "kpod ps format flag = json" { @test "kpod ps namespace flag and format flag = json" {
start_crio start_crio
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
run crioctl pod run --config "$TESTDATA"/sandbox_config.json run crioctl pod run --config "$TESTDATA"/sandbox_config.json
@ -215,7 +215,7 @@ KPOD_OPTIONS="--root $ROOT --runroot $RUNROOT ${STORAGE_OPTS}"
run crioctl ctr create --config "$TESTDATA"/container_config.json --pod "$pod_id" run crioctl ctr create --config "$TESTDATA"/container_config.json --pod "$pod_id"
echo "$output" echo "$output"
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
run bash -c "${KPOD_BINARY} ${KPOD_OPTIONS} ps -a --ns --format json | python -m json.tool" run bash -c "${KPOD_BINARY} ${KPOD_OPTIONS} ps -a --ns --format json | python -m json.tool | grep namespace"
echo "$output" echo "$output"
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
cleanup_ctrs cleanup_ctrs
@ -224,6 +224,27 @@ KPOD_OPTIONS="--root $ROOT --runroot $RUNROOT ${STORAGE_OPTS}"
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
} }
@test "kpod ps without namespace flag and format flag = json" {
start_crio
[ "$status" -eq 0 ]
run crioctl pod run --config "$TESTDATA"/sandbox_config.json
echo "$output"
[ "$status" -eq 0 ]
pod_id="$output"
run crioctl image pull "$IMAGE"
[ "$status" -eq 0 ]
run crioctl ctr create --config "$TESTDATA"/container_config.json --pod "$pod_id"
echo "$output"
[ "$status" -eq 0 ]
run bash -c "${KPOD_BINARY} ${KPOD_OPTIONS} ps -a --format json | python -m json.tool | grep namespace"
echo "$output"
[ "$status" -eq 1 ]
cleanup_ctrs
cleanup_pods
stop_crio
[ "$status" -eq 0 ]
}
@test "kpod ps format flag = go template" { @test "kpod ps format flag = go template" {
start_crio start_crio
[ "$status" -eq 0 ] [ "$status" -eq 0 ]