Some more style cleanups

Change-Id: If64aa4d11d063475f8ce6be900aef4ec1a450381
This commit is contained in:
Joshua Harlow
2013-06-17 23:25:50 -07:00
committed by Joshua Harlow
parent d0ee098d5a
commit 3c4a0b4592

View File

@@ -56,13 +56,16 @@ class YumDependencyHandler(base.DependencyHandler):
"quantum": "Networking",
}
SERVER_NAMES = ["nova", "glance", "keystone", "quantum", "cinder"]
py2rpm_executable = sh.which("py2rpm", ["tools/"])
TRANSLATION_NAMES = {
'horizon': "python-django-horizon",
}
REPO_FN = "anvil.repo"
YUM_REPO_DIR = "/etc/yum.repos.d/"
BANNED_PACKAGES = [
'distribute',
'setuptools',
]
py2rpm_executable = sh.which("py2rpm", ["tools/"])
rpmbuild_executable = sh.which("rpmbuild")
def __init__(self, distro, root_dir, instances):
@@ -280,28 +283,39 @@ class YumDependencyHandler(base.DependencyHandler):
return value
def _write_spec_file(self, pkg_dir, rpm_name, template_name, params):
def load_requirements(filename):
if not sh.isfile(filename):
return []
requires = []
with open(filename, "r") as requires_file:
for line in requires_file.readlines():
line = line.split("#", 1)[0].strip()
if line:
requires.append(line)
return requires
if not params.setdefault("requires", []):
requires_filename = "%s/tools/pip-requires" % pkg_dir
if sh.isfile(requires_filename):
requires_python = []
with open(requires_filename, "r") as requires_file:
for line in requires_file.readlines():
line = line.split("#", 1)[0].strip()
if line:
requires_python.append(line)
if requires_python:
params["requires"] = self._convert_names_python2rpm(
requires_python)
# TODO(harlowja): get from egg-info???
requires_what = []
for filename in ["%s/tools/pip-requires" % pkg_dir,
"%s/requirements.txt" % pkg_dir]:
requires_what.extend(load_requirements(filename))
requires_what = self._convert_names_python2rpm(requires_what)
if requires_what:
params["requires"] = requires_what
params["epoch"] = self.OPENSTACK_EPOCH
content = utils.load_template(self.SPEC_TEMPLATE_DIR, template_name)[1]
spec_filename = sh.joinpths(
self.rpmbuild_dir, "SPECS", "%s.spec" % rpm_name)
sh.write_file(spec_filename, utils.expand_template(content, params))
spec_filename = sh.joinpths(self.rpmbuild_dir, "SPECS",
"%s.spec" % rpm_name)
sh.write_file(spec_filename, utils.expand_template(content, params),
tracewriter=self.tracewriter)
return spec_filename
def _copy_startup_scripts(self, spec_filename):
common_init_content = utils.load_template(
"packaging", "common.init")[1]
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")):
@@ -309,20 +323,18 @@ class YumDependencyHandler(base.DependencyHandler):
target_filename = sh.joinpths(self.rpm_sources_dir, script)
if sh.isfile(target_filename):
continue
bin_name = utils.strip_prefix_suffix(
script, "openstack-", ".init")
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))
sh.write_file(target_filename,
utils.expand_template(common_init_content, params))
def _copy_sources(self, pkg_dir):
component_name = self._get_component_name(pkg_dir)
other_sources_dir = sh.joinpths(
settings.TEMPLATE_DIR, "packaging/sources", component_name)
other_sources_dir = sh.joinpths(settings.TEMPLATE_DIR,
"packaging/sources", component_name)
if sh.isdir(other_sources_dir):
for filename in sh.listdir(other_sources_dir, files_only=True):
sh.copy(filename, self.rpm_sources_dir)
@@ -354,8 +366,8 @@ class YumDependencyHandler(base.DependencyHandler):
]
tar_base = sh.execute(cmdline, cwd=pkg_dir)[0].splitlines()[0].strip()
# git 1.7.1 from RHEL doesn't understand --format=tar.gz
output_filename = sh.joinpths(
self.rpm_sources_dir, "%s.tar" % tar_base)
output_filename = sh.joinpths(self.rpm_sources_dir,
"%s.tar" % tar_base)
cmdline = [
"git",
"archive",
@@ -387,8 +399,8 @@ class YumDependencyHandler(base.DependencyHandler):
name = self._python_setup_py_get(pkg_dir, "name")
params["version"] = self._python_setup_py_get(pkg_dir, "version")
if component_name.endswith("client"):
clientname = utils.strip_prefix_suffix(
name, "python-", "client")
clientname = utils.strip_prefix_suffix(name,
"python-", "client")
if not clientname:
LOG.error("Bad client package name %s", name)
return
@@ -399,14 +411,13 @@ class YumDependencyHandler(base.DependencyHandler):
template_name = "python-commonclient.spec"
elif component_name in self.SERVER_NAMES:
rpm_name = "openstack-%s" % name
elif component_name == "horizon":
rpm_name = "python-django-horizon"
else:
rpm_name = self.TRANSLATION_NAMES.get(component_name)
else:
rpm_name = component_name
template_name = "%s.spec" % rpm_name
spec_filename = sh.joinpths(settings.TEMPLATE_DIR,
self.SPEC_TEMPLATE_DIR,
template_name)
self.SPEC_TEMPLATE_DIR, template_name)
if not sh.isfile(spec_filename):
rpm_name = None
if rpm_name: