def _get_vm_network_data(self, vm, reserved_networks, ip_regex, wait_for_ip, logger): network_interfaces = [] if wait_for_ip == 'True': primary_ip = self._get_primary_ip(vm, ip_regex, logger) else: primary_ip = None net_devices = [ d for d in vm.config.hardware.device if isinstance(d, vim.vm.device.VirtualEthernetCard) ] for device in net_devices: network = VNicService.get_network_by_device( vm, device, self.pyvmomi_service, logger) vlan_id = self._convert_vlan_id_to_str( VNicService.get_network_vlan_id(network)) private_ip = self._get_ip_by_device(vm, device) if vlan_id and (network.name.startswith('QS_') or network.name in reserved_networks): is_primary = private_ip and primary_ip == private_ip is_predefined = network.name in reserved_networks network_data = [ VmDetailsProperty(key='IP', value=private_ip), VmDetailsProperty(key='MAC Address', value=device.macAddress), VmDetailsProperty(key='Network Adapter', value=device.deviceInfo.label), VmDetailsProperty(key='Port Group Name', value=network.name) ] current_interface = VmDetailsNetworkInterface( interfaceId=device.macAddress, networkId=vlan_id, isPrimary=is_primary, isPredefined=is_predefined, networkData=network_data, privateIpAddress=private_ip) network_interfaces.append(current_interface) return network_interfaces