def take_action(self, parsed_args):
        self.log.debug('take_action({})'.format(parsed_args))
        self.log.warning('This command is deprecated. Please use "openstack '
                         'overcloud roles show" instead.')
        roles_path = os.path.realpath(parsed_args.roles_path)
        role_name = parsed_args.role
        file_path = os.path.join(roles_path, '{}.yaml'.format(role_name))
        try:
            with open(file_path, 'r') as f:
                role = rolesutils.validate_role_yaml(f)
        except IOError:
            raise NotFound("Role '{}' not found. Use 'openstack overcloud "
                           "roles list' to see the available roles.".
                           format(parsed_args.role))

        if 'name' in role:
            print('#' * 79)
            print("# Role Data for '{}'".format(role['name']))
            print('#' * 79)

        for key in sorted(role.keys()):
            print("{}:".format(key), end='')
            value = role[key]

            if isinstance(value, (list, tuple)):
                print('')
                print('\n'.join([' * {0}'.format(v) for v in value]))
            else:
                print(" '{}'".format(value))
Пример #2
0
    def run(self, context):
        err_msg = ""
        # validate roles in input exist in roles directory in t-h-t
        try:
            roles_utils.check_role_exists(
                [role['name'] for role in self.available_roles],
                [role['name'] for role in self.roles])
        except Exception as chk_err:
            err_msg = str(chk_err)

        # validate role yaml
        for role in self.roles:
            try:
                roles_utils.validate_role_yaml(yaml.safe_dump([role]))
            except exception.RoleMetadataError as rme:
                if 'name' in role:
                    err_msg += "\n%s for %s" % (str(rme), role['name'])
                else:
                    err_msg += "\n%s" % str(rme)

        if err_msg:
            return actions.Result(error=err_msg)
        return actions.Result(data=True)
Пример #3
0
    def run(self, context):
        err_msg = ""
        # validate roles in input exist in roles directory in t-h-t
        try:
            roles_utils.check_role_exists(
                [role['name'] for role in self.available_roles],
                [role['name'] for role in self.roles])
        except Exception as chk_err:
            err_msg = str(chk_err)

        # validate role yaml
        for role in self.roles:
            try:
                roles_utils.validate_role_yaml(yaml.safe_dump([role]))
            except exception.RoleMetadataError as rme:
                if 'name' in role:
                    err_msg += "\n%s for %s" % (str(rme), role['name'])
                else:
                    err_msg += "\n%s" % str(rme)

        if err_msg:
            return actions.Result(error=err_msg)
        return actions.Result(data=True)
Пример #4
0
 def test_validate_role_yaml_with_file(self):
     m = mock.mock_open(read_data=SAMPLE_ROLE)
     with mock.patch('tripleo_common.utils.roles.open', m):
         r = rolesutils.validate_role_yaml(role_path='/foo.yaml')
     self.assertEqual(SAMPLE_ROLE_OBJ, r)
Пример #5
0
 def test_validate_role_with_network_dict(self):
     role = rolesutils.validate_role_yaml(SAMPLE_ROLE_NETWORK_DICT)
     self.assertEqual(SAMPLE_ROLE_OBJ_NETWORK_DICT, role)
Пример #6
0
 def test_validate_role_yaml(self):
     role = rolesutils.validate_role_yaml(SAMPLE_ROLE)
     self.assertEqual(SAMPLE_ROLE_OBJ, role)
Пример #7
0
 def test_validate_role_yaml_with_file(self):
     m = mock.mock_open(read_data=SAMPLE_ROLE)
     with mock.patch('tripleo_common.utils.roles.open', m):
         r = rolesutils.validate_role_yaml(role_path='/foo.yaml')
     self.assertEqual(SAMPLE_ROLE_OBJ, r)
Пример #8
0
 def test_validate_role_with_network_dict(self):
     role = rolesutils.validate_role_yaml(SAMPLE_ROLE_NETWORK_DICT)
     self.assertEqual(SAMPLE_ROLE_OBJ_NETWORK_DICT, role)
Пример #9
0
 def test_validate_role_yaml(self):
     role = rolesutils.validate_role_yaml(SAMPLE_ROLE)
     self.assertEqual(SAMPLE_ROLE_OBJ, role)