Ejemplo n.º 1
0
    def post():
        user = Login().get_username(request.headers['x-access-token'])

        if user and User().is_admin(user):
            data = validate_or_abort(CustomerSchema, request.get_json())
            return response_by_success(Customer().insert(data))
        return response_by_success(False)
Ejemplo n.º 2
0
    def put():
        user = Login().get_username(request.headers['x-access-token'])

        if user and User().is_admin(user):
            data = validate_or_abort(CustomerSchemaPut, request.get_json())
            return response_by_success(Customer().update(
                criteria={'domain': data['domain']}, data=data['data']))
        return response_by_success(False)
Ejemplo n.º 3
0
    def delete():
        user = Login().get_username(request.headers['x-access-token'])

        if user and User().is_admin(user):
            data = validate_or_abort(CustomerSchemaDelete, request.get_json())
            return response_by_success(
                Customer().remove(criteria={'domain': data['domain']}),
                is_remove=True)
        return response_by_success(False)
Ejemplo n.º 4
0
    def post():
        payload = validate_or_abort(BaseSingleImageProps, request.get_json())
        image = DockerEngine().get_image_by_name(payload['name'])

        if image:
            response = DockerEngine().run_operation_in_object(
                object=image,
                operation=payload['operation'],
                data=payload['data'])

            return parse_data(None, response) if response \
                else response_by_success(False)

        return response_by_success(False)
Ejemplo n.º 5
0
    def post():
        payload = validate_or_abort(BaseImageProps, request.get_json())
        data = payload['data']

        if payload['operation'] == 'get':
            data = validate_or_abort(ImageGetProps, data)

        if payload['operation'] == 'list':
            data = validate_or_abort(ImageListProps, data)

        if payload['operation'] == 'pull':
            data = validate_or_abort(ImagePullProps, data)

        if payload['operation'] == 'remove':
            data = validate_or_abort(ImageRemoveProps, data)
            data['force'] = True

        if payload['operation'] == 'search':
            data = validate_or_abort(ImageSearchProps, data)

        if payload['operation'] == 'prune':
            data = validate_or_abort(ImagePruneProps, data)

        response = DockerEngine().run_image_operation(
            operation=payload['operation'], data=data)

        schema = ImageObj if response else None

        if response and payload['operation'] == 'search':
            schema = DockerHubImage

        return parse_data(schema, response) if response \
            else response_by_success(False)
Ejemplo n.º 6
0
    def get():
        if 'x-access-token' in request.headers:
            token = request.headers['x-access-token']

        current_user = Login().token_access(str(token))
        return response_by_success(Login().logout(
            current_user.data['username']))
Ejemplo n.º 7
0
    def post():
        data = validate_or_abort(ProvisionRunSchema, request.get_json())
        results = AnsibleEngine().run_playbook(hosts=data['hosts'],
                                               playbook=data['playbook'],
                                               passwords=data['passwords'])

        if results:
            return parse_data(ProvisionRunResponseSchema, {'result': results})

        return response_by_success(False)
Ejemplo n.º 8
0
    def post():
        user = Login().get_username(request.headers['x-access-token'])

        if user and User().is_admin(user):
            data = validate_or_abort(QuerySchema, request.get_json())
            customer = Customer().find(
                criteria=data['query'],
                projection=data['filter'] if 'filter' in data.keys() else {})

            return parse_data(CustomerSchema, customer.data)
        return response_by_success(False)
Ejemplo n.º 9
0
    def get():
        auth = request.authorization

        if not auth or not auth.username or not auth.password:
            return make_response(
                'Could not verify.', 401,
                {'WWW-Authenticate': 'Basic realm="Login required."'})

        login = Login().login(auth)

        if not login or not login.data:
            return response_by_success(False)

        return parse_data(LoginSchema, login.data)
Ejemplo n.º 10
0
    def post():
        payload = validate_or_abort(BaseSingleContainerProps,
                                    request.get_json())
        container = DockerEngine().get_container_by_id(payload['container_id'])
        if container:
            response = DockerEngine().run_operation_in_object(
                object=container,
                operation=payload['operation'],
                data=payload['data'])

            if response is not False:
                return parse_data(None, response)

        return response_by_success(False)
Ejemplo n.º 11
0
    def post():
        payload = validate_or_abort(BaseContainersProps, request.get_json())
        data = payload['data']

        if payload['operation'] == 'run':
            data = validate_or_abort(ContainersRunProps, data)
            data['detach'] = True

        if payload['operation'] == 'get':
            data = validate_or_abort(ContainersGetProps, data)

        if payload['operation'] == 'list':
            data = validate_or_abort(ContainersListProps, data)

        if payload['operation'] == 'prune':
            data = validate_or_abort(ContainersPruneProps, data)

        response = DockerEngine().run_container_operation(
            operation=payload['operation'], data=data)
        schema = ContainerObj if response else None
        return parse_data(schema, response) if response \
            else response_by_success(False)
Ejemplo n.º 12
0
 def put():
     data = validate_or_abort(ProvisionPlaybookPut, request.get_json())
     return response_by_success(Playbook().update(
         criteria={'name': data['name']}, data=data['data']))
Ejemplo n.º 13
0
 def delete():
     data = validate_or_abort(MachineSchemaDelete, request.get_json())
     return response_by_success(
         Machine().remove(criteria={'name': data['name']}), is_remove=True)
Ejemplo n.º 14
0
 def put():
     data = validate_or_abort(MachineSchemaPut, request.get_json())
     return response_by_success(Machine().update(
         criteria={'name': data['name']}, data=data['data']))
Ejemplo n.º 15
0
 def post():
     data = validate_or_abort(MachineSchema, request.get_json())
     return response_by_success(Machine().insert(data))
Ejemplo n.º 16
0
 def post():
     data = validate_or_abort(BasePlaybook, request.get_json())
     return response_by_success(Playbook().insert(data))
Ejemplo n.º 17
0
 def get():
     username = Login().get_username(request.headers['x-access-token'])
     user = User().find({'username': username})
     return parse_data(UserSchema, user.data) if user and user.data \
         else response_by_success(False)