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 oslo_serialization import jsonutils
from tackerclient.common import utils
from tackerclient.i18n import _ from tackerclient.i18n import _
from tackerclient.tacker import v1_0 as tackerV10 from tackerclient.tacker import v1_0 as tackerV10
@@ -43,7 +44,7 @@ class CreateVNFFGD(tackerV10.CreateCommand):
def add_known_arguments(self, parser): def add_known_arguments(self, parser):
group = parser.add_mutually_exclusive_group(required=True) group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('--vnffgd-file', help=_('Specify VNFFGD file')) 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( parser.add_argument(
'name', metavar='NAME', 'name', metavar='NAME',
help=_('Set a name for the VNFFGD')) help=_('Set a name for the VNFFGD'))
@@ -58,6 +59,11 @@ class CreateVNFFGD(tackerV10.CreateCommand):
vnffgd = yaml.safe_load(f.read()) vnffgd = yaml.safe_load(f.read())
body[self.resource]['template'] = {'vnffgd': vnffgd} body[self.resource]['template'] = {'vnffgd': vnffgd}
if parsed_args.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'] = { body[self.resource]['template'] = {
'vnffgd': yaml.safe_load(parsed_args.vnffgd)} 'vnffgd': yaml.safe_load(parsed_args.vnffgd)}
tackerV10.update_dict(parsed_args, body[self.resource], tackerV10.update_dict(parsed_args, body[self.resource],

View File

@@ -75,7 +75,7 @@ class CreateVNF(tackerV10.CreateCommand):
help=_('YAML file with VNF configuration')) help=_('YAML file with VNF configuration'))
parser.add_argument( parser.add_argument(
'--config', '--config',
help=_('Specify config yaml data')) help=_('Specify config yaml data (DEPRECATED)'))
parser.add_argument( parser.add_argument(
'--param-file', '--param-file',
help=_('Specify parameter yaml file')) help=_('Specify parameter yaml file'))
@@ -90,14 +90,16 @@ class CreateVNF(tackerV10.CreateCommand):
config_yaml = f.read() config_yaml = f.read()
config = yaml.load( config = yaml.load(
config_yaml, Loader=yaml.SafeLoader) config_yaml, Loader=yaml.SafeLoader)
if parsed_args.config: 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 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_str = parsed_args.config.decode('unicode_escape')
config = yaml.load(config_str, Loader=yaml.SafeLoader) 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: if config:
args['attributes']['config'] = config args['attributes']['config'] = config
if parsed_args.vim_region_name: if parsed_args.vim_region_name:
@@ -152,11 +154,9 @@ class UpdateVNF(tackerV10.UpdateCommand):
config = yaml.load(config_yaml, Loader=yaml.SafeLoader) config = yaml.load(config_yaml, Loader=yaml.SafeLoader)
if parsed_args.config: if parsed_args.config:
config = 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_str = parsed_args.config.decode('unicode_escape')
config = yaml.load(config_str, Loader=yaml.SafeLoader) 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: if config:
body[self.resource]['attributes'] = {'config': config} body[self.resource]['attributes'] = {'config': config}
tackerV10.update_dict(parsed_args, body[self.resource], ['tenant_id']) 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): def add_known_arguments(self, parser):
group = parser.add_mutually_exclusive_group(required=True) group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('--vnfd-file', help=_('Specify VNFD file')) 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( parser.add_argument(
'name', metavar='NAME', 'name', metavar='NAME',
help=_('Set a name for the VNFD')) help=_('Set a name for the VNFD'))
@@ -66,12 +66,15 @@ class CreateVNFD(tackerV10.CreateCommand):
vnfd = f.read() vnfd = f.read()
vnfd = yaml.load(vnfd, Loader=yaml.SafeLoader) vnfd = yaml.load(vnfd, Loader=yaml.SafeLoader)
if parsed_args.vnfd: if parsed_args.vnfd:
vnfd = parsed_args.vnfd # TODO(sridhar_ram): Only file based input supported starting
if isinstance(vnfd, str): # Ocata, remove all direct inputs in Pike
vnfd = yaml.load(vnfd, Loader=yaml.SafeLoader) utils.deprecate_warning(what="Direct VNFD template input",
utils.deprecate_warning(what='yaml as string', as_of="O",
as_of='N', remove_in=1)
in_favor_of='yaml as dictionary') vnfd = parsed_args.vnfd
if isinstance(vnfd, str) or isinstance(vnfd, unicode):
vnfd = yaml.load(vnfd, Loader=yaml.SafeLoader)
if vnfd: if vnfd:
body[self.resource]['attributes'] = {'vnfd': vnfd} body[self.resource]['attributes'] = {'vnfd': vnfd}