@@ -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 )
0 commit comments