[pve-devel] [PATCH 1/2] move trivial preparations into prepare()

Wolfgang Bumiller w.bumiller at proxmox.com
Fri May 29 13:44:49 CEST 2015


Moving some preparation code found at the top level of some binaries
into a prepare() sub.
---
 bin/pvedaemon  | 10 ++++++----
 bin/pveproxy   | 18 ++++++++++--------
 bin/pvestatd   | 18 +++++++++++-------
 bin/spiceproxy | 18 ++++++++++--------
 4 files changed, 37 insertions(+), 27 deletions(-)

diff --git a/bin/pvedaemon b/bin/pvedaemon
index 75fe20d..5440a0c 100755
--- a/bin/pvedaemon
+++ b/bin/pvedaemon
@@ -34,11 +34,13 @@ my %daemon_options = (
     leave_children_open_on_reload => 1,
 );
 
-# create dir for dtach sockets
-mkdir "/var/run/dtach";
-
 my $daemon = __PACKAGE__->new('pvedaemon', $cmdline, %daemon_options); 
 
+sub prepare {
+    # create dir for dtach sockets
+    mkdir "/var/run/dtach";
+}
+
 sub init {
     my ($self) = @_;
 
@@ -83,7 +85,7 @@ my $cmddef = {
 
 my $cmd = shift;
 
-PVE::CLIHandler::handle_cmd($cmddef, $0, $cmd, \@ARGV, undef, $0);
+PVE::CLIHandler::handle_cmd($cmddef, $0, $cmd, \@ARGV, undef, $0, \&prepare);
 
 exit (0);
 
diff --git a/bin/pveproxy b/bin/pveproxy
index 3864444..df7eb10 100755
--- a/bin/pveproxy
+++ b/bin/pveproxy
@@ -51,15 +51,17 @@ my %daemon_options = (
     pidfile => '/var/run/pveproxy/pveproxy.pid',
 );
 
-my $rundir="/var/run/pveproxy";
-if (mkdir($rundir, 0700)) { # only works at first start if we are root)
-    my $gid = getgrnam('www-data') || die "getgrnam failed - $!\n";
-    my $uid = getpwnam('www-data') || die "getpwnam failed - $!\n";
-    chown($uid, $gid, $rundir);
+my $daemon = __PACKAGE__->new('pveproxy', $cmdline, %daemon_options);
+
+sub prepare {
+    my $rundir="/var/run/pveproxy";
+    if (mkdir($rundir, 0700)) { # only works at first start if we are root)
+    	my $gid = getgrnam('www-data') || die "getgrnam failed - $!\n";
+    	my $uid = getpwnam('www-data') || die "getpwnam failed - $!\n";
+    	chown($uid, $gid, $rundir);
+    }
 }
 
-my $daemon = __PACKAGE__->new('pveproxy', $cmdline, %daemon_options); 
-
 sub add_dirs {
     my ($result_hash, $alias, $subdir) = @_;
 
@@ -160,7 +162,7 @@ my $cmddef = {
 
 my $cmd = shift;
 
-PVE::CLIHandler::handle_cmd($cmddef, $0, $cmd, \@ARGV, undef, $0);
+PVE::CLIHandler::handle_cmd($cmddef, $0, $cmd, \@ARGV, undef, $0, \&prepare);
 
 exit (0);
 
diff --git a/bin/pvestatd b/bin/pvestatd
index 3a4e8f2..c8b3b98 100755
--- a/bin/pvestatd
+++ b/bin/pvestatd
@@ -27,15 +27,19 @@ my $cmdline = [$0, @ARGV];
 my %daemon_options = (restart_on_error => 5, stop_wait_time => 5);
 
 my $daemon = __PACKAGE__->new('pvestatd', $cmdline, %daemon_options);
+my $nodename;
+my $restart_request;
 
-my $rpcenv = PVE::RPCEnvironment->init('cli');
+sub prepare {
+    my $rpcenv = PVE::RPCEnvironment->init('cli');
 
-$rpcenv->init_request();
-$rpcenv->set_language($ENV{LANG});
-$rpcenv->set_user('root at pam');
+    $rpcenv->init_request();
+    $rpcenv->set_language($ENV{LANG});
+    $rpcenv->set_user('root at pam');
 
-my $nodename = PVE::INotify::nodename();
-my $restart_request = 0;
+    $nodename = PVE::INotify::nodename();
+    $restart_request = 0;
+}
 
 sub init {
     my ($self) = @_;
@@ -354,7 +358,7 @@ my $cmddef = {
 
 my $cmd = shift;
 
-PVE::CLIHandler::handle_cmd($cmddef, $0, $cmd, \@ARGV, undef, $0);
+PVE::CLIHandler::handle_cmd($cmddef, $0, $cmd, \@ARGV, undef, $0, \&prepare);
 
 exit (0);
 
diff --git a/bin/spiceproxy b/bin/spiceproxy
index 07acf32..7065ebd 100755
--- a/bin/spiceproxy
+++ b/bin/spiceproxy
@@ -40,15 +40,17 @@ my %daemon_options = (
     pidfile => '/var/run/pveproxy/spiceproxy.pid',
     );
 
-my $rundir="/var/run/pveproxy";
-if (mkdir($rundir, 0700)) { # only works at first start if we are root)
-    my $gid = getgrnam('www-data') || die "getgrnam failed - $!\n";
-    my $uid = getpwnam('www-data') || die "getpwnam failed - $!\n";
-    chown($uid, $gid, $rundir);
-}
-
 my $daemon = __PACKAGE__->new('spiceproxy', $cmdline, %daemon_options); 
 
+sub prepare {
+    my $rundir="/var/run/pveproxy";
+    if (mkdir($rundir, 0700)) { # only works at first start if we are root)
+	my $gid = getgrnam('www-data') || die "getgrnam failed - $!\n";
+	my $uid = getpwnam('www-data') || die "getpwnam failed - $!\n";
+	chown($uid, $gid, $rundir);
+    }
+}
+
 sub init {
     my ($self) = @_;
 
@@ -101,7 +103,7 @@ my $cmddef = {
 
 my $cmd = shift;
 
-PVE::CLIHandler::handle_cmd($cmddef, $0, $cmd, \@ARGV, undef, $0);
+PVE::CLIHandler::handle_cmd($cmddef, $0, $cmd, \@ARGV, undef, $0, \&prepare);
 
 exit (0);
 
-- 
2.1.4





More information about the pve-devel mailing list