def get_available_nws(self, auth,mode,node_id, op_level=None): result=[] if mode in ["edit_image_settings"]: result = available_nws else: # "PROVISION_VM", "EDIT_VM_CONFIG" nw_map = {} managed_node=NodeService().get_managed_node(auth,node_id) if mode in ["provision_vm" ,"provision_image"]: nw_map["Default"] = "$DEFAULT_BRIDGE" result.append(dict(value="$DEFAULT_BRIDGE",name="Default")) bridges = managed_node.get_bridge_info() site_id=None group_id = None #set the op_level none so that we can get all the networks created on the server (networks present in serverdeflinks table for that server) op_level=None for nw in self.nw_manager.get_defns(to_unicode(constants.NETWORK), site_id, group_id, node_id, op_level): bridge=None network = None if nw.ipv4_info and nw.ipv4_info.get("ip_network"): network = nw.ipv4_info.get("ip_network") if nw.bridge_info and nw.bridge_info.get("name"): bridge = nw.bridge_info.get("name") if bridge and network: desc = "%s (%s, %s)" % (nw.name, bridge, network) elif bridge: desc = "%s (%s)" % (nw.name, bridge,) elif network: desc = "%s (%s)" % (nw.name, network,) if nw.bridge_info and nw.bridge_info.get("name"): nw_map[desc] = nw.bridge_info.get("name") result.append(dict(value=nw.bridge_info.get("name"),name=desc)) if bridges is not None: for n in bridges.itervalues(): name = n["name"] if name not in nw_map.itervalues(): desc = name + " network" if n.get("network"): desc = "%s (%s,%s)" % (desc, name, n["network"]) nw_map[desc] = name result.append(dict(value=name,name=desc)) #init_combo(self.widgets.available_nw_combo,nw_map) return result
def get_all_known_bridges(self,auth,node_id,group_id,site_id, op_level=None): bridge_names = [] managed_node=NodeService().get_managed_node(auth,node_id) if managed_node is not None: bridges = managed_node.get_bridge_info() if bridges: bridge_names = bridge_names + bridges.keys() if self.nw_manager: # pool_id, node_id = get_ids_from_context(self.context) #we are passing group_id here for getting server pool level definitions defns = self.nw_manager.get_defns(to_unicode(constants.NETWORK), site_id, group_id, node_id, op_level) #check None here if defns is not None: for defn in defns: if defn.bridge_info and defn.bridge_info["name"]: n = defn.bridge_info["name"] if n not in bridge_names: bridge_names.append(n) return bridge_names