rename daemon to backend in code

This commit is contained in:
Oliver Gorwits
2017-05-06 16:26:43 +01:00
parent ffe8fc180f
commit 86a605ba68
11 changed files with 69 additions and 66 deletions

View File

@@ -89,6 +89,8 @@ Module::Build->new(
'bin/netdisco-db-deploy', 'bin/netdisco-db-deploy',
'bin/netdisco-deploy', 'bin/netdisco-deploy',
'bin/netdisco-do', 'bin/netdisco-do',
'bin/netdisco-backend-fg',
'bin/netdisco-backend',
'bin/netdisco-daemon-fg', 'bin/netdisco-daemon-fg',
'bin/netdisco-daemon', 'bin/netdisco-daemon',
'bin/netdisco-web-fg', 'bin/netdisco-web-fg',

View File

@@ -46,21 +46,21 @@ use File::Copy;
use App::Netdisco::Environment; use App::Netdisco::Environment;
my $config = ($ENV{PLACK_ENV} || $ENV{DANCER_ENVIRONMENT}) .'.yml'; my $config = ($ENV{PLACK_ENV} || $ENV{DANCER_ENVIRONMENT}) .'.yml';
my $netdisco = file($FindBin::RealBin, 'netdisco-daemon-fg'); my $netdisco = file($FindBin::RealBin, 'netdisco-backend-fg');
my @args = (scalar @ARGV > 1 ? @ARGV[1 .. $#ARGV] : ()); my @args = (scalar @ARGV > 1 ? @ARGV[1 .. $#ARGV] : ());
my $log_dir = dir($home, 'logs'); my $log_dir = dir($home, 'logs');
mkdir $log_dir if ! -d $log_dir; mkdir $log_dir if ! -d $log_dir;
my $log_file = file($log_dir, 'netdisco-daemon.log'); my $log_file = file($log_dir, 'netdisco-backend.log');
my $uid = (stat($netdisco->stringify))[4] || 0; my $uid = (stat($netdisco->stringify))[4] || 0;
my $gid = (stat($netdisco->stringify))[5] || 0; my $gid = (stat($netdisco->stringify))[5] || 0;
Daemon::Control->new({ Daemon::Control->new({
name => 'Netdisco Daemon', name => 'Netdisco Backend',
program => \&restarter, program => \&restarter,
program_args => [@args], program_args => [@args],
pid_file => file($home, 'netdisco-daemon.pid'), pid_file => file($home, 'netdisco-backend.pid'),
stderr_file => $log_file, stderr_file => $log_file,
stdout_file => $log_file, stdout_file => $log_file,
redirect_before_fork => 0, redirect_before_fork => 0,
@@ -72,7 +72,7 @@ my $child = 0;
sub restarter { sub restarter {
my ($daemon, @program_args) = @_; my ($daemon, @program_args) = @_;
$0 = 'netdisco-daemon'; $0 = 'netdisco-backend';
$child = fork_and_start($daemon, @program_args); $child = fork_and_start($daemon, @program_args);
exit(1) unless $child; exit(1) unless $child;
@@ -171,7 +171,7 @@ sub rotate_logs {
=head1 NAME =head1 NAME
netdisco-daemon - Job Control Daemon for Netdisco netdisco-backend - Job Control Daemon for Netdisco
=head1 SEE ALSO =head1 SEE ALSO

View File

@@ -24,25 +24,25 @@ use App::Netdisco;
use Dancer qw/:moose :script/; use Dancer qw/:moose :script/;
warning sprintf "App::Netdisco %s backend", ($App::Netdisco::VERSION || 'HEAD'); warning sprintf "App::Netdisco %s backend", ($App::Netdisco::VERSION || 'HEAD');
use App::Netdisco::Util::Daemon; use App::Netdisco::Util::Backend;
use NetAddr::IP::Lite ':lower'; # to quench AF_INET6 symbol errors use NetAddr::IP::Lite ':lower'; # to quench AF_INET6 symbol errors
use Role::Tiny::With; use Role::Tiny::With;
# preload all worker modules into shared memory # preload all worker modules into shared memory
use App::Netdisco::Daemon::Job (); use App::Netdisco::Backend::Job ();
use App::Netdisco::Daemon::Util (); use App::Netdisco::Backend::Util ();
use App::Netdisco::Daemon::Worker::Common (); use App::Netdisco::Backend::Worker::Common ();
use App::Netdisco::Daemon::Worker::Interactive::DeviceActions (); use App::Netdisco::Backend::Worker::Interactive::DeviceActions ();
use App::Netdisco::Daemon::Worker::Interactive::PortActions (); use App::Netdisco::Backend::Worker::Interactive::PortActions ();
use App::Netdisco::Daemon::Worker::Manager (); use App::Netdisco::Backend::Worker::Manager ();
use App::Netdisco::Daemon::Worker::Poller::Arpnip (); use App::Netdisco::Backend::Worker::Poller::Arpnip ();
use App::Netdisco::Daemon::Worker::Poller::Common (); use App::Netdisco::Backend::Worker::Poller::Common ();
use App::Netdisco::Daemon::Worker::Poller::Device (); use App::Netdisco::Backend::Worker::Poller::Device ();
use App::Netdisco::Daemon::Worker::Poller::Expiry (); use App::Netdisco::Backend::Worker::Poller::Expiry ();
use App::Netdisco::Daemon::Worker::Poller::Macsuck (); use App::Netdisco::Backend::Worker::Poller::Macsuck ();
use App::Netdisco::Daemon::Worker::Poller::Nbtstat (); use App::Netdisco::Backend::Worker::Poller::Nbtstat ();
use App::Netdisco::Daemon::Worker::Poller (); use App::Netdisco::Backend::Worker::Poller ();
use App::Netdisco::Daemon::Worker::Scheduler (); use App::Netdisco::Backend::Worker::Scheduler ();
use MCE::Signal '-setpgrp'; use MCE::Signal '-setpgrp';
use MCE::Flow Sereal => 1; use MCE::Flow Sereal => 1;
@@ -54,7 +54,7 @@ my $tmp_dir = ($ENV{NETDISCO_TEMP} || dir($home, 'tmp'));
mkdir $tmp_dir if ! -d $tmp_dir; mkdir $tmp_dir if ! -d $tmp_dir;
# process-table text # process-table text
prctl 'netdisco-daemon: master'; prctl 'netdisco-backend: master';
# shared local job queue # shared local job queue
my $queue = MCE::Queue->new; my $queue = MCE::Queue->new;
@@ -80,12 +80,12 @@ sub _mk_wkr {
my $self = shift; my $self = shift;
$self->{queue} = $queue; $self->{queue} = $queue;
prctl sprintf 'netdisco-daemon: worker #%s %s: init', MCE->wid, lc($role); prctl sprintf 'netdisco-backend: worker #%s %s: init', MCE->wid, lc($role);
info sprintf 'applying role %s to worker %s', $role, MCE->wid; info sprintf 'applying role %s to worker %s', $role, MCE->wid;
# post-fork, become manager, scheduler, poller, etc # post-fork, become manager, scheduler, poller, etc
Role::Tiny->apply_roles_to_object( Role::Tiny->apply_roles_to_object(
$self => "App::Netdisco::Daemon::Worker::$role"); $self => "App::Netdisco::Backend::Worker::$role");
$self->worker_begin if $self->can('worker_begin'); $self->worker_begin if $self->can('worker_begin');
$self->worker_body; $self->worker_body;
@@ -94,7 +94,7 @@ sub _mk_wkr {
=head1 NAME =head1 NAME
netdisco-daemon-fg - Job Control for Netdisco netdisco-backend-fg - Job Control for Netdisco
=head1 SEE ALSO =head1 SEE ALSO

View File

@@ -134,10 +134,10 @@ Link some of the newly installed apps into a handy location:
ln -s ~/perl5/bin/{localenv,netdisco-*} ~/bin/ ln -s ~/perl5/bin/{localenv,netdisco-*} ~/bin/
Test the installation by running the following command, which should only Test the installation by running the following command, which should only
produce a status message (it's just a test - you'll start the daemon properly, produce a status message (it's just a test - you'll start the daemons
later on): properly, later on):
~/bin/netdisco-daemon status ~/bin/netdisco-backend status
=head1 Configuration =head1 Configuration
@@ -167,8 +167,8 @@ details.
The database either needs configuring if new, or updating from the current The database either needs configuring if new, or updating from the current
release of Netdisco (1.x). You also need vendor MAC address prefixes (OUI release of Netdisco (1.x). You also need vendor MAC address prefixes (OUI
data) and some MIBs if you want to run the daemon. The following script will data) and some MIBs if you want to run the backend daemon. The following
take care of all this for you: script will take care of all this for you:
~/bin/netdisco-deploy ~/bin/netdisco-deploy
@@ -185,7 +185,7 @@ Run the following command to start the web-app server as a backgrounded daemon
Run the following command to start the job control daemon (port control, etc): Run the following command to start the job control daemon (port control, etc):
~/bin/netdisco-daemon start ~/bin/netdisco-backend start
You should take care not to run this Netdisco daemon and the Netdisco 1.x You should take care not to run this Netdisco daemon and the Netdisco 1.x
daemon at the same time. Similarly, if you use the device discovery with daemon at the same time. Similarly, if you use the device discovery with
@@ -207,6 +207,7 @@ Notes|App::Netdisco::Manual::ReleaseNotes>. Then, the process is as follows:
# upgrade Netdisco # upgrade Netdisco
~/bin/localenv cpanm --notest App::Netdisco ~/bin/localenv cpanm --notest App::Netdisco
ln -s ~/perl5/bin/{localenv,netdisco-*} ~/bin/
# apply database schema updates # apply database schema updates
~/bin/netdisco-deploy ~/bin/netdisco-deploy
@@ -215,7 +216,7 @@ Notes|App::Netdisco::Manual::ReleaseNotes>. Then, the process is as follows:
~/bin/netdisco-web restart ~/bin/netdisco-web restart
# restart job daemon (if you use it) # restart job daemon (if you use it)
~/bin/netdisco-daemon restart ~/bin/netdisco-backend restart
=head1 Tips and Tricks =head1 Tips and Tricks

View File

@@ -1,9 +1,9 @@
package App::Netdisco::Daemon::Worker::Common; package App::Netdisco::Backend::Worker::Common;
use Dancer qw/:moose :syntax :script/; use Dancer qw/:moose :syntax :script/;
use Try::Tiny; use Try::Tiny;
use App::Netdisco::Util::Daemon; use App::Netdisco::Util::Backend;
use Role::Tiny; use Role::Tiny;
use namespace::clean; use namespace::clean;
@@ -18,7 +18,7 @@ sub worker_body {
my $wid = $self->wid; my $wid = $self->wid;
while (1) { while (1) {
prctl sprintf 'netdisco-daemon: worker #%s poller: idle', $wid; prctl sprintf 'netdisco-backend: worker #%s poller: idle', $wid;
my $job = $self->{queue}->dequeue(1); my $job = $self->{queue}->dequeue(1);
next unless defined $job; next unless defined $job;
@@ -26,7 +26,7 @@ sub worker_body {
try { try {
$job->started(scalar localtime); $job->started(scalar localtime);
prctl sprintf 'netdisco-daemon: worker #%s poller: working on #%s: %s', prctl sprintf 'netdisco-backend: worker #%s poller: working on #%s: %s',
$wid, $job->job, $job->summary; $wid, $job->job, $job->summary;
info sprintf "pol (%s): starting %s job(%s) at %s", info sprintf "pol (%s): starting %s job(%s) at %s",
$wid, $action, $job->job, $job->started; $wid, $action, $job->job, $job->started;
@@ -50,7 +50,7 @@ sub close_job {
my ($self, $job) = @_; my ($self, $job) = @_;
my $now = scalar localtime; my $now = scalar localtime;
prctl sprintf 'netdisco-daemon: worker #%s poller: wrapping up %s #%s: %s', prctl sprintf 'netdisco-backend: worker #%s poller: wrapping up %s #%s: %s',
$self->wid, $job->action, $job->job, $job->status; $self->wid, $job->action, $job->job, $job->status;
info sprintf "pol (%s): wrapping up %s job(%s) - status %s at %s", info sprintf "pol (%s): wrapping up %s job(%s) - status %s at %s",
$self->wid, $job->action, $job->job, $job->status, $now; $self->wid, $job->action, $job->job, $job->status, $now;

View File

@@ -1,9 +1,9 @@
package App::Netdisco::Daemon::Worker::Manager; package App::Netdisco::Backend::Worker::Manager;
use Dancer qw/:moose :syntax :script/; use Dancer qw/:moose :syntax :script/;
use List::Util 'sum'; use List::Util 'sum';
use App::Netdisco::Util::Daemon; use App::Netdisco::Util::Backend;
use Role::Tiny; use Role::Tiny;
use namespace::clean; use namespace::clean;
@@ -35,12 +35,12 @@ sub worker_body {
my $wid = $self->wid; my $wid = $self->wid;
if (setting('workers')->{'no_manager'}) { if (setting('workers')->{'no_manager'}) {
prctl sprintf 'netdisco-daemon: worker #%s manager: inactive', $wid; prctl sprintf 'netdisco-backend: worker #%s manager: inactive', $wid;
return debug "mgr ($wid): no need for manager... quitting" return debug "mgr ($wid): no need for manager... quitting"
} }
while (1) { while (1) {
prctl sprintf 'netdisco-daemon: worker #%s manager: gathering', $wid; prctl sprintf 'netdisco-backend: worker #%s manager: gathering', $wid;
my $num_slots = 0; my $num_slots = 0;
$num_slots = parse_max_workers( setting('workers')->{tasks} ) $num_slots = parse_max_workers( setting('workers')->{tasks} )
@@ -78,7 +78,7 @@ sub worker_body {
} }
debug "mgr ($wid): sleeping now..."; debug "mgr ($wid): sleeping now...";
prctl sprintf 'netdisco-daemon: worker #%s manager: idle', $wid; prctl sprintf 'netdisco-backend: worker #%s manager: idle', $wid;
sleep( setting('workers')->{sleep_time} || 1 ); sleep( setting('workers')->{sleep_time} || 1 );
} }
} }

View File

@@ -1,9 +1,9 @@
package App::Netdisco::Daemon::Worker::Scheduler; package App::Netdisco::Backend::Worker::Scheduler;
use Dancer qw/:moose :syntax :script/; use Dancer qw/:moose :syntax :script/;
use Algorithm::Cron; use Algorithm::Cron;
use App::Netdisco::Util::Daemon; use App::Netdisco::Util::Backend;
use Role::Tiny; use Role::Tiny;
use namespace::clean; use namespace::clean;
@@ -39,7 +39,7 @@ sub worker_body {
my $wid = $self->wid; my $wid = $self->wid;
unless (setting('schedule')) { unless (setting('schedule')) {
prctl sprintf 'netdisco-daemon: worker #%s scheduler: inactive', $wid; prctl sprintf 'netdisco-backend: worker #%s scheduler: inactive', $wid;
return debug "sch ($wid): no need for scheduler... quitting" return debug "sch ($wid): no need for scheduler... quitting"
} }
@@ -47,11 +47,11 @@ sub worker_body {
# sleep until some point in the next minute # sleep until some point in the next minute
my $naptime = 60 - (time % 60) + int(rand(45)); my $naptime = 60 - (time % 60) + int(rand(45));
prctl sprintf 'netdisco-daemon: worker #%s scheduler: idle', $wid; prctl sprintf 'netdisco-backend: worker #%s scheduler: idle', $wid;
debug "sched ($wid): sleeping for $naptime seconds"; debug "sched ($wid): sleeping for $naptime seconds";
sleep $naptime; sleep $naptime;
prctl sprintf 'netdisco-daemon: worker #%s scheduler: queueing', $wid; prctl sprintf 'netdisco-backend: worker #%s scheduler: queueing', $wid;
# NB next_time() returns the next *after* win_start # NB next_time() returns the next *after* win_start
my $win_start = time - (time % 60) - 1; my $win_start = time - (time % 60) - 1;

View File

@@ -7,7 +7,7 @@ App::Netdisco::Manual::Deployment - Tips and Tricks for Deployment
The Netdisco applications will generate RC scripts suitable for Linux systems: The Netdisco applications will generate RC scripts suitable for Linux systems:
bin/netdisco-web get_init_file bin/netdisco-web get_init_file
bin/netdisco-daemon get_init_file bin/netdisco-backend get_init_file
On C<systemd>-based systems please see L<our systemd On C<systemd>-based systems please see L<our systemd
guide|App::Netdisco::Manual::Systemd>. guide|App::Netdisco::Manual::Systemd>.

View File

@@ -51,14 +51,14 @@ directory
You might also want to set C<check_userlog> to C<false> in your config to You might also want to set C<check_userlog> to C<false> in your config to
quieten some of the web client callbacks. quieten some of the web client callbacks.
For the daemon, it's very similar: For the backend daemon, it's very similar:
DBIC_TRACE=1 ~/bin/localenv bin/netdisco-daemon-fg DBIC_TRACE=1 ~/bin/localenv bin/netdisco-backend-fg
You can point at a different database without editing C<deployment.yml>: You can point at a different database without editing C<deployment.yml>:
NETDISCO_DBNAME=testdb DBIC_TRACE=1 ~/bin/localenv plackup -R share,lib -p 5001 bin/netdisco-web-fg NETDISCO_DBNAME=testdb DBIC_TRACE=1 ~/bin/localenv plackup -R share,lib -p 5001 bin/netdisco-web-fg
NETDISCO_DBNAME=testdb DBIC_TRACE=1 ~/bin/localenv bin/netdisco-daemon-fg NETDISCO_DBNAME=testdb DBIC_TRACE=1 ~/bin/localenv bin/netdisco-backend-fg
It's recommended to delete the "C<~/perl5/lib/perl5/App/Netdisco>" It's recommended to delete the "C<~/perl5/lib/perl5/App/Netdisco>"
directory to avoid accidentally picking up old Netdisco code. For working on directory to avoid accidentally picking up old Netdisco code. For working on
@@ -398,7 +398,7 @@ database connection management features mentioned above.
The job daemon is backwards compatible with the old Netdisco database job The job daemon is backwards compatible with the old Netdisco database job
requests table. All code for the job daemon lives under the requests table. All code for the job daemon lives under the
L<App::Netdisco::Daemon> namespace and like the rest of Netdisco is broken L<App::Netdisco::Backend> namespace and like the rest of Netdisco is broken
down into manageable chunks. down into manageable chunks.
=head2 Running the Job Daemon =head2 Running the Job Daemon
@@ -407,10 +407,10 @@ Like the web application, the job daemon is fully self contained and runs via
two simple scripts shipped with the distribution - one for foreground and one two simple scripts shipped with the distribution - one for foreground and one
for background execution (see the user docs for instructions). for background execution (see the user docs for instructions).
The C<netdisco-daemon> script uses L<Daemon::Control> to daemonize so you can The C<netdisco-backend> script uses L<Daemon::Control> to daemonize so you can
fire-and-forget the Netdisco job daemon without much trouble at all. This fire-and-forget the Netdisco job daemon without much trouble at all. This
script in turn calls C<netdisco-daemon-fg> which is the real application, that script in turn calls C<netdisco-backend-fg> which is the real application,
runs in the foreground if called on its own. that runs in the foreground if called on its own.
=head2 Daemon Engineering =head2 Daemon Engineering

View File

@@ -10,21 +10,21 @@ instructions apply to your local installation and use at your own risk.
=head1 Files =head1 Files
=head2 C<< /etc/systemd/system/netdisco-daemon.service >> =head2 C<< /etc/systemd/system/netdisco-backend.service >>
This should be set mode 644 and owned by user and group C<root>. This should be set mode 644 and owned by user and group C<root>.
[Unit] [Unit]
Description=Netdisco Daemon Service Description=Netdisco Backend Service
AssertFileIsExecutable=/home/netdisco/bin/netdisco-daemon AssertFileIsExecutable=/home/netdisco/bin/netdisco-backend
After=syslog.target network-online.target After=syslog.target network-online.target
[Service] [Service]
Type=forking Type=forking
User=netdisco User=netdisco
Group=netdisco Group=netdisco
ExecStart=/home/netdisco/bin/netdisco-daemon start ExecStart=/home/netdisco/bin/netdisco-backend start
ExecStop=/home/netdisco/bin/netdisco-daemon stop ExecStop=/home/netdisco/bin/netdisco-backend stop
Restart=on-failure Restart=on-failure
RestartSec=60 RestartSec=60
@@ -38,7 +38,7 @@ This should be set mode 644 and owned by user and group C<root>.
[Unit] [Unit]
Description=Netdisco Web Service Description=Netdisco Web Service
AssertFileIsExecutable=/home/netdisco/bin/netdisco-web AssertFileIsExecutable=/home/netdisco/bin/netdisco-web
After=syslog.target network-online.target netdisco-daemon.service After=syslog.target network-online.target netdisco-backend.service
[Service] [Service]
Type=forking Type=forking
@@ -56,15 +56,15 @@ This should be set mode 644 and owned by user and group C<root>.
To enable Netdisco in systemd: To enable Netdisco in systemd:
systemctl enable netdisco-daemon.service systemctl enable netdisco-backend.service
systemctl enable netdisco-web.service systemctl enable netdisco-web.service
To start Netdisco: To start Netdisco:
systemctl start netdisco-daemon.service systemctl start netdisco-backend.service
systemctl start netdisco-web.service systemctl start netdisco-web.service
May also need to run C<systemctl daemon-reload> depending on the order you do May also need to run C<systemctl netdisco-backend reload> depending on the
these steps. order you do these steps.
=cut =cut

View File

@@ -64,7 +64,7 @@ discover_no_type:
- '(?i)phone' - '(?i)phone'
- '(?i)(?:wap|wireless)' - '(?i)(?:wap|wireless)'
# number of SNMP workers to run in parallel (in netdisco-daemon). # number of SNMP workers to run in parallel (in netdisco-backend).
# the default is twice the number of CPU cores. increase this if # the default is twice the number of CPU cores. increase this if
# your system has few cores and the schedule is taking too long. # your system has few cores and the schedule is taking too long.
# ``````````````````````````````````````````````````````````````` # ```````````````````````````````````````````````````````````````