summaryrefslogtreecommitdiff
path: root/ironic_python_agent/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'ironic_python_agent/utils.py')
-rw-r--r--ironic_python_agent/utils.py30
1 files changed, 2 insertions, 28 deletions
diff --git a/ironic_python_agent/utils.py b/ironic_python_agent/utils.py
index 7ae827aa..036e72d9 100644
--- a/ironic_python_agent/utils.py
+++ b/ironic_python_agent/utils.py
@@ -24,7 +24,6 @@ import shutil
import subprocess
import sys
import tarfile
-import tempfile
import time
from ironic_lib import disk_utils
@@ -126,31 +125,6 @@ def _get_vmedia_device():
pass
-@contextlib.contextmanager
-def _mounted(source):
- """A context manager for a temporary mount."""
- dest = tempfile.mkdtemp()
- try:
- try:
- execute("mount", source, dest)
- except processutils.ProcessExecutionError as e:
- msg = ("Unable to mount virtual media device %(device)s: "
- "%(error)s" % {'device': source, 'error': e})
- raise errors.VirtualMediaBootError(msg)
-
- yield dest
- finally:
- try:
- execute("umount", dest)
- except processutils.ProcessExecutionError:
- pass
-
- try:
- shutil.rmtree(dest)
- except Exception:
- pass
-
-
def _find_device_by_labels(labels):
"""Find device matching any of the provided labels."""
for label in labels + [lbl.upper() for lbl in labels]:
@@ -181,7 +155,7 @@ def _get_vmedia_params():
vmedia_device_file = os.path.join("/dev", vmedia_device)
- with _mounted(vmedia_device_file) as vmedia_mount_point:
+ with ironic_utils.mounted(vmedia_device_file) as vmedia_mount_point:
parameters_file_path = os.path.join(vmedia_mount_point,
parameters_file)
params = _read_params_from_file(parameters_file_path)
@@ -242,7 +216,7 @@ def copy_config_from_vmedia():
if mounted:
_copy_config_from(mounted)
else:
- with _mounted(vmedia_device_file) as vmedia_mount_point:
+ with ironic_utils.mounted(vmedia_device_file) as vmedia_mount_point:
_copy_config_from(vmedia_mount_point)