Пример #1
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]
     (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 _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)
Пример #4
0
 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))
Пример #5
0
 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))
Пример #6
0
Файл: yum.py Проект: jzako/anvil
 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))
Пример #7
0
 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))
Пример #8
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"))