Skip to content

Commit 4e23510

Browse files
committed
[fix] edit existing application
1 parent 6ec4392 commit 4e23510

File tree

3 files changed

+24
-12
lines changed

3 files changed

+24
-12
lines changed

source/soca/cluster_manager/web_interface/api/v1/applications/application.py

Lines changed: 5 additions & 2 deletions
Large diffs are not rendered by default.

source/soca/cluster_manager/web_interface/templates/admin/applications.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ <h2 class="mb-0">
229229
<br>
230230
{% if action == "edit" %}
231231
<form name="manageprofile_edit" id="manageprofile_edit" method="post"
232-
action="/admin/applications/create">
232+
action="/admin/applications/edit">
233233
<div class="form-group">
234234
<label for="profile_name">How do you want to name this
235235
application profile?</label>
@@ -334,7 +334,7 @@ <h2 class="mb-0">
334334
<h6 class="m-0 font-weight-bold text-primary">Edit an existing application</h6>
335335
</div>
336336
<div class="card-body">
337-
<form action="/admin/applications/edit" method="post">
337+
<form action="/admin/applications/edit" method="get">
338338
<div class="form-group col-md-6">
339339
<label for="walltime"> Select the application to edit</label>
340340
<select class="form-control" name='app' id="app">

source/soca/cluster_manager/web_interface/views/admin/applications.py

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,14 @@ def index():
6363
@login_required
6464
@admin_only
6565
def edit():
66-
_application_id = request.get("application_id", "")
66+
_application_id = request.args.get("app", "")
67+
try:
68+
_application_id = int(_application_id)
69+
except Exception as err:
70+
logger.error(f"Unable to parse application id due to {err}, verify if it's a valid integer")
71+
flash("Unable to edit application. See logs for additional details.")
72+
return redirect("/admin/applications")
73+
6774
logger.info(f"Edit application: {_application_id=}")
6875

6976
_list_all_applications = SocaHttpClient(
@@ -86,7 +93,7 @@ def edit():
8693
else:
8794
_application_profile = None
8895
for _app in _list_all_applications.get("message"):
89-
if _app.id == _application_id:
96+
if _app.get("id") == _application_id:
9097
_application_profile = _app
9198
break
9299

@@ -96,22 +103,22 @@ def edit():
96103
return redirect("/admin/applications")
97104
else:
98105
try:
99-
profile_form = base64.b64decode(_application_profile.profile_form).decode()
106+
profile_form = base64.b64decode(_application_profile.get("profile_form")).decode()
100107
except Exception as err:
101108
logger.error(f"Unable to decode profile_form due to {err}")
102109
flash("Unable to edit application. See logs for additional details.")
103110
return redirect("/admin/applications")
104111

105112
try:
106-
profile_job = base64.b64decode(_application_profile.profile_job).decode()
113+
profile_job = base64.b64decode(_application_profile.get("profile_job")).decode()
107114
profile_job = json.dumps(profile_job)[1:-1]
108115
except Exception as err:
109116
logger.error(f"Unable to decode profile_job due to {err}")
110117
flash("Unable to edit application. See logs for additional details.")
111118
return redirect("/admin/applications")
112119

113-
profile_interpreter = _application_profile.profile_interpreter
114-
profile_name = _application_profile.profile_name
120+
profile_interpreter = _application_profile.get("profile_interpreter")
121+
profile_name = _application_profile.get("profile_name")
115122

116123
return render_template(
117124
"admin/applications.html",
@@ -122,7 +129,7 @@ def edit():
122129
profile_name=profile_name,
123130
profile_interpreter=profile_interpreter,
124131
schedulers=get_schedulers(),
125-
application_profiles=_list_all_applications,
132+
application_profiles=_list_all_applications.get("message"),
126133
page="application",
127134
action="edit",
128135
)
@@ -158,6 +165,7 @@ def create_application():
158165
@login_required
159166
@admin_only
160167
def edit_application():
168+
logger.info(f"About to edit application {request.form.get('app_id', '')}")
161169
_update_application = SocaHttpClient(
162170
"/api/applications/application",
163171
headers={
@@ -171,7 +179,7 @@ def edit_application():
171179
"submit_job_interpreter": request.form.get("submit_job_interpreter", ""),
172180
"profile_name": request.form.get("profile_name", ""),
173181
"thumbnail_b64": request.form.get("thumbnail_b64", ""),
174-
"application_id": request.form.get("application_id", ""),
182+
"application_id": request.form.get("app_id", ""),
175183
}
176184
)
177185
flash(
@@ -185,6 +193,7 @@ def edit_application():
185193
@login_required
186194
@admin_only
187195
def delete_application():
196+
logger.info(f"About to delete application {request.form.get('application_id', '')}")
188197
_delete_application = SocaHttpClient(
189198
"/api/applications/application",
190199
headers={

0 commit comments

Comments
 (0)