summaryrefslogtreecommitdiff
path: root/vmdb/plugins/mount_plugin.py
diff options
context:
space:
mode:
Diffstat (limited to 'vmdb/plugins/mount_plugin.py')
-rw-r--r--vmdb/plugins/mount_plugin.py85
1 files changed, 0 insertions, 85 deletions
diff --git a/vmdb/plugins/mount_plugin.py b/vmdb/plugins/mount_plugin.py
deleted file mode 100644
index 2ef3ef1..0000000
--- a/vmdb/plugins/mount_plugin.py
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright 2017 Lars Wirzenius
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# =*= License: GPL-3+ =*=
-
-
-
-import logging
-import os
-import tempfile
-
-import cliapp
-
-import vmdb
-
-
-class MountPlugin(cliapp.Plugin):
-
- def enable(self):
- self.app.step_runners.add(MountStepRunner())
-
-
-class MountStepRunner(vmdb.StepRunnerInterface):
-
- def get_required_keys(self):
- return ['mount']
-
- def run(self, step, settings, state):
- self.mount_rootfs(step, settings, state)
-
- def teardown(self, step, settings, state):
- self.unmount_rootfs(step, settings, state)
-
- def mount_rootfs(self, step, settings, state):
- tag = step['mount']
- dirname = step.get('dirname')
- mount_on = step.get('mount-on')
-
- device = state.tags.get_dev(tag)
-
- if dirname:
- if not mount_on:
- raise Exception('no mount-on tag given')
-
- if not state.tags.has_tag(mount_on):
- raise Exception('cannot find tag {}'.format(mount_on))
-
- mount_point = os.path.join(
- state.tags.get_mount_point(mount_on), './' + dirname)
-
- if not os.path.exists(mount_point):
- os.makedirs(mount_point)
- else:
- mount_point = tempfile.mkdtemp()
-
- vmdb.runcmd(['mount', device, mount_point])
- state.tags.set_mount_point(tag, mount_point, cached=True)
-
- return mount_point
-
- def unmount_rootfs(self, step, settings, state):
- tag = step['mount']
- mount_point = state.tags.get_mount_point(tag)
- if mount_point is None:
- return
-
- try:
- vmdb.unmount(mount_point)
- except vmdb.NotMounted as e:
- logging.warning(str(e))
-
- if not step.get('mount-on'):
- os.rmdir(mount_point)