示例#1
0
    def __call__(cls, *args, **kwargs):
        # split kwargs which django db are not aware of
        # to separete dict
        kwargs_for_params = {}
        defined_params = cls.get_defined_params()
        for param in defined_params:
            if param in kwargs:
                kwargs_for_params[param] = kwargs.pop(param)

        obj = super(ParamedModelType, cls).__call__(*args, **kwargs)

        # noinspection PyProtectedMember
        if obj._class:
            # we store actual class name in _class attribute
            # so use it to load required class
            # noinspection PyProtectedMember,PyPep8Naming
            Cls = loader.load_class(obj._class)
            # replace base class
            obj.__class__ = Cls

        # set param values
        for param in kwargs_for_params:
            setattr(obj, param, kwargs_for_params[param])

        return obj
示例#2
0
    def __call__(cls, *args, **kwargs):
        # split kwargs which django db are not aware of
        # to separete dict
        kwargs_for_params = {}
        defined_params = cls.get_defined_params()
        for param in defined_params:
            if param in kwargs:
                kwargs_for_params[param] = kwargs.pop(param)

        obj = super(ParamedModelType, cls).__call__(*args, **kwargs)

        # noinspection PyProtectedMember
        if obj._class:
            # we store actual class name in _class attribute
            # so use it to load required class
            # noinspection PyProtectedMember,PyPep8Naming
            Cls = loader.load_class(obj._class)
            # replace base class
            obj.__class__ = Cls

        # set param values
        for param in kwargs_for_params:
            setattr(obj, param, kwargs_for_params[param])

        return obj
示例#3
0
 def ext(self):
     try:
         # noinspection PyPep8Naming
         ExtCls = loader.load_class(
             'devops.models.node_ext.{ext_name}:NodeExtension'
             ''.format(ext_name=self.role or 'default'))
         return ExtCls(node=self)
     except ImportError:
         logger.debug('NodeExtension is not found for role: {!r}'
                      ''.format(self.role))
         return None
示例#4
0
 def ext(self):
     try:
         # noinspection PyPep8Naming
         ExtCls = loader.load_class(
             'devops.models.node_ext.{ext_name}:NodeExtension'
             ''.format(ext_name=self.role or 'default'))
         return ExtCls(node=self)
     except ImportError:
         logger.debug('NodeExtension is not found for role: {!r}'
                      ''.format(self.role))
         return None
示例#5
0
 def ext(self):
     ExtCls = loader.load_class(
         'devops.models.node_ext.{ext_name}:NodeExtension'
         ''.format(ext_name=self.role or 'default'))
     return ExtCls(node=self)
示例#6
0
 def ext(self):
     ExtCls = loader.load_class(
         'devops.models.node_ext.{ext_name}:NodeExtension'
         ''.format(ext_name=self.role or 'default'))
     return ExtCls(node=self)
示例#7
0
 def get_model_class(self, class_name):
     return loader.load_class(
         '{driver_name}:{class_name}'.format(driver_name=self.name,
                                             class_name=class_name))
示例#8
0
 def driver_create(name, **params):
     DriverCls = loader.load_class(
         '{driver_name}:Driver'.format(driver_name=name))
     return DriverCls.objects.create(
         name=name, **params)
示例#9
0
 def get_model_class(self, class_name):
     return loader.load_class('{driver_name}:{class_name}'.format(
         driver_name=self.name, class_name=class_name))
示例#10
0
 def driver_create(name, **params):
     DriverCls = loader.load_class(
         '{driver_name}:Driver'.format(driver_name=name))
     return DriverCls.objects.create(name=name, **params)