support getting paths of objects and their parameters
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
parent
6d5a53b7ad
commit
722339f3e1
1 changed files with 21 additions and 6 deletions
27
bin/cdist
27
bin/cdist
|
@ -53,6 +53,7 @@ TYPE_DIR = os.path.join(CONF_DIR, "type")
|
||||||
|
|
||||||
REMOTE_BASE_DIR = "/var/lib/cdist"
|
REMOTE_BASE_DIR = "/var/lib/cdist"
|
||||||
REMOTE_CONF_DIR = os.path.join(REMOTE_BASE_DIR, "conf")
|
REMOTE_CONF_DIR = os.path.join(REMOTE_BASE_DIR, "conf")
|
||||||
|
REMOTE_OBJECT_DIR = os.path.join(REMOTE_BASE_DIR, "object")
|
||||||
REMOTE_TYPE_DIR = os.path.join(REMOTE_CONF_DIR, "type")
|
REMOTE_TYPE_DIR = os.path.join(REMOTE_CONF_DIR, "type")
|
||||||
REMOTE_GLOBAL_EXPLORER_DIR = os.path.join(REMOTE_CONF_DIR, "explorer")
|
REMOTE_GLOBAL_EXPLORER_DIR = os.path.join(REMOTE_CONF_DIR, "explorer")
|
||||||
|
|
||||||
|
@ -100,8 +101,6 @@ class Cdist:
|
||||||
self.target_host = target_host
|
self.target_host = target_host
|
||||||
self.remote_prefix = ["ssh", "root@" + self.target_host]
|
self.remote_prefix = ["ssh", "root@" + self.target_host]
|
||||||
|
|
||||||
# log.info("foobar")
|
|
||||||
|
|
||||||
# Setup directory paths
|
# Setup directory paths
|
||||||
self.temp_dir = tempfile.mkdtemp()
|
self.temp_dir = tempfile.mkdtemp()
|
||||||
|
|
||||||
|
@ -192,6 +191,7 @@ class Cdist:
|
||||||
self.run_or_fail(["rm", "-rf", destination], remote=True)
|
self.run_or_fail(["rm", "-rf", destination], remote=True)
|
||||||
|
|
||||||
def transfer_dir(self, source, destination):
|
def transfer_dir(self, source, destination):
|
||||||
|
"""Transfer directory and previously delete the remote destination"""
|
||||||
self.remove_remote_dir(destination)
|
self.remove_remote_dir(destination)
|
||||||
self.run_or_fail(["scp", "-qr", source, "root@" + self.target_host + ":" + destination])
|
self.run_or_fail(["scp", "-qr", source, "root@" + self.target_host + ":" + destination])
|
||||||
|
|
||||||
|
@ -201,7 +201,7 @@ class Cdist:
|
||||||
|
|
||||||
def type_explorer_output_dir(self, cdist_object):
|
def type_explorer_output_dir(self, cdist_object):
|
||||||
"""Returns and creates dir of the output for a type explorer"""
|
"""Returns and creates dir of the output for a type explorer"""
|
||||||
dir = os.path.join(self.object_full_path(cdist_object), DOT_CDIST, "explorer")
|
dir = os.path.join(self.object_dir(cdist_object), "explorer")
|
||||||
if not os.path.isdir(dir):
|
if not os.path.isdir(dir):
|
||||||
os.mkdir(dir)
|
os.mkdir(dir)
|
||||||
|
|
||||||
|
@ -250,9 +250,21 @@ class Cdist:
|
||||||
"""Returns the first part (i.e. type) of an object"""
|
"""Returns the first part (i.e. type) of an object"""
|
||||||
return cdist_object.split(os.sep)[0]
|
return cdist_object.split(os.sep)[0]
|
||||||
|
|
||||||
def object_full_path(self, cdist_object):
|
def object_dir(self, cdist_object):
|
||||||
"""Returns the full path to the object ("""
|
"""Returns the full path to the object (including .cdist)"""
|
||||||
return os.path.join(self.object_dir, cdist_object)
|
return os.path.join(self.object_dir, cdist_object, DOT_CDIST)
|
||||||
|
|
||||||
|
def remote_object_dir(self, cdist_object):
|
||||||
|
"""Returns the remote full path to the object (including .cdist)"""
|
||||||
|
return os.path.join(REMOTE_OBJECT_DIR, cdist_object, DOT_CDIST)
|
||||||
|
|
||||||
|
def object_parameter_dir(self, cdist_object):
|
||||||
|
"""Returns the dir to the object parameter"""
|
||||||
|
return os.path.join(object_dir(cdist_object), "parameter")
|
||||||
|
|
||||||
|
def remote_object_parameter_dir(self, cdist_object):
|
||||||
|
"""Returns the remote dir to the object parameter"""
|
||||||
|
return os.path.join(remote_object_dir(cdist_object), "parameter")
|
||||||
|
|
||||||
def list_objects(self, starting_point = False):
|
def list_objects(self, starting_point = False):
|
||||||
"""Return list of existing objects"""
|
"""Return list of existing objects"""
|
||||||
|
@ -277,6 +289,9 @@ class Cdist:
|
||||||
"""Return remote directory that holds the explorers of a type"""
|
"""Return remote directory that holds the explorers of a type"""
|
||||||
return os.path.join(REMOTE_TYPE_DIR, type, "explorer")
|
return os.path.join(REMOTE_TYPE_DIR, type, "explorer")
|
||||||
|
|
||||||
|
def transfer_object_parameter(self, cdist_object):
|
||||||
|
self.transfer_dir(object_dir(cdist_object), )
|
||||||
|
|
||||||
def transfer_global_explorers(self):
|
def transfer_global_explorers(self):
|
||||||
self.transfer_dir(GLOBAL_EXPLORER_DIR, REMOTE_GLOBAL_EXPLORER_DIR)
|
self.transfer_dir(GLOBAL_EXPLORER_DIR, REMOTE_GLOBAL_EXPLORER_DIR)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue