예제 #1
0
    def args2body(self, parsed_args):
        args = {}
        body = {self.resource: args}

        tacker_client = self.get_client()
        tacker_client.format = parsed_args.request_format

        if parsed_args.vnf_mapping:
            _vnf_mapping = dict()
            _vnf_mappings = parsed_args.vnf_mapping.split(",")
            for mapping in _vnf_mappings:
                vnfd_name, vnf = mapping.split(":", 1)
                _vnf_mapping[vnfd_name] = \
                    tackerV10.find_resourceid_by_name_or_id(
                        tacker_client, 'vnf', vnf)

            parsed_args.vnf_mapping = _vnf_mapping

        if parsed_args.vnffgd_template:
            with open(parsed_args.vnffgd_template) as f:
                template = f.read()
            try:
                args['vnffgd_template'] = yaml.load(template,
                                                    Loader=yaml.SafeLoader)
            except yaml.YAMLError as e:
                raise exceptions.InvalidInput(e)
            if not args['vnffgd_template']:
                raise exceptions.InvalidInput('The vnffgd template is empty')

        tackerV10.update_dict(parsed_args, body[self.resource],
                              ['tenant_id', 'vnf_mapping', 'symmetrical'])
        return body
예제 #2
0
    def args2body(self, parsed_args):
        args = {'attributes': {}}
        body = {self.resource: args}
        # config arg passed as data overrides config yaml when both args passed
        config = None
        if parsed_args.config_file:
            with open(parsed_args.config_file) as f:
                config_yaml = f.read()
            try:
                config = yaml.load(
                    config_yaml, Loader=yaml.SafeLoader)
            except yaml.YAMLError as e:
                raise exceptions.InvalidInput(e)

        if config:
            args['attributes']['config'] = config
        if parsed_args.vim_region_name:
            args.setdefault('placement_attr', {})['region_name'] = \
                parsed_args.vim_region_name

        tacker_client = self.get_client()
        tacker_client.format = parsed_args.request_format
        if parsed_args.vim_name:
                _id = tackerV10.find_resourceid_by_name_or_id(tacker_client,
                                                              'vim',
                                                              parsed_args.
                                                              vim_name)
                parsed_args.vim_id = _id
        if parsed_args.vnfd_name:
                _id = tackerV10.find_resourceid_by_name_or_id(tacker_client,
                                                              'vnfd',
                                                              parsed_args.
                                                              vnfd_name)
                parsed_args.vnfd_id = _id
        elif parsed_args.vnfd_template:
            with open(parsed_args.vnfd_template) as f:
                template = f.read()
            try:
                args['vnfd_template'] = yaml.load(
                    template, Loader=yaml.SafeLoader)
            except yaml.YAMLError as e:
                raise exceptions.InvalidInput(e)

        if parsed_args.param_file:
            with open(parsed_args.param_file) as f:
                param_yaml = f.read()
            try:
                args['attributes']['param_values'] = yaml.load(
                    param_yaml, Loader=yaml.SafeLoader)
            except yaml.YAMLError as e:
                raise exceptions.InvalidInput(e)
        tackerV10.update_dict(parsed_args, body[self.resource],
                              ['tenant_id', 'name', 'description',
                               'vnfd_id', 'vim_id'])
        return body
