Example #1
0
def check_in():
    """Processes activity reports from the containers."""
    active = request.form['active']
    container_ip = request.remote_addr
    container_id = r.get('ips:%s' % container_ip)
    if container_id is not None:
        r.hset('containers:%s' %
               container_id, 'active', active)
    return ''
Example #2
0
    def test_check_activity_active_connections(self):
        container = self._create_container()
        container_id = container['container_id']
        r.hset('containers:%s' % container_id, 'active', '1')

        # Mock apply_async so we don't get stuck in infinite loop
        check_container_activity.apply_async = Mock()

        result = check_container_activity(container_id)

        self.assertEqual(result, 'container active')
        self.assertTrue(check_container_activity.apply_async.called)
Example #3
0
    def patch(self, container_id):
        """Updates information on a single container. Currently just status."""
        args = self.reqparse.parse_args()

        if 'status' in args:
            if args['status'] == STOPPED:
                stop_container.delay(container_id)
                r.hset('containers:%s' % container_id, 'status', STOPPING)
            elif args['status'] == RUNNING:
                try:
                    start_container(container_id)
                except APIError as exception:
                    abort(500, message=exception.explanation)

        container = r.hgetall('containers:%s' % container_id)
        return marshal(container, container_fields)