Deprecate direct YAML input in tackerclient

Starting from Ocata tacker payloads will only accept
YAML dict for config and param payload values. Hence
remove the warning when something other than YAML dict
is received by the client. Such a CLI input is no longer
make sense. So, starting Ocata deprecate all direct
YAML input and remove it in Pike.

Change-Id: I03f3ac405e92d7e9fa69fd2b2761c243456fd7e8
Partial-Bug: 1656416
This commit is contained in:
Sridhar Ramaswamy 2017-01-20 22:07:10 +00:00
parent 7cd2f2cc6a
commit 1dedfd7305
3 changed files with 25 additions and 16 deletions

View File

@ -16,6 +16,7 @@ import yaml
from oslo_serialization import jsonutils
from tackerclient.common import utils
from tackerclient.i18n import _
from tackerclient.tacker import v1_0 as tackerV10
@ -43,7 +44,7 @@ class CreateVNFFGD(tackerV10.CreateCommand):
def add_known_arguments(self, parser):
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('--vnffgd-file', help=_('Specify VNFFGD file'))
group.add_argument('--vnffgd', help=_('Specify VNFFGD'))
group.add_argument('--vnffgd', help=_('Specify VNFFGD (DEPRECATED)'))
parser.add_argument(
'name', metavar='NAME',
help=_('Set a name for the VNFFGD'))
@ -58,6 +59,11 @@ class CreateVNFFGD(tackerV10.CreateCommand):
vnffgd = yaml.safe_load(f.read())
body[self.resource]['template'] = {'vnffgd': vnffgd}
if parsed_args.vnffgd:
# TODO(sridhar_ram): Only file based input supported starting
# Ocata, remove all direct inputs in Pike
utils.deprecate_warning(what="Direct VNFFGD template input",
as_of="O",
remove_in=1)
body[self.resource]['template'] = {
'vnffgd': yaml.safe_load(parsed_args.vnffgd)}
tackerV10.update_dict(parsed_args, body[self.resource],

View File

@ -75,7 +75,7 @@ class CreateVNF(tackerV10.CreateCommand):
help=_('YAML file with VNF configuration'))
parser.add_argument(
'--config',
help=_('Specify config yaml data'))
help=_('Specify config yaml data (DEPRECATED)'))
parser.add_argument(
'--param-file',
help=_('Specify parameter yaml file'))
@ -90,14 +90,16 @@ class CreateVNF(tackerV10.CreateCommand):
config_yaml = f.read()
config = yaml.load(
config_yaml, Loader=yaml.SafeLoader)
if parsed_args.config:
# TODO(sridhar_ram): Only file based input supported starting
# Ocata, remove all direct inputs in Pike
utils.deprecate_warning(what="Direct config YAML input", as_of="O",
remove_in=1)
config = parsed_args.config
if isinstance(config, str):
if isinstance(config, str) or isinstance(config, unicode):
config_str = parsed_args.config.decode('unicode_escape')
config = yaml.load(config_str, Loader=yaml.SafeLoader)
utils.deprecate_warning(what='yaml as string', as_of='N',
in_favor_of='yaml as dictionary')
if config:
args['attributes']['config'] = config
if parsed_args.vim_region_name:
@ -152,11 +154,9 @@ class UpdateVNF(tackerV10.UpdateCommand):
config = yaml.load(config_yaml, Loader=yaml.SafeLoader)
if parsed_args.config:
config = parsed_args.config
if isinstance(parsed_args.config, str):
if isinstance(config, str) or isinstance(config, unicode):
config_str = parsed_args.config.decode('unicode_escape')
config = yaml.load(config_str, Loader=yaml.SafeLoader)
utils.deprecate_warning(what='yaml as string', as_of='N',
in_favor_of='yaml as dictionary')
if config:
body[self.resource]['attributes'] = {'config': config}
tackerV10.update_dict(parsed_args, body[self.resource], ['tenant_id'])

View File

@ -50,7 +50,7 @@ class CreateVNFD(tackerV10.CreateCommand):
def add_known_arguments(self, parser):
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('--vnfd-file', help=_('Specify VNFD file'))
group.add_argument('--vnfd', help=_('Specify VNFD'))
group.add_argument('--vnfd', help=_('Specify VNFD (DEPRECATED)'))
parser.add_argument(
'name', metavar='NAME',
help=_('Set a name for the VNFD'))
@ -66,12 +66,15 @@ class CreateVNFD(tackerV10.CreateCommand):
vnfd = f.read()
vnfd = yaml.load(vnfd, Loader=yaml.SafeLoader)
if parsed_args.vnfd:
vnfd = parsed_args.vnfd
if isinstance(vnfd, str):
vnfd = yaml.load(vnfd, Loader=yaml.SafeLoader)
utils.deprecate_warning(what='yaml as string',
as_of='N',
in_favor_of='yaml as dictionary')
# TODO(sridhar_ram): Only file based input supported starting
# Ocata, remove all direct inputs in Pike
utils.deprecate_warning(what="Direct VNFD template input",
as_of="O",
remove_in=1)
vnfd = parsed_args.vnfd
if isinstance(vnfd, str) or isinstance(vnfd, unicode):
vnfd = yaml.load(vnfd, Loader=yaml.SafeLoader)
if vnfd:
body[self.resource]['attributes'] = {'vnfd': vnfd}