[Thu Jan 11 10:51:02 2018] [error] [client 127.0.0.1] ERROR: function supports_vpn_connections(bigint) does not exist\nLINE 85: CASE WHEN supports_vpn_connections(ap.id)\n ^\nHINT: No function matches the given name and argument types. You might need to add explicit type casts.: \n SELECT * FROM (\n \n SELECT\n ap.device_config_name, ap.apparent_ip, ap.notes, ap.mon_status_msg, ap.version, ap.secondary_version, ap.radio_serial, ap.device_serial, ap.syslocation, ap.ap_folder_id, ap.ap_group_id, ap.ap_whitelist_vc_name, ap.aruba_antenna_selection, ap.auto_detect_upstream_device, ap.controller_id, ap.device_config_ssid, ap.device_state, ap.domain, ap.firmware_job_id, ap.firmware_new_secondary_version, ap.firmware_new_version, ap.firmware_scheduled, ap.firmware_state, ap.first_discovered, ap.fqdn, ap.id, ap.is_remote_ap, ap.is_up, ap.is_wired, ap.lan_mac, ap.lan_vendor, ap.management_state, ap.management_status_message, ap.master_controller_id, ap.master_switch_id, ap.mesh_cluster, ap.mesh_portal_id, ap.monitor_only, ap.password, ap.planned_maintenance_mode, ap.search_lan_mac, ap.shared_secret, ap.single_signon_key, ap.specific_model, ap.state, ap.switch_role, ap.type, ap.upstream_device_id, ap.vlan_override_name, ap.standby_controller_id, ap.ap_include_1, ap.ap_include_2, ap.ap_include_3, ap.ap_include_4, ap.ap_include_5, ap.ap_include_6, ap.ap_include_7, ap.ap_include_8, ap.ap_include_9, ap.ap_include_10,\n (CASE\n WHEN ap.state = ? THEN ?\n WHEN ap.state = ? THEN ?\n WHEN ap.state = ? THEN\n CASE\n WHEN ap.planned_maintenance_mode > 0 THEN ?\n WHEN ap.is_up = 1 THEN ?\n ELSE ?\n END\n WHEN ap.state = ? THEN ?\n ELSE 'Unknown state arg: ' || ap.state\nEND)\n AS monitoring_status,\n ap_folder.name as ap_folder_name,\n pretty_ip_for_ap_id(ap.id) AS icmp_address,\n pretty_name_for_ap_id(ap.id) AS name,\n ap.device_config_aruba_ap_group_name as aruba_ap_group_name,\n ap.down_status_message as down_status_message,\n controller.is_up as controller_is_up, controller.ap_folder_id as controller_ap_folder_id,\n radio1.radio_mac AS radio_mac,\n radio1.desired_radio_ip,\n\n radio1.id AS radio_id_1,\n radio1.radio_mac AS radio_mac_1,\n radio1.search_radio_mac AS search_radio_mac_1,\n radio1.radio_type AS radio_type_1,\n radio1.device_config_channel AS display_channel_1,\n radio1.device_config_xmit_power AS xmit_power_1,\n radio1.device_config_xmit_power_reduction AS xmit_power_reduction_1,\n radio1.antenna_type AS antenna_type_1,\n radio1.device_config_enabled AS device_config_radio_enabled_1,\n\n radio2.id AS radio_id_2,\n radio2.radio_mac AS radio_mac_2,\n radio2.search_radio_mac AS search_radio_mac_2,\n radio2.radio_type AS radio_type_2,\n radio2.device_config_channel AS display_channel_2,\n radio2.device_config_xmit_power AS xmit_power_2,\n radio2.device_config_xmit_power_reduction AS xmit_power_reduction_2,\n radio2.antenna_type AS antenna_type_2,\n radio2.device_config_enabled AS device_config_radio_enabled_2,\n\n usb_interface.servicelevel AS usb_network_service_level,\n usb_interface.oper_status AS usb_oper_status,\n usb_interface.status AS usb_status,\n usb_interface.rssi AS usb_rssi,\n usb_interface.bandwidth AS usb_bandwidth,\n\n floor.id AS visualrf_floor_id,\n vrfi.id AS visualrf_idf_id,\n CASE\n WHEN (vrffa.floor_id IS NOT NULL OR vrfi.floor_id IS NOT NULL)\n THEN campus.name || ' > ' || build.name || ' > ' || floor.name\n ELSE '-'\n END AS visualrf_location,\n\npretty_name_for_ap_id(ap.controller_id) AS controller_name,\npretty_name_for_ap_id(ap.master_controller_id) AS master_controller_name,\npretty_name_for_ap_id(ap.master_switch_id) AS master_switch_name,\npretty_name_for_ap_id(ap.mesh_portal_id) AS mesh_portal_name,\npretty_name_for_ap_id(ap.upstream_device_id) AS upstream_device_name,\nCASE WHEN ap.upstream_device_id is not NULL\n THEN (\n SELECT subpath(device_path, 0, 1)\n FROM upstream_device\n WHERE device_path ~ ('*.' || ap.id)::lquery LIMIT 1\n )\n ELSE NULL\n END as root_cause_device_id,\nCASE WHEN ap.upstream_device_id is not NULL\n THEN (\n SELECT pretty_name_for_ap_id(ltree2text(subpath(device_path, 0, 1))::integer)\n FROM upstream_device\n WHERE device_path ~ ('*.' || ap.id)::lquery LIMIT 1\n )\n ELSE NULL\n END as root_cause_device_name,\nap.pretty_type AS type_string,\nfirmware_status_descr(ap.id, 'America/Costa_Rica') AS firmware_status,\n CASE WHEN supports_vpn_connections(ap.id)\n THEN (SELECT COUNT(*) from vpn_user where ap_id = ap.id)\n ELSE null\n END AS vpn_count,\n\n CASE WHEN ap.controls_aps = 1\n THEN (\n SELECT COUNT(*)\n FROM ap AS ap1\n WHERE controller_id = ap.id AND mon_status_msg != ?\n )\n ELSE NULL\n END AS total_thin_ap_count,\n\nupstream.is_up as upstream_device_is_up,\n(CASE WHEN ap.is_up = 0 THEN NULL ELSE (EXTRACT(epoch FROM current_timestamp) - ap_sysuptime.boot_time) * 100 END) AS ap_sysuptime,\n CASE\n WHEN (controller_sysuptime.last_contacted IS NOT NULL AND ap.is_up = 1)\n THEN controller_sysuptime.last_contacted\n ELSE ap_sysuptime.last_contacted\n END AS last_contacted,\n\n (\n (SELECT COUNT(*) FROM client WHERE ap_id = ap.id) +\n (SELECT COUNT(*) FROM client WHERE ap.controls_aps = 1 AND controller_id = ap.id\n )\n ) AS client_count,\n\ndiscovery_method(ap.id) AS discovery_method,\nap_stats.value as bandwidth,\npretty_name_for_ap_id(ap.standby_controller_id) AS standby_controller_name,\n ap_group.name as ap_group_name, ap_group.audit_enabled\n \n FROM ap\n \n left join ap_group on ap_group.id = ap.ap_group_id\n left join ap_folder on ap_folder.id = ap.ap_folder_id\n left join ap controller on ap.controller_id = controller.id\n LEFT JOIN ap_radio radio1 ON radio1.ap_id = ap.id AND radio1.radio_index = 1\n\n LEFT JOIN ap_radio radio2 ON radio2.ap_id = ap.id AND radio2.radio_index = 2\n\nLEFT JOIN usb_interface ON usb_interface.ap_id = ap.id\n LEFT JOIN visualrf.rack_component vrfrc ON vrfrc.id = CAST(ap.id AS text)\n LEFT JOIN visualrf.rack vrfr ON vrfr.id = vrfrc.rack_id\n LEFT JOIN visualrf.idf vrfi ON vrfi.id = vrfr.idf_id\n LEFT JOIN visualrf.floor_managed_device vrffa ON vrffa.managed_device_id = CAST(ap.id AS text)\n LEFT JOIN visualrf.floor floor ON vrffa.floor_id = floor.id or vrfi.floor_id = floor.id\n LEFT JOIN visualrf.building build ON floor.building_id = build.id\n LEFT JOIN visualrf.campus campus ON build.campus_id = campus.id\n\nLEFT JOIN ap upstream ON ap.upstream_device_id = upstream.id\nLEFT JOIN ap_sysuptime ON ap_sysuptime.ap_id = ap.id\nLEFT JOIN ap_sysuptime controller_sysuptime ON ap.controller_id = controller_sysuptime.ap_id\nleft join ap_stats on ap.id = ap_stats.ap_id and ap_stats.metric = 1\n \n ) sub_select\n WHERE id IN ('7')\n (0,Pending,5,Whitelist,1,Planned Down,Up,Down,3,Ignored,AP is no longer associated with controller) at /usr/local/airwave/lib/perl/Mercury/DB/View/QueryBuilder.pm line 182\n\tMercury::DB::View::QueryBuilder::get_all_with_args('Mercury::DB::View::APList', 'where', 'HASH(0x7f4b9c64a100)') called at /usr/local/airwave/lib/perl/Mercury/Handler/ListEdit/List.pm line 1390\n\tMercury::Handler::ListEdit::List::delete_ids('Mercury::Handler::APList::Unauthed=HASH(0x7f4b9bd99c60)', 'Mercury::Apache::Request=HASH(0x7f4b9c011298)') called at /usr/local/airwave/lib/perl/Mercury/Handler/AP/Utility.pm line 80\n\tMercury::Handler::AP::Utility::get_aps_from_delete_ids('Mercury::Handler::Unauthed::Actions::Ignore=HASH(0x7f4b9bfe5d48)', 'Mercury::Apache::Request=HASH(0x7f4b9c011298)') called at /usr/local/airwave/lib/perl/Mercury/Handler/Unauthed/Actions.pm line 368\n\tMercury::Handler::Unauthed::Actions::_execute('Mercury::Handler::Unauthed::Ac