diff options
Diffstat (limited to 'scripts/vyos-popcon.pl')
-rw-r--r-- | scripts/vyos-popcon.pl | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/scripts/vyos-popcon.pl b/scripts/vyos-popcon.pl deleted file mode 100644 index eb27749f..00000000 --- a/scripts/vyos-popcon.pl +++ /dev/null @@ -1,155 +0,0 @@ -#!/usr/bin/env perl -# -# Module: vyos-popcon.pl -# Sends anonymous system information to a server -# -# Copyright (C) 2015 VyOS maintainers and contributors -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License version 2 as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - - -use lib "/opt/vyatta/share/perl5/"; - -use strict; -use warnings; -use File::Slurp; -use JSON::Any; -use LWP::UserAgent; -use Vyatta::Config; - -use Data::Dumper; - -my %data = (); -my $config = new Vyatta::Config(); -my $json = new JSON::Any(); - -my $uuid_file = "/config/auth/popcon.uuid"; -my $version_file = "/opt/vyatta/etc/version"; - -my $url = "http://popcon.vyos.net/submit"; - -sub send_to { - my $data = shift; - - my $ua = LWP::UserAgent->new; - $ua->agent("VyOS/popcon"); - - my $req = HTTP::Request->new(POST => $url); - $req->content_type('application/json'); - $req->content($data); - - my $res = $ua->request($req); - - if ($res->is_success) { - print $res->content; - } - else { - print $res->status_line, "\n"; - } -} - -sub get_system_id -{ - my $uuid = read_file($uuid_file); - $uuid =~ s/(.*)\s/$1/; - return $uuid; -} - -sub get_version -{ - my $contents = read_file($version_file); - my ($version) = $contents =~ /Version\:\s*VyOS\s+(.*)\s/; - return $version; -} - -sub get_arch -{ - my $arch = `uname -m`; - $arch =~ s/(.*)\s/$1/; - return $arch; -} - -sub get_cpus -{ - my $output = `lscpu`; - my ($cpus) = $output =~ /CPU\(s\)\:\s+(.*)\s/; - return $cpus; -} - -sub get_ram -{ - my $output = read_file('/proc/meminfo'); - my ($ram) = $output =~ /MemTotal:\s+(\d+)\s/; - $ram = int($ram / 1024); # megabytes - return $ram; -} - -sub get_features -{ - my @features = (); - push(@features, "bgp") if $config->exists("protocols bgp"); - push(@features, "ospf") if $config->exists("protocols ospf"); - push(@features, "ospfv3") if $config->exists("protocols ospfv3"); - push(@features, "rip") if $config->exists("protocols rip"); - push(@features, "ripng") if $config->exists("protocols ripng"); - push(@features, "nat") if $config->exists("nat"); - push(@features, "webproxy") if $config->exists("service webproxy"); - push(@features, "url-filtering") if $config->exists("service webproxy url-filtering"); - push(@features, "dns-forwarding") if $config->exists("service dns forwarding"); - push(@features, "dhcp-server") if $config->exists("service dhcp-server"); - push(@features, "dhcp-relay") if $config->exists("service dhcp-relay"); - push(@features, "dhcpv6-server") if $config->exists("service dhcpv6-server"); - push(@features, "dhcpv6-relay") if $config->exists("service dhcpv6-relay"); - push(@features, "netflow") if $config->exists("system flow-accounting netflow"); - push(@features, "sflow") if $config->exists("system flow-accounting sflow"); - push(@features, "snmp") if $config->exists("service snmp"); - push(@features, "lldp") if $config->exists("service lldp"); - push(@features, "telnet") if $config->exists("service telnet"); - push(@features, "pppoe-server") if $config->exists("service pppoe-server"); - push(@features, "ipsec") if $config->exists("vpn ipsec site-to-site"); - push(@features, "dmvpn") if ($config->exists("vpn ipsec profile") && $config->exists("protocols nhrp")); - push(@features, "l2tp") if $config->exists("vpn l2tp remote-access"); - push(@features, "pptp") if $config->exists("vpn pptp remote-access"); - push(@features, "l2tpv3") if $config->exists("interfaces l2tpv3"); - push(@features, "openvpn") if $config->exists("interfaces openvpn"); - push(@features, "vxlan") if $config->exists("interfaces vxlan"); - push(@features, "vti") if $config->exists("interfaces vti"); - push(@features, "qos") if $config->exists("traffic-policy"); - push(@features, "bonding") if $config->exists("interfaces bonding"); - push(@features, "bridge") if $config->exists("interfaces bridge"); - push(@features, "tunnel") if $config->exists("interfaces tunnel"); - push(@features, "cluster") if $config->exists("cluster"); - push(@features, "load-balancing") if $config->exists("load-balancing wan"); - push(@features, "firewall") if $config->exists("firewall name"); - push(@features, "ipv6-firewall") if $config->exists("firewall ipv6-name"); - push(@features, "zone") if $config->exists("zone-policy"); - - return (join ",", @features); -} - -if (! -f $uuid_file) -{ - # Generate the UUID file if it's missing - system("uuid > $uuid_file"); -} - -# Prepare the data -$data{"uuid"} = get_system_id(); -$data{"version"} = get_version(); -$data{"arch"} = get_arch(); -$data{"cpus"} = get_cpus(); -$data{"ram"} = get_ram(); -$data{"features"} = get_features(); - -send_to($json->objToJson(\%data)); - |