Example #1
0
 def take_action(self, parsed_args):
     client = self.app.client_manager.tackerclient
     failure = False
     deleted_ids = []
     failed_items = {}
     resources = getattr(parsed_args, self.resource, [])
     for resource_id in resources:
         try:
             vnf_package = client.show_vnf_package(resource_id)
             client.delete_vnf_package(vnf_package['id'])
             deleted_ids.append(resource_id)
         except Exception as e:
             failure = True
             failed_items[resource_id] = e
     if failure:
         msg = ''
         if deleted_ids:
             msg = (_('Successfully deleted %(resource)s(s):'
                      ' %(deleted_list)s') % {'deleted_list':
                                              ', '.join(deleted_ids),
                                              'resource': self.resource})
         err_msg = _("\n\nUnable to delete the below"
                     " 'vnf_package'(s):")
         for failed_id, error in failed_items.items():
             err_msg += (_('\n Cannot delete %(failed_id)s: %(error)s')
                         % {'failed_id': failed_id,
                            'error': error})
         msg += err_msg
         raise exceptions.CommandError(msg)
     else:
         print((_('All specified %(resource)s(s) deleted successfully')
                % {'resource': self.resource}))
     return
Example #2
0
 def get_parser(self, prog_name):
     LOG.debug('get_parser(%s)', prog_name)
     parser = super(UploadVnfPackage, self).get_parser(prog_name)
     parser.add_argument(
         'vnf_package',
         metavar="<vnf-package>",
         help=_("VNF package ID")
     )
     file_source = parser.add_mutually_exclusive_group(required=True)
     file_source.add_argument(
         "--path",
         metavar="<file>",
         help=_("Upload VNF CSAR package from local file"),
     )
     file_source.add_argument(
         "--url",
         metavar="<Uri>",
         help=_("Uri of the VNF package content"),
     )
     parser.add_argument(
         "--user-name",
         metavar="<user-name>",
         help=_("User name for authentication"),
     )
     parser.add_argument(
         "--password",
         metavar="<password>",
         help=_("Password for authentication"),
     )
     return parser
Example #3
0
 def get_parser(self, prog_name):
     parser = super(CreateNS, self).get_parser(prog_name)
     parser.add_argument('name', metavar='NAME', help=_('Name for NS'))
     parser.add_argument('--tenant-id',
                         metavar='TENANT_ID',
                         help=_('The owner tenant ID'))
     parser.add_argument('--description',
                         help=_('Set description for the NS'))
     nsd_group = parser.add_mutually_exclusive_group(required=True)
     nsd_group.add_argument(
         '--nsd-id', help=_('NSD ID to use as template to create NS'))
     nsd_group.add_argument('--nsd-template',
                            help=_('NSD file to create NS'))
     nsd_group.add_argument(
         '--nsd-name', help=_('NSD name to use as template to create NS'))
     vim_group = parser.add_mutually_exclusive_group()
     vim_group.add_argument(
         '--vim-id',
         help=_('VIM ID to use to create NS on the specified VIM'))
     vim_group.add_argument(
         '--vim-name',
         help=_('VIM name to use to create NS on the specified VIM'))
     parser.add_argument(
         '--vim-region-name',
         help=_('VIM Region to use to create NS on the specified VIM'))
     parser.add_argument('--param-file',
                         help=_('Specify parameter YAML file'))
     return parser
Example #4
0
 def add_known_arguments(self, parser):
     parser.add_argument(
         '--config-file',
         help=_('YAML file with VNF configuration'))
     parser.add_argument(
         '--config',
         help=_('Specify config yaml data'))
Example #5
0
 def take_action(self, parsed_args):
     client = self.app.client_manager.tackerclient
     failure = False
     deleted_ids = []
     failed_items = {}
     for resource_id in parsed_args.ns:
         try:
             obj = tackerV10.find_resourceid_by_name_or_id(
                 client, _NS, resource_id)
             client.delete_ns(obj)
             deleted_ids.append(resource_id)
         except Exception as e:
             failure = True
             failed_items[resource_id] = e
     if failure:
         msg = ''
         if deleted_ids:
             msg = (_('Successfully deleted %(resource)s(s):'
                      ' %(deleted_list)s') % {'deleted_list':
                                              ', '.join(deleted_ids),
                                              'resource': _NS})
         err_msg = _("\n\nUnable to delete the below"
                     " %s(s):") % _NS
         for failed_id, error in failed_items.iteritems():
             err_msg += (_('\n Cannot delete %(failed_id)s: %(error)s')
                         % {'failed_id': failed_id,
                            'error': error})
         msg += err_msg
         raise exceptions.CommandError(msg)
     else:
         print((_('All specified %(resource)s(s) deleted successfully')
                % {'resource': _NS}))
     return
