123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- from flask import jsonify, request
- import requests
- from lxconsole import db
- from lxconsole.models import Server
- from flask_login import login_required
- from lxconsole.api.access_controls import privilege_check
- def get_client_crt():
- return 'certs/client.crt'
- def get_client_key():
- return 'certs/client.key'
- @login_required
- def api_network_zones_endpoint(endpoint):
- if not privilege_check(endpoint, request.args.get('id')):
- return jsonify({'data': [], 'metadata':[], 'error': 'not authorized', 'error_code': 403})
- if endpoint == 'add_network_zone':
- id = request.args.get('id')
- project = request.args.get('project')
- server = Server.query.filter_by(id=id).first()
- url = 'https://' + server.addr + ':' + str(server.port) + '/1.0/network-zones?project=' + project
- client_cert = get_client_crt()
- client_key = get_client_key()
- if request.form.get('json'):
- data = request.form.get('json')
- results = requests.post(url, verify=server.ssl_verify, cert=(client_cert, client_key), data=data)
- return jsonify(results.json())
- data = {}
- data.update({'name': request.form.get('name')})
- data.update({'description': request.form.get('description')})
- results = requests.post(url, verify=server.ssl_verify, cert=(client_cert, client_key), json=data)
-
- return jsonify(results.json())
- if endpoint == 'delete_network_zone':
- id = request.args.get('id')
- project = request.args.get('project')
- name = request.form.get('name')
- server = Server.query.filter_by(id=id).first()
- url = 'https://' + server.addr + ':' + str(server.port) + '/1.0/network-zones/' + name + '?project=' + project
- client_cert = get_client_crt()
- client_key = get_client_key()
- results = requests.delete(url, verify=server.ssl_verify, cert=(client_cert, client_key))
- return jsonify(results.json())
-
- if endpoint == 'list_network_zones':
- id = request.args.get('id')
- project = request.args.get('project')
- server = Server.query.filter_by(id=id).first()
- recursion = request.args.get('recursion')
- if recursion == '1':
- url = 'https://' + server.addr + ':' + str(server.port) + '/1.0/network-zones?recursion=1&project=' + project
- else:
- url = 'https://' + server.addr + ':' + str(server.port) + '/1.0/network-zones?project=' + project
- client_cert = get_client_crt()
- client_key = get_client_key()
- results = requests.get(url, verify=server.ssl_verify, cert=(client_cert, client_key))
- return jsonify(results.json())
-
- if endpoint == 'load_network_zone':
- id = request.args.get('id')
- project = request.args.get('project')
- name = request.form.get('name')
- server = Server.query.filter_by(id=id).first()
- url = 'https://' + server.addr + ':' + str(server.port) + '/1.0/network-zones/' + name + '?project=' + project
- client_cert = get_client_crt()
- client_key = get_client_key()
- results = requests.get(url, verify=server.ssl_verify, cert=(client_cert, client_key))
- return jsonify(results.json())
-
- if endpoint == 'update_network_zone':
- id = request.args.get('id')
- project = request.args.get('project')
- name = request.args.get('name')
- server = Server.query.filter_by(id=id).first()
- url = 'https://' + server.addr + ':' + str(server.port) + '/1.0/network-zones/' + name + '?project=' + project
- client_cert = get_client_crt()
- client_key = get_client_key()
- if request.form.get('json'):
- data = request.form.get('json')
- results = requests.put(url, verify=server.ssl_verify, cert=(client_cert, client_key), data=data)
- return jsonify(results.json())
- if request.form.get('name'):
- data = {}
- data.update({'name': request.form.get('name')})
- results = requests.post(url, verify=server.ssl_verify, cert=(client_cert, client_key), json=data)
- return jsonify(results.json())
- return False
-
|