forked from volcano-sh/volcano
/
vcctl.go
191 lines (152 loc) · 5.88 KB
/
vcctl.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
/*
Copyright 2019 The Volcano Authors.
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 e2e
import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"os"
"strings"
)
var _ = Describe("Test Help option of vcctl cli", func() {
It("Command: vcctl --help", func() {
var output = `
Usage:
vcctl [command]
Available Commands:
help Help about any command
job vcctl command line operation job
queue Queue Operations
version Print the version information
Flags:
-h, --help help for vcctl
--log-flush-frequency duration Maximum number of seconds between log flushes (default 5s)
Use "vcctl [command] --help" for more information about a command.
`
command := []string{"--help"}
cmdOutput := RunCliCommandWithoutKubeConfig(command)
exist := strings.Contains(output, cmdOutput)
Expect(exist).Should(Equal(true))
})
It("Command: vcctl job --help", func() {
var output = `
vcctl command line operation job
Usage:
vcctl job [command]
Available Commands:
delete delete a job
list list job information
resume resume a job
run run job by parameters from the command line
suspend abort a job
view show job information
Flags:
-h, --help help for job
Global Flags:
--log-flush-frequency duration Maximum number of seconds between log flushes (default 5s)
Use "vcctl job [command] --help" for more information about a command.
`
command := []string{"job", "--help"}
cmdOutput := RunCliCommandWithoutKubeConfig(command)
exist := strings.Contains(output, cmdOutput)
Expect(exist).Should(Equal(true))
})
It("Command: vcctl job list --help", func() {
kubeConfig := os.Getenv("KUBECONFIG")
var output = `
list job information
Usage:
vcctl job list [flags]
Flags:
--all-namespaces list jobs in all namespaces
-h, --help help for list
-k, --kubeconfig string (optional) absolute path to the kubeconfig file (default "` + kubeConfig + `")
-s, --master string the address of apiserver
-n, --namespace string the namespace of job (default "default")
-S, --scheduler string list job with specified scheduler name
--selector string fuzzy matching jobName
Global Flags:
--log-flush-frequency duration Maximum number of seconds between log flushes (default 5s)
`
command := []string{"job", "list", "--help"}
cmdOutput := RunCliCommandWithoutKubeConfig(command)
exist := strings.Contains(output, cmdOutput)
Expect(exist).Should(Equal(true))
})
It("Command: vcctl job suspend -n {$JobName} --help", func() {
kubeConfig := os.Getenv("KUBECONFIG")
var output = `
abort a job
Usage:
vcctl job suspend [flags]
Flags:
-h, --help help for suspend
-k, --kubeconfig string (optional) absolute path to the kubeconfig file (default "` + kubeConfig + `")
-s, --master string the address of apiserver
-N, --name string the name of job
-n, --namespace string the namespace of job (default "default")
Global Flags:
--log-flush-frequency duration Maximum number of seconds between log flushes (default 5s)
`
command := []string{"job", "suspend", "-n", "job1", "--help"}
cmdOutput := RunCliCommandWithoutKubeConfig(command)
exist := strings.Contains(output, cmdOutput)
Expect(exist).Should(Equal(true))
})
It("vcctl job resume -n {$JobName} --help", func() {
kubeConfig := os.Getenv("KUBECONFIG")
var output = `
resume a job
Usage:
vcctl job resume [flags]
Flags:
-h, --help help for resume
-k, --kubeconfig string (optional) absolute path to the kubeconfig file (default "` + kubeConfig + `")
-s, --master string the address of apiserver
-N, --name string the name of job
-n, --namespace string the namespace of job (default "default")
Global Flags:
--log-flush-frequency duration Maximum number of seconds between log flushes (default 5s)
`
command := []string{"job", "resume", "-n", "job1", "--help"}
cmdOutput := RunCliCommandWithoutKubeConfig(command)
exist := strings.Contains(output, cmdOutput)
Expect(exist).Should(Equal(true))
})
It("vcctl job run --help", func() {
kubeConfig := os.Getenv("KUBECONFIG")
var output = `
run job by parameters from the command line
Usage:
vcctl job run [flags]
Flags:
-f, --filename string the yaml file of job
-h, --help help for run
-i, --image string the container image of job (default "busybox")
-k, --kubeconfig string (optional) absolute path to the kubeconfig file (default "` + kubeConfig + `")
-L, --limits string the resource limit of the task (default "cpu=1000m,memory=100Mi")
-s, --master string the address of apiserver
-m, --min int the minimal available tasks of job (default 1)
-N, --name string the name of job
-n, --namespace string the namespace of job (default "default")
-r, --replicas int the total tasks of job (default 1)
-R, --requests string the resource request of the task (default "cpu=1000m,memory=100Mi")
-S, --scheduler string the scheduler for this job (default "volcano")
Global Flags:
--log-flush-frequency duration Maximum number of seconds between log flushes (default 5s)
`
command := []string{"job", "run", "--help"}
cmdOutput := RunCliCommandWithoutKubeConfig(command)
exist := strings.Contains(output, cmdOutput)
Expect(exist).Should(Equal(true))
})
})