Example #6
0
 def add_known_arguments(self, parser):
     parser.add_argument(
         'name', metavar='NAME',
         help=_('Set a name for the VNF'))
     parser.add_argument(
         '--description',
         help=_('Set description for the VNF'))
     vnfd_group = parser.add_mutually_exclusive_group(required=True)
     vnfd_group.add_argument(
         '--vnfd-id',
         help=_('VNFD ID to use as template to create VNF'))
     vnfd_group.add_argument(
         '--vnfd-name',
         help=_('VNFD Name to use as template to create VNF'))
     vnfd_group.add_argument(
         '--vnfd-template',
         help=_("VNFD file to create VNF"))
     vim_group = parser.add_mutually_exclusive_group()
     vim_group.add_argument(
         '--vim-id',
         help=_('VIM ID to use to create VNF on the specified VIM'))
     vim_group.add_argument(
         '--vim-name',
         help=_('VIM name to use to create VNF on the specified VIM'))
     parser.add_argument(
         '--vim-region-name',
         help=_('VIM Region to use to create VNF on the specified VIM'))
     parser.add_argument(
         '--config-file',
         help=_('YAML file with VNF configuration'))
     parser.add_argument(
         '--param-file',
         help=_('Specify parameter yaml file'))
Example #7
0
 def take_action(self, parsed_args):
     client = self.app.client_manager.tackerclient
     failure = False
     deleted_ids = []
     failed_items = {}
     for resource_id in parsed_args.vnfd:
         try:
             obj = tackerV10.find_resourceid_by_name_or_id(
                 client, _VNFD, resource_id)
             client.delete_vnfd(obj)
             deleted_ids.append(resource_id)
         except Exception as e:
             failure = True
             failed_items[resource_id] = e
     if failure:
         msg = ''
         if deleted_ids:
             msg = (_('Successfully deleted %(resource)s(s):'
                      ' %(deleted_list)s') % {
                          'deleted_list': ', '.join(deleted_ids),
                          'resource': _VNFD
                      })
         err_msg = _("\n\nUnable to delete the below" " %s(s):") % _VNFD
         for failed_id, error in failed_items.iteritems():
             err_msg += (_('\n Cannot delete %(failed_id)s: %(error)s') % {
                 'failed_id': failed_id,
                 'error': error
             })
         msg += err_msg
         raise exceptions.CommandError(msg)
     else:
         print((_('All specified %(resource)s(s) deleted successfully') % {
             'resource': _VNFD
         }))
     return
Example #8
0
 def add_known_arguments(self, parser):
     parser.add_argument(
         '--config-file',
         help=_('YAML file with VNF configuration'))
     parser.add_argument(
         '--config',
         help=_('Specify config yaml data'))
Example #9
0
 def get_parser(self, prog_name):
     parser = super(CreateNS, self).get_parser(prog_name)
     parser.add_argument(
         'name', metavar='NAME',
         help=_('Name for NS'))
     parser.add_argument(
         '--tenant-id', metavar='TENANT_ID',
         help=_('The owner tenant ID'))
     parser.add_argument(
         '--description',
         help=_('Set description for the NS'))
     nsd_group = parser.add_mutually_exclusive_group(required=True)
     nsd_group.add_argument(
         '--nsd-id',
         help=_('NSD ID to use as template to create NS'))
     nsd_group.add_argument(
         '--nsd-template',
         help=_('NSD file to create NS'))
     nsd_group.add_argument(
         '--nsd-name',
         help=_('NSD name to use as template to create NS'))
     vim_group = parser.add_mutually_exclusive_group()
     vim_group.add_argument(
         '--vim-id',
         help=_('VIM ID to use to create NS on the specified VIM'))
     vim_group.add_argument(
         '--vim-name',
         help=_('VIM name to use to create NS on the specified VIM'))
     parser.add_argument(
         '--vim-region-name',
         help=_('VIM Region to use to create NS on the specified VIM'))
     parser.add_argument(
         '--param-file',
         help=_('Specify parameter YAML file'))
     return parser
Example #10
0
 def add_known_arguments(self, parser):
     parser.add_argument('--vnfd-file', help=_('Specify VNFD file'))
     parser.add_argument('name',
                         metavar='NAME',
                         help=_('Set a name for the VNFD'))
     parser.add_argument('--description',
                         help=_('Set a description for the VNFD'))
