Beispiel #1
0
    def __new__(cls, name, env=None, provider=None, **kwargs):
        env = env or Environment.get_instance()
        provider = provider or getattr(cls, 'provider', None)

        r_type = cls.__name__
        if r_type not in env.resources:
            env.resources[r_type] = {}
        if name not in env.resources[r_type]:
            obj = super(Resource, cls).__new__(cls)
            env.resources[r_type][name] = obj
            env.resource_list.append(obj)
            return obj

        obj = env.resources[r_type][name]
        if obj.provider != provider:
            raise Fail("Duplicate resource %r with a different provider %r != %r" % (obj, provider, obj.provider))

        obj.override(**kwargs)
        return obj
Beispiel #2
0
    def __init__(self, name, env=None, provider=None, **kwargs):
        if hasattr(self, 'name'):
            return

        self.name = name
        self.env = env or Environment.get_instance()
        self.provider = provider or getattr(self, 'provider', None)
        self.log = logging.getLogger("kokki.resource")

        self.arguments = {}
        for key, value in kwargs.items():
            try:
                arg = self._arguments[key]
            except KeyError:
                raise Fail("%s received unsupported argument %s" % (self, key))
            else:
                try:
                    self.arguments[key] = arg.validate(value)
                except InvalidArgument, exc:
                    raise InvalidArgument("%s %s" % (self, exc))
Beispiel #3
0
    def __init__(self, name, env=None, provider=None, **kwargs):
        if hasattr(self, 'name'):
            return

        self.name = name
        self.env = env or Environment.get_instance()
        self.provider = provider or getattr(self, 'provider', None)
        self.log = logging.getLogger("kokki.resource")

        self.arguments = {}
        for key, value in kwargs.items():
            try:
                arg = self._arguments[key]
            except KeyError:
                raise Fail("%s received unsupported argument %s" % (self, key))
            else:
                try:
                    self.arguments[key] = arg.validate(value)
                except InvalidArgument, exc:
                    raise InvalidArgument("%s %s" % (self, exc))
Beispiel #4
0
    def __new__(cls, name, env=None, provider=None, **kwargs):
        env = env or Environment.get_instance()
        provider = provider or getattr(cls, 'provider', None)

        r_type = cls.__name__
        if r_type not in env.resources:
            env.resources[r_type] = {}
        if name not in env.resources[r_type]:
            obj = super(Resource, cls).__new__(cls)
            env.resources[r_type][name] = obj
            env.resource_list.append(obj)
            return obj

        obj = env.resources[r_type][name]
        if obj.provider != provider:
            raise Fail(
                "Duplicate resource %r with a different provider %r != %r" %
                (obj, provider, obj.provider))

        obj.override(**kwargs)
        return obj