| |
@@ -0,0 +1,41 @@
|
| |
+ from flask import Flask, render_template
|
| |
+ from resallocserver.app import session_scope
|
| |
+ from resallocserver.logic import QResources
|
| |
+ from resalloc.helpers import load_config_file
|
| |
+
|
| |
+ app = Flask(__name__)
|
| |
+
|
| |
+
|
| |
+ @app.route('/resources')
|
| |
+ def up():
|
| |
+ with session_scope() as session:
|
| |
+ resources = QResources(session)
|
| |
+ pools = load_config_file("/etc/resallocserver/pools.yaml")
|
| |
+ resources_list = append_resources(resources.on())
|
| |
+ resources_in_use = {}
|
| |
+ for resource in resources_list:
|
| |
+ if not resource["ticket"]:
|
| |
+ continue
|
| |
+ if resource["pool"] not in resources_in_use.keys():
|
| |
+ resources_in_use[resource["pool"]] = 1
|
| |
+ else:
|
| |
+ resources_in_use[resource["pool"]] += 1
|
| |
+ information = {}
|
| |
+ for name, number in resources_in_use.items():
|
| |
+ information[name] = {"available": pools[name]["max"] - number, "max": pools[name]["max"],
|
| |
+ "ticket": number}
|
| |
+ return render_template('resources.html', information=information)
|
| |
+
|
| |
+
|
| |
+ def append_resources(resources):
|
| |
+ resources_list = []
|
| |
+ for resource in resources.all():
|
| |
+ resources_list.append(
|
| |
+ {'id': resource.id, 'name': resource.name, 'pool': resource.pool, 'tags': ', '.join(list(resource.tag_set)),
|
| |
+ 'status': resource.state, 'releases': resource.releases_counter,
|
| |
+ 'ticket': resource.ticket.id if resource.ticket else None})
|
| |
+ return resources_list
|
| |
+
|
| |
+
|
| |
+ if __name__ == '__main__':
|
| |
+ app.run(host="0.0.0.0")
|
| |
why "up"?