Example #11
0
 def add_known_arguments(self, parser):
     parser.add_argument(
         'name', metavar='NAME',
         help=_('Set a name for the VNF'))
     parser.add_argument(
         '--description',
         help=_('Set description for the VNF'))
     vnfd_group = parser.add_mutually_exclusive_group(required=True)
     vnfd_group.add_argument(
         '--vnfd-id',
         help=_('VNFD ID to use as template to create VNF'))
     vnfd_group.add_argument(
         '--vnfd-name',
         help=_('VNFD Name to use as template to create VNF'))
     vnfd_group.add_argument(
         '--vnfd-template',
         help=_("VNFD file to create VNF"))
     vim_group = parser.add_mutually_exclusive_group()
     vim_group.add_argument(
         '--vim-id',
         help=_('VIM ID to use to create VNF on the specified VIM'))
     vim_group.add_argument(
         '--vim-name',
         help=_('VIM name to use to create VNF on the specified VIM'))
     parser.add_argument(
         '--vim-region-name',
         help=_('VIM Region to use to create VNF on the specified VIM'))
     parser.add_argument(
         '--config-file',
         help=_('YAML file with VNF configuration'))
     parser.add_argument(
         '--param-file',
         help=_('Specify parameter yaml file'))
Example #12
0
    def retry_request(self,
                      method,
                      action,
                      body=None,
                      headers=None,
                      params=None):
        """Call do_request with the default retry configuration.

        Only idempotent requests should retry failed connection attempts.
        :raises: ConnectionFailed if the maximum # of retries is exceeded
        """
        max_attempts = self.retries + 1
        for i in range(max_attempts):
            try:
                return self.do_request(method,
                                       action,
                                       body=body,
                                       headers=headers,
                                       params=params)
            except exceptions.ConnectionFailed:
                # Exception has already been logged by do_request()
                if i < self.retries:
                    _logger.debug('Retrying connection to Tacker service')
                    time.sleep(self.retry_interval)
                elif self.raise_errors:
                    raise

        if self.retries:
            msg = (_("Failed to connect to Tacker server after %d attempts") %
                   max_attempts)
        else:
            msg = _("Failed to connect Tacker server")

        raise exceptions.ConnectionFailed(reason=msg)
    def retry_request(self, method, action, body=None,
                      headers=None, params=None):
        """Call do_request with the default retry configuration.

        Only idempotent requests should retry failed connection attempts.
        :raises: ConnectionFailed if the maximum # of retries is exceeded
        """
        max_attempts = self.retries + 1
        for i in range(max_attempts):
            try:
                return self.do_request(method, action, body=body,
                                       headers=headers, params=params)
            except exceptions.ConnectionFailed:
                # Exception has already been logged by do_request()
                if i < self.retries:
                    _logger.debug('Retrying connection to Tacker service')
                    time.sleep(self.retry_interval)
                elif self.raise_errors:
                    raise

        if self.retries:
            msg = (_("Failed to connect to Tacker server after %d attempts")
                   % max_attempts)
        else:
            msg = _("Failed to connect Tacker server")

        raise exceptions.ConnectionFailed(reason=msg)
Example #14
0
 def add_known_arguments(self, parser):
     parser.add_argument('--vnfd-file', help=_('Specify VNFD file'))
     parser.add_argument(
         'name', metavar='NAME',
         help=_('Set a name for the VNFD'))
     parser.add_argument(
         '--description',
         help=_('Set a description for the VNFD'))
Example #15
0
 def get_parser(self, prog_name):
     parser = super(ListSFC, self).get_parser(prog_name)
     parser.add_argument('--nfp-id',
                         help=_('List SFC(s) with specific nfp id'))
     parser.add_argument('--tenant-id',
                         metavar='TENANT_ID',
                         help=_('The owner tenant ID or project ID'))
     return parser
Example #16
0
 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 (DEPRECATED)'))
     parser.add_argument('name',
                         metavar='NAME',
                         help=_('Set a name for the VNFD'))
     parser.add_argument('--description',
                         help=_('Set a description for the VNFD'))
Example #17
0
 def add_known_arguments(self, parser):
     vnf_group = parser.add_mutually_exclusive_group(required=True)
     vnf_group.add_argument('--vnf-id', help=_('VNF ID'))
     vnf_group.add_argument('--vnf-name', help=_('VNF name'))
     parser.add_argument('--scaling-policy-name',
                         help=_('VNF policy name used to scale'))
     parser.add_argument(
         '--scaling-type',
         help=_('VNF scaling type, it could be either "out" or "in"'))
Example #18
0
 def get_parser(self, prog_name):
     parser = super(ListSFC, self).get_parser(prog_name)
     parser.add_argument(
         '--nfp-id',
         help=_('List SFC(s) with specific nfp id'))
     parser.add_argument(
         '--tenant-id', metavar='TENANT_ID',
         help=_('The owner tenant ID or project ID'))
     return parser
