Esempio n. 1
0
    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
Esempio n. 2
0
    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