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 verify(self): if not sh.isfile(self._setup_fn): raise excp.PackageException(("Can not package %s since python" " setup file at %s is missing") % (self.name, self._setup_fn))