Example #19
0
 def add_known_arguments(self, parser):
     parser.add_argument(
         '--vnf-mapping',
         help=_('List of logical VNFD name to VNF instance name mapping.  '
                'Example: VNF1:my_vnf1,VNF2:my_vnf2'))
     parser.add_argument(
         '--symmetrical',
         metavar='{True,False}',
         help=_('Should a reverse path be created for the NFP'))
def check_non_negative_int(value):
    try:
        value = int(value)
    except ValueError:
        raise argparse.ArgumentTypeError(_("invalid int value: %r") % value)
    if value < 0:
        raise argparse.ArgumentTypeError(
            _("input value %d is negative") % value)
    return value
Example #21
0
def check_non_negative_int(value):
    try:
        value = int(value)
    except ValueError:
        raise argparse.ArgumentTypeError(_("invalid int value: %r") % value)
    if value < 0:
        raise argparse.ArgumentTypeError(_("input value %d is negative") %
                                         value)
    return value
Example #22
0
 def get_parser(self, prog_name):
     parser = super(ListVNFResources, self).get_parser(prog_name)
     if self.allow_names:
         help_str = _('ID or name of %s to look up')
     else:
         help_str = _('ID of %s to look up')
     parser.add_argument(
         'id', metavar=self.get_id(),
         help=help_str % self.resource)
     return parser
Example #23
0
 def get_parser(self, prog_name):
     parser = super(ListVNFResources, self).get_parser(prog_name)
     if self.allow_names:
         help_str = _('ID or name of %s to look up')
     else:
         help_str = _('ID of %s to look up')
     parser.add_argument(
         'id', metavar=self.get_id(),
         help=help_str % self.resource)
     return parser
Example #24
0
 def add_known_arguments(self, parser):
     parser.add_argument(
         'name', metavar='NAME',
         help=_('Set a name for the NS'))
     parser.add_argument(
         '--description',
         help=_('Set description for the NS'))
     nsd_group = parser.add_mutually_exclusive_group(required=True)
     nsd_group.add_argument(
         '--nsd-id',
         help=_('NSD ID to use as template to create NS'))
     nsd_group.add_argument(
         '--nsd-template',
         help=_('NSD file to create NS'))
     nsd_group.add_argument(
         '--nsd-name',
         help=_('NSD name to use as template to create NS'))
     vim_group = parser.add_mutually_exclusive_group()
     vim_group.add_argument(
         '--vim-id',
         help=_('VIM ID to use to create NS on the specified VIM'))
     vim_group.add_argument(
         '--vim-name',
         help=_('VIM name to use to create NS on the specified VIM'))
     parser.add_argument(
         '--vim-region-name',
         help=_('VIM Region to use to create NS on the specified VIM'))
     parser.add_argument(
         '--param-file',
         help=_('Specify parameter yaml file'))
Example #25
0
 def get_parser(self, prog_name):
     parser = super(CreateVNFFG, self).get_parser(prog_name)
     parser.add_argument(
         'name', metavar='NAME',
         help=_('Set a name for the VNFFG'))
     parser.add_argument(
         '--tenant-id', metavar='TENANT_ID',
         help=_('The owner tenant ID'))
     vnffgd_group = parser.add_mutually_exclusive_group(required=True)
     vnffgd_group.add_argument(
         '--vnffgd-id',
         help=_('VNFFGD ID to use as template to create VNFFG'))
     vnffgd_group.add_argument(
         '--vnffgd-name',
         help=_('VNFFGD Name to use as template to create VNFFG'))
     vnffgd_group.add_argument(
         '--vnffgd-template',
         help=_('VNFFGD file to create VNFFG'))
     parser.add_argument(
         '--vnf-mapping',
         help=_('List of logical VNFD name to VNF instance name mapping. '
                'Example: VNF1:my_vnf1,VNF2:my_vnf2'))
     parser.add_argument(
         '--symmetrical',
         action='store_true',
         default=False,
         help=_('Should a reverse path be created for the NFP '
                '(True or False)'))
     parser.add_argument(
         '--param-file',
         help=_('YAML file with specific VNFFG parameters'))
     parser.add_argument(
         '--description',
         help=_('Set a description for the VNFFG'))
     return parser
