climc: add name filter to k8s list resource

This commit is contained in:
Zexi Li
2018-09-14 13:17:48 +08:00
parent 3f8604e549
commit a70fee7530
2 changed files with 12 additions and 22 deletions
+6 -2
View File
@@ -15,8 +15,9 @@ func (o ClusterBaseOptions) Params() *jsonutils.JSONDict {
}
type BaseListOptions struct {
Limit int `default:"20" help:"Page limit"`
Offset int `default:"0" help:"page offset"`
Limit int `default:"20" help:"Page limit"`
Offset int `default:"0" help:"Page offset"`
Name string `help:"Search by name"`
}
func (o BaseListOptions) Params() *jsonutils.JSONDict {
@@ -27,6 +28,9 @@ func (o BaseListOptions) Params() *jsonutils.JSONDict {
if o.Offset > 0 {
params.Add(jsonutils.NewInt(int64(o.Offset)), "offset")
}
if o.Name != "" {
params.Add(jsonutils.NewString(o.Name), "name")
}
return params
}
+6 -20
View File
@@ -17,7 +17,7 @@ type DeploymentCreateOptions struct {
Image string `help:"The image for the container to run"`
Replicas int64 `help:"Number of replicas for pods in this deployment"`
RunAsPrivileged bool `help:"Whether to run the container as privileged user"`
Labels string `help:"Comma separated labels to apply to the pod(s), e.g. --labels='app=hazelcast,env=prod'"`
Label []string `help:"Labels to apply to the pod(s), e.g. 'env=prod'"`
Env []string `help:"Environment variables to set in container"`
Port []string `help:"Port for the service that is created, format is <protocol>:<service_port>:<container_port> e.g. tcp:80:3000"`
Net string `help:"Network config, e.g. net1, net1:10.168.222.171"`
@@ -62,13 +62,15 @@ func (o DeploymentCreateOptions) Params() (*jsonutils.JSONDict, error) {
}
params.Add(net, "networkConfig")
}
if o.Labels != "" {
labels, err := parseLabels(o.Labels)
labels := jsonutils.NewArray()
for _, label := range o.Label {
label, err := parseLabel(label)
if err != nil {
return nil, err
}
params.Add(labels, "labels")
labels.Add(label)
}
params.Add(labels, "labels")
return params, nil
}
@@ -153,22 +155,6 @@ func (o DeploymentCreateFromFileOptions) Params() (*jsonutils.JSONDict, error) {
return params, nil
}
func parseLabels(labelStr string) (*jsonutils.JSONArray, error) {
labelsStrs := strings.Split(labelStr, ",")
ret := jsonutils.NewArray()
if len(labelsStrs) == 0 {
return ret, nil
}
for _, str := range labelsStrs {
label, err := parseLabel(str)
if err != nil {
return nil, err
}
ret.Add(label)
}
return ret, nil
}
func parseLabel(str string) (jsonutils.JSONObject, error) {
parts := strings.Split(str, "=")
if len(parts) != 2 {