blob: 1c7f02eedd265543722530df9b38f61f9ac85b05 [file] [log] [blame]
okozachenkoaf073202021-04-06 16:56:51 +03001from flask import Flask
Susanta Gautam5442ea72021-05-05 13:25:18 +05452from flask import Response
okozachenkoaf073202021-04-06 16:56:51 +03003from flask import request
Susanta Gautam5442ea72021-05-05 13:25:18 +05454from staffeln import objects
5from staffeln.common import context
Susanta Gautamb6f3bea2021-05-07 20:55:39 +05456from staffeln.common import openstack
Susanta Gautam5442ea72021-05-05 13:25:18 +05457from oslo_log import log
okozachenkoaf073202021-04-06 16:56:51 +03008
9
Susanta Gautam5442ea72021-05-05 13:25:18 +054510ctx = context.make_context()
okozachenkoaf073202021-04-06 16:56:51 +030011app = Flask(__name__)
12
Susanta Gautam5442ea72021-05-05 13:25:18 +054513LOG = log.getLogger(__name__)
okozachenkoaf073202021-04-06 16:56:51 +030014
okozachenkoaf073202021-04-06 16:56:51 +030015
Susanta Gautamb6f3bea2021-05-07 20:55:39 +054516@app.route("/v1/backup", methods=["POST"])
Susanta Gautam5442ea72021-05-05 13:25:18 +054517def backup_id():
Susanta Gautamb6f3bea2021-05-07 20:55:39 +054518
19 current_user_id = openstack.get_user_id()
Susanta Gautam5442ea72021-05-05 13:25:18 +054520
21 backup_id = request.args["backup_id"]
Susanta Gautamb6f3bea2021-05-07 20:55:39 +054522 user_id = request.args["user_id"]
23
24 if backup_id is None or user_id is None:
25 # Return error if the backup_id argument is not provided.
26 return Response(
27 "Error: backup_id or user_id is missing.", status=403, mimetype="text/plain"
28 )
29
30 if current_user_id != user_id:
31 return Response("False", status=401, mimetype="text/plain")
32
Susanta Gautam5442ea72021-05-05 13:25:18 +054533 # Retrive the backup object from backup_data table with matching backup_id.
Susanta Gautam38e8d032021-05-05 14:04:54 +054534 backup = objects.Volume.get_backup_by_backup_id(ctx, backup_id)
Susanta Gautam5442ea72021-05-05 13:25:18 +054535 # backup_info is None when there is no entry of the backup id in backup_table.
Susanta Gautam38e8d032021-05-05 14:04:54 +054536 # So the backup should not be the automated backup.
37 if backup is None:
Susanta Gautam5442ea72021-05-05 13:25:18 +054538 return Response(
39 "True",
40 status=200,
41 mimetype="text/plain",
42 )
Susanta Gautam5442ea72021-05-05 13:25:18 +054543 else:
Susanta Gautamb6f3bea2021-05-07 20:55:39 +054544 return Response("False", status=401, mimetype="text/plain")
Susanta Gautam5442ea72021-05-05 13:25:18 +054545
okozachenkob8f9e2e2021-04-07 20:02:42 +030046
47def run(host, port, ssl_context):
48 app.run(host=host, port=port, ssl_context=ssl_context)