Example #26
0
 def get_parser(self, prog_name):
     parser = super(CreateVNFFG, self).get_parser(prog_name)
     parser.add_argument('name',
                         metavar='NAME',
                         help=_('Set a name for the VNFFG'))
     parser.add_argument('--tenant-id',
                         metavar='TENANT_ID',
                         help=_('The owner tenant ID'))
     vnffgd_group = parser.add_mutually_exclusive_group(required=True)
     vnffgd_group.add_argument(
         '--vnffgd-id',
         help=_('VNFFGD ID to use as template to create VNFFG'))
     vnffgd_group.add_argument(
         '--vnffgd-name',
         help=_('VNFFGD Name to use as template to create VNFFG'))
     vnffgd_group.add_argument('--vnffgd-template',
                               help=_('VNFFGD file to create VNFFG'))
     parser.add_argument(
         '--vnf-mapping',
         help=_('List of logical VNFD name to VNF instance name mapping. '
                'Example: VNF1:my_vnf1,VNF2:my_vnf2'))
     parser.add_argument('--symmetrical',
                         action='store_true',
                         default=False,
                         help=_(
                             'Should a reverse path be created for the NFP '
                             '(True or False)'))
     parser.add_argument('--param-file',
                         help=_('YAML file with specific VNFFG parameters'))
     parser.add_argument('--description',
                         help=_('Set a description for the VNFFG'))
     return parser
Example #27
0
 def add_known_arguments(self, parser):
     parser.add_argument('name',
                         metavar='NAME',
                         help=_('Set a name for the NS'))
     parser.add_argument('--description',
                         help=_('Set description for the NS'))
     nsd_group = parser.add_mutually_exclusive_group(required=True)
     nsd_group.add_argument(
         '--nsd-id', help=_('NSD ID to use as template to create NS'))
     nsd_group.add_argument('--nsd-template',
                            help=_('NSD file to create NS'))
     nsd_group.add_argument(
         '--nsd-name', help=_('NSD name to use as template to create NS'))
     vim_group = parser.add_mutually_exclusive_group()
     vim_group.add_argument(
         '--vim-id',
         help=_('VIM ID to use to create NS on the specified VIM'))
     vim_group.add_argument(
         '--vim-name',
         help=_('VIM name to use to create NS on the specified VIM'))
     parser.add_argument(
         '--vim-region-name',
         help=_('VIM Region to use to create NS on the specified VIM'))
     parser.add_argument('--param-file',
                         help=_('Specify parameter yaml file'))
    def build_option_parser(self, description, version):
        """Return an argparse option parser for this application.

        Subclasses may override this method to extend
        the parser with more global options.

        :param description: full description of the application
        :paramtype description: str
        :param version: version number for the application
        :paramtype version: str
        """
        parser = argparse.ArgumentParser(
            description=description,
            add_help=False,
        )
        parser.add_argument(
            '--version',
            action='version',
            version=__version__,
        )
        parser.add_argument(
            '-v',
            '--verbose',
            '--debug',
            action='count',
            dest='verbose_level',
            default=self.DEFAULT_VERBOSE_LEVEL,
            help=_('Increase verbosity of output and show tracebacks on'
                   ' errors. You can repeat this option.'))
        parser.add_argument(
            '-q',
            '--quiet',
            action='store_const',
            dest='verbose_level',
            const=0,
            help=_('Suppress output except warnings and errors.'))
        parser.add_argument(
            '-h',
            '--help',
            action=HelpAction,
            nargs=0,
            default=self,  # tricky
            help=_("Show this help message and exit."))
        parser.add_argument(
            '-r',
            '--retries',
            metavar="NUM",
            type=check_non_negative_int,
            default=0,
            help=_("How many times the request to the Tacker server should "
                   "be retried if it fails."))
        # FIXME(bklei): this method should come from python-keystoneclient
        self._append_global_identity_args(parser)

        return parser
Example #29
0
 def get_parser(self, prog_name):
     parser = super(ScaleVNF, self).get_parser(prog_name)
     parser.add_argument('--scaling-policy-name',
                         help=_('VNF policy name used to scale'))
     parser.add_argument(
         '--scaling-type',
         help=_('VNF scaling type, it could be either "out" or "in"'))
     parser.add_argument(_VNF,
                         metavar="<VNF>",
                         help=_("VNF to scale (name or ID)"))
     return parser
Example #30
0
 def get_parser(self, prog_name):
     parser = super(DeleteNS, self).get_parser(prog_name)
     parser.add_argument(_NS,
                         metavar="<NS>",
                         nargs="+",
                         help=_("NS(s) to delete (name or ID)"))
     parser.add_argument('--force',
                         default=False,
                         action='store_true',
                         help=_('Force delete Network Service'))
     return parser
Example #31
0
 def get_parser(self, prog_name):
     parser = super(UpdateVNF, self).get_parser(prog_name)
     config_group = parser.add_mutually_exclusive_group(required=True)
     config_group.add_argument('--config-file',
                               help=_('YAML file with VNF configuration'))
     config_group.add_argument('--config',
                               help=_('Specify config YAML data'))
     parser.add_argument(_VNF,
                         metavar="<VNF>",
                         help=_("VNF to update (name or ID)"))
     return parser
