Exemple #1
0
    def _deploy_tripleo_heat_templates(self, stack, parsed_args):
        """Deploy the fixed templates in TripleO Heat Templates"""
        clients = self.app.client_manager
        network_client = clients.network

        parameters = self._update_paramaters(parsed_args, network_client,
                                             stack)

        tht_root = parsed_args.templates

        print("Deploying templates in the directory {0}".format(
            os.path.abspath(tht_root)))

        self.log.debug("Creating Environment file")
        env_path = utils.create_environment_file()

        if stack is None:
            self.log.debug("Creating Keystone certificates")
            keystone_pki.generate_certs_into_json(env_path, False)

        resource_registry_path = os.path.join(tht_root, RESOURCE_REGISTRY_NAME)

        environments = [resource_registry_path, env_path]
        if parsed_args.rhel_reg:
            reg_env = self._create_registration_env(parsed_args)
            environments.extend(reg_env)
        if parsed_args.environment_files:
            environments.extend(parsed_args.environment_files)

        overcloud_yaml = os.path.join(tht_root, OVERCLOUD_YAML_NAME)

        self._heat_deploy(stack, overcloud_yaml, parameters, environments,
                          parsed_args.timeout)
    def _deploy_tripleo_heat_templates(self, stack, parsed_args):
        """Deploy the fixed templates in TripleO Heat Templates"""
        clients = self.app.client_manager
        network_client = clients.network

        parameters = self._update_paramaters(
            parsed_args, network_client, stack)

        tht_root = parsed_args.templates

        print("Deploying templates in the directory {0}".format(
            os.path.abspath(tht_root)))

        self.log.debug("Creating Environment file")
        env_path = utils.create_environment_file()

        if stack is None:
            self.log.debug("Creating Keystone certificates")
            keystone_pki.generate_certs_into_json(env_path, False)

        resource_registry_path = os.path.join(tht_root, RESOURCE_REGISTRY_NAME)

        environments = [resource_registry_path, env_path]
        if parsed_args.rhel_reg:
            reg_env = self._create_registration_env(parsed_args)
            environments.extend(reg_env)
        if parsed_args.environment_files:
            environments.extend(parsed_args.environment_files)

        overcloud_yaml = os.path.join(tht_root, OVERCLOUD_YAML_NAME)

        self._heat_deploy(stack, overcloud_yaml, parameters, environments,
                          parsed_args.timeout)
Exemple #3
0
    def _deploy_tripleo_heat_templates(self, stack, parsed_args):
        """Deploy the fixed templates in TripleO Heat Templates"""
        clients = self.app.client_manager
        network_client = clients.network

        parameters = self._update_paramaters(parsed_args, network_client,
                                             stack)

        utils.check_nodes_count(
            self.app.client_manager.tripleoclient.baremetal(), stack,
            parameters, {
                'ControllerCount': 1,
                'ComputeCount': 1,
                'ObjectStorageCount': 0,
                'BlockStorageCount': 0,
                'CephStorageCount': 0,
            })

        tht_root = parsed_args.templates

        print("Deploying templates in the directory {0}".format(
            os.path.abspath(tht_root)))

        self.log.debug("Creating Environment file")
        # TODO(jprovazn): env file generated by create_environment_file()
        # is not very usable any more, scale params are included in
        # parameters and keystone cert is generated on create only
        env_path = utils.create_environment_file()
        environments = []
        add_registry = False

        if stack is None:
            self.log.debug("Creating Keystone certificates")
            keystone_pki.generate_certs_into_json(env_path, False)
            environments.append(env_path)
            add_registry = True

        environments.extend(self._create_parameters_env(parameters))
        if parsed_args.rhel_reg:
            reg_env = self._create_registration_env(parsed_args)
            environments.extend(reg_env)
            add_registry = True
        if parsed_args.environment_files:
            environments.extend(parsed_args.environment_files)
            add_registry = True

        if add_registry:
            # default resource registry file should be passed only
            # when creating a new stack, or when custom environments are
            # specified, otherwise it might overwrite
            # resource_registries in existing stack
            resource_registry_path = os.path.join(
                tht_root, constants.RESOURCE_REGISTRY_NAME)
            environments.insert(0, resource_registry_path)

        overcloud_yaml = os.path.join(tht_root, constants.OVERCLOUD_YAML_NAME)

        self._heat_deploy(stack, parsed_args.stack, overcloud_yaml, parameters,
                          environments, parsed_args.timeout)
def main():
    args = parse_args()
    environment._configure_logging(args)

    if args.heatenv:
        keystone_pki.generate_certs_into_json(args.heatenv, args.seed)
    else:
        keystone_pki.create_and_write_ca_and_signing_pairs(args.directory)