예제 #3
0
    def args2body(self, parsed_args):
        body = {_VNF: {}}
        body[_VNF]['attributes'] = {}

        config = None
        if parsed_args.config_file:
            with open(parsed_args.config_file) as f:
                config_yaml = f.read()
            try:
                config = yaml.load(config_yaml, Loader=yaml.SafeLoader)
            except yaml.YAMLError as e:
                raise exceptions.InvalidInput(e)
        if config:
            body[_VNF]['attributes'] = {'config': config}

        if parsed_args.vim_region_name:
            body[_VNF].setdefault('placement_attr', {})['region_name'] = \
                parsed_args.vim_region_name

        client = self.app.client_manager.tackerclient
        if parsed_args.vim_name:
            _id = tackerV10.find_resourceid_by_name_or_id(
                client, 'vim', parsed_args.vim_name)
            parsed_args.vim_id = _id
        if parsed_args.vnfd_name:
            _id = tackerV10.find_resourceid_by_name_or_id(
                client, 'vnfd', parsed_args.vnfd_name)
            parsed_args.vnfd_id = _id
        elif parsed_args.vnfd_template:
            with open(parsed_args.vnfd_template) as f:
                template = f.read()
                try:
                    template = yaml.load(template, Loader=yaml.SafeLoader)
                except yaml.YAMLError as e:
                    raise exceptions.InvalidInput(e)
                if not template:
                    raise exceptions.InvalidInput('The vnfd file is empty')
                body[_VNF]['vnfd_template'] = template

        if parsed_args.param_file:
            with open(parsed_args.param_file) as f:
                param_yaml = f.read()
            try:
                param_yaml = yaml.load(param_yaml, Loader=yaml.SafeLoader)
            except yaml.YAMLError as e:
                raise exceptions.InvalidInput(e)
            if not param_yaml:
                raise exceptions.InvalidInput('The parameter file is empty')
            body[_VNF]['attributes'] = {'param_values': param_yaml}
        tackerV10.update_dict(
            parsed_args, body[_VNF],
            ['tenant_id', 'name', 'description', 'vnfd_id', 'vim_id'])
        return body
예제 #4
0
    def args2body(self, parsed_args):
        args = {'attributes': {}}
        body = {self.resource: args}
        if parsed_args.vim_region_name:
            args.setdefault('placement_attr', {})['region_name'] = \
                parsed_args.vim_region_name

        tacker_client = self.get_client()
        tacker_client.format = parsed_args.request_format
        if parsed_args.vim_name:
                _id = tackerV10.find_resourceid_by_name_or_id(tacker_client,
                                                              'vim',
                                                              parsed_args.
                                                              vim_name)
                parsed_args.vim_id = _id
        if parsed_args.nsd_name:
                _id = tackerV10.find_resourceid_by_name_or_id(tacker_client,
                                                              'nsd',
                                                              parsed_args.
                                                              nsd_name)
                parsed_args.nsd_id = _id
        if parsed_args.param_file:
            with open(parsed_args.param_file) as f:
                param_yaml = f.read()
            try:
                args['attributes']['param_values'] = yaml.load(
                    param_yaml, Loader=yaml.SafeLoader)
            except yaml.YAMLError as e:
                raise exceptions.InvalidInput(e)
        tackerV10.update_dict(parsed_args, body[self.resource],
                              ['tenant_id', 'name', 'description',
                               'nsd_id', 'vim_id'])
        return body
예제 #5
0
 def args2body(self, parsed_args):
     body = {_VNFD: {}}
     vnfd = None
     if not parsed_args.vnfd_file:
         raise exceptions.InvalidInput("Invalid input for vnfd file")
     with open(parsed_args.vnfd_file) as f:
         vnfd = f.read()
         try:
             vnfd = yaml.load(vnfd, Loader=yaml.SafeLoader)
         except yaml.YAMLError as e:
             raise exceptions.InvalidInput(e)
         if not vnfd:
             raise exceptions.InvalidInput("vnfd file is empty")
         body[_VNFD]['attributes'] = {'vnfd': vnfd}
     tackerV10.update_dict(parsed_args, body[_VNFD],
                           ['tenant_id', 'name', 'description'])
     return body
예제 #6
0
 def args2body(self, parsed_args):
     body = {_NSD: {}}
     nsd = None
     if not parsed_args.nsd_file:
         raise exceptions.InvalidInput("Invalid input for nsd file")
     with open(parsed_args.nsd_file) as f:
         nsd = f.read()
         try:
             nsd = yaml.load(nsd, Loader=yaml.SafeLoader)
         except yaml.YAMLError as e:
             raise exceptions.InvalidInput(e)
         if not nsd:
             raise exceptions.InvalidInput("nsd file is empty")
         body[_NSD]['attributes'] = {'nsd': nsd}
     tackerV10.update_dict(parsed_args, body[_NSD],
                           ['tenant_id', 'name', 'description'])
     return body
