예제 #1
0
    def __init__(self, conf, **local_conf):
        self.conf = conf
        mapper = routes.Mapper()

        stacks_resource = stacks.create_resource(conf)

        mapper.resource("stack",
                        "stacks",
                        controller=stacks_resource,
                        collection={'detail': 'GET'})

        def conditions(action):
            api_action = self._actions[action]

            def action_match(environ, result):
                req = Request(environ)
                env_action = req.params.get("Action")
                return env_action == api_action

            return {'function': action_match}

        for action in self._actions:
            mapper.connect("/",
                           controller=stacks_resource,
                           action=action,
                           conditions=conditions(action))

        mapper.connect("/", controller=stacks_resource, action="index")

        super(API, self).__init__(mapper)
예제 #2
0
파일: __init__.py 프로젝트: zaneb/heat
    def __init__(self, conf, **local_conf):
        self.conf = conf
        mapper = routes.Mapper()

        stacks_resource = stacks.create_resource(conf)

        mapper.resource("stack", "stacks", controller=stacks_resource, collection={"detail": "GET"})

        def conditions(action):
            api_action = self._actions[action]

            def action_match(environ, result):
                req = Request(environ)
                env_action = req.params.get("Action")
                return env_action == api_action

            return {"function": action_match}

        for action in self._actions:
            mapper.connect("/", controller=stacks_resource, action=action, conditions=conditions(action))

        mapper.connect("/", controller=stacks_resource, action="index")

        # Add controller which handles waitcondition notifications
        # This is not part of the main CFN API spec, hence handle it
        # separately via a different path
        waitcondition_controller = waitcondition.create_resource(conf)
        mapper.connect(
            "/waitcondition/{arn:.*}",
            controller=waitcondition_controller,
            action="update_waitcondition",
            conditions=dict(method=["PUT"]),
        )

        super(API, self).__init__(mapper)
예제 #3
0
    def __init__(self, conf, **local_conf):
        self.conf = conf
        mapper = routes.Mapper()

        stacks_resource = stacks.create_resource(conf)

        mapper.resource("stack", "stacks", controller=stacks_resource,
                        collection={'detail': 'GET'})

        def conditions(action):
            api_action = self._actions[action]

            def action_match(environ, result):
                req = Request(environ)
                env_action = req.params.get("Action")
                return env_action == api_action

            return {'function': action_match}

        for action in self._actions:
            mapper.connect("/", controller=stacks_resource, action=action,
                conditions=conditions(action))

        mapper.connect("/", controller=stacks_resource, action="index")

        super(API, self).__init__(mapper)
예제 #4
0
파일: __init__.py 프로젝트: zzz6519003/heat
    def __init__(self, conf, **local_conf):
        self.conf = conf
        mapper = routes.Mapper()

        stacks_resource = stacks.create_resource(conf)

        mapper.resource("stack",
                        "stacks",
                        controller=stacks_resource,
                        collection={'detail': 'GET'})

        def conditions(action):
            api_action = self._actions[action]

            def action_match(environ, result):
                req = Request(environ)
                env_action = req.params.get("Action")
                return env_action == api_action

            return {'function': action_match}

        for action in self._actions:
            mapper.connect("/",
                           controller=stacks_resource,
                           action=action,
                           conditions=conditions(action))

        mapper.connect("/", controller=stacks_resource, action="index")

        # Add controller which handles signals on resources like:
        # waitconditions and alarms.
        # This is not part of the main CFN API spec, hence handle it
        # separately via a different path
        signal_controller = signal.create_resource(conf)
        mapper.connect('/waitcondition/{arn:.*}',
                       controller=signal_controller,
                       action='update_waitcondition',
                       conditions=dict(method=['PUT']))
        mapper.connect('/signal/{arn:.*}',
                       controller=signal_controller,
                       action='signal',
                       conditions=dict(method=['POST']))

        super(API, self).__init__(mapper)
예제 #5
0
    def __init__(self, conf, **local_conf):
        self.conf = conf
        mapper = routes.Mapper()

        stacks_resource = stacks.create_resource(conf)

        mapper.resource("stack", "stacks", controller=stacks_resource,
                        collection={'detail': 'GET'})

        def conditions(action):
            api_action = self._actions[action]

            def action_match(environ, result):
                req = webob.Request(environ)
                env_action = req.params.get("Action")
                return env_action == api_action

            return {'function': action_match}

        for action in self._actions:
            mapper.connect("/", controller=stacks_resource, action=action,
                           conditions=conditions(action))

        mapper.connect("/", controller=stacks_resource, action="index")

        # Add controller which handles signals on resources like:
        # waitconditions and alarms.
        # This is not part of the main CFN API spec, hence handle it
        # separately via a different path
        signal_controller = signal.create_resource(conf)
        mapper.connect('/waitcondition/{arn:.*}',
                       controller=signal_controller,
                       action='update_waitcondition',
                       conditions=dict(method=['PUT']))
        mapper.connect('/signal/{arn:.*}',
                       controller=signal_controller,
                       action='signal',
                       conditions=dict(method=['POST']))

        super(API, self).__init__(mapper)