def main():
    args = parse_args()
    environment._configure_logging(args)

    if args.heatenv:
        keystone_pki.generate_certs_into_json(args.heatenv, args.seed)
    else:
        keystone_pki.create_and_write_ca_and_signing_pairs(args.directory)
    def _deploy_tripleo_heat_templates(self, stack, parsed_args):
        """Deploy the fixed templates in TripleO Heat Templates"""
        clients = self.app.client_manager
        network_client = clients.network
        workflow_client = clients.workflow_engine

        parameters = self._update_parameters(
            parsed_args, network_client, stack)

        tht_root = os.path.abspath(parsed_args.templates)

        plans = plan_management.list_deployment_plans(workflow_client)

        # TODO(d0ugal): We need to put a more robust strategy in place here to
        #               handle updating plans.
        if parsed_args.stack in plans:
            # Upload the new plan templates to swift to replace the existing
            # templates.
            plan_management.update_plan_from_templates(
                clients, parsed_args.stack, tht_root)
        else:
            plan_management.create_plan_from_templates(
                clients, parsed_args.stack, tht_root)

        print("Deploying templates in the directory {0}".format(
            os.path.abspath(tht_root)))

        self.log.debug("Creating Environment file")
        # TODO(jprovazn): env file generated by create_environment_file()
        # is not very usable any more, scale params are included in
        # parameters and keystone cert is generated on create only
        env_path = utils.create_environment_file()
        env = {}
        created_env_files = []

        if stack is None:
            self.log.debug("Creating Keystone certificates")
            keystone_pki.generate_certs_into_json(env_path, False)
            created_env_files.append(env_path)

        if parsed_args.environment_directories:
            created_env_files.extend(self._load_environment_directories(
                parsed_args.environment_directories))
        env.update(self._create_parameters_env(parameters))

        if parsed_args.rhel_reg:
            reg_env_files, reg_env = self._create_registration_env(parsed_args)
            created_env_files.extend(reg_env_files)
            template_utils.deep_update(env, reg_env)
        if parsed_args.environment_files:
            created_env_files.extend(parsed_args.environment_files)

        self._try_overcloud_deploy_with_compat_yaml(
            tht_root, stack, parsed_args.stack, parameters, created_env_files,
            parsed_args.timeout, env)
    def _deploy_tripleo_heat_templates(self, stack, parsed_args):
        """Deploy the fixed templates in TripleO Heat Templates"""
        clients = self.app.client_manager
        network_client = clients.network

        parameters = self._update_paramaters(
            parsed_args, network_client, stack)

        utils.check_nodes_count(
            self.app.client_manager.tripleoclient.baremetal(),
            stack,
            parameters,
            {
                'ControllerCount': 1,
                'ComputeCount': 1,
                'ObjectStorageCount': 0,
                'BlockStorageCount': 0,
                'CephStorageCount': 0,
            }
        )

        tht_root = parsed_args.templates

        print("Deploying templates in the directory {0}".format(
            os.path.abspath(tht_root)))

        self.log.debug("Creating Environment file")
        # TODO(jprovazn): env file generated by create_environment_file()
        # is not very usable any more, scale params are included in
        # parameters and keystone cert is generated on create only
        env_path = utils.create_environment_file()
        environments = []

        if stack is None:
            self.log.debug("Creating Keystone certificates")
            keystone_pki.generate_certs_into_json(env_path, False)
            # default resource registry file should be passed only
            # when creating a new stack, otherwise it might overwrite
            # resource_registries in existing stack
            resource_registry_path = os.path.join(tht_root,
                                                  RESOURCE_REGISTRY_NAME)
            environments.extend([resource_registry_path, env_path])

        environments.extend(self._create_parameters_env(parameters))
        if parsed_args.rhel_reg:
            reg_env = self._create_registration_env(parsed_args)
            environments.extend(reg_env)
        if parsed_args.environment_files:
            environments.extend(parsed_args.environment_files)

        overcloud_yaml = os.path.join(tht_root, OVERCLOUD_YAML_NAME)

        self._heat_deploy(stack, parsed_args.stack, overcloud_yaml, parameters,
                          environments, parsed_args.timeout)
    def _deploy_tripleo_heat_templates(self, stack, parsed_args):
        """Deploy the fixed templates in TripleO Heat Templates"""
        clients = self.app.client_manager
        network_client = clients.network

        parameters = self._update_parameters(
            parsed_args, network_client, stack)

        tht_root = parsed_args.templates

        print("Deploying templates in the directory {0}".format(
            os.path.abspath(tht_root)))

        self.log.debug("Creating Environment file")
        # TODO(jprovazn): env file generated by create_environment_file()
        # is not very usable any more, scale params are included in
        # parameters and keystone cert is generated on create only
        env_path = utils.create_environment_file()
        environments = []
        add_registry = False

        if stack is None:
            self.log.debug("Creating Keystone certificates")
            keystone_pki.generate_certs_into_json(env_path, False)
            environments.append(env_path)
            add_registry = True

        if parsed_args.environment_directories:
            environments.extend(self._load_environment_directories(
                parsed_args.environment_directories))

        environments.extend(self._create_parameters_env(parameters))
        if parsed_args.rhel_reg:
            reg_env = self._create_registration_env(parsed_args)
            environments.extend(reg_env)
            add_registry = True
        if parsed_args.environment_files:
            environments.extend(parsed_args.environment_files)
            add_registry = True

        if add_registry:
            # default resource registry file should be passed only
            # when creating a new stack, or when custom environments are
            # specified, otherwise it might overwrite
            # resource_registries in existing stack
            resource_registry_path = os.path.join(
                tht_root, constants.RESOURCE_REGISTRY_NAME)
            environments.insert(0, resource_registry_path)

        self._try_overcloud_deploy_with_compat_yaml(
            tht_root, stack, parsed_args.stack, parameters, environments,
            parsed_args.timeout)
    def test_generate_certs_into_json(self, mock_json, open_, create_signing,
                                      create_ca, isfile):
        create_ca.return_value = ('mock_ca_key', 'mock_ca_cert')
        create_signing.return_value = ('mock_signing_key', 'mock_signing_cert')
        isfile.return_value = False

        keystone_pki.generate_certs_into_json('/jsonfile', False)

        params = mock_json.call_args[0][0]['parameter_defaults']
        self.assertEqual(params['KeystoneCACertificate'], 'mock_ca_cert')
        self.assertEqual(params['KeystoneSigningKey'], 'mock_signing_key')
        self.assertEqual(params['KeystoneSigningCertificate'],
                         'mock_signing_cert')
    def test_generate_certs_into_json(
        self, mock_json, open_, create_signing, create_ca, isfile):
        create_ca.return_value = ('mock_ca_key', 'mock_ca_cert')
        create_signing.return_value = ('mock_signing_key', 'mock_signing_cert')
        isfile.return_value = False

        keystone_pki.generate_certs_into_json('/jsonfile', False)

        params = mock_json.call_args[0][0]['parameters']
        self.assertEqual(params['KeystoneCACertificate'], 'mock_ca_cert')
        self.assertEqual(params['KeystoneSigningKey'], 'mock_signing_key')
        self.assertEqual(params['KeystoneSigningCertificate'],
                         'mock_signing_cert')
