implement fail if object_id starts with /

Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
remotes/origin/feature_files_export
Steven Armstrong 14 years ago
parent 9640c3a098
commit 3e3919d15f
  1. 1
      lib/cdist/core/__init__.py
  2. 10
      lib/cdist/core/object.py

@ -21,6 +21,7 @@
from cdist.core.type import Type from cdist.core.type import Type
from cdist.core.object import Object from cdist.core.object import Object
from cdist.core.object import IllegalObjectIdError
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

@ -33,6 +33,14 @@ log = logging.getLogger(__name__)
DOT_CDIST = '.cdist' DOT_CDIST = '.cdist'
class IllegalObjectIdError(cdist.Error):
def __init__(self, object_id):
self.object_id = object_id
def __str__(self):
return 'Illegal object id: %s' % self.object_id
class Object(object): class Object(object):
"""Represents a cdist object. """Represents a cdist object.
@ -79,6 +87,8 @@ class Object(object):
return self.__class__(self.type.__class__(type_path, type_name), object_path, object_id=object_id) return self.__class__(self.type.__class__(type_path, type_name), object_path, object_id=object_id)
def __init__(self, cdist_type, base_path, object_id=None): def __init__(self, cdist_type, base_path, object_id=None):
if object_id and object_id.startswith('/'):
raise IllegalObjectIdError(object_id)
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

Loading…
Cancel
Save