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…
	
	Add table
		Add a link
		
	
		Reference in a new issue