예제 #7
0
    def args2body(self, parsed_args):
        body = {_VNFFG: {}}
        body[_VNFFG]['attributes'] = {}

        client = self.app.client_manager.tackerclient
        if parsed_args.vnf_mapping:
            _vnf_mapping = dict()
            _vnf_mappings = parsed_args.vnf_mapping.split(",")
            for mapping in _vnf_mappings:
                vnfd_name, vnf = mapping.split(":", 1)
                _vnf_mapping[vnfd_name] = \
                    tackerV10.find_resourceid_by_name_or_id(
                        client, 'vnf', vnf)
            parsed_args.vnf_mapping = _vnf_mapping

        if parsed_args.vnffgd_name:
            _id = tackerV10.find_resourceid_by_name_or_id(
                client, 'vnffgd', parsed_args.vnffgd_name)
            parsed_args.vnffgd_id = _id
        elif parsed_args.vnffgd_template:
            with open(parsed_args.vnffgd_template) as f:
                template = f.read()
                try:
                    template = yaml.load(template, Loader=yaml.SafeLoader)
                except yaml.YAMLError as e:
                    raise exceptions.InvalidInput(e)
                if not template:
                    raise exceptions.InvalidInput('The vnffgd file is empty')
                body[_VNFFG]['vnffgd_template'] = template

        if parsed_args.param_file:
            with open(parsed_args.param_file) as f:
                param_yaml = f.read()
            try:
                param_yaml = yaml.load(param_yaml, Loader=yaml.SafeLoader)
            except yaml.YAMLError as e:
                raise exceptions.InvalidInput(e)
            if not param_yaml:
                raise exceptions.InvalidInput('The parameter file is empty')
            body[_VNFFG]['attributes'] = {'param_values': param_yaml}
        tackerV10.update_dict(parsed_args, body[_VNFFG], [
            'tenant_id', 'name', 'vnffgd_id', 'symmetrical', 'vnf_mapping',
            'description'
        ])
        return body
예제 #8
0
 def args2body(self, parsed_args):
     body = {self.resource: {}}
     # config arg passed as data overrides config yaml when both args passed
     config = None
     if parsed_args.config_file:
         with open(parsed_args.config_file) as f:
             config_yaml = f.read()
         try:
             config = yaml.load(config_yaml, Loader=yaml.SafeLoader)
         except yaml.YAMLError as e:
             raise exceptions.InvalidInput(e)
     if parsed_args.config:
         config = parsed_args.config
         if isinstance(config, str) or isinstance(config, unicode):
             config_str = parsed_args.config.decode('unicode_escape')
             try:
                 config = yaml.load(config_str, Loader=yaml.SafeLoader)
             except yaml.YAMLError as e:
                 raise exceptions.InvalidInput(e)
     if config:
         body[self.resource]['attributes'] = {'config': config}
     tackerV10.update_dict(parsed_args, body[self.resource], ['tenant_id'])
     return body
예제 #9
0
    def args2body(self, parsed_args):
        body = {_VNF: {}}
        body[_VNF]['attributes'] = {}

        config = None
        if parsed_args.config_file:
            with open(parsed_args.config_file) as f:
                config_yaml = f.read()
            try:
                config = yaml.load(config_yaml, Loader=yaml.SafeLoader)
            except yaml.YAMLError as e:
                raise exceptions.InvalidInput(e)
        if parsed_args.config:
            config = parsed_args.config
            if isinstance(config, str) or isinstance(config, unicode):
                config_str = parsed_args.config.decode('unicode_escape')
                try:
                    config = yaml.load(config_str, Loader=yaml.SafeLoader)
                except yaml.YAMLError as e:
                    raise exceptions.InvalidInput(e)
        if config:
            body[_VNF]['attributes'] = {'config': config}
        tackerV10.update_dict(parsed_args, body[_VNF])
        return body
