diff --git a/main.py b/main.py index a4682f7..dd746ee 100644 --- a/main.py +++ b/main.py @@ -77,9 +77,21 @@ def get_chartdata(tiller_ns, namespace, chart): info(f"Output from command:\n{output}") data = json.loads(output) for revision in data: + revision['chartName'] = chart revision["namespace"] = namespace revision["tiller_ns"] = tiller_ns return data +def chartRollback(revision, chart, tiller_ns) + command = "/usr/local/bin/helm --tiller-namespace " + tiller_ns + " rollback " + chart + revision # helm2 + info(f"Running command: {command}") + try: + output = check_output(command.split(" "), stderr=STDOUT).decode("utf-8") + except CalledProcessError as err: + error(err.output.decode("utf-8")) + raise err + info(f"Output from command:\n{output}") + return output + if __name__ == "__main__": app.run(host='0.0.0.0', port=3000, debug=True) diff --git a/routes/.kube_helm_routes.py.swp b/routes/.kube_helm_routes.py.swp new file mode 100644 index 0000000..9641b8a Binary files /dev/null and b/routes/.kube_helm_routes.py.swp differ diff --git a/routes/kube_helm_routes.py b/routes/kube_helm_routes.py index 2226d09..3cc2fce 100644 --- a/routes/kube_helm_routes.py +++ b/routes/kube_helm_routes.py @@ -1,6 +1,6 @@ from flask import render_template, request, jsonify from forms import deploySelectForm -from main import get_namespaces, get_charts, get_chartdata, get_tiller_namespaces +from main import get_namespaces, get_charts, get_chartdata, get_tiller_namespaces, chartRollback from . import routes from tables import chartVersionTable import json @@ -33,5 +33,5 @@ def namespaceLookup(tiller_ns, namespace): @routes.route('/deployChartRevision////', methods=['POST']) def deployChartRevision(revision, chart, namespace, tiller_ns): - charts = get_charts(tiller_ns, namespace) - return jsonify(charts) + rollback = chartRollback(revision, chart, tiller_ns) + return rollback diff --git a/tables.py b/tables.py index 9119f9b..b15ebcc 100644 --- a/tables.py +++ b/tables.py @@ -8,4 +8,4 @@ class chartVersionTable(Table): tiller_ns = Col('Tiiler Namespace') chart = Col('Chart Version') description = Col('Description') - deploy = ButtonCol('Deploy', 'routes.deployChartRevision', url_kwargs=dict(revision='revision', chart='chart', namespace='namespace', tiller_ns='tiller_ns'), button_attrs={"type" : "submit", "class" : "btn btn-danger"}) + deploy = ButtonCol('Deploy', 'routes.deployChartRevision', url_kwargs=dict(revision='revision', chart='chartName', namespace='namespace', tiller_ns='tiller_ns'), button_attrs={"type" : "submit", "class" : "btn btn-danger"})