def add_port_mapping(self,username,clustername,node_name,node_ip,port,quota):
port_mapping_count = self.count_port_mapping(username)
if port_mapping_count >= int(quota['portmapping']):
return [False, 'Port mapping quota exceed.']
[status, clusterinfo] = self.get_clusterinfo(clustername, username)
host_port = 0
if self.distributedgw == 'True':
worker = self.nodemgr.ip_to_rpc(clusterinfo['proxy_server_ip'])
[success, host_port] = worker.acquire_port_mapping(node_name, node_ip, port)
else:
[success, host_port] = portcontrol.acquire_port_mapping(node_name, node_ip, port)
if not success:
return [False, host_port]
if 'port_mapping' not in clusterinfo.keys():
clusterinfo['port_mapping'] = []
clusterinfo['port_mapping'].append({'node_name':node_name, 'node_ip':node_ip, 'node_port':port, 'host_port':host_port})
clusterfile = open(self.fspath + "/global/users/" + username + "/clusters/" + clustername, 'w')
clusterfile.write(json.dumps(clusterinfo))
clusterfile.close()
return [True, clusterinfo]
评论列表
文章目录