aboutsummaryrefslogtreecommitdiff
blob: 21f0106ab3739f5542acc58aa021fa85bdf71916 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# (c) 2017, Alice Ferrazzi <alice.ferrazzi@gmail.com>
# Distributed under the terms of the GNU General Public License v2 or later


from flask import Flask
from flask_restful import Api
from elivepatch_server.resources import AgentInfo, dispatcher


def create_app():
    """
    Create server application
    RESTful api version 1.0
    """

    app = Flask(__name__, static_url_path="")
    api = Api(app)

    api.add_resource(AgentInfo.AgentAPI, '/elivepatch/api/',
                     endpoint='root')

    # get agento information
    api.add_resource(AgentInfo.AgentAPI, '/elivepatch/api/v1.0/agent',
                     endpoint='agent')

    # where to start the livepatch build
    api.add_resource(dispatcher.BuildLivePatch,
                     '/elivepatch/api/v1.0/build_livepatch',
                     endpoint='build_livepatch')

    # where to retrieve the live patch when ready
    api.add_resource(dispatcher.SendLivePatch,
                     '/elivepatch/api/v1.0/send_livepatch',
                     endpoint='send_livepatch')

    # where to receive the config file
    api.add_resource(dispatcher.GetFiles, '/elivepatch/api/v1.0/get_files',
                     endpoint='config')
    return app

if __name__ == '__main__':
    app = create_app()
    app.run(debug=True, host='0.0.0.0', threaded=True)