Example #32
0
 def get_parser(self, prog_name):
     parser = super(CreateVNFD, self).get_parser(prog_name)
     parser.add_argument('name', metavar='NAME', help=_('Name for VNFD'))
     parser.add_argument('--tenant-id',
                         metavar='TENANT_ID',
                         help=_('The owner tenant ID or project ID'))
     parser.add_argument('--vnfd-file',
                         required=True,
                         help=_('YAML file with VNFD parameters'))
     parser.add_argument('--description',
                         help=_('Set a description for the VNFD'))
     return parser
Example #33
0
 def add_known_arguments(self, parser):
     parser.add_argument('--vnffgd-template',
                         help=_('VNFFGD file to update VNFFG'))
     parser.add_argument(
         '--vnf-mapping',
         help=_('List of logical VNFD name to VNF instance name mapping.  '
                'Example: VNF1:my_vnf1,VNF2:my_vnf2'))
     parser.add_argument(
         '--symmetrical',
         action='store_true',
         default=False,
         help=_('Should a reverse path be created for the NFP'))
Example #34
0
 def get_parser(self, prog_name):
     parser = super(ScaleVNF, self).get_parser(prog_name)
     parser.add_argument(
         '--scaling-policy-name',
         help=_('VNF policy name used to scale'))
     parser.add_argument(
         '--scaling-type',
         help=_('VNF scaling type, it could be either "out" or "in"'))
     parser.add_argument(
         _VNF,
         metavar="<VNF>",
         help=_("VNF to scale (name or ID)"))
     return parser
Example #35
0
 def add_known_arguments(self, parser):
     parser.add_argument(
         '--config-file',
         required=False,
         help=_('YAML file with VIM configuration parameters'))
     parser.add_argument('--name', help=_('New name for the VIM'))
     parser.add_argument('--description',
                         help=_('New description for the VIM'))
     parser.add_argument(
         '--is-default',
         type=strutils.bool_from_string,
         metavar='{True,False}',
         help=_('Indicate whether the VIM is used as default'))
Example #36
0
 def get_parser(self, prog_name):
     parser = super(DeleteVNF, self).get_parser(prog_name)
     parser.add_argument(
         _VNF,
         metavar="<VNF>",
         nargs="+",
         help=_("VNF(s) to delete (name or ID)"))
     parser.add_argument(
         '--force',
         default=False,
         action='store_true',
         help=_('Force delete VNF instance'))
     return parser
Example #37
0
 def add_known_arguments(self, parser):
     parser.add_argument(
         '--config-file',
         required=True,
         help=_('YAML file with VIM configuration parameters'))
     parser.add_argument('name',
                         metavar='NAME',
                         help=_('Set a name for the VIM'))
     parser.add_argument('--description',
                         help=_('Set a description for the VIM'))
     parser.add_argument('--is-default',
                         action='store_true',
                         default=False,
                         help=_('Set as default VIM'))
Example #38
0
 def get_parser(self, prog_name):
     parser = super(UpdateVNF, self).get_parser(prog_name)
     config_group = parser.add_mutually_exclusive_group(required=True)
     config_group.add_argument(
         '--config-file',
         help=_('YAML file with VNF configuration'))
     config_group.add_argument(
         '--config',
         help=_('Specify config YAML data'))
     parser.add_argument(
         _VNF,
         metavar="<VNF>",
         help=_("VNF to update (name or ID)"))
     return parser
Example #39
0
 def add_known_arguments(self, parser):
     parser.add_argument(
         '--vnffgd-template',
         help=_('VNFFGD file to update VNFFG')
     )
     parser.add_argument(
         '--vnf-mapping',
         help=_('List of logical VNFD name to VNF instance name mapping.  '
                'Example: VNF1:my_vnf1,VNF2:my_vnf2'))
     parser.add_argument(
         '--symmetrical',
         action='store_true',
         default=False,
         help=_('Should a reverse path be created for the NFP'))
Example #40
0
 def add_known_arguments(self, parser):
     vnf_group = parser.add_mutually_exclusive_group(required=True)
     vnf_group.add_argument(
         '--vnf-id',
         help=_('VNF ID'))
     vnf_group.add_argument(
         '--vnf-name',
         help=_('VNF name'))
     parser.add_argument(
         '--scaling-policy-name',
         help=_('VNF policy name used to scale'))
     parser.add_argument(
         '--scaling-type',
         help=_('VNF scaling type, it could be either "out" or "in"'))
