doc updates
This commit is contained in:
parent
889487f914
commit
ee308802f2
@ -20,8 +20,13 @@ import string
|
||||
|
||||
|
||||
class Element(object):
|
||||
"""A diskimage-builder element."""
|
||||
|
||||
def __init__(self, directory):
|
||||
"""
|
||||
:param directory: The directory that defines the element.
|
||||
:type directory str.
|
||||
"""
|
||||
logging.debug('initializing element: %s' % directory)
|
||||
|
||||
if not os.access(directory, os.R_OK):
|
||||
|
@ -43,6 +43,8 @@ def load_args():
|
||||
|
||||
|
||||
def set_environment():
|
||||
"""Set environment variables that diskimage-builder elements expect."""
|
||||
|
||||
os.environ['TMP_MOUNT_PATH'] = '/'
|
||||
os.environ['DIB_OFFLINE'] = ''
|
||||
if platform.processor() == 'x86_64':
|
||||
|
@ -27,10 +27,22 @@ from diskimage_builder.elements import expand_dependencies
|
||||
class ElementManager(object):
|
||||
|
||||
def __init__(self, elements, hooks, element_paths=None, dry_run=False):
|
||||
"""
|
||||
:param elements: Element names to apply.
|
||||
:type elements: list.
|
||||
:param hooks: Hooks to run for each element.
|
||||
:type hooks: list.
|
||||
:param element_paths: File system paths to search for elements.
|
||||
:type element_paths: list of strings.
|
||||
:param dry_run: If True, do not actually run the hooks.
|
||||
:type dry_run: bool
|
||||
"""
|
||||
self.elements = elements
|
||||
self.dry_run = dry_run
|
||||
self.hooks = hooks
|
||||
self.loaded_elements = {}
|
||||
|
||||
# the environment variable should override anything passed in
|
||||
if os.environ.has_key('ELEMENTS_PATH'):
|
||||
self.element_paths = os.environ['ELEMENTS_PATH'].split(':')
|
||||
else:
|
||||
@ -42,7 +54,6 @@ class ElementManager(object):
|
||||
logging.debug('manager initialized with elements path: %s' %
|
||||
self.element_paths)
|
||||
|
||||
self.loaded_elements = {}
|
||||
self.load_elements()
|
||||
self.load_dependencies()
|
||||
self.copy_elements()
|
||||
@ -52,17 +63,28 @@ class ElementManager(object):
|
||||
self.run_hook(hook)
|
||||
|
||||
def load_elements(self):
|
||||
"""Load all elements from self.element_paths.
|
||||
|
||||
This populates self.loaded_elements.
|
||||
"""
|
||||
for path in self.element_paths:
|
||||
self.process_path(path)
|
||||
|
||||
def copy_elements(self):
|
||||
"""Copy elements to apply to a temporary directory."""
|
||||
self.tmp_hook_dir = tempfile.mkdtemp()
|
||||
for element in self.elements:
|
||||
element_dir = self.loaded_elements[element].directory
|
||||
dir_util.copy_tree(element_dir, self.tmp_hook_dir)
|
||||
# elements expect this environment variable to be set
|
||||
os.environ['TMP_HOOKS_PATH'] = self.tmp_hook_dir
|
||||
|
||||
def process_path(self, path):
|
||||
"""Load elements from a given filesystem path.
|
||||
|
||||
:param path: Filesystem path from which to load elements.
|
||||
:type path: str.
|
||||
"""
|
||||
if not os.access(path, os.R_OK):
|
||||
raise Exception
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user