コード例 #1
0
ファイル: ccs_link.py プロジェクト: libzz/amiral
def getInterfaceLink(session_id, interface_id):
    """Returns a link object for the link specified for the interface"""
    from crcnetd.modules.ccs_interface import ccs_interface

    interface = ccs_interface(session_id, interface_id)

    return ccs_link(session_id, interface["link_id"])
コード例 #2
0
ファイル: ccs_host.py プロジェクト: libzz/amiral
    def getTemplateVariables(self):
        """Returns a dictionary containing template variables.

        Template variables contain information about this host that may be
        used in templates. This function attempts to be as comprehensive as
        possible in returning information about the host.

        WARNING: The returned dictionary could be very large!
        """
        global _kernels
        from ccs_interface import ccs_interface, INTERFACE_TYPE_ALIAS
        variables = {}
        
        # Include basic properties
        variables.update(filter_keys(self._properties))
        
        # Get interface information
        interfaces = self.getInterfaces()
        ilist = {}
        btargets = {}
        aliases = {}
        for n,iface in interfaces.items():
            if iface["interface_id"] == "" or iface["interface_id"] is None:
                continue
            niface = ccs_interface(self._session_id, \
                    iface["interface_id"])
            ifacevars = niface.getTemplateVariables()
            # Catch aliased interfaces here and store for later processing
            if iface["interface_type"] == INTERFACE_TYPE_ALIAS:
                if iface["raw_interface"] not in aliases.keys():
                    aliases[iface["raw_interface"]] = []
                aliases[iface["raw_interface"]].append(ifacevars)
                continue
            ifacevars["aliases"] = []
            # Handle bridge interface name resolution
            ifacevars["bridge_with"] = []
            ifacevars["bridge_interface_name"] = ""
            if ifacevars["bridge_interface"]!="" and \
                    ifacevars["bridge_interface"]!=-1:
                bi = ifacevars["bridge_interface"]
                bt = ccs_interface(self._session_id, bi)
                bn = bt["name"]
                ifacevars["bridge_interface_name"] = bn                        
                if bn in btargets.keys():
                    btargets[bn].append(iface["name"])
                else:
                    btargets[bn] = [iface["name"]]
            # Store interface
            ilist[iface["name"]] = ifacevars

        # Setup bridge targets
        for ifn,iflist in btargets.items():
            ilist[ifn]["bridge_with"] = iflist
            ilist[ifn]["bridge_interface_name"] = ifn
        
        # Setup aliases
        for n,iface in interfaces.items():
            if iface["interface_id"] not in aliases.keys():
                continue
            ilist[iface["name"]]["aliases"].extend( \
                    aliases[iface["interface_id"]])
        
        variables["interfaces"] = ilist

        # Output kernel name information
        kid = variables["kernel_id"]
        variables["kernel_name"] = "%s%s" % \
                (_kernels[kid]["upstream_release"], \
                _kernels[kid]["local_version"])

        # Get service information
        services = self.getServices()
        slist = {}
        for service in services:
            nservice = getServiceInstance(self._session_id, \
                    service["service_name"])
            slist[service["service_name"]] = \
                    nservice.getTemplateVariables(self.host_id)
        variables["service"] = slist
          
        return variables