Example #41
0
    def build_option_parser(self, description, version):
        """Return an argparse option parser for this application.

        Subclasses may override this method to extend
        the parser with more global options.

        :param description: full description of the application
        :paramtype description: str
        :param version: version number for the application
        :paramtype version: str
        """
        parser = argparse.ArgumentParser(
            description=description,
            add_help=False, )
        parser.add_argument(
            '--version',
            action='version',
            version=__version__, )
        parser.add_argument(
            '-v', '--verbose', '--debug',
            action='count',
            dest='verbose_level',
            default=self.DEFAULT_VERBOSE_LEVEL,
            help=_('Increase verbosity of output and show tracebacks on'
                   ' errors. You can repeat this option.'))
        parser.add_argument(
            '-q', '--quiet',
            action='store_const',
            dest='verbose_level',
            const=0,
            help=_('Suppress output except warnings and errors.'))
        parser.add_argument(
            '-h', '--help',
            action=HelpAction,
            nargs=0,
            default=self,  # tricky
            help=_("Show this help message and exit."))
        parser.add_argument(
            '-r', '--retries',
            metavar="NUM",
            type=check_non_negative_int,
            default=0,
            help=_("How many times the request to the Tacker server should "
                   "be retried if it fails."))
        # FIXME(bklei): this method should come from python-keystoneclient
        self._append_global_identity_args(parser)

        return parser
Example #42
0
 def _from_xml(self, datastring):
     if datastring is None:
         return None
     plurals = set(self.metadata.get('plurals', {}))
     try:
         node = etree.fromstring(datastring)
         root_tag = self._get_key(node.tag)
         links = self._get_links(root_tag, node)
         result = self._from_xml_node(node, plurals)
         # There is no case where root_tag = constants.VIRTUAL_ROOT_KEY
         # and links is not None because of the way data are serialized
         if root_tag == constants.VIRTUAL_ROOT_KEY:
             return result
         return dict({root_tag: result}, **links)
     except Exception as e:
         parseError = False
         # Python2.7
         if (hasattr(etree, 'ParseError') and
                 isinstance(e, getattr(etree, 'ParseError'))):
             parseError = True
         # Python2.6
         elif isinstance(e, expat.ExpatError):
             parseError = True
         if parseError:
             msg = _("Cannot understand XML")
             raise exception.MalformedResponseBody(reason=msg)
         else:
             raise
Example #43
0
 def get_parser(self, prog_name):
     parser = super(CreateNSD, self).get_parser(prog_name)
     parser.add_argument(
         'name', metavar='NAME',
         help=_('Name for NSD'))
     parser.add_argument(
         '--tenant-id', metavar='TENANT_ID',
         help=_('The owner tenant ID or project ID'))
     parser.add_argument(
         '--nsd-file',
         required=True,
         help=_('YAML file with NSD parameters'))
     parser.add_argument(
         '--description',
         help=_('Set a description for the NSD'))
     return parser
Example #44
0
 def get_parser(self, prog_name):
     parser = super(ListVNFResources, self).get_parser(prog_name)
     parser.add_argument(
         _VNF,
         metavar="<VNF>",
         help=_("VNF to display (name or ID)"))
     return parser
Example #45
0
 def add_known_arguments(self, parser):
     parser.add_argument(
         '--config-file',
         required=True,
         help=_('YAML file with VIM configuration parameters'))
     parser.add_argument(
         'name', metavar='NAME',
         help=_('Set a name for the VIM'))
     parser.add_argument(
         '--description',
         help=_('Set a description for the VIM'))
     parser.add_argument(
         '--is-default',
         action='store_true',
         default=False,
         help=_('Set as default VIM'))
Example #46
0
 def add_known_arguments(self, parser):
     parser.add_argument(
         '--config-file',
         required=False,
         help=_('YAML file with VIM configuration parameters'))
     parser.add_argument(
         '--name',
         help=_('New name for the VIM'))
     parser.add_argument(
         '--description',
         help=_('New description for the VIM'))
     parser.add_argument(
         '--is-default',
         type=strutils.bool_from_string,
         metavar='{True,False}',
         help=_('Indicate whether the VIM is used as default'))
Example #47
0
class CreateVnfPackage(command.ShowOne):
    _description = _("Create a new VNF Package")

    def get_parser(self, prog_name):
        LOG.debug('get_parser(%s)', prog_name)
        parser = super(CreateVnfPackage, self).get_parser(prog_name)
        parser.add_argument(
            '--user-data',
            metavar='<key=value>',
            action=parseractions.KeyValueAction,
            help=_('User defined data for the VNF package '
                   '(repeat option to set multiple user defined data)'),
        )
        return parser

    def args2body(self, parsed_args):
        body = {}
        if parsed_args.user_data:
            body["userDefinedData"] = parsed_args.user_data
        return body

    def take_action(self, parsed_args):
        client = self.app.client_manager.tackerclient
        vnf_package = client.create_vnf_package(self.args2body(parsed_args))
        display_columns, columns = _get_columns(vnf_package)
        data = utils.get_item_properties(
            sdk_utils.DictModel(vnf_package),
            columns, mixed_case_fields=_mixed_case_fields)
        return (display_columns, data)
