コード例 #1
0
    def get_admin_ip(cls, node):
        """Getting admin ip and assign prefix from admin network."""
        network_manager = NetworkManager()
        admin_ip = network_manager.get_admin_ips_for_interfaces(
            node)[node.admin_interface.name]
        admin_ip = IPNetwork(admin_ip)

        # Assign prefix from admin network
        admin_net = IPNetwork(network_manager.get_admin_network().cidr)
        admin_ip.prefixlen = admin_net.prefixlen

        return str(admin_ip)
コード例 #2
0
    def get_admin_ip(cls, node):
        """Getting admin ip and assign prefix from admin network."""
        network_manager = NetworkManager()
        admin_ip = network_manager.get_admin_ips_for_interfaces(node)[
            node.admin_interface.name]
        admin_ip = IPNetwork(admin_ip)

        # Assign prefix from admin network
        admin_net = IPNetwork(network_manager.get_admin_network().cidr)
        admin_ip.prefixlen = admin_net.prefixlen

        return str(admin_ip)
コード例 #3
0
    def serialize_interfaces(cls, node):
        interfaces = {}
        interfaces_extra = {}
        net_manager = NetworkManager()
        admin_ips = net_manager.get_admin_ips_for_interfaces(node)
        admin_netmask = net_manager.get_admin_network_group().netmask

        for interface in node.meta.get('interfaces', []):
            name = interface['name']

            interfaces[name] = {
                'mac_address': interface['mac'],
                'static': '0',
                'netmask': admin_netmask,
                'ip_address': admin_ips[name]}

            # interfaces_extra field in cobbler ks_meta
            # means some extra data for network interfaces
            # configuration. It is used by cobbler snippet.
            # For example, cobbler interface model does not
            # have 'peerdns' field, but we need this field
            # to be configured. So we use interfaces_extra
            # branch in order to set this unsupported field.
            interfaces_extra[name] = {
                'peerdns': 'no',
                'onboot': 'no'}

            # We want node to be able to PXE boot via any of its
            # interfaces. That is why we add all discovered
            # interfaces into cobbler system. But we want
            # assignted fqdn to be resolved into one IP address
            # because we don't completely support multiinterface
            # configuration yet.
            if interface['mac'] == node.mac:
                interfaces[name]['dns_name'] = node.fqdn
                interfaces_extra[name]['onboot'] = 'yes'

        return {
            'interfaces': interfaces,
            'interfaces_extra': interfaces_extra}
コード例 #4
0
    def serialize_interfaces(cls, node):
        interfaces = {}
        interfaces_extra = {}
        net_manager = NetworkManager()
        admin_ips = net_manager.get_admin_ips_for_interfaces(node)
        admin_netmask = net_manager.get_admin_network_group().netmask

        for interface in node.meta.get('interfaces', []):
            name = interface['name']

            interfaces[name] = {
                'mac_address': interface['mac'],
                'static': '0',
                'netmask': admin_netmask,
                'ip_address': admin_ips[name]
            }

            # interfaces_extra field in cobbler ks_meta
            # means some extra data for network interfaces
            # configuration. It is used by cobbler snippet.
            # For example, cobbler interface model does not
            # have 'peerdns' field, but we need this field
            # to be configured. So we use interfaces_extra
            # branch in order to set this unsupported field.
            interfaces_extra[name] = {'peerdns': 'no', 'onboot': 'no'}

            # We want node to be able to PXE boot via any of its
            # interfaces. That is why we add all discovered
            # interfaces into cobbler system. But we want
            # assignted fqdn to be resolved into one IP address
            # because we don't completely support multiinterface
            # configuration yet.
            if interface['mac'] == node.mac:
                interfaces[name]['dns_name'] = node.fqdn
                interfaces_extra[name]['onboot'] = 'yes'

        return {'interfaces': interfaces, 'interfaces_extra': interfaces_extra}