Add installtype support to package-installs

Some packages should only be installed if a certain installtype is
specified.

Change-Id: Ia1a5af9ab4653e2646870ebd2d2db7e00a59305b
This commit is contained in:
Gregory Haynes 2015-01-20 16:45:48 -08:00
parent 1162a3abe1
commit 3ff92589e1
2 changed files with 21 additions and 3 deletions

View File

@ -10,6 +10,8 @@ example package-installs.yaml::
phase: pre-install.d
networkmanager:
uninstall: True
os-collect-config:
installtype: source
example package-installs.json::
@ -17,14 +19,20 @@ example package-installs.json::
"libxml2": null,
"grub2": {"phase": "pre-install.d"},
"networkmanager": {"uninstall": true}
"os-collect-config": {"installtype": "source"}
}
Setting phase or uninstall properties for a package overrides the following
default values::
Setting phase, uninstall, or installtype properties for a package overrides
the following default values::
phase: install.d
uninstall: False
installtype: * (Install package for all installtypes)
Setting the installtype property causes the package only to be installed if
the specified installtype would be used for the element. See the
diskimage-builder docs for more information on installtypes.
DEPRECATED: Adding a file under your elements pre-install.d, install.d, or

View File

@ -23,6 +23,12 @@ import os
import yaml
def get_element_installtype(element_name):
default = os.environ.get("DIB_DEFAULT_INSTALLTYPE", "source")
element_name.replace('-', '_')
return os.environ.get("DIB_INSTALLTYPE_%s" % element_name, default)
def collect_data(data, filename, element_name):
try:
objs = json.load(open(filename))
@ -36,7 +42,11 @@ def collect_data(data, filename, element_name):
if 'uninstall' in params:
install = "uninstall"
data[phase][install].append((pkg_name, element_name))
# Filter out incorrect installtypes
installtype = params.get('installtype', None)
elem_installtype = get_element_installtype(element_name)
if installtype is None or installtype == elem_installtype:
data[phase][install].append((pkg_name, element_name))
return data