Allow to specify dict and list properties in cli
Change-Id: I9da3c3b0f9f34429ec40d891f76acee863c4ec79
This commit is contained in:
@@ -15,13 +15,13 @@
|
||||
import logging
|
||||
|
||||
from osc_lib.command import command
|
||||
from oslo_utils import strutils
|
||||
from pprint import pformat
|
||||
import six
|
||||
|
||||
from glareclient.common import utils as glare_utils
|
||||
from glareclient.osc.v1 import TypeMapperAction
|
||||
|
||||
from pprint import pformat
|
||||
import six
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -185,7 +185,21 @@ class CreateArtifact(command.Lister):
|
||||
metavar='<key=value>',
|
||||
action='append',
|
||||
default=[],
|
||||
help='Artifact property.'
|
||||
help='Simple artifact property.'
|
||||
)
|
||||
parser.add_argument(
|
||||
'--list', '-l',
|
||||
metavar='<key=value>',
|
||||
action='append',
|
||||
default=[],
|
||||
help='Artifact list property.'
|
||||
)
|
||||
parser.add_argument(
|
||||
'--dict', '-d',
|
||||
metavar='<key=value>',
|
||||
action='append',
|
||||
default=[],
|
||||
help='Artifact dict property.'
|
||||
)
|
||||
return parser
|
||||
|
||||
@@ -197,6 +211,19 @@ class CreateArtifact(command.Lister):
|
||||
key, value = datum.split('=', 1)
|
||||
prop[key] = value
|
||||
|
||||
for datum in parsed_args.list:
|
||||
key, value = datum.split('=', 1)
|
||||
value = strutils.split_by_commas(value)
|
||||
prop[key] = value
|
||||
|
||||
for datum in parsed_args.dict:
|
||||
key, value = datum.split('=', 1)
|
||||
value = strutils.split_by_commas(value)
|
||||
prop[key] = {}
|
||||
for elem in value:
|
||||
k, v = elem.split(':', 1)
|
||||
prop[key][k] = v
|
||||
|
||||
client = self.app.client_manager.artifact
|
||||
data = client.artifacts.create(parsed_args.name,
|
||||
type_name=parsed_args.type_name,
|
||||
@@ -244,7 +271,21 @@ class UpdateArtifact(command.Lister):
|
||||
metavar='<key=value>',
|
||||
action='append',
|
||||
default=[],
|
||||
help='Update property values.'
|
||||
help='Simple artifact property.'
|
||||
)
|
||||
parser.add_argument(
|
||||
'--list', '-l',
|
||||
metavar='<key=value>',
|
||||
action='append',
|
||||
default=[],
|
||||
help='Artifact list property.'
|
||||
)
|
||||
parser.add_argument(
|
||||
'--dict', '-d',
|
||||
metavar='<key=value>',
|
||||
action='append',
|
||||
default=[],
|
||||
help='Artifact dict property.'
|
||||
)
|
||||
return parser
|
||||
|
||||
@@ -256,6 +297,19 @@ class UpdateArtifact(command.Lister):
|
||||
key, value = datum.split('=', 1)
|
||||
prop[key] = value
|
||||
|
||||
for datum in parsed_args.list:
|
||||
key, value = datum.split('=', 1)
|
||||
value = strutils.split_by_commas(value)
|
||||
prop[key] = value
|
||||
|
||||
for datum in parsed_args.dict:
|
||||
key, value = datum.split('=', 1)
|
||||
value = strutils.split_by_commas(value)
|
||||
prop[key] = {}
|
||||
for elem in value:
|
||||
k, v = elem.split(':', 1)
|
||||
prop[key][k] = v
|
||||
|
||||
client = self.app.client_manager.artifact
|
||||
af_id = get_artifact_id(client, parsed_args)
|
||||
data = client.artifacts.update(
|
||||
|
||||
Reference in New Issue
Block a user