def __init__(self, murano_class, owner, object_store, object_id=None, name=None, known_classes=None, defaults=None, this=None): if known_classes is None: known_classes = {} self.__owner = owner.real_this if owner else None self.__object_id = object_id or helpers.generate_id() self.__type = murano_class self.__properties = {} self.__parents = {} self.__defaults = defaults or {} self.__this = this self.__name = name self.__extension = None self.__object_store = weakref.ref(object_store) self.__config = murano_class.package.get_class_config( murano_class.name) if not isinstance(self.__config, dict): self.__config = {} known_classes[murano_class.name] = self for parent_class in murano_class.parents(self.real_this.type): name = parent_class.name if name not in known_classes: obj = parent_class.new( owner, object_store, object_id=self.__object_id, known_classes=known_classes, defaults=defaults, this=self.real_this).object self.__parents[name] = known_classes[name] = obj else: self.__parents[name] = known_classes[name] self.__initialized = False
def __init__(self, murano_class, owner, object_id=None, name=None, known_classes=None, this=None, metadata=None): self._initialized = False self._destroyed = False if known_classes is None: known_classes = {} if this is None: self._owner = owner self._object_id = object_id or helpers.generate_id() self._type = murano_class self._properties = {} self._parents = {} self._this = this self._name = name self._extension = None self._executor = helpers.weak_ref(helpers.get_executor()) self._config = murano_class.package.get_class_config( murano_class.name) self._metadata = metadata if not isinstance(self._config, dict): self._config = {} known_classes[murano_class.name] = self for parent_class in murano_class.parents: name = parent_class.name if name not in known_classes: obj = MuranoObject( parent_class, owner, object_id=self._object_id, known_classes=known_classes, this=self.real_this) self._parents[name] = known_classes[name] = obj else: self._parents[name] = known_classes[name] self._destruction_dependencies = []
def __init__(self, class_loader, namespace_resolver, name, package, parents=None): self._package = package self._class_loader = class_loader self._methods = {} self._namespace_resolver = namespace_resolver self._name = namespace_resolver.resolve_name(name) self._properties = {} self._config = {} if self._name == 'io.murano.Object': self._parents = [] else: self._parents = parents or [ class_loader.get_class('io.murano.Object') ] class_name = 'mc' + helpers.generate_id() parents_class = [p.object_class for p in self._parents] bases = tuple(parents_class) or (murano_object.MuranoObject, ) self.object_class = type(class_name, bases, {})
def __init__(self, murano_class, owner, object_id=None, name=None, known_classes=None, this=None): self.__initialized = False if known_classes is None: known_classes = {} self.__owner = owner.real_this if owner else None self.__object_id = object_id or helpers.generate_id() self.__type = murano_class self.__properties = {} self.__parents = {} self.__this = this self.__name = name self.__extension = None self.__config = murano_class.package.get_class_config( murano_class.name) if not isinstance(self.__config, dict): self.__config = {} known_classes[murano_class.name] = self for parent_class in murano_class.parents: name = parent_class.name if name not in known_classes: obj = MuranoObject(parent_class, owner, object_id=self.__object_id, known_classes=known_classes, this=self.real_this) self.__parents[name] = known_classes[name] = obj else: self.__parents[name] = known_classes[name]
def __init__(self, __name, **kwargs): self.data = { '?': { 'type': __name, 'id': helpers.generate_id() } } self.data.update(kwargs)
def __init__(self, __name, __id=None, **kwargs): self.data = { '?': { 'type': __name, 'id': __id or helpers.generate_id() } } self.data.update(kwargs)
def __init__(self, __name, __id=None, class_version=None, **kwargs): self.data = { '?': { 'type': __name, 'id': __id or helpers.generate_id() } } if class_version is not None: self.data['?']['classVersion'] = class_version self.data.update(kwargs)
def __init__(self, class_loader, namespace_resolver, name, package, parents=None): self._package = package self._class_loader = class_loader self._methods = {} self._namespace_resolver = namespace_resolver self._name = namespace_resolver.resolve_name(name) self._properties = {} if self._name == 'io.murano.Object': self._parents = [] else: self._parents = parents or [ class_loader.get_class('io.murano.Object')] class_name = 'mc' + helpers.generate_id() parents_class = [p.object_class for p in self._parents] bases = tuple(parents_class) or (murano_object.MuranoObject,) self.object_class = type(class_name, bases, {})
def __init__(self, murano_class, owner, object_store, executor, object_id=None, name=None, known_classes=None, this=None): if known_classes is None: known_classes = {} self.__owner = owner.real_this if owner else None self.__object_id = object_id or helpers.generate_id() self.__type = murano_class self.__properties = {} self.__parents = {} self.__this = this self.__name = name self.__extension = None self.__object_store = \ None if object_store is None else weakref.ref(object_store) self.__executor = weakref.ref(executor) self.__config = murano_class.package.get_class_config( murano_class.name) if not isinstance(self.__config, dict): self.__config = {} known_classes[murano_class.name] = self for parent_class in murano_class.parents(self.real_this.type): name = parent_class.name if name not in known_classes: obj = parent_class.new(owner, object_store, executor, object_id=self.__object_id, known_classes=known_classes, this=self.real_this).object self.__parents[name] = known_classes[name] = obj else: self.__parents[name] = known_classes[name] self.__initialized = False
def import_class(self, cls, name=None): if not name: if inspect.isclass(cls): name = cls._murano_class_name else: name = cls.__class__._murano_class_name m_class = self.get_class(name, create_missing=True) if inspect.isclass(cls): if issubclass(cls, murano_object.MuranoObject): m_class.object_class = cls else: mpc_name = 'mpc' + helpers.generate_id() bases = (cls, murano_object.MuranoObject) m_class.object_class = type(mpc_name, bases, {}) for item in dir(cls): method = getattr(cls, item) if ((inspect.isfunction(method) or inspect.ismethod(method)) and not item.startswith('_')): m_class.add_method(item, method)
def test_generate_id(self): generated_id = helpers.generate_id() self.assertTrue(re.match(r'[a-z0-9]{32}', generated_id))