forked from ungleich-public/cdist
implement remote_code_remote :-(
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
parent
4db02516e7
commit
f39418a7b5
1 changed files with 30 additions and 12 deletions
|
@ -31,7 +31,8 @@ log = logging.getLogger(__name__)
|
||||||
|
|
||||||
DOT_CDIST = '.cdist'
|
DOT_CDIST = '.cdist'
|
||||||
|
|
||||||
|
# FIXME: i should not have to care about prefix directory, local, remote and such.
|
||||||
|
# I know what my internals look like, the outside is none of my business.
|
||||||
class Object(object):
|
class Object(object):
|
||||||
"""Represents a cdist object.
|
"""Represents a cdist object.
|
||||||
|
|
||||||
|
@ -63,6 +64,21 @@ class Object(object):
|
||||||
return base_dir
|
return base_dir
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
def remote_base_dir():
|
||||||
|
"""Return the absolute path to the top level directory where objects
|
||||||
|
are kept on the remote/target host.
|
||||||
|
|
||||||
|
Requires the environment variable '__cdist_remote_out_dir' to be set.
|
||||||
|
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
return os.path.join(
|
||||||
|
os.environ['__cdist_remote_out_dir'],
|
||||||
|
'object',
|
||||||
|
)
|
||||||
|
except KeyError as e:
|
||||||
|
raise cdist.MissingEnvironmentVariableError(e.args[0])
|
||||||
|
|
||||||
def list_objects(cls):
|
def list_objects(cls):
|
||||||
"""Return a list of object instances"""
|
"""Return a list of object instances"""
|
||||||
for object_name in cls.list_object_names():
|
for object_name in cls.list_object_names():
|
||||||
|
@ -123,6 +139,19 @@ class Object(object):
|
||||||
os.mkdir(path)
|
os.mkdir(path)
|
||||||
return path
|
return path
|
||||||
|
|
||||||
|
# FIXME: prefix directory should not leak into me
|
||||||
|
@property
|
||||||
|
def remote_path(self):
|
||||||
|
return os.path.join(
|
||||||
|
self.remote_base_dir(),
|
||||||
|
self.name,
|
||||||
|
DOT_CDIST
|
||||||
|
)
|
||||||
|
@property
|
||||||
|
def remote_code_remote(self):
|
||||||
|
return os.path.join(self.remote_path, "code-remote")
|
||||||
|
|
||||||
|
|
||||||
### requirements
|
### requirements
|
||||||
@property
|
@property
|
||||||
def requirements(self):
|
def requirements(self):
|
||||||
|
@ -175,18 +204,7 @@ class Object(object):
|
||||||
pass
|
pass
|
||||||
### /changed
|
### /changed
|
||||||
|
|
||||||
# FIXME: implement other properties/methods
|
|
||||||
|
|
||||||
# FIXME: check following methods: implement or revoke / delete
|
|
||||||
# FIXME: Object
|
|
||||||
def get_object_id_from_object(self, cdist_object):
|
|
||||||
"""Returns everything but the first part (i.e. object_id) of an object"""
|
|
||||||
return os.sep.join(cdist_object.split(os.sep)[1:])
|
|
||||||
|
|
||||||
# FIXME: Object
|
|
||||||
def object_dir(self, cdist_object):
|
|
||||||
"""Returns the full path to the object (including .cdist)"""
|
|
||||||
return os.path.join(self.object_base_dir, cdist_object, DOT_CDIST)
|
|
||||||
|
|
||||||
# FIXME: Object
|
# FIXME: Object
|
||||||
def remote_object_dir(self, cdist_object):
|
def remote_object_dir(self, cdist_object):
|
||||||
|
|
Loading…
Reference in a new issue