From 4d8acdacc12e550c0552d0cd31f45dddcc3b920e Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Mon, 23 Jun 2014 13:58:50 +0100 Subject: [PATCH 01/13] release 2.027008_001 --- Netdisco/Changes | 2 +- Netdisco/MANIFEST | 16 +++++++++++++++- Netdisco/META.yml | 4 ++-- Netdisco/Makefile.PL | 2 +- Netdisco/lib/App/Netdisco.pm | 2 +- 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/Netdisco/Changes b/Netdisco/Changes index 25c59c27..a396f732 100644 --- a/Netdisco/Changes +++ b/Netdisco/Changes @@ -1,4 +1,4 @@ -2.027008_001 - 2014-06-01 +2.027008_001 - 2014-06-23 [NEW FEATURES] diff --git a/Netdisco/MANIFEST b/Netdisco/MANIFEST index d735a3d2..41941e33 100644 --- a/Netdisco/MANIFEST +++ b/Netdisco/MANIFEST @@ -27,7 +27,6 @@ lib/App/Netdisco/Core/Macsuck.pm lib/App/Netdisco/Core/Nbtstat.pm lib/App/Netdisco/Daemon/DB.pm lib/App/Netdisco/Daemon/DB/Result/Admin.pm -lib/App/Netdisco/Daemon/JobQueue.pm lib/App/Netdisco/Daemon/LocalQueue.pm lib/App/Netdisco/Daemon/Util.pm lib/App/Netdisco/Daemon/Worker/Common.pm @@ -78,6 +77,7 @@ lib/App/Netdisco/DB/Result/Virtual/ApRadioChannelPower.pm lib/App/Netdisco/DB/Result/Virtual/CidrIps.pm lib/App/Netdisco/DB/Result/Virtual/DeviceDnsMismatch.pm lib/App/Netdisco/DB/Result/Virtual/DeviceLinks.pm +lib/App/Netdisco/DB/Result/Virtual/DevicePoeStatus.pm lib/App/Netdisco/DB/Result/Virtual/DuplexMismatch.pm lib/App/Netdisco/DB/Result/Virtual/GenericReport.pm lib/App/Netdisco/DB/Result/Virtual/NodeWithAge.pm @@ -97,6 +97,7 @@ lib/App/Netdisco/DB/ResultSet/DeviceModule.pm lib/App/Netdisco/DB/ResultSet/DevicePort.pm lib/App/Netdisco/DB/ResultSet/DevicePortLog.pm lib/App/Netdisco/DB/ResultSet/DevicePortSsid.pm +lib/App/Netdisco/DB/ResultSet/DevicePower.pm lib/App/Netdisco/DB/ResultSet/Node.pm lib/App/Netdisco/DB/ResultSet/NodeIp.pm lib/App/Netdisco/DB/ResultSet/NodeNbt.pm @@ -149,6 +150,7 @@ lib/App/Netdisco/Manual/ReleaseNotes.pod lib/App/Netdisco/Manual/WritingPlugins.pod lib/App/Netdisco/Util/Device.pm lib/App/Netdisco/Util/DNS.pm +lib/App/Netdisco/Util/ExpandParams.pm lib/App/Netdisco/Util/Node.pm lib/App/Netdisco/Util/Noop.pm lib/App/Netdisco/Util/Permission.pm @@ -222,6 +224,7 @@ share/environments/deployment.yml share/public/500.html share/public/css/bootstrap-tree.css share/public/css/bootstrap.min.css +share/public/css/dataTables.bootstrap.css share/public/css/daterangepicker-bs2.css share/public/css/font-awesome.min.css share/public/css/jquery.qtip.min.css @@ -256,21 +259,32 @@ share/public/images/dusseldorf_settings.png share/public/images/glyphicons_072_bookmark.png share/public/images/matte_basic_pin.png share/public/images/navbar_disco.png +share/public/images/sort_asc.png +share/public/images/sort_asc_disabled.png +share/public/images/sort_both.png +share/public/images/sort_desc.png +share/public/images/sort_desc_disabled.png share/public/images/splashyfish_left.png share/public/images/splashyfish_right.png share/public/images/tango_sweep.png share/public/images/vaga_copy.png share/public/javascripts/bootstrap.min.js share/public/javascripts/d3.min.js +share/public/javascripts/dataTables.bootstrap.js +share/public/javascripts/dataTables.ip-address-detect.js +share/public/javascripts/dataTables.ip-address-sort.js share/public/javascripts/daterangepicker.js +share/public/javascripts/he.js share/public/javascripts/jquery-deserialize.js share/public/javascripts/jquery-history.js share/public/javascripts/jquery-latest.min.js share/public/javascripts/jquery-ui.custom.min.js share/public/javascripts/jquery.cookie.js +share/public/javascripts/jquery.dataTables.min.js share/public/javascripts/jquery.floatThead.js share/public/javascripts/jquery.qtip.min.js share/public/javascripts/moment.min.js +share/public/javascripts/natural.js share/public/javascripts/netdisco.js share/public/javascripts/netdisco_portcontrol.js share/public/javascripts/toastr.js diff --git a/Netdisco/META.yml b/Netdisco/META.yml index be6f2707..da491f7a 100644 --- a/Netdisco/META.yml +++ b/Netdisco/META.yml @@ -58,7 +58,7 @@ requires: Plack: 1.0023 Plack::Middleware::Expires: 0.03 Role::Tiny: 1.002005 - SNMP::Info: 3.12 + SNMP::Info: 3.16 SQL::Translator: 0.11016 Socket6: 0.23 Starman: 0.4008 @@ -81,4 +81,4 @@ resources: homepage: http://netdisco.org/ license: http://opensource.org/licenses/bsd-license.php repository: git://git.code.sf.net/p/netdisco/netdisco-ng -version: 2.027007 +version: 2.027008_001 diff --git a/Netdisco/Makefile.PL b/Netdisco/Makefile.PL index 35c7dcf7..cfcdb4b9 100644 --- a/Netdisco/Makefile.PL +++ b/Netdisco/Makefile.PL @@ -44,7 +44,7 @@ requires 'Plack::Middleware::Expires' => 0.03; requires 'Role::Tiny' => 1.002005; requires 'Socket6' => 0.23; requires 'Starman' => 0.4008; -requires 'SNMP::Info' => 3.12; +requires 'SNMP::Info' => 3.16; requires 'SQL::Translator' => 0.11016; requires 'Template' => 2.24; requires 'Template::Plugin::CSV' => 0.04; diff --git a/Netdisco/lib/App/Netdisco.pm b/Netdisco/lib/App/Netdisco.pm index f25ef0d2..8dd8af2b 100644 --- a/Netdisco/lib/App/Netdisco.pm +++ b/Netdisco/lib/App/Netdisco.pm @@ -4,7 +4,7 @@ use strict; use warnings; use 5.010_000; -our $VERSION = '2.027007'; +our $VERSION = '2.027008_001'; use App::Netdisco::Configuration; =head1 NAME From 71b2ab2563858b7d83ed3bbec55c88d7c523376a Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Mon, 23 Jun 2014 16:03:55 +0100 Subject: [PATCH 02/13] Subnets report date range fixed, but (unnecessary?) "not" option removed --- Netdisco/Changes | 6 ++++++ .../App/Netdisco/DB/Result/Virtual/SubnetUtilization.pm | 9 +++++++-- .../App/Netdisco/Web/Plugin/Report/SubnetUtilization.pm | 9 +++------ Netdisco/share/views/ajax/report/subnets.tt | 2 +- Netdisco/share/views/sidebar/report/subnets.tt | 2 ++ 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/Netdisco/Changes b/Netdisco/Changes index a396f732..fe78e744 100644 --- a/Netdisco/Changes +++ b/Netdisco/Changes @@ -1,3 +1,9 @@ +2.027008_002 - 2014-06-23 + + [BUG FIXES] + + * Subnets report date range fixed, but (unnecessary?) "not" option removed + 2.027008_001 - 2014-06-23 [NEW FEATURES] diff --git a/Netdisco/lib/App/Netdisco/DB/Result/Virtual/SubnetUtilization.pm b/Netdisco/lib/App/Netdisco/DB/Result/Virtual/SubnetUtilization.pm index 372b5e51..99bb3e60 100644 --- a/Netdisco/lib/App/Netdisco/DB/Result/Virtual/SubnetUtilization.pm +++ b/Netdisco/lib/App/Netdisco/DB/Result/Virtual/SubnetUtilization.pm @@ -20,8 +20,13 @@ __PACKAGE__->result_source_instance->view_definition(<<'ENDSQL'); FROM subnets s1, node_ip ni WHERE s1.net <<= ?::cidr AND ni.ip <<= s1.net - AND ni.time_last >= ? - AND ni.time_last <= ? + AND (( + ni.time_first IS null + AND ni.time_last IS null + ) OR ( + ni.time_last >= ? + AND ni.time_last <= ? + )) AND s1.last_discover >= ? UNION SELECT DISTINCT net, di.alias as ip diff --git a/Netdisco/lib/App/Netdisco/Web/Plugin/Report/SubnetUtilization.pm b/Netdisco/lib/App/Netdisco/Web/Plugin/Report/SubnetUtilization.pm index b955f1b7..aa4232e4 100644 --- a/Netdisco/lib/App/Netdisco/Web/Plugin/Report/SubnetUtilization.pm +++ b/Netdisco/lib/App/Netdisco/Web/Plugin/Report/SubnetUtilization.pm @@ -18,15 +18,12 @@ get '/ajax/content/report/subnets' => require_login sub { my $agenot = param('age_invert') || '0'; my ( $start, $end ) = param('daterange') =~ /(\d+-\d+-\d+)/gmx; - if ($agenot) { - my $tmp = $end; - $end = $start; - $start = $tmp; - } + $start = $start . ' 00:00:00'; + $end = $end . ' 23:59:59'; my @results = schema('netdisco')->resultset('Virtual::SubnetUtilization') ->search(undef,{ - bind => [ $subnet, $start, $end, $end, $subnet, $end, $end ], + bind => [ $subnet, $start, $end, $start, $subnet, $start, $start ], })->hri->all; return unless scalar @results; diff --git a/Netdisco/share/views/ajax/report/subnets.tt b/Netdisco/share/views/ajax/report/subnets.tt index 7f26be6d..82c0c9a8 100644 --- a/Netdisco/share/views/ajax/report/subnets.tt +++ b/Netdisco/share/views/ajax/report/subnets.tt @@ -11,7 +11,7 @@ [% FOREACH row IN results %] - + [% row.subnet | html_entity %] [% row.subnet_size | format_number %] [% row.active | format_number %] diff --git a/Netdisco/share/views/sidebar/report/subnets.tt b/Netdisco/share/views/sidebar/report/subnets.tt index 02bdbda4..27db0844 100644 --- a/Netdisco/share/views/sidebar/report/subnets.tt +++ b/Netdisco/share/views/sidebar/report/subnets.tt @@ -10,6 +10,7 @@ +
Date: Mon, 23 Jun 2014 20:54:13 -0400 Subject: [PATCH 03/13] Use the SNMP::Info class attribute rather than re-querying for device_type. SNMP::Info classes that override the layers attribute may not return the same device_type after object instantiation. This also saves a SNMP query. --- Netdisco/lib/App/Netdisco/Core/Discover.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Netdisco/lib/App/Netdisco/Core/Discover.pm b/Netdisco/lib/App/Netdisco/Core/Discover.pm index 109c56a9..7864a4e4 100644 --- a/Netdisco/lib/App/Netdisco/Core/Discover.pm +++ b/Netdisco/lib/App/Netdisco/Core/Discover.pm @@ -169,7 +169,7 @@ sub store_device { $device->model( Encode::decode('UTF-8', $snmp->model) ); $device->serial( Encode::decode('UTF-8', $snmp->serial) ); - $device->snmp_class( $snmp->device_type ); + $device->snmp_class( $snmp->{'class'} ); $device->last_discover(\'now()'); schema('netdisco')->txn_do(sub { From 94bee28fc862dca95123ee35fc88923f480b74ae Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Tue, 24 Jun 2014 21:22:14 -0400 Subject: [PATCH 04/13] Use accessor --- Netdisco/lib/App/Netdisco/Core/Discover.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Netdisco/lib/App/Netdisco/Core/Discover.pm b/Netdisco/lib/App/Netdisco/Core/Discover.pm index 7864a4e4..bfe790b8 100644 --- a/Netdisco/lib/App/Netdisco/Core/Discover.pm +++ b/Netdisco/lib/App/Netdisco/Core/Discover.pm @@ -169,7 +169,7 @@ sub store_device { $device->model( Encode::decode('UTF-8', $snmp->model) ); $device->serial( Encode::decode('UTF-8', $snmp->serial) ); - $device->snmp_class( $snmp->{'class'} ); + $device->snmp_class( $snmp->class ); $device->last_discover(\'now()'); schema('netdisco')->txn_do(sub { From 30b234848ddbb0b03cc0306f1b69a5d2273f249e Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Mon, 30 Jun 2014 12:38:43 +0100 Subject: [PATCH 05/13] table_pagesize option to set default size of table pages --- Netdisco/Changes | 4 ++++ Netdisco/lib/App/Netdisco/Manual/Configuration.pod | 6 ++++++ Netdisco/share/config.yml | 1 + Netdisco/share/views/ajax/admintask/orphaned_csv.tt | 2 +- Netdisco/share/views/ajax/admintask/pseudodevice.tt | 2 +- Netdisco/share/views/ajax/admintask/slowdevices.tt | 2 +- Netdisco/share/views/ajax/admintask/topology.tt | 2 +- .../share/views/ajax/admintask/undiscoveredneighbors.tt | 2 +- Netdisco/share/views/ajax/admintask/userlog.tt | 2 +- Netdisco/share/views/ajax/admintask/users.tt | 2 +- Netdisco/share/views/ajax/device/addresses.tt | 2 +- Netdisco/share/views/ajax/device/addresses_csv.tt | 2 +- Netdisco/share/views/ajax/device/ports.tt | 2 +- Netdisco/share/views/ajax/report/apchanneldist.tt | 2 +- Netdisco/share/views/ajax/report/apradiochannelpower.tt | 2 +- Netdisco/share/views/ajax/report/deviceaddrnodns.tt | 2 +- Netdisco/share/views/ajax/report/devicebylocation.tt | 2 +- Netdisco/share/views/ajax/report/devicednsmismatch.tt | 2 +- Netdisco/share/views/ajax/report/devicepoestatus.tt | 2 +- Netdisco/share/views/ajax/report/devicepoestatus_csv.tt | 2 +- Netdisco/share/views/ajax/report/duplexmismatch.tt | 2 +- Netdisco/share/views/ajax/report/duplexmismatch_csv.tt | 2 +- Netdisco/share/views/ajax/report/generic_report.tt | 2 +- Netdisco/share/views/ajax/report/halfduplex.tt | 2 +- Netdisco/share/views/ajax/report/halfduplex_csv.tt | 2 +- Netdisco/share/views/ajax/report/ipinventory.tt | 2 +- Netdisco/share/views/ajax/report/moduleinventory.tt | 2 +- Netdisco/share/views/ajax/report/moduleinventory_csv.tt | 2 +- Netdisco/share/views/ajax/report/netbios.tt | 2 +- Netdisco/share/views/ajax/report/netbios_csv.tt | 2 +- Netdisco/share/views/ajax/report/nodemultiips.tt | 2 +- Netdisco/share/views/ajax/report/nodevendor.tt | 2 +- Netdisco/share/views/ajax/report/nodevendor_csv.tt | 2 +- Netdisco/share/views/ajax/report/phonesdiscovered.tt | 2 +- Netdisco/share/views/ajax/report/phonesdiscovered_csv.tt | 2 +- Netdisco/share/views/ajax/report/portadmindown.tt | 2 +- Netdisco/share/views/ajax/report/portblocking.tt | 2 +- Netdisco/share/views/ajax/report/portlog.tt | 2 +- Netdisco/share/views/ajax/report/portmultinodes.tt | 2 +- Netdisco/share/views/ajax/report/portssid.tt | 2 +- Netdisco/share/views/ajax/report/portssid_csv.tt | 2 +- Netdisco/share/views/ajax/report/portutilization.tt | 2 +- Netdisco/share/views/ajax/report/portutilization_csv.tt | 2 +- Netdisco/share/views/ajax/report/subnets.tt | 2 +- Netdisco/share/views/ajax/report/vlaninventory.tt | 2 +- Netdisco/share/views/ajax/search/device.tt | 2 +- Netdisco/share/views/ajax/search/device_csv.tt | 2 +- Netdisco/share/views/ajax/search/node_by_ip.tt | 2 +- Netdisco/share/views/ajax/search/node_by_mac.tt | 2 +- Netdisco/share/views/ajax/search/port.tt | 2 +- Netdisco/share/views/ajax/search/vlan.tt | 2 +- 51 files changed, 59 insertions(+), 48 deletions(-) diff --git a/Netdisco/Changes b/Netdisco/Changes index fe78e744..891967dc 100644 --- a/Netdisco/Changes +++ b/Netdisco/Changes @@ -1,5 +1,9 @@ 2.027008_002 - 2014-06-23 + [ENHANCEMENTS] + + * table_pagesize option to set default size of table pages + [BUG FIXES] * Subnets report date range fixed, but (unnecessary?) "not" option removed diff --git a/Netdisco/lib/App/Netdisco/Manual/Configuration.pod b/Netdisco/lib/App/Netdisco/Manual/Configuration.pod index d691f6da..5e5b131f 100644 --- a/Netdisco/lib/App/Netdisco/Manual/Configuration.pod +++ b/Netdisco/lib/App/Netdisco/Manual/Configuration.pod @@ -294,6 +294,12 @@ Value: Boolean. Default: true. Set to "C" if you MUST maintain backwards compatibility with the Netdisco 1.x web interface. Strongly recommended that you leave this set to "C". +=head3 C + +Value: Number. Default: 10. + +The number of rows in a table page. + =head2 Netdisco Core =head3 C diff --git a/Netdisco/share/config.yml b/Netdisco/share/config.yml index 8479600f..ba065c19 100644 --- a/Netdisco/share/config.yml +++ b/Netdisco/share/config.yml @@ -79,6 +79,7 @@ extra_web_plugins: [] jobqueue_refresh: 10 safe_password_store: true reports: {} +table_pagesize: 10 # ------------- # NETDISCO CORE diff --git a/Netdisco/share/views/ajax/admintask/orphaned_csv.tt b/Netdisco/share/views/ajax/admintask/orphaned_csv.tt index a87372f0..d07433b2 100644 --- a/Netdisco/share/views/ajax/admintask/orphaned_csv.tt +++ b/Netdisco/share/views/ajax/admintask/orphaned_csv.tt @@ -48,4 +48,4 @@ [% END %] [% END %] -[% END %] \ No newline at end of file +[% END %] diff --git a/Netdisco/share/views/ajax/admintask/pseudodevice.tt b/Netdisco/share/views/ajax/admintask/pseudodevice.tt index 6322491a..2184f163 100644 --- a/Netdisco/share/views/ajax/admintask/pseudodevice.tt +++ b/Netdisco/share/views/ajax/admintask/pseudodevice.tt @@ -65,7 +65,7 @@ $(document).ready(function() { $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/admintask/slowdevices.tt b/Netdisco/share/views/ajax/admintask/slowdevices.tt index 2ad98f5c..256cb412 100644 --- a/Netdisco/share/views/ajax/admintask/slowdevices.tt +++ b/Netdisco/share/views/ajax/admintask/slowdevices.tt @@ -33,7 +33,7 @@ $(document).ready(function() { "searching": false, "info": false, "order": [[ 4, 'desc' ], [ 0, 'asc' ], [ 1, 'asc' ] ], - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], } ); } ); diff --git a/Netdisco/share/views/ajax/admintask/topology.tt b/Netdisco/share/views/ajax/admintask/topology.tt index a3676040..50f57731 100644 --- a/Netdisco/share/views/ajax/admintask/topology.tt +++ b/Netdisco/share/views/ajax/admintask/topology.tt @@ -91,7 +91,7 @@ $(document).ready(function() { $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/admintask/undiscoveredneighbors.tt b/Netdisco/share/views/ajax/admintask/undiscoveredneighbors.tt index e3d060ad..f1071460 100644 --- a/Netdisco/share/views/ajax/admintask/undiscoveredneighbors.tt +++ b/Netdisco/share/views/ajax/admintask/undiscoveredneighbors.tt @@ -29,7 +29,7 @@ $(document).ready(function() { $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/admintask/userlog.tt b/Netdisco/share/views/ajax/admintask/userlog.tt index 8654f9e0..1b9efd11 100644 --- a/Netdisco/share/views/ajax/admintask/userlog.tt +++ b/Netdisco/share/views/ajax/admintask/userlog.tt @@ -19,7 +19,7 @@ $(document).ready(function() { $('#aul-data-table').dataTable( { "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/admintask/users.tt b/Netdisco/share/views/ajax/admintask/users.tt index 90f013b6..89db1e5c 100644 --- a/Netdisco/share/views/ajax/admintask/users.tt +++ b/Netdisco/share/views/ajax/admintask/users.tt @@ -80,7 +80,7 @@ $(document).ready(function() { $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/device/addresses.tt b/Netdisco/share/views/ajax/device/addresses.tt index b0edd0db..941b7941 100644 --- a/Netdisco/share/views/ajax/device/addresses.tt +++ b/Netdisco/share/views/ajax/device/addresses.tt @@ -15,7 +15,7 @@ $(document).ready(function() { var table = $('#da-data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/device/addresses_csv.tt b/Netdisco/share/views/ajax/device/addresses_csv.tt index c9388a05..501120b0 100644 --- a/Netdisco/share/views/ajax/device/addresses_csv.tt +++ b/Netdisco/share/views/ajax/device/addresses_csv.tt @@ -8,4 +8,4 @@ [% END %] [% CSV.dump(mylist) %] -[% END %] \ No newline at end of file +[% END %] diff --git a/Netdisco/share/views/ajax/device/ports.tt b/Netdisco/share/views/ajax/device/ports.tt index b1cfbbd0..3bef8142 100644 --- a/Netdisco/share/views/ajax/device/ports.tt +++ b/Netdisco/share/views/ajax/device/ports.tt @@ -389,7 +389,7 @@ $(document).ready(function() { "order": [[ 1, 'asc' ]], "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/apchanneldist.tt b/Netdisco/share/views/ajax/report/apchanneldist.tt index 8d68bc2f..4abc7f3c 100644 --- a/Netdisco/share/views/ajax/report/apchanneldist.tt +++ b/Netdisco/share/views/ajax/report/apchanneldist.tt @@ -12,7 +12,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/apradiochannelpower.tt b/Netdisco/share/views/ajax/report/apradiochannelpower.tt index eb103733..94a469b3 100644 --- a/Netdisco/share/views/ajax/report/apradiochannelpower.tt +++ b/Netdisco/share/views/ajax/report/apradiochannelpower.tt @@ -40,7 +40,7 @@ $(document).ready(function() { var table = $('#data-table').DataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/deviceaddrnodns.tt b/Netdisco/share/views/ajax/report/deviceaddrnodns.tt index 7d8b3386..94b17416 100644 --- a/Netdisco/share/views/ajax/report/deviceaddrnodns.tt +++ b/Netdisco/share/views/ajax/report/deviceaddrnodns.tt @@ -14,7 +14,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/devicebylocation.tt b/Netdisco/share/views/ajax/report/devicebylocation.tt index 830a2290..07a3c6a6 100644 --- a/Netdisco/share/views/ajax/report/devicebylocation.tt +++ b/Netdisco/share/views/ajax/report/devicebylocation.tt @@ -15,7 +15,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/devicednsmismatch.tt b/Netdisco/share/views/ajax/report/devicednsmismatch.tt index b915429b..fba189cb 100644 --- a/Netdisco/share/views/ajax/report/devicednsmismatch.tt +++ b/Netdisco/share/views/ajax/report/devicednsmismatch.tt @@ -15,7 +15,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/devicepoestatus.tt b/Netdisco/share/views/ajax/report/devicepoestatus.tt index 4cd3c097..a162e21e 100644 --- a/Netdisco/share/views/ajax/report/devicepoestatus.tt +++ b/Netdisco/share/views/ajax/report/devicepoestatus.tt @@ -66,7 +66,7 @@ $(document).ready(function() { var table = $('#data-table').DataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/devicepoestatus_csv.tt b/Netdisco/share/views/ajax/report/devicepoestatus_csv.tt index 001fc125..ff61ea6d 100644 --- a/Netdisco/share/views/ajax/report/devicepoestatus_csv.tt +++ b/Netdisco/share/views/ajax/report/devicepoestatus_csv.tt @@ -16,4 +16,4 @@ [% END %] [% CSV.dump(mydlist) %] -[%END%] \ No newline at end of file +[%END%] diff --git a/Netdisco/share/views/ajax/report/duplexmismatch.tt b/Netdisco/share/views/ajax/report/duplexmismatch.tt index f1c44dab..3404320f 100644 --- a/Netdisco/share/views/ajax/report/duplexmismatch.tt +++ b/Netdisco/share/views/ajax/report/duplexmismatch.tt @@ -16,7 +16,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/duplexmismatch_csv.tt b/Netdisco/share/views/ajax/report/duplexmismatch_csv.tt index 934c5cbd..c3a88b8d 100644 --- a/Netdisco/share/views/ajax/report/duplexmismatch_csv.tt +++ b/Netdisco/share/views/ajax/report/duplexmismatch_csv.tt @@ -10,4 +10,4 @@ [% END %] [% CSV.dump(mylist) %] -[% END %] \ No newline at end of file +[% END %] diff --git a/Netdisco/share/views/ajax/report/generic_report.tt b/Netdisco/share/views/ajax/report/generic_report.tt index 4560a7bd..7d3aac74 100644 --- a/Netdisco/share/views/ajax/report/generic_report.tt +++ b/Netdisco/share/views/ajax/report/generic_report.tt @@ -22,7 +22,7 @@ $(document).ready(function() { $('#rg-data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' } diff --git a/Netdisco/share/views/ajax/report/halfduplex.tt b/Netdisco/share/views/ajax/report/halfduplex.tt index 79d8f8ce..3cd0ee29 100644 --- a/Netdisco/share/views/ajax/report/halfduplex.tt +++ b/Netdisco/share/views/ajax/report/halfduplex.tt @@ -14,7 +14,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/halfduplex_csv.tt b/Netdisco/share/views/ajax/report/halfduplex_csv.tt index c0a4aa35..a3aeb767 100644 --- a/Netdisco/share/views/ajax/report/halfduplex_csv.tt +++ b/Netdisco/share/views/ajax/report/halfduplex_csv.tt @@ -9,4 +9,4 @@ [% END %] [% CSV.dump(mylist) %] -[% END %] \ No newline at end of file +[% END %] diff --git a/Netdisco/share/views/ajax/report/ipinventory.tt b/Netdisco/share/views/ajax/report/ipinventory.tt index f3363568..12e011a0 100644 --- a/Netdisco/share/views/ajax/report/ipinventory.tt +++ b/Netdisco/share/views/ajax/report/ipinventory.tt @@ -14,7 +14,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/moduleinventory.tt b/Netdisco/share/views/ajax/report/moduleinventory.tt index f64d03d7..b84b96bd 100644 --- a/Netdisco/share/views/ajax/report/moduleinventory.tt +++ b/Netdisco/share/views/ajax/report/moduleinventory.tt @@ -32,7 +32,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/moduleinventory_csv.tt b/Netdisco/share/views/ajax/report/moduleinventory_csv.tt index 3c4e7687..432dd02b 100644 --- a/Netdisco/share/views/ajax/report/moduleinventory_csv.tt +++ b/Netdisco/share/views/ajax/report/moduleinventory_csv.tt @@ -22,4 +22,4 @@ [% CSV.dump(mylist) %] [% END %] -[% END %] \ No newline at end of file +[% END %] diff --git a/Netdisco/share/views/ajax/report/netbios.tt b/Netdisco/share/views/ajax/report/netbios.tt index 544f7bd2..3a30f3c6 100644 --- a/Netdisco/share/views/ajax/report/netbios.tt +++ b/Netdisco/share/views/ajax/report/netbios.tt @@ -28,7 +28,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/netbios_csv.tt b/Netdisco/share/views/ajax/report/netbios_csv.tt index 1362398a..1b560c3c 100644 --- a/Netdisco/share/views/ajax/report/netbios_csv.tt +++ b/Netdisco/share/views/ajax/report/netbios_csv.tt @@ -24,4 +24,4 @@ [% CSV.dump(mylist) %] [% END %] -[% END %] \ No newline at end of file +[% END %] diff --git a/Netdisco/share/views/ajax/report/nodemultiips.tt b/Netdisco/share/views/ajax/report/nodemultiips.tt index 54cdb54c..b3a8279d 100644 --- a/Netdisco/share/views/ajax/report/nodemultiips.tt +++ b/Netdisco/share/views/ajax/report/nodemultiips.tt @@ -15,7 +15,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/nodevendor.tt b/Netdisco/share/views/ajax/report/nodevendor.tt index b2bbfcfd..22b01bf5 100644 --- a/Netdisco/share/views/ajax/report/nodevendor.tt +++ b/Netdisco/share/views/ajax/report/nodevendor.tt @@ -28,7 +28,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/nodevendor_csv.tt b/Netdisco/share/views/ajax/report/nodevendor_csv.tt index 3f28ec7e..64ecd60a 100644 --- a/Netdisco/share/views/ajax/report/nodevendor_csv.tt +++ b/Netdisco/share/views/ajax/report/nodevendor_csv.tt @@ -23,4 +23,4 @@ [% CSV.dump(mylist) %] [% END %] -[% END %] \ No newline at end of file +[% END %] diff --git a/Netdisco/share/views/ajax/report/phonesdiscovered.tt b/Netdisco/share/views/ajax/report/phonesdiscovered.tt index 7ca7ec4a..503badfc 100644 --- a/Netdisco/share/views/ajax/report/phonesdiscovered.tt +++ b/Netdisco/share/views/ajax/report/phonesdiscovered.tt @@ -16,7 +16,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/phonesdiscovered_csv.tt b/Netdisco/share/views/ajax/report/phonesdiscovered_csv.tt index 4a266f14..d2a79202 100644 --- a/Netdisco/share/views/ajax/report/phonesdiscovered_csv.tt +++ b/Netdisco/share/views/ajax/report/phonesdiscovered_csv.tt @@ -9,4 +9,4 @@ [% END %] [% CSV.dump(mylist) %] -[% END %] \ No newline at end of file +[% END %] diff --git a/Netdisco/share/views/ajax/report/portadmindown.tt b/Netdisco/share/views/ajax/report/portadmindown.tt index b63220be..143b909d 100644 --- a/Netdisco/share/views/ajax/report/portadmindown.tt +++ b/Netdisco/share/views/ajax/report/portadmindown.tt @@ -14,7 +14,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/portblocking.tt b/Netdisco/share/views/ajax/report/portblocking.tt index be47eff2..4995be42 100644 --- a/Netdisco/share/views/ajax/report/portblocking.tt +++ b/Netdisco/share/views/ajax/report/portblocking.tt @@ -14,7 +14,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/portlog.tt b/Netdisco/share/views/ajax/report/portlog.tt index ccdc7bfa..1616980c 100644 --- a/Netdisco/share/views/ajax/report/portlog.tt +++ b/Netdisco/share/views/ajax/report/portlog.tt @@ -32,7 +32,7 @@ $(document).ready(function() { $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' } diff --git a/Netdisco/share/views/ajax/report/portmultinodes.tt b/Netdisco/share/views/ajax/report/portmultinodes.tt index b66fdf33..f8d67e7a 100644 --- a/Netdisco/share/views/ajax/report/portmultinodes.tt +++ b/Netdisco/share/views/ajax/report/portmultinodes.tt @@ -14,7 +14,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/portssid.tt b/Netdisco/share/views/ajax/report/portssid.tt index c3f32545..ce8270ee 100644 --- a/Netdisco/share/views/ajax/report/portssid.tt +++ b/Netdisco/share/views/ajax/report/portssid.tt @@ -28,7 +28,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/portssid_csv.tt b/Netdisco/share/views/ajax/report/portssid_csv.tt index 02c27277..613e772c 100644 --- a/Netdisco/share/views/ajax/report/portssid_csv.tt +++ b/Netdisco/share/views/ajax/report/portssid_csv.tt @@ -23,4 +23,4 @@ [% CSV.dump(mylist) %] [% END %] -[% END %] \ No newline at end of file +[% END %] diff --git a/Netdisco/share/views/ajax/report/portutilization.tt b/Netdisco/share/views/ajax/report/portutilization.tt index bab6889e..822f0bee 100644 --- a/Netdisco/share/views/ajax/report/portutilization.tt +++ b/Netdisco/share/views/ajax/report/portutilization.tt @@ -15,7 +15,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/portutilization_csv.tt b/Netdisco/share/views/ajax/report/portutilization_csv.tt index c2c5b3ac..c5e9c2f9 100644 --- a/Netdisco/share/views/ajax/report/portutilization_csv.tt +++ b/Netdisco/share/views/ajax/report/portutilization_csv.tt @@ -9,4 +9,4 @@ [% END %] [% CSV.dump(mylist) %] -[% END %] \ No newline at end of file +[% END %] diff --git a/Netdisco/share/views/ajax/report/subnets.tt b/Netdisco/share/views/ajax/report/subnets.tt index 82c0c9a8..fab5e1d8 100644 --- a/Netdisco/share/views/ajax/report/subnets.tt +++ b/Netdisco/share/views/ajax/report/subnets.tt @@ -26,7 +26,7 @@ $(document).ready(function() { $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/report/vlaninventory.tt b/Netdisco/share/views/ajax/report/vlaninventory.tt index 76124112..a7aee16e 100644 --- a/Netdisco/share/views/ajax/report/vlaninventory.tt +++ b/Netdisco/share/views/ajax/report/vlaninventory.tt @@ -14,7 +14,7 @@ $(document).ready(function() { var table = $('#data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/search/device.tt b/Netdisco/share/views/ajax/search/device.tt index 8980291e..b36f61b8 100644 --- a/Netdisco/share/views/ajax/search/device.tt +++ b/Netdisco/share/views/ajax/search/device.tt @@ -19,7 +19,7 @@ $(document).ready(function() { var table = $('#ds-data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/search/device_csv.tt b/Netdisco/share/views/ajax/search/device_csv.tt index d84986df..2af3dd11 100644 --- a/Netdisco/share/views/ajax/search/device_csv.tt +++ b/Netdisco/share/views/ajax/search/device_csv.tt @@ -9,4 +9,4 @@ [% END %] [% CSV.dump(mylist) %] -[% END %] \ No newline at end of file +[% END %] diff --git a/Netdisco/share/views/ajax/search/node_by_ip.tt b/Netdisco/share/views/ajax/search/node_by_ip.tt index 03f8fbc9..879c6967 100644 --- a/Netdisco/share/views/ajax/search/node_by_ip.tt +++ b/Netdisco/share/views/ajax/search/node_by_ip.tt @@ -177,7 +177,7 @@ $(document).ready(function() { var table = $('#nsbi-data-table').DataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/search/node_by_mac.tt b/Netdisco/share/views/ajax/search/node_by_mac.tt index 01a91cc8..ec4f2578 100644 --- a/Netdisco/share/views/ajax/search/node_by_mac.tt +++ b/Netdisco/share/views/ajax/search/node_by_mac.tt @@ -137,7 +137,7 @@ $(document).ready(function() { var table = $('#nsbm-data-table').DataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/search/port.tt b/Netdisco/share/views/ajax/search/port.tt index 3fe91428..16a4f928 100644 --- a/Netdisco/share/views/ajax/search/port.tt +++ b/Netdisco/share/views/ajax/search/port.tt @@ -14,7 +14,7 @@ $(document).ready(function() { var table = $('#ps-data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, diff --git a/Netdisco/share/views/ajax/search/vlan.tt b/Netdisco/share/views/ajax/search/vlan.tt index 2b63b2ff..010d54b8 100644 --- a/Netdisco/share/views/ajax/search/vlan.tt +++ b/Netdisco/share/views/ajax/search/vlan.tt @@ -16,7 +16,7 @@ $(document).ready(function() { var table = $('#vs-data-table').dataTable({ "processing": true, "stateSave": true, - "pageLength": 25, + "pageLength": [% settings.table_pagesize %], "language": { "search": 'Filter records: ' }, From d6f2d357ccd752ce4aa9e2ae48a06268f5feb3a7 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Tue, 1 Jul 2014 20:46:34 +0100 Subject: [PATCH 06/13] Track how many times the device uptime wrapped (F. Schiavarelli) --- Netdisco/Changes | 1 + Netdisco/lib/App/Netdisco/Core/Discover.pm | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Netdisco/Changes b/Netdisco/Changes index 891967dc..6a6cecb1 100644 --- a/Netdisco/Changes +++ b/Netdisco/Changes @@ -7,6 +7,7 @@ [BUG FIXES] * Subnets report date range fixed, but (unnecessary?) "not" option removed + * Track how many times the device uptime wrapped (F. Schiavarelli) 2.027008_001 - 2014-06-23 diff --git a/Netdisco/lib/App/Netdisco/Core/Discover.pm b/Netdisco/lib/App/Netdisco/Core/Discover.pm index bfe790b8..0ca20078 100644 --- a/Netdisco/lib/App/Netdisco/Core/Discover.pm +++ b/Netdisco/lib/App/Netdisco/Core/Discover.pm @@ -216,9 +216,20 @@ sub store_interfaces { # clear the cached uptime and get a new one my $dev_uptime = $snmp->load_uptime; - # used to track whether we've wrapped the device uptime + # used to track how many times the device uptime wrapped my $dev_uptime_wrapped = 0; + # use SNMP-FRAMEWORK-MIB::snmpEngineTime if available to + # fix device uptime if wrapped + if (defined $snmp->snmpEngineTime) { + $dev_uptime_wrapped = int( $snmp->snmpEngineTime * 100 / 2**32 ); + if ($dev_uptime_wrapped > 0) { + info sprintf ' [%s] interface - device uptime wrapped %d times - correcting', + $device->ip, $dev_uptime_wrapped; + $device->uptime( $dev_uptime + $dev_uptime_wrapped * 2**32 ); + } + } + # build device interfaces suitable for DBIC my %interfaces; foreach my $entry (keys %$interfaces) { @@ -264,7 +275,7 @@ sub store_interfaces { debug sprintf ' [%s] interfaces - correcting LastChange for %s, assuming sysUptime wrap', $device->ip, $port; - $lc += 2**32; + $lc += $dev_uptime_wrapped * 2**32; } } } From 533a7c393a1847358558c474b0d4416cf4840bcf Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Sun, 29 Jun 2014 12:41:47 +0100 Subject: [PATCH 07/13] start as non-root if port switch not required --- Netdisco/bin/netdisco-web | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Netdisco/bin/netdisco-web b/Netdisco/bin/netdisco-web index 59d23210..98652245 100755 --- a/Netdisco/bin/netdisco-web +++ b/Netdisco/bin/netdisco-web @@ -66,6 +66,8 @@ Daemon::Control->new({ stderr_file => file($log_dir, 'netdisco-web.log'), stdout_file => file($log_dir, 'netdisco-web.log'), redirect_before_fork => 0, + ((scalar grep { $_ =~ m/port/ } @args) ? () + : (uid => $uid, gid => $gid)), })->run; # the guts of this are borrowed from Plack::Loader::Restarter - many thanks!! From 1922ccaa4176040b2086390377b49facfab446b4 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Tue, 1 Jul 2014 20:57:27 +0100 Subject: [PATCH 08/13] update release notes for 2.028 --- Netdisco/Changes | 16 ++++---------- .../lib/App/Netdisco/Manual/ReleaseNotes.pod | 21 +++++++++++++++---- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/Netdisco/Changes b/Netdisco/Changes index 6a6cecb1..0b5a5a6a 100644 --- a/Netdisco/Changes +++ b/Netdisco/Changes @@ -1,15 +1,4 @@ -2.027008_002 - 2014-06-23 - - [ENHANCEMENTS] - - * table_pagesize option to set default size of table pages - - [BUG FIXES] - - * Subnets report date range fixed, but (unnecessary?) "not" option removed - * Track how many times the device uptime wrapped (F. Schiavarelli) - -2.027008_001 - 2014-06-23 +2.028000 - 2014-07-01 [NEW FEATURES] @@ -18,6 +7,7 @@ [ENHANCEMENTS] + * Web daemon will drop root status always if --port is not given * Ignore devices with "phone" in their CDP/LLDP platform description * Change log format to contain UTC timestamp * Link to VLAN search by name from VLAN Inventory report @@ -27,6 +17,8 @@ [BUG FIXES] + * Subnets report date range fixed, & (unnecessary?) "not" option removed + * Track how many times the device uptime wrapped (F. Schiavarelli) * Fix for device counts in VLAN Inventory report * Forward port housekeeping/schedule and expiry/expire legacy config * Store started timestamp on job completion diff --git a/Netdisco/lib/App/Netdisco/Manual/ReleaseNotes.pod b/Netdisco/lib/App/Netdisco/Manual/ReleaseNotes.pod index 2115019a..4aa25e36 100644 --- a/Netdisco/lib/App/Netdisco/Manual/ReleaseNotes.pod +++ b/Netdisco/lib/App/Netdisco/Manual/ReleaseNotes.pod @@ -38,15 +38,28 @@ but they are backwards compatible. =head1 2.028000 -=head2 General Changes +=head2 Incompatible Changes + +The daemons can be started from init scripts, as root. They will drop back +from the root user to C before opening logs. However a limitation is +that the web frontend might need to keep root status to bind to a specific +port (e.g. 80) - the logs will then be created as root user. Sorry about that. + +You might also find when upgrading that previous logs were owned by root and +Netdisco now wants to write to them as non-root (C) user. Please +either remove the logs before restarting, or alter their ownership. + +Logs can be found in the C subdirectory of Netdisco's home area. + +=head2 General Notices The configuration item C has been renamed to C. Old -configuration will continue to work, but we recommend you rename this key in -your configuration anyway. +configuration will continue to work, but we recommend you now rename this key +in your configuration anyway. =head1 2.025001 -=head2 General Changes +=head2 General Notices The Web and Backend daemons (C and C respectively) will now watch your C configuration file, and From e22d383bfa3e0c4dc964028b2bcfa0bcdc1a6115 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Tue, 1 Jul 2014 20:59:42 +0100 Subject: [PATCH 09/13] fix err in docs Conflicts: Netdisco/share/public/css/netdisco.css --- Netdisco/lib/App/Netdisco/Manual/Configuration.pod | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Netdisco/lib/App/Netdisco/Manual/Configuration.pod b/Netdisco/lib/App/Netdisco/Manual/Configuration.pod index 5e5b131f..75d8c7a9 100644 --- a/Netdisco/lib/App/Netdisco/Manual/Configuration.pod +++ b/Netdisco/lib/App/Netdisco/Manual/Configuration.pod @@ -67,7 +67,7 @@ backend poller, as this can highlight broken topology. =head3 C -Value: Format String. Default: C<< '[%P] %L @%D> %m' >>. +Value: Format String. Default: C<< '[%P] %U %L %m' >>. Structure of the log messages. See L for details. @@ -781,8 +781,7 @@ field to use as the management IP address for a device. Value: Boolean. Default: C. -Set to false to prevent Netdisco from changing the default VLAN on an -interface. +Set to false to prevent users from changing the default VLAN on an interface. =head3 C From 929cf8029c87de28df85f7f64b98c2c26408cec6 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Wed, 25 Jun 2014 22:20:57 +0100 Subject: [PATCH 10/13] typo in defaults --- Netdisco/share/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Netdisco/share/config.yml b/Netdisco/share/config.yml index ba065c19..3c195394 100644 --- a/Netdisco/share/config.yml +++ b/Netdisco/share/config.yml @@ -103,7 +103,7 @@ discover_only: [] discover_no_type: [] discover_min_age: 0 macsuck_no: [] -macksuck_only: [] +macsuck_only: [] macsuck_all_vlans: false macsuck_no_unnamed: false macsuck_no_vlan: [fddi-default,token-ring-default,fddinet-default,trnet-default] From f29c8960ed998b9e808088b79a4bf1eb7d349562 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Mon, 23 Jun 2014 23:33:26 +0100 Subject: [PATCH 11/13] minor typo --- Netdisco/lib/App/Netdisco/Manual/Configuration.pod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Netdisco/lib/App/Netdisco/Manual/Configuration.pod b/Netdisco/lib/App/Netdisco/Manual/Configuration.pod index 75d8c7a9..8407d3ab 100644 --- a/Netdisco/lib/App/Netdisco/Manual/Configuration.pod +++ b/Netdisco/lib/App/Netdisco/Manual/Configuration.pod @@ -88,7 +88,7 @@ Value: Boolean. Default: C. Enable this to disable login authentication in the web frontend. The username will be set to C so if you want to allow extended permissions (C -or C, create a dummy user with the appropriate flag in the +or C), create a dummy user with the appropriate flag in the database: netdisco=> insert into users (username) values ('guest'); From 6dbed02b7cc4ec63a1472d60e5d2fe601cb5a609 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Mon, 23 Jun 2014 20:35:30 +0100 Subject: [PATCH 12/13] properly search the template path!! [#103] Conflicts: Netdisco/lib/App/Netdisco/Web.pm Netdisco/lib/App/Netdisco/Web/Plugin.pm --- Netdisco/Changes | 1 + Netdisco/lib/App/Netdisco/Web.pm | 4 ++++ Netdisco/lib/App/Netdisco/Web/Plugin.pm | 7 +++--- .../Template/NetdiscoTemplateToolkit.pm | 23 +++++++++++++++++++ Netdisco/share/config.yml | 4 ++-- 5 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 Netdisco/lib/Dancer/Template/NetdiscoTemplateToolkit.pm diff --git a/Netdisco/Changes b/Netdisco/Changes index 0b5a5a6a..20709f87 100644 --- a/Netdisco/Changes +++ b/Netdisco/Changes @@ -24,6 +24,7 @@ * Store started timestamp on job completion * Set UTF-8 mode on Pg database connection * Add netdisco-rancid-export to installed scripts + * Template INCLUDE path stuffing broken for plugins [#103] 2.027007 - 2014-05-27 diff --git a/Netdisco/lib/App/Netdisco/Web.pm b/Netdisco/lib/App/Netdisco/Web.pm index dab64938..e238be06 100644 --- a/Netdisco/lib/App/Netdisco/Web.pm +++ b/Netdisco/lib/App/Netdisco/Web.pm @@ -48,6 +48,10 @@ if (setting('extra_web_plugins') and ref [] eq ref setting('extra_web_plugins')) _load_web_plugins( setting('extra_web_plugins') ); } +# after plugins are loaded, add our own template path +push @{ config->{engines}->{netdisco_template_toolkit}->{INCLUDE_PATH} }, + setting('views'); + # workaround for https://github.com/PerlDancer/Dancer/issues/935 hook after_error_render => sub { setting('layout' => 'main') }; diff --git a/Netdisco/lib/App/Netdisco/Web/Plugin.pm b/Netdisco/lib/App/Netdisco/Web/Plugin.pm index e07860a4..adffac6b 100644 --- a/Netdisco/lib/App/Netdisco/Web/Plugin.pm +++ b/Netdisco/lib/App/Netdisco/Web/Plugin.pm @@ -21,7 +21,7 @@ set( ); # this is what Dancer::Template::TemplateToolkit does by default -config->{engines}->{template_toolkit}->{INCLUDE_PATH} ||= [ setting('views') ]; +config->{engines}->{netdisco_template_toolkit}->{INCLUDE_PATH} ||= [ setting('views') ]; register 'register_template_path' => sub { my ($self, $path) = plugin_args(@_); @@ -30,9 +30,8 @@ register 'register_template_path' => sub { return error "bad template path to register_template_paths"; } - unshift - @{ config->{engines}->{template_toolkit}->{INCLUDE_PATH} }, - $path, dir($path, 'views')->stringify; + push @{ config->{engines}->{netdisco_template_toolkit}->{INCLUDE_PATH} }, + dir($path, 'views')->stringify; }; sub _register_include { diff --git a/Netdisco/lib/Dancer/Template/NetdiscoTemplateToolkit.pm b/Netdisco/lib/Dancer/Template/NetdiscoTemplateToolkit.pm new file mode 100644 index 00000000..5a3e31bc --- /dev/null +++ b/Netdisco/lib/Dancer/Template/NetdiscoTemplateToolkit.pm @@ -0,0 +1,23 @@ +package Dancer::Template::NetdiscoTemplateToolkit; + +use strict; +use warnings; + +use Dancer::FileUtils 'path'; +use base 'Dancer::Template::TemplateToolkit'; + +sub view { + my ($self, $view) = @_; + + foreach my $path (@{ $self->config->{INCLUDE_PATH} }) { + foreach my $template ($self->_template_name($view)) { + my $view_path = path($path, $template); + return $view_path if -f $view_path; + } + } + + # No matching view path was found + return; +} + +1; diff --git a/Netdisco/share/config.yml b/Netdisco/share/config.yml index 3c195394..e21eee9d 100644 --- a/Netdisco/share/config.yml +++ b/Netdisco/share/config.yml @@ -219,7 +219,7 @@ warnings: false show_errors: false logger: 'console' engines: - template_toolkit: + netdisco_template_toolkit: encoding: 'utf8' start_tag: '[%' end_tag: '%]' @@ -235,7 +235,7 @@ plugins: provider: 'App::Netdisco::Web::Auth::Provider::DBIC' schema_name: 'netdisco' session: 'YAML' -template: 'template_toolkit' +template: 'netdisco_template_toolkit' route_cache: true appname: 'Netdisco' behind_proxy: false From 58e5d05ac0e851ca48419a52286b5e9afb4ba1a9 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Tue, 1 Jul 2014 21:12:00 +0100 Subject: [PATCH 13/13] update version and changes --- Netdisco/Changes | 1 + Netdisco/lib/App/Netdisco.pm | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Netdisco/Changes b/Netdisco/Changes index 20709f87..4580a201 100644 --- a/Netdisco/Changes +++ b/Netdisco/Changes @@ -23,6 +23,7 @@ * Forward port housekeeping/schedule and expiry/expire legacy config * Store started timestamp on job completion * Set UTF-8 mode on Pg database connection + * Identify changes in device type after initial discover * Add netdisco-rancid-export to installed scripts * Template INCLUDE path stuffing broken for plugins [#103] diff --git a/Netdisco/lib/App/Netdisco.pm b/Netdisco/lib/App/Netdisco.pm index 8dd8af2b..a986f42a 100644 --- a/Netdisco/lib/App/Netdisco.pm +++ b/Netdisco/lib/App/Netdisco.pm @@ -4,7 +4,7 @@ use strict; use warnings; use 5.010_000; -our $VERSION = '2.027008_001'; +our $VERSION = '2.028000'; use App::Netdisco::Configuration; =head1 NAME