Example #48
0
 def get_parser(self, prog_name):
     parser = super(DeleteNS, self).get_parser(prog_name)
     parser.add_argument(_NS,
                         metavar="<NS>",
                         nargs="+",
                         help=_("NS(s) to delete (name or ID)"))
     return parser
Example #49
0
 def _from_xml(self, datastring):
     if datastring is None:
         return None
     plurals = set(self.metadata.get("plurals", {}))
     try:
         node = etree.fromstring(datastring)
         root_tag = self._get_key(node.tag)
         links = self._get_links(root_tag, node)
         result = self._from_xml_node(node, plurals)
         # There is no case where root_tag = constants.VIRTUAL_ROOT_KEY
         # and links is not None because of the way data are serialized
         if root_tag == constants.VIRTUAL_ROOT_KEY:
             return result
         return dict({root_tag: result}, **links)
     except Exception as e:
         parseError = False
         # Python2.7
         if hasattr(etree, "ParseError") and isinstance(e, getattr(etree, "ParseError")):
             parseError = True
         # Python2.6
         elif isinstance(e, expat.ExpatError):
             parseError = True
         if parseError:
             msg = _("Cannot understand XML")
             raise exception.MalformedResponseBody(reason=msg)
         else:
             raise
Example #50
0
 def get_parser(self, prog_name):
     parser = super(DeleteVNFD, self).get_parser(prog_name)
     parser.add_argument(_VNFD,
                         metavar="<VNFD>",
                         nargs="+",
                         help=_("VNFD(s) to delete (name or ID)"))
     return parser
Example #51
0
 def get_parser(self, prog_name):
     parser = super(ListVIM, self).get_parser(prog_name)
     parser.add_argument(
         '--long',
         action='store_true',
         help=_("List additional fields in output")
     )
     return parser
Example #52
0
 def get_parser(self, prog_name):
     parser = super(ShowTemplateVNFFGD, self).get_parser(prog_name)
     parser.add_argument(
         _VNFFGD,
         metavar="<VNFFGD>",
         help=_("VNFFGD to display (name or ID)")
     )
     return parser
Example #53
0
 def authenticate(self):
     if self.auth_strategy == 'keystone':
         self._authenticate_keystone()
     elif self.auth_strategy == 'noauth':
         self._authenticate_noauth()
     else:
         err_msg = _('Unknown auth strategy: %s') % self.auth_strategy
         raise exceptions.Unauthorized(message=err_msg)
Example #54
0
 def get_parser(self, prog_name):
     parser = super(ShowVNFFG, self).get_parser(prog_name)
     parser.add_argument(
         _VNFFG,
         metavar="<VNFFG>",
         help=_('VNFFG to display (name or ID)')
     )
     return parser
Example #55
0
 def get_parser(self, prog_name):
     parser = super(ShowNFP, self).get_parser(prog_name)
     parser.add_argument(
         _NFP,
         metavar="<NFP>",
         help=_('NFP to display (name or ID)')
     )
     return parser
Example #56
0
 def get_parser(self, prog_name):
     parser = super(ShowFC, self).get_parser(prog_name)
     parser.add_argument(
         _FC,
         metavar="<Classifier ID>",
         help=_('Flow Classifier to display (name or ID)')
     )
     return parser
Example #57
0
 def get_parser(self, prog_name):
     parser = super(ShowSFC, self).get_parser(prog_name)
     parser.add_argument(
         _SFC,
         metavar="<SFC>",
         help=_('SFC to display (name or ID)')
     )
     return parser
Example #58
0
 def get_parser(self, prog_name):
     parser = super(ShowVIM, self).get_parser(prog_name)
     parser.add_argument(
         _VIM,
         metavar="<VIM>",
         help=_("VIM to display (name or ID)")
     )
     return parser
 def authenticate(self):
     if self.auth_strategy == 'keystone':
         self._authenticate_keystone()
     elif self.auth_strategy == 'noauth':
         self._authenticate_noauth()
     else:
         err_msg = _('Unknown auth strategy: %s') % self.auth_strategy
         raise exceptions.Unauthorized(message=err_msg)
Example #60
0
 def get_parser(self, prog_name):
     parser = super(ShowNS, self).get_parser(prog_name)
     parser.add_argument(
         _NS,
         metavar="<NS>",
         help=_("NS to display (name or ID)")
     )
     return parser