Skip to content

Commit 917fd35

Browse files
authored
Merge pull request #137 from grycap/devel
Devel
2 parents 5b332de + e52a550 commit 917fd35

4 files changed

Lines changed: 471 additions & 3 deletions

File tree

app/__init__.py

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,9 @@ def showvminfo():
218218
flash("Error retrieving VM info: \n" + response.text, 'error')
219219
else:
220220
app.logger.debug("VM Info: %s" % response.text)
221-
vminfo = utils.format_json_radl(response.json()["radl"])
221+
radl_json = response.json()["radl"]
222+
outports = utils.get_out_ports(radl_json)
223+
vminfo = utils.format_json_radl(radl_json)
222224
if "cpu.arch" in vminfo:
223225
del vminfo["cpu.arch"]
224226
if "state" in vminfo:
@@ -280,7 +282,21 @@ def showvminfo():
280282

281283
cont += 1
282284

283-
return render_template('vminfo.html', infid=infid, vmid=vmid, vminfo=vminfo,
285+
str_outports = ""
286+
for port in outports:
287+
str_outports += Markup('<i class="fas fa-project-diagram"></i> <span class="badge '
288+
'badge-secondary">%s</span>' % port.get_remote_port())
289+
if not port.is_range():
290+
if port.get_remote_port() != port.get_local_port():
291+
str_outports += Markup(' <i class="fas fa-long-arrow-alt-right">'
292+
'</i> <span class="badge badge-secondary">%s</span>' %
293+
port.get_local_port())
294+
else:
295+
str_outports += Markup(' : </i> <span class="badge badge-secondary">%s</span>' %
296+
port.get_local_port())
297+
str_outports += Markup('<br/>')
298+
299+
return render_template('vminfo.html', infid=infid, vmid=vmid, vminfo=vminfo, outports=str_outports,
284300
state=state, nets=nets, deployment=deployment, disks=disks)
285301

286302
@app.route('/managevm/<op>/<infid>/<vmid>', methods=['POST'])
@@ -529,6 +545,15 @@ def add_auth_to_template(template, auth_data):
529545

530546
return template
531547

548+
def add_record_name_to_template(template):
549+
# Add a random name in the DNS record name
550+
551+
for node in list(template['topology_template']['node_templates'].values()):
552+
if node["type"] == "tosca.nodes.ec3.DNSRegistry":
553+
node["properties"]["record_name"] = utils.generate_random_name()
554+
555+
return template
556+
532557
def set_inputs_to_template(template, inputs):
533558
# Add the image to all compute nodes
534559

@@ -600,6 +625,9 @@ def createdep():
600625

601626
template = add_auth_to_template(template, auth_data)
602627

628+
# Specially added for OSCAR clusters
629+
template = add_record_name_to_template(template)
630+
603631
inputs = {k: v for (k, v) in form_data.items() if not k.startswith("extra_opts.")}
604632

605633
app.logger.debug("Parameters: " + json.dumps(inputs))
@@ -787,6 +815,10 @@ def manage_inf(infid=None, op=None):
787815
force = False
788816
if 'force' in form_data and form_data['force'] != "0":
789817
force = True
818+
# Specially added for OSCAR clusters
819+
success, msg = utils.delete_dns_record(infid, im, auth_data)
820+
if not success:
821+
app.logger.error('Error deleting DNS record: %s', (msg))
790822
response = im.delete_inf(infid, force, auth_data)
791823
if not response.ok:
792824
raise Exception(response.text)

app/templates/vminfo.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,16 @@ <h4 class="font-weight-bold text-primary">VM ID {{ vmid }}:</h4>
8686
{{ nets }}
8787
</td>
8888
</tr>
89+
{% if outports %}
90+
<tr>
91+
<th>
92+
Ports:
93+
</th>
94+
<td>
95+
{{ outports }}
96+
</td>
97+
</tr>
98+
{% endif %}
8999
<tr>
90100
<th>
91101
HW Features:

0 commit comments

Comments
 (0)