示例#1
0
文件: yum.py 项目: skybobbi/anvil
 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)
示例#2
0
    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"))
示例#3
0
 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))