예제 #10
0
 def args2body(self, parsed_args):
     body = {self.resource: {}}
     config_param = None
     # config arg passed as data overrides config yaml when both args passed
     if parsed_args.config_file:
         with open(parsed_args.config_file) as f:
             config_yaml = f.read()
         try:
             config_param = yaml.load(config_yaml)
         except yaml.YAMLError as e:
             raise exceptions.InvalidInput(e)
     vim_obj = body[self.resource]
     if config_param is not None:
         vim_utils.args2body_vim(config_param, vim_obj)
     tackerV10.update_dict(
         parsed_args, body[self.resource],
         ['tenant_id', 'name', 'description', 'is_default'])
     return body
예제 #11
0
 def args2body(self, parsed_args):
     body = {_VIM: {}}
     config_param = None
     # config arg passed as data overrides config yaml when both args passed
     if parsed_args.config_file:
         with open(parsed_args.config_file) as f:
             config_yaml = f.read()
         try:
             config_param = yaml.load(config_yaml)
         except yaml.YAMLError as e:
             raise exceptions.InvalidInput(e)
     vim_obj = body[_VIM]
     if config_param is not None:
         vim_utils.args2body_vim(config_param, vim_obj)
     tackerV10.update_dict(
         parsed_args, body[_VIM],
         ['tenant_id', 'name', 'description', 'is_default'])
     # type attribute is read-only, it can't be updated, so remove it
     # in update method
     body[_VIM].pop('type', None)
     return body
예제 #12
0
 def args2body(self, parsed_args):
     body = {self.resource: {}}
     if parsed_args.config_file:
         with open(parsed_args.config_file) as f:
             vim_config = f.read()
             try:
                 config_param = yaml.load(vim_config,
                                          Loader=yaml.SafeLoader)
             except yaml.YAMLError as e:
                 raise exceptions.InvalidInput(e)
     vim_obj = body[self.resource]
     try:
         auth_url = config_param.pop('auth_url')
     except KeyError:
         raise exceptions.TackerClientException(message='Auth URL must be '
                                                'specified',
                                                status_code=404)
     vim_obj['auth_url'] = vim_utils.validate_auth_url(auth_url).geturl()
     vim_utils.args2body_vim(config_param, vim_obj)
     tackerV10.update_dict(
         parsed_args, body[self.resource],
         ['tenant_id', 'name', 'description', 'is_default'])
     return body
예제 #13
0
    def args2body(self, parsed_args):
        args = {'attributes': {}}
        body = {self.resource: args}

        tacker_client = self.get_client()
        tacker_client.format = parsed_args.request_format

        if parsed_args.vnf_mapping:
            _vnf_mapping = dict()
            _vnf_mappings = parsed_args.vnf_mapping.split(",")
            for mapping in _vnf_mappings:
                vnfd_name, vnf = mapping.split(":", 1)
                _vnf_mapping[vnfd_name] = \
                    tackerV10.find_resourceid_by_name_or_id(
                        tacker_client, 'vnf', vnf)

            parsed_args.vnf_mapping = _vnf_mapping

        if parsed_args.vnffgd_name:
            _id = tackerV10.find_resourceid_by_name_or_id(
                tacker_client, 'vnffgd', parsed_args.vnffgd_name)
            parsed_args.vnffgd_id = _id

        if parsed_args.param_file:
            with open(parsed_args.param_file) as f:
                param_yaml = f.read()
            try:
                args['attributes']['param_values'] = yaml.load(
                    param_yaml, Loader=yaml.SafeLoader)
            except yaml.YAMLError as e:
                raise exceptions.InvalidInput(e)

        tackerV10.update_dict(
            parsed_args, body[self.resource],
            ['tenant_id', 'name', 'vnffgd_id', 'symmetrical', 'vnf_mapping'])
        return body