Ejemplo n.º 1
0
 def parse(self):
     """Option logic specific to create action.
     """
     (options, leftovers) = super(host_create, self).parse()
     self.locked = options.lock
     if 'serials' in self.attributes:
         if len(self.hosts) > 1:
             raise topic_common.CliError('Can not specify serials with '
                                         'multiple hosts.')
Ejemplo n.º 2
0
    def parse(self):
        """Consume the options common to host create and host mod.
        """
        label_info = topic_common.item_parse_info(attribute_name='labels',
                                                  inline_option='labels',
                                                  filename_option='blist')
        acl_info = topic_common.item_parse_info(attribute_name='acls',
                                                inline_option='acls',
                                                filename_option='alist')

        (options, leftover) = super(BaseHostModCreate,
                                    self).parse([label_info, acl_info],
                                                req_items='hosts')

        self._parse_lock_options(options)

        if options.protection:
            self.data['protection'] = options.protection
            self.messages.append('Protection set to "%s"' % options.protection)

        self.attributes = {}
        if options.attribute:
            for pair in options.attribute:
                m = re.match(self.attribute_regex, pair)
                if not m:
                    raise topic_common.CliError(
                        'Attribute must be in key=value '
                        'syntax.')
                elif m.group('attribute') in self.attributes:
                    raise topic_common.CliError(
                        'Multiple values provided for attribute '
                        '%s.' % m.group('attribute'))
                self.attributes[m.group('attribute')] = m.group('value')

        self.platform = options.platform
        return (options, leftover)
Ejemplo n.º 3
0
    def parse(self):
        label_info = topic_common.item_parse_info(attribute_name='labels',
                                                  inline_option='labels',
                                                  filename_option='blist')
        acl_info = topic_common.item_parse_info(attribute_name='acls',
                                                inline_option='acls',
                                                filename_option='alist')

        (options, leftover) = super(host_create,
                                    self).parse([label_info, acl_info],
                                                req_items='hosts')

        self._parse_lock_options(options)
        self.locked = options.lock
        self.platform = getattr(options, 'platform', None)
        self.serials = getattr(options, 'serials', None)
        if self.serials:
            if len(self.hosts) > 1:
                raise topic_common.CliError('Can not specify serials with '
                                            'multiple hosts')
            self.serials = self.serials.split(',')
        if options.protection:
            self.data['protection'] = options.protection
        return (options, leftover)