def _build_openstack_package(self, instance): params = self._package_parameters(instance) patches = instance.list_patches("package") params['patches'] = [sh.basename(fn) for fn in patches] (rpm_name, template_name) = self._get_template_and_rpm_name(instance) try: egg_name = instance.egg_info['name'] params["version"] = instance.egg_info["version"] if self._is_client(instance.name, egg_name): client_name = utils.strip_prefix_suffix(egg_name, "python-", "client") if not client_name: msg = "Bad client package name %s" % (egg_name) raise excp.PackageException(msg) params["clientname"] = client_name params["apiname"] = self.API_NAMES.get(client_name, client_name.title()) except AttributeError: spec_filename = None if template_name: spec_filename = sh.joinpths(settings.TEMPLATE_DIR, self.SPEC_TEMPLATE_DIR, template_name) if not spec_filename or not sh.isfile(spec_filename): rpm_name = None if rpm_name: if not template_name: template_name = "%s.spec" % rpm_name spec_filename = self._write_spec_file(instance, rpm_name, template_name, params) self._build_from_spec(instance, spec_filename, patches) else: self._build_from_app_dir(instance, params)
def _build_openstack_package(self, instance): params = self._package_parameters(instance) patches = instance.list_patches("package") params['patches'] = [sh.basename(fn) for fn in patches] build_name = instance.get_option('build_name', default_value=instance.name) (rpm_name, template_name) = self._find_template_and_rpm_name(instance, build_name) try: egg_name = instance.egg_info['name'] params["version"] = instance.egg_info["version"] except AttributeError: pass else: if any(s.endswith("client") for s in (instance.name, egg_name, build_name)): client_name = utils.strip_prefix_suffix(egg_name, "python-", "client") if not client_name: msg = "Bad client package name %s" % (egg_name) raise excp.PackageException(msg) params["clientname"] = client_name params["apiname"] = instance.get_option( 'api_name', default_value=client_name.title()) if all((rpm_name, template_name)): spec_filename = self._write_spec_file(instance, rpm_name, template_name, params) self._build_from_spec(instance, spec_filename, patches) else: self.py2rpm_helper.build_srpm(source=instance.get_option("app_dir"), log_filename=instance.name, release=params.get("release"), with_tests=not params.get("no_tests"))
def _build_openstack_package(self, instance): params = self._package_parameters(instance) patches = instance.list_patches("package") params['patches'] = [sh.basename(fn) for fn in patches] (rpm_name, template_name) = self._get_template_and_rpm_name(instance) try: egg_name = instance.egg_info['name'] params["version"] = instance.egg_info["version"] if self._is_client(instance.name, egg_name): client_name = utils.strip_prefix_suffix( egg_name, "python-", "client") if not client_name: msg = "Bad client package name %s" % (egg_name) raise excp.PackageException(msg) params["clientname"] = client_name params["apiname"] = self.API_NAMES.get(client_name, client_name.title()) except AttributeError: spec_filename = None if template_name: spec_filename = sh.joinpths(settings.TEMPLATE_DIR, self.SPEC_TEMPLATE_DIR, template_name) if not spec_filename or not sh.isfile(spec_filename): rpm_name = None if rpm_name: if not template_name: template_name = "%s.spec" % rpm_name spec_filename = self._write_spec_file(instance, rpm_name, template_name, params) self._build_from_spec(instance, spec_filename, patches) else: self._build_from_app_dir(instance, params)
def _copy_startup_scripts(self, spec_filename): common_init_content = utils.load_template("packaging", "common.init")[1] for src in rpm.spec(spec_filename).sources: script = sh.basename(src[0]) if not (script.endswith(".init")): continue target_filename = sh.joinpths(self.rpm_sources_dir, script) if sh.isfile(target_filename): continue bin_name = utils.strip_prefix_suffix(script, "openstack-", ".init") if bin_name == "quantum-server": daemon_args = ("'--config-file=/etc/quantum/plugin.ini" " --config-file=/etc/quantum/quantum.conf'") elif bin_name == "quantum-l3-agent": daemon_args = ("'--config-file=/etc/quantum/l3_agent.ini" " --config-file=/etc/quantum/quantum.conf'") elif bin_name == "quantum-dhcp-agent": daemon_args = ("'--config-file=/etc/quantum/dhcp_agent.ini" " --config-file=/etc/quantum/quantum.conf'") else: daemon_args = "" params = { "bin": bin_name, "package": bin_name.split("-", 1)[0], "daemon_args": daemon_args, } sh.write_file(target_filename, utils.expand_template(common_init_content, params))
def _copy_startup_scripts(self, spec_filename): common_init_content = utils.load_template("packaging", "common.init")[1] for src in rpm.spec(spec_filename).sources: script = sh.basename(src[0]) if not (script.endswith(".init")): continue target_filename = sh.joinpths(self.rpm_sources_dir, script) if sh.isfile(target_filename): continue bin_name = utils.strip_prefix_suffix(script, "openstack-", ".init") params = { "bin": bin_name, "package": bin_name.split("-", 1)[0], } sh.write_file(target_filename, utils.expand_template(common_init_content, params))
def _copy_startup_scripts(self, instance, spec_details): common_init_content = utils.load_template("packaging", "common.init")[1] daemon_args = instance.get_option('daemon_args', default_value={}) for src in spec_details.get('sources', []): script = sh.basename(src) if not (script.endswith(".init")): continue target_filename = sh.joinpths(self.rpm_sources_dir, script) if sh.isfile(target_filename): continue bin_name = utils.strip_prefix_suffix(script, "openstack-", ".init") params = { "bin": bin_name, "package": bin_name.split("-", 1)[0], "daemon_args": daemon_args.get(bin_name, ''), } sh.write_file(target_filename, utils.expand_template(common_init_content, params))
def _copy_startup_scripts(self, instance, spec_filename): common_init_content = utils.load_template("packaging", "common.init")[1] cmd = [self.specprint_executable] cmd.extend(['-f', spec_filename]) daemon_args = instance.get_option('daemon_args', default_value={}) spec_details = json.loads(sh.execute(cmd)[0]) for src in spec_details.get('sources', []): script = sh.basename(src) if not (script.endswith(".init")): continue target_filename = sh.joinpths(self.rpm_sources_dir, script) if sh.isfile(target_filename): continue bin_name = utils.strip_prefix_suffix(script, "openstack-", ".init") params = { "bin": bin_name, "package": bin_name.split("-", 1)[0], "daemon_args": daemon_args.get(bin_name, ''), } sh.write_file(target_filename, utils.expand_template(common_init_content, params))
def _build_openstack_package(self, instance): params = self._package_parameters(instance) patches = instance.list_patches("package") params['patches'] = [sh.basename(fn) for fn in patches] build_name = instance.get_option('build_name', default_value=instance.name) (rpm_name, template_name) = self._find_template_and_rpm_name( instance, build_name) try: egg_name = instance.egg_info['name'] params["version"] = instance.egg_info["version"] except AttributeError: pass else: if any( s.endswith("client") for s in (instance.name, egg_name, build_name)): client_name = utils.strip_prefix_suffix( egg_name, "python-", "client") if not client_name: msg = "Bad client package name %s" % (egg_name) raise excp.PackageException(msg) params["clientname"] = client_name params["apiname"] = instance.get_option( 'api_name', default_value=client_name.title()) if all((rpm_name, template_name)): spec_filename = self._write_spec_file(instance, rpm_name, template_name, params) self._build_from_spec(instance, spec_filename, patches) else: self.py2rpm_helper.build_srpm( source=instance.get_option("app_dir"), log_filename=instance.name, release=params.get("release"), with_tests=not params.get("no_tests"))