<%doc> -- Config tasks -- % <%attr> title => 'Config Tasks' % % %####################################################################### %# %# Args section %# %####################################################################### <%args> @config_types => undef $user => $ui->get_current_user($r) $submit => undef $showheader => 1 $hideheader => undef @zones => undef $bind_force => undef $dhcpd_force => undef $bind_no_priv => undef @scopes => undef % % % %####################################################################### %# %# INIT section %# %####################################################################### % <%init> use Netdot::Exporter; my $DEBUG = 0; print '%ARGS is
', Dumper(%ARGS), '

' if $DEBUG; my @types = qw /Nagios Sysmon Rancid BIND DHCPD/; my $logstr; my $manager = $ui->get_permission_manager($r); % unless ( $manager && $manager->can($user, 'access_admin_section', 'Export:Configurations') ){ $m->comp('/generic/error.mhtml', error=>"You don't have permission to access this section"); % }
>
Export third party configurations from Netdot


Export Classes

BIND Options

DHCPD Options

<%perl> if ( $submit ){ unless ( $manager && $manager->can($user, 'access_admin_section', 'Export:Submit_Configuration') ){ $m->comp('/generic/error.mhtml', error=>"You don't have permission to perform this operation") } $m->comp('/generic/error.mhtml', error=>"Please select an Export type") unless ( $ARGS{config_types} ); my $logger = Netdot->log->get_logger('Netdot::Exporter'); if ( $logstr = Log::Log4perl::appender_by_name('config_tasks.html') ){ Log::Log4perl->eradicate_appender('config_tasks.html'); } $logstr = Netdot::Util::Log->new_appender('String', name=>'config_tasks.html'); $logger->add_appender($logstr); my $dhcp_logger = Netdot->log->get_logger('Netdot::Model::DHCP'); $dhcp_logger->add_appender($logstr); foreach my $type ( @config_types ){ my %args; if ( $type eq 'BIND' ){ $args{zone_ids} = \@zones if ( scalar @zones && $zones[0] ne "" ); $args{force} = 1 if ($bind_force); $args{nopriv} = 1 if ($bind_no_priv); }elsif ( $type eq 'DHCPD' ){ $args{force} = 1 if ($dhcpd_force); $args{scopes} = \@scopes if @scopes; } eval { my $exporter = Netdot::Exporter->new(type=>$type); $exporter->generate_configs(%args); }; if ( my $e = $@ ){ $m->comp('/generic/error.mhtml', error=>$e); } } my $log = $logstr->string() ; if ( $log ){ print "


"; print "Exporter Output:
"; print "

";
	print "$log";
	print "

"; } }
<%cleanup> if ( defined $logstr ){ Log::Log4perl->eradicate_appender('config_tasks.html') }