forked from ungleich-public/cdist
import path information from current cdist
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
parent
3ace43ff01
commit
747517f067
1 changed files with 52 additions and 4 deletions
|
@ -1,11 +1,59 @@
|
||||||
class Path:
|
class Path:
|
||||||
"""Class that handles path related configurations"""
|
"""Class that handles path related configurations"""
|
||||||
|
|
||||||
def __init__(self, home=None):
|
def __init__(self, target_host, base_dir=None):
|
||||||
|
# Base and Temp Base
|
||||||
if home:
|
if home:
|
||||||
self.base_dir = home
|
self.base_dir = base_dir
|
||||||
else:
|
else:
|
||||||
self.base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))
|
self.base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))
|
||||||
|
|
||||||
|
self.temp_dir = tempfile.mkdtemp()
|
||||||
|
|
||||||
|
self.conf_dir = os.path.join(self.base_dir, "conf")
|
||||||
|
self.cache_base_dir = os.path.join(self.base_dir, "cache")
|
||||||
|
self.cache_dir = os.path.join(self.cache_base_dir, target_host)
|
||||||
|
self.global_explorer_dir = os.path.join(self.conf_dir, "explorer")
|
||||||
|
self.lib_dir = os.path.join(self.base_dir, "lib")
|
||||||
|
self.manifest_dir = os.path.join(self.conf_dir, "manifest")
|
||||||
|
self.type_base_dir = os.path.join(self.conf_dir, "type")
|
||||||
|
|
||||||
|
self.out_dir = os.path.join(self.temp_dir, "out")
|
||||||
|
os.mkdir(self.out_dir)
|
||||||
|
|
||||||
|
self.global_explorer_out_dir = os.path.join(self.out_dir, "explorer")
|
||||||
|
os.mkdir(self.global_explorer_out_dir)
|
||||||
|
|
||||||
|
self.object_base_dir = os.path.join(self.out_dir, "object")
|
||||||
|
|
||||||
|
# Setup binary directory + contents
|
||||||
|
self.bin_dir = os.path.join(self.out_dir, "bin")
|
||||||
|
os.mkdir(self.bin_dir)
|
||||||
|
self.link_type_to_emulator()
|
||||||
|
|
||||||
|
# List of type explorers transferred
|
||||||
|
self.type_explorers_transferred = {}
|
||||||
|
|
||||||
|
# objects
|
||||||
|
self.objects_prepared = []
|
||||||
|
|
||||||
|
self.remote_user = remote_user
|
||||||
|
|
||||||
|
# Mostly static, but can be overwritten on user demand
|
||||||
|
if initial_manifest:
|
||||||
|
self.initial_manifest = initial_manifest
|
||||||
|
else:
|
||||||
|
self.initial_manifest = os.path.join(self.manifest_dir, "init")
|
||||||
|
|
||||||
|
def cleanup(self):
|
||||||
|
# Do not use in __del__:
|
||||||
|
# http://docs.python.org/reference/datamodel.html#customization
|
||||||
|
# "other globals referenced by the __del__() method may already have been deleted
|
||||||
|
# or in the process of being torn down (e.g. the import machinery shutting down)"
|
||||||
|
#
|
||||||
|
log.debug("Saving" + self.temp_dir + "to " + self.cache_dir)
|
||||||
|
# Remove previous cache
|
||||||
|
if os.path.exists(self.cache_dir):
|
||||||
|
shutil.rmtree(self.cache_dir)
|
||||||
|
shutil.move(self.temp_dir, self.cache_dir)
|
||||||
|
|
||||||
print("Base:" + self.base_dir)
|
|
||||||
|
|
Loading…
Reference in a new issue