@classmethod
    def get_ifaces_from_template_on_undeployed_node(cls, node, node_json):
        bonds = collections.defaultdict(list)
        ifaces = collections.defaultdict(set)

        for transformation, vlan_ids in cls._get_transformations(node):
            if transformation['action'] == 'add-port':
                cls._add_interface(ifaces, transformation['name'], vlan_ids)
            elif transformation['action'] == 'add-bond':
                if transformation.get('mode') == consts.BOND_MODES.l_802_3ad:
                    node_json['excluded_networks'].append(
                        transformation['name'])
                else:
                    for ifname in sorted(transformation['interfaces']):
                        ifname = cls._add_interface(ifaces, ifname, vlan_ids)
                        bond_name = transformation['name']
                        bonds[bond_name].append(ifname)

        for if_name, vlans in six.iteritems(ifaces):
            node_json['networks'].append({
                'iface': if_name,
                'vlans': sorted(vlans)
            })

        if bonds:
            node_json['bonds'] = bonds
Retrieves list of network interfaces on the undeployed node
dataset/ETHPy150Open openstack/fuel-web/nailgun/nailgun/task/task.py/VerifyNetworksForTemplateMixin.get_ifaces_from_template_on_undeployed_node