Commit 898997c0 authored by Leigh B Stoller's avatar Leigh B Stoller

I guess we are done testing snmpit_test! It is now the one

true *snmpit*, all others are imposters and have been shot.

The snmpit_test directory moved to snmpit. snmpit_old is gone.
parent 87eed168
......@@ -3,7 +3,7 @@
# Generated by GNU Autoconf 2.69.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
# Copyright (C) 1992-1996, 1998-2012, 2016 Free Software Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
......@@ -6873,6 +6873,18 @@ else
PROTOGENI_URL="https://$PROTOGENI_RPCNAME:$PROTOGENI_RPCPORT/protogeni/xmlrpc"
fi
#
# Check to see if snmpit is a plain file, delete it if so. It is now
# a directory. This only matters when reconfiguring an existing tree.
#
if test -f "tbsetup/snmpit"; then
echo "Removing old snmpit file, now a directory";
/bin/rm -f tbsetup/snmpit
if test $? -ne 0; then
as_fn_error $? "Cannot remove old tbsetup/snmpit file" "$LINENO" 5;
fi
fi
#
# Determine the timezone (stupidity in PHP5, see apache/php.ini)
#
......@@ -6951,8 +6963,7 @@ outfiles="$outfiles Makeconf GNUmakefile \
backend/editnodetype backend/editsitevars backend/newimageid \
backend/editgroup backend/newimageid_ez \
tbsetup/GNUmakefile tbsetup/console_setup tbsetup/spewlogfile \
tbsetup/snmpit_test/GNUmakefile \
tbsetup/snmpit_old/GNUmakefile \
tbsetup/snmpit/GNUmakefile \
tbsetup/spewrpmtar tbsetup/gentopofile tbsetup/power_sgmote.pm \
tbsetup/console_reset tbsetup/bwconfig tbsetup/power_rpc27.pm \
tbsetup/power_mail.pm tbsetup/power_whol.pm \
......
......@@ -1209,6 +1209,18 @@ else
PROTOGENI_URL="https://$PROTOGENI_RPCNAME:$PROTOGENI_RPCPORT/protogeni/xmlrpc"
fi
#
# Check to see if snmpit is a plain file, delete it if so. It is now
# a directory. This only matters when reconfiguring an existing tree.
#
if test -f "tbsetup/snmpit"; then
echo "Removing old snmpit file, now a directory";
/bin/rm -f tbsetup/snmpit
if test $? -ne 0; then
AC_MSG_ERROR([Cannot remove old tbsetup/snmpit file]);
fi
fi
#
# Determine the timezone (stupidity in PHP5, see apache/php.ini)
#
......@@ -1285,8 +1297,7 @@ outfiles="$outfiles Makeconf GNUmakefile \
backend/editnodetype backend/editsitevars backend/newimageid \
backend/editgroup backend/newimageid_ez \
tbsetup/GNUmakefile tbsetup/console_setup tbsetup/spewlogfile \
tbsetup/snmpit_test/GNUmakefile \
tbsetup/snmpit_old/GNUmakefile \
tbsetup/snmpit/GNUmakefile \
tbsetup/spewrpmtar tbsetup/gentopofile tbsetup/power_sgmote.pm \
tbsetup/console_reset tbsetup/bwconfig tbsetup/power_rpc27.pm \
tbsetup/power_mail.pm tbsetup/power_whol.pm \
......
......@@ -5769,7 +5769,7 @@ sub SyncPortLans($)
}
print "Syncing target vlan $idx in $experiment\n";
mysystem("$TB/bin/snmpit_test -f --redirect-err -X $pid $eid $idx");
mysystem("$TB/bin/snmpit -f --redirect-err -X $pid $eid $idx");
if ($?) {
$portvlan->Unlock();
return -1;
......@@ -6012,7 +6012,7 @@ sub ClearPortLans($;$@)
my $lanid = $portvlan->lanid();
print "Syncing target vlan $lanid in $experiment\n";
mysystem("$TB/bin/snmpit_test -f --redirect-err -X $pid $eid $lanid");
mysystem("$TB/bin/snmpit -f --redirect-err -X $pid $eid $lanid");
if ($?) {
$portvlan->Unlock()
if (!$nolock);
......
......@@ -456,7 +456,7 @@ Setting up an InstaGeni Rack. First, we need the following info:
Now create and share the openflow vlan:
boss> wap snmpit_test --vlan_tag=1750 -m mesoscale-openflow \
boss> wap snmpit --vlan_tag=1750 -m mesoscale-openflow \
emulab-ops openflow-vlans interconnect-geni-core:eth0
boss> wap sharevlan -f -o emulab-ops,openflow-vlans \
mesoscale-openflow mesoscale-openflow
......
......@@ -82,7 +82,7 @@ my $EVENTSYS = "$TB/bin/eventsys_control";
my $VNODESETUP = "$TB/sbin/vnode_setup";
my $POWER = "$TB/bin/power";
my $OSLOAD = "$TB/bin/os_load";
my $SNMPIT = "$TB/bin/snmpit_test";
my $SNMPIT = "$TB/bin/snmpit";
my $NAMEDSETUP = "$TB/sbin/named_setup";
my $EXPORTS_SETUP = "$TB/sbin/exports_setup";
my $GENTOPOFILE = "$TB/libexec/gentopofile";
......
......@@ -109,7 +109,7 @@ my $IPASSIGN = "$TB/libexec/ipassign_wrapper";
my $TARFILES_SETUP = "$TB/bin/tarfiles_setup";
my $MAPPER = "$TB/bin/mapper";
my $VTOPGEN = "$TB/bin/vtopgen";
my $SNMPIT = "$TB/bin/snmpit_test";
my $SNMPIT = "$TB/bin/snmpit";
my $RESERVEVLANS = "$TB/sbin/protogeni/reservevlans";
my $NEWGROUP = "$TB/bin/newgroup";
my $NEWPROJECT = "$TB/sbin/newproj";
......
#
# Copyright (c) 2000-2015 University of Utah and the Flux Group.
# Copyright (c) 2000-2016 University of Utah and the Flux Group.
#
# {{{EMULAB-LICENSE
#
......@@ -35,17 +35,17 @@ SYSTEM := $(shell uname -s)
include $(OBJDIR)/Makeconf
SUBDIRS = checkpass ns2ir nseparse checkup template_cvsroot \
snmpit_test snmpit_old
snmpit
ifeq ($(NSVERIFY),1)
SUBDIRS += nsverify
endif
BIN_STUFF = power snmpit tbend tbprerun tbreport \
BIN_STUFF = power tbend tbprerun tbreport \
os_load endexp batchexp swapexp \
node_reboot nscheck node_update savelogs node_control \
checkports eventsys_control os_select tbrestart \
tbswap nseswap tarfiles_setup node_history tbrsync \
pxe_select portstats \
pxe_select \
archive_control template_create \
template_swapin template_swapout template_graph \
template_exprun template_delete template_metadata \
......@@ -172,11 +172,8 @@ checkpass:
ns2ir:
@$(MAKE) -C ns2ir all
snmpit_test:
@$(MAKE) -C snmpit_test all
snmpit_old:
@$(MAKE) -C snmpit_old all
snmpit:
@$(MAKE) -C snmpit all
nsverify:
@$(MAKE) -C nsverify all
......@@ -232,8 +229,7 @@ ifeq ($(IPASSIGN),Yes)
@$(MAKE) -C ipassign install
endif
@$(MAKE) -C checkup install
@$(MAKE) -C snmpit_test install
@$(MAKE) -C snmpit_old install
@$(MAKE) -C snmpit install
script-install: $(addprefix $(INSTALL_BINDIR)/, $(BIN_STUFF)) \
$(addprefix $(INSTALL_SBINDIR)/, $(SBIN_STUFF)) \
......@@ -344,8 +340,7 @@ subdir-clean:
@$(MAKE) -C plab clean
@$(MAKE) -C ipassign clean
@$(MAKE) -C checkup clean
@$(MAKE) -C snmpit_test clean
@$(MAKE) -C snmpit_old clean
@$(MAKE) -C snmpit clean
distclean: subdir-distclean
......@@ -357,8 +352,7 @@ subdir-distclean:
@$(MAKE) -C plab distclean
@$(MAKE) -C ipassign distclean
@$(MAKE) -C checkup distclean
@$(MAKE) -C snmpit_test distclean
@$(MAKE) -C snmpit_old distclean
@$(MAKE) -C snmpit distclean
#
# XXX Create non .tcl files.
......
#!/usr/bin/perl -w
#
# Copyright (c) 2000-2012 University of Utah and the Flux Group.
# Copyright (c) 2000-2016 University of Utah and the Flux Group.
#
# {{{EMULAB-LICENSE
#
......@@ -66,7 +66,7 @@ use Experiment;
use User;
# Optional alternate version of libraries.
use lib '@prefix@/lib/snmpit_test';
use lib '@prefix@/lib/snmpit';
use snmpit_lib;
# The set of OIDs we care about
......
#!/usr/bin/perl -w
#
# Copyright (c) 2000-2012 University of Utah and the Flux Group.
#
# {{{EMULAB-LGPL
#
# This file is part of the Emulab network testbed software.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or (at
# your option) any later version.
#
# This file 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 Lesser General Public
# License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this file. If not, see <http://www.gnu.org/licenses/>.
#
# }}}
#
# This now a frontend to run the proper version.
#
use English;
use Getopt::Long;
use strict;
#
# Configure variables
#
my $TB = '@prefix@';
# This is all we need for a front end.
use lib '@prefix@/lib';
use User;
use libtestbed;
use EmulabFeatures;
#
# See if we use the alternate version of snmpit.
#
my $this_user;
if ($UID) {
$this_user = User->ThisUser();
if (! defined($this_user)) {
die("*** $0:\n".
" You ($UID) do not exist!\n");
}
}
# Lets not bother (or worry) people.
$EmulabFeatures::verbose = 0;
if (EmulabFeatures->FeatureEnabled("OldSnmpit", $this_user, undef, undef)) {
my $newpath = "$TB/lib/snmpit_old/portstats";
print STDERR "Invoking alternate portstats from $newpath\n";
exec $newpath, @ARGV;
die("*** $0:\n".
" Could not exec $newpath: $!");
}
my $newpath = "$TB/lib/snmpit_test/portstats";
exec $newpath, @ARGV;
die("*** $0:\n".
" Could not exec $newpath: $!");
#!/usr/bin/perl -w
#
# Copyright (c) 2000-2012 University of Utah and the Flux Group.
#
# {{{EMULAB-LGPL
#
# This file is part of the Emulab network testbed software.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or (at
# your option) any later version.
#
# This file 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 Lesser General Public
# License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this file. If not, see <http://www.gnu.org/licenses/>.
#
# }}}
#
# This now a frontend to run the proper version.
#
use English;
use Getopt::Long;
use strict;
#
# Configure variables
#
my $TB = '@prefix@';
# This is all we need for a front end.
use lib '@prefix@/lib';
use User;
use libtestbed;
use EmulabFeatures;
#
# See if we use the alternate version of snmpit.
#
my $this_user;
if ($UID) {
$this_user = User->ThisUser();
if (! defined($this_user)) {
die("*** $0:\n".
" You ($UID) do not exist!\n");
}
}
# Lets not bother (or worry) people.
$EmulabFeatures::verbose = 0;
if (EmulabFeatures->FeatureEnabled("OldSnmpit", $this_user, undef, undef)) {
my $newpath = "$TB/bin/snmpit_old";
print STDERR "Invoking alternate snmpit from $newpath\n";
exec $newpath, @ARGV;
die("*** $0:\n".
" Could not exec $newpath: $!");
}
my $newpath = "$TB/bin/snmpit_test";
exec $newpath, @ARGV;
die("*** $0:\n".
" Could not exec $newpath: $!");
#
# Copyright (c) 2000-2013 University of Utah and the Flux Group.
# Copyright (c) 2000-2013, 2016 University of Utah and the Flux Group.
#
# {{{EMULAB-LICENSE
#
......@@ -24,7 +24,7 @@
SRCDIR = @srcdir@
TESTBED_SRCDIR = @top_srcdir@
OBJDIR = ../..
SUBDIR = tbsetup/snmpit_test
SUBDIR = tbsetup/snmpit
ISMAINSITE = @TBMAINSITE@
SYSTEM := $(shell uname -s)
......@@ -32,8 +32,8 @@ include $(OBJDIR)/Makeconf
SUBDIRS =
BIN_STUFF = snmpit_test
LIB_STUFF = portstats snmpit_intel.pm \
BIN_STUFF = snmpit portstats
LIB_STUFF = snmpit_intel.pm \
snmpit_cisco.pm snmpit_lib.pm \
snmpit_cisco_stack.pm snmpit_intel_stack.pm \
snmpit_foundry.pm snmpit_stack.pm snmpit_remote.pm \
......@@ -53,8 +53,9 @@ include $(TESTBED_SRCDIR)/GNUmakerules
install: all script-install
script-install: $(addprefix $(INSTALL_LIBDIR)/snmpit_test/, $(LIB_STUFF)) \
$(addprefix $(INSTALL_BINDIR)/, $(BIN_STUFF))
script-install: \
$(addprefix $(INSTALL_LIBDIR)/snmpit/, $(LIB_STUFF)) \
$(addprefix $(INSTALL_BINDIR)/, $(BIN_STUFF))
control-install:
......@@ -66,14 +67,10 @@ clrhouse-install:
clean:
rm -f snmpit_arista_switch_daemon.py snmpit_remote.pm \
snmpit_test portstats snmpit_arista.pm
snmpit portstats snmpit_arista.pm
$(INSTALL_DIR)/lib/snmpit_test/%: %
$(INSTALL_LIBDIR)/snmpit/%: %
@echo "Installing $<"
-mkdir -p $(INSTALL_DIR)/lib/snmpit_test
-mkdir -p $(INSTALL_LIBDIR)/snmpit
$(INSTALL) $< $@
$(INSTALL_DIR)/lib/snmpit_test/portstats: portstats
@echo "Installing $<"
-mkdir -p $(INSTALL_DIR)/lib/snmpit_test
$(INSTALL_PROGRAM) $< $@
#!/usr/bin/perl
#
# Copyright (c) 2000-2014 University of Utah and the Flux Group.
# Copyright (c) 2000-2016 University of Utah and the Flux Group.
#
# {{{EMULAB-LICENSE
#
......@@ -49,7 +49,7 @@ use libtblog;
use Port;
# Optional alternate version of libraries.
use lib '@prefix@/lib/snmpit_test';
use lib '@prefix@/lib/snmpit';
use snmpit_lib;
use English;
......
#!/usr/bin/perl -w
#
# Copyright (c) 2000-2015 University of Utah and the Flux Group.
# Copyright (c) 2000-2016 University of Utah and the Flux Group.
#
# {{{EMULAB-LGPL
#
......@@ -50,7 +50,7 @@ use strict;
use List::Util qw(shuffle);
# Optional alternate version of libraries.
use lib '@prefix@/lib/snmpit_test';
use lib '@prefix@/lib/snmpit';
use snmpit_lib;
use snmpit_remote;
......
#
# Copyright (c) 2000-2012 University of Utah and the Flux Group.
#
# {{{EMULAB-LICENSE
#
# This file is part of the Emulab network testbed software.
#
# This file is free software: you can redistribute it and/or modify it
# under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or (at
# your option) any later version.
#
# This file 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 Affero General Public
# License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this file. If not, see <http://www.gnu.org/licenses/>.
#
# }}}
#
SRCDIR = @srcdir@
TESTBED_SRCDIR = @top_srcdir@
OBJDIR = ../..
SUBDIR = tbsetup/snmpit_old
ISMAINSITE = @TBMAINSITE@
SYSTEM := $(shell uname -s)
include $(OBJDIR)/Makeconf
SUBDIRS =
BIN_STUFF = snmpit_old snmpit_ancient
LIB_STUFF = portstats snmpit_intel.pm \
snmpit_cisco.pm snmpit_lib.pm \
snmpit_cisco_stack.pm snmpit_intel_stack.pm \
snmpit_foundry.pm snmpit_stack.pm snmpit_remote.pm \
snmpit_nortel.pm snmpit_hp.pm snmpit_apcon.pm
#
# Force dependencies on the scripts so that they will be rerun through
# configure if the .in file is changed.
#
all: $(LIB_STUFF) $(BIN_STUFF)
include $(TESTBED_SRCDIR)/GNUmakerules
install: all script-install
script-install: $(addprefix $(INSTALL_LIBDIR)/snmpit_old/, $(LIB_STUFF)) \
$(addprefix $(INSTALL_BINDIR)/, $(BIN_STUFF))
control-install:
fs-install:
tipserv-install:
clrhouse-install:
clean:
$(INSTALL_DIR)/lib/snmpit_old/%: %
@echo "Installing $<"
-mkdir -p $(INSTALL_DIR)/lib/snmpit_old
$(INSTALL) $< $@
$(INSTALL_DIR)/lib/snmpit_old/portstats: portstats
@echo "Installing $<"
-mkdir -p $(INSTALL_DIR)/lib/snmpit_old
$(INSTALL_PROGRAM) $< $@
#!/usr/bin/perl -T
#
# Copyright (c) 2000-2010 University of Utah and the Flux Group.
#
# {{{EMULAB-LICENSE
#
# This file is part of the Emulab network testbed software.
#
# This file is free software: you can redistribute it and/or modify it
# under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or (at
# your option) any later version.
#
# This file 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 Affero General Public
# License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this file. If not, see <http://www.gnu.org/licenses/>.
#
# }}}
#
#
# portstats - Get port statistics for nodes in an experiment
#
#
# NOTE: no -w, because $::line below is used in the eval, which perl
# can't pick up on, so it warns about this variable being only used once
#
# un-taint path
$ENV{'PATH'} = '/bin:/usr/bin:/usr/local/bin';
delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV'};
# Turn off line buffering on output
$| = 1;
#
# Configure variables
#
my $ELABINELAB = @ELABINELAB@;
use lib '@prefix@/lib';
use libdb;
use snmpit_lib;
use libtblog;
use English;
use Getopt::Long;
use strict;
sub usage {
print << "END";
Usage: $0 [-h] <-p | <pid> <eid> > [vname ...] [vname:port ...]
-h This message
-e Show only error counters
-a Show all stats
-z Zero out counts for selected counters, after printing
-q Quiet: don't actually print counts - useful with -z
-c Print absolute, rather than relative, counts
-p The machines given are physical, not virtual, node IDs. No pid and
eid should be given when using this option.
-s Ports are specified in switch.port syntax
-C List control net, rather than experimental net, ports
-i <device>
Operate on <device>, overriding default device list. Can be
given multiple times
-S <stack>
Operate on the given stack, instead of the default of the
experimental network
--skip-supplied
If the -S option was given, start with the default stacks,
but skip any switches in the stacks listed in -S.
If only pid and eid are given, prints out information about all ports in the
experiment. Otherwise, output is limited to the nodes and/or ports given.
NOTE: Statistics are reported from the switch's perspective. This means that
'In' packets are those sent FROM the node, and 'Out' packets are those
sent TO the node.
In the output, packets described as 'NUnicast' or 'NUcast' are non-unicast
(broadcast or multicast) packets.'
END
return 1;
}
#
# Process command-line arguments
#
my %opt = ();
Getopt::Long::Configure("no_ignore_case");
GetOptions(\%opt,'h','a','e','p','b','z','q','c','s','C','i=s@','S=s@',
'skip-supplied');
if ($opt{h}) {
exit &usage;
}
my @oids = (); # The set of OIDs we care about
if ($opt{a}) {
@oids = ('ifInOctets', 'ifInUcastPkts', 'ifInNUcastPkts', 'ifInDiscards',
'ifInErrors', 'ifInUnknownProtos', 'ifOutOctets', 'ifOutUcastPkts',
'ifOutNUcastPkts', 'ifOutDiscards', 'ifOutErrors', 'ifOutQLen');
} elsif ($opt{e}) {
@oids = ('ifInDiscards', 'ifInErrors', 'ifInUnknownProtos', 'ifOutDiscards',
'ifOutErrors');
} else {
@oids = ('ifInOctets', 'ifInUcastPkts', 'ifInNUcastPkts',
'ifOutOctets', 'ifOutUcastPkts', 'ifOutNUcastPkts');
}
#
# Warn about OIDs that do not return numeric values.
# Most likely these are ones that are unimplemented.
# It will only warn once per device per OID, but even that might get tedious
# so warnings can be turned off entirely here.
#
my $badoidwarnings = 1;
my ($pid, $eid);
if (!$opt{p} && !$opt{s}) {
if (@ARGV < 2) {
exit &usage;
}
($pid,$eid) = (shift,shift);
#
# Untaint args.
#
if ($pid =~ /^([-\w]+)$/) {
$pid = $1;
}
else {
tbdie("Bad data in pid: $pid.");
}
if ($eid =~ /^([-\w]+)$/) {
$eid = $1;
}
else {
tbdie("Bad data in eid: $eid.");
}
}
#
# Scan the rest of the arguments, doing a generic taint check. More
# specific patterns are below.
#
my @passedPorts = ();
foreach my $arg (@ARGV) {
if ($opt{s}) {
if ($arg =~ /^([-\w\.\/]+)$/) {
$arg = $1;
}