Exemple #11
0
    def test_generate_certs_into_json_with_existing_certs(
        self, mock_json_dump, mock_json_load, open_, create_signing,
        create_ca, isfile):
        create_ca.return_value = ('mock_ca_key', 'mock_ca_cert')
        create_signing.return_value = ('mock_signing_key', 'mock_signing_cert')
        isfile.return_value = True
        mock_json_load.return_value = {
            'KeystoneCACertificate': 'mock_ca_cert',
            'KeystoneSigningKey': 'mock_signing_key',
            'KeystoneSigningCertificate': 'mock_signing_cert'
        }

        keystone_pki.generate_certs_into_json('/jsonfile', False)
        mock_json_dump.assert_not_called()
def main():
    args = parse_args()
    if args.heatenv:
        keystone_pki.generate_certs_into_json(args.heatenv, args.seed)
    else:
        keystone_pki.create_and_write_ca_and_signing_pairs(args.directory)
    def _deploy_tripleo_heat_templates(self, stack, parsed_args,
                                       tht_root, user_tht_root):
        """Deploy the fixed templates in TripleO Heat Templates"""
        clients = self.app.client_manager
        network_client = clients.network
        workflow_client = clients.workflow_engine

        parameters = self._update_parameters(
            parsed_args, network_client, stack)

        plans = plan_management.list_deployment_plans(workflow_client)

        # TODO(d0ugal): We need to put a more robust strategy in place here to
        #               handle updating plans.
        if parsed_args.stack in plans:
            # Upload the new plan templates to swift to replace the existing
            # templates.
            plan_management.update_plan_from_templates(
                clients, parsed_args.stack, tht_root, parsed_args.roles_file)
        else:
            plan_management.create_plan_from_templates(
                clients, parsed_args.stack, tht_root, parsed_args.roles_file)

        # Get any missing (e.g j2 rendered) files from the plan to tht_root
        added_files = self._download_missing_files_from_plan(
            tht_root, parsed_args.stack)

        print("Deploying templates in the directory {0}".format(
            os.path.abspath(tht_root)))

        self.log.debug("Creating Environment file")
        # TODO(jprovazn): env file generated by create_environment_file()
        # is not very usable any more, scale params are included in
        # parameters and keystone cert is generated on create only
        env_path = utils.create_environment_file()
        env = {}
        created_env_files = []

        if stack is None:
            self.log.debug("Creating Keystone certificates")
            keystone_pki.generate_certs_into_json(env_path, False)
            created_env_files.append(env_path)

        if parsed_args.environment_directories:
            created_env_files.extend(self._load_environment_directories(
                parsed_args.environment_directories))
        env.update(self._create_parameters_env(parameters))

        if parsed_args.rhel_reg:
            reg_env_files, reg_env = self._create_registration_env(parsed_args)
            created_env_files.extend(reg_env_files)
            template_utils.deep_update(env, reg_env)
        if parsed_args.environment_files:
            created_env_files.extend(parsed_args.environment_files)

        self.log.debug("Processing environment files %s" % created_env_files)
        env_files, localenv = self._process_multiple_environments(
            created_env_files, added_files, tht_root, user_tht_root,
            cleanup=not parsed_args.no_cleanup)
        template_utils.deep_update(env, localenv)

        self._try_overcloud_deploy_with_compat_yaml(
            tht_root, stack, parsed_args.stack, parameters, env_files,
            parsed_args.timeout, env, parsed_args.update_plan_only)