forked from ungleich-public/cdist
Merge remote-tracking branch 'steven/master'
This commit is contained in:
commit
5efb921980
5 changed files with 20 additions and 13 deletions
|
@ -24,7 +24,7 @@
|
||||||
if [ -f "$__object/parameter/name" ]; then
|
if [ -f "$__object/parameter/name" ]; then
|
||||||
name="$(cat "$__object/parameter/name")"
|
name="$(cat "$__object/parameter/name")"
|
||||||
else
|
else
|
||||||
name="/$__object_id"
|
name="$__object_id"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
pgrep -x -f "$name" || true
|
pgrep -x "$name" || true
|
||||||
|
|
|
@ -121,10 +121,10 @@ class ConfigInstall(object):
|
||||||
required_object = cdist_object.object_from_name(requirement)
|
required_object = cdist_object.object_from_name(requirement)
|
||||||
|
|
||||||
# The user may have created dependencies without satisfying them
|
# The user may have created dependencies without satisfying them
|
||||||
if not required_object.exists():
|
if not required_object.exists:
|
||||||
raise cdist.Error(cdist_object.name + " requires non-existing " + requirement.name)
|
raise cdist.Error(cdist_object.name + " requires non-existing " + required_object.name)
|
||||||
else
|
else:
|
||||||
self.log.debug("Required object %s exists", requirement.name)
|
self.log.debug("Required object %s exists", required_object.name)
|
||||||
|
|
||||||
self.object_run(required_object)
|
self.object_run(required_object)
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ from cdist.core.type import Type
|
||||||
from cdist.core.type import NoSuchTypeError
|
from cdist.core.type import NoSuchTypeError
|
||||||
from cdist.core.object import Object
|
from cdist.core.object import Object
|
||||||
from cdist.core.object import IllegalObjectIdError
|
from cdist.core.object import IllegalObjectIdError
|
||||||
|
from cdist.core.object import OBJECT_MARKER
|
||||||
from cdist.core.explorer import Explorer
|
from cdist.core.explorer import Explorer
|
||||||
from cdist.core.manifest import Manifest
|
from cdist.core.manifest import Manifest
|
||||||
from cdist.core.code import Code
|
from cdist.core.code import Code
|
||||||
|
|
|
@ -30,7 +30,7 @@ from cdist.util import fsproperty
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
DOT_CDIST = '.cdist'
|
OBJECT_MARKER = '.cdist'
|
||||||
|
|
||||||
|
|
||||||
class IllegalObjectIdError(cdist.Error):
|
class IllegalObjectIdError(cdist.Error):
|
||||||
|
@ -72,7 +72,7 @@ class Object(object):
|
||||||
def list_object_names(cls, object_base_path):
|
def list_object_names(cls, object_base_path):
|
||||||
"""Return a list of object names"""
|
"""Return a list of object names"""
|
||||||
for path, dirs, files in os.walk(object_base_path):
|
for path, dirs, files in os.walk(object_base_path):
|
||||||
if DOT_CDIST in dirs:
|
if OBJECT_MARKER in dirs:
|
||||||
yield os.path.relpath(path, object_base_path)
|
yield os.path.relpath(path, object_base_path)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -100,13 +100,13 @@ class Object(object):
|
||||||
if object_id:
|
if object_id:
|
||||||
if object_id.startswith('/'):
|
if object_id.startswith('/'):
|
||||||
raise IllegalObjectIdError(object_id, 'object_id may not start with /')
|
raise IllegalObjectIdError(object_id, 'object_id may not start with /')
|
||||||
if '.cdist' in object_id:
|
if OBJECT_MARKER in object_id.split(os.sep):
|
||||||
raise IllegalObjectIdError(object_id, 'object_id may not contain \'.cdist\'')
|
raise IllegalObjectIdError(object_id, 'object_id may not contain \'%s\'' % OBJECT_MARKER)
|
||||||
self.type = cdist_type # instance of Type
|
self.type = cdist_type # instance of Type
|
||||||
self.base_path = base_path
|
self.base_path = base_path
|
||||||
self.object_id = object_id
|
self.object_id = object_id
|
||||||
self.name = self.join_name(self.type.name, self.object_id)
|
self.name = self.join_name(self.type.name, self.object_id)
|
||||||
self.path = os.path.join(self.type.path, self.object_id, DOT_CDIST)
|
self.path = os.path.join(self.type.path, self.object_id, OBJECT_MARKER)
|
||||||
self.absolute_path = os.path.join(self.base_path, self.path)
|
self.absolute_path = os.path.join(self.base_path, self.path)
|
||||||
self.code_local_path = os.path.join(self.path, "code-local")
|
self.code_local_path = os.path.join(self.path, "code-local")
|
||||||
self.code_remote_path = os.path.join(self.path, "code-remote")
|
self.code_remote_path = os.path.join(self.path, "code-remote")
|
||||||
|
|
|
@ -58,12 +58,18 @@ class ObjectIdTestCase(test.CdistTestCase):
|
||||||
with self.assertRaises(core.IllegalObjectIdError):
|
with self.assertRaises(core.IllegalObjectIdError):
|
||||||
core.Object(cdist_type, object_base_path, illegal_object_id)
|
core.Object(cdist_type, object_base_path, illegal_object_id)
|
||||||
|
|
||||||
def test_object_id_contains_dotcdist(self):
|
def test_object_id_contains_object_marker(self):
|
||||||
cdist_type = core.Type(type_base_path, '__third')
|
cdist_type = core.Type(type_base_path, '__third')
|
||||||
illegal_object_id = 'object_id/may/not/contain/.cdist/anywhere'
|
illegal_object_id = 'object_id/may/not/contain/%s/anywhere' % core.OBJECT_MARKER
|
||||||
with self.assertRaises(core.IllegalObjectIdError):
|
with self.assertRaises(core.IllegalObjectIdError):
|
||||||
core.Object(cdist_type, object_base_path, illegal_object_id)
|
core.Object(cdist_type, object_base_path, illegal_object_id)
|
||||||
|
|
||||||
|
def test_object_id_contains_object_marker_string(self):
|
||||||
|
cdist_type = core.Type(type_base_path, '__third')
|
||||||
|
illegal_object_id = 'object_id/may/contain_%s_in_filename' % core.OBJECT_MARKER
|
||||||
|
core.Object(cdist_type, object_base_path, illegal_object_id)
|
||||||
|
# if we get here, the test passed
|
||||||
|
|
||||||
|
|
||||||
class ObjectTestCase(test.CdistTestCase):
|
class ObjectTestCase(test.CdistTestCase):
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue