]> git.proxmox.com Git - pve-manager.git/commitdiff
check for ext5 dir to avoid missing directory errors
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Mon, 28 Sep 2015 08:28:03 +0000 (10:28 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Tue, 29 Sep 2015 05:17:19 +0000 (07:17 +0200)
As we, for now, default to exclude ext5 from our build it's better
to make an check if its directory exists, and only then allow to
load from it. Else we can get errors on proxy startup, and when
someone passes the ext5 parameter.

Also make a indent/whitespace cleanup.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
PVE/Service/pveproxy.pm

index d9ae9b8f4b622bae9407853bfffa77b19e93862c..16edad1b8f32a3f1406cc5c19858b1c13a1091d6 100755 (executable)
@@ -40,6 +40,8 @@ my %daemon_options = (
 
 my $daemon = __PACKAGE__->new('pveproxy', $cmdline, %daemon_options);
 
+my $ext5_dir_exists;
+
 sub add_dirs {
     my ($result_hash, $alias, $subdir) = @_;
 
@@ -70,13 +72,19 @@ sub init {
     my $family = PVE::Tools::get_host_address_family($self->{nodename});
     my $socket = $self->create_reusable_socket(8006, undef, $family);
 
+    $ext5_dir_exists = (-d '/usr/share/pve-manager/ext5');
+
     my $dirs = {};
 
     add_dirs($dirs, '/pve2/locale/', '/usr/share/pve-manager/locale/');
     add_dirs($dirs, '/pve2/touch/', '/usr/share/pve-manager/touch/');
     add_dirs($dirs, '/pve2/ext4/', '/usr/share/pve-manager/ext4/');
-    add_dirs($dirs, '/pve2/ext5/', '/usr/share/pve-manager/ext5/');
-    add_dirs($dirs, '/pve2/manager5/', '/usr/share/pve-manager/manager5/');
+
+    if ($ext5_dir_exists) { # only add ext5 dirs if it was build
+       add_dirs($dirs, '/pve2/ext5/', '/usr/share/pve-manager/ext5/');
+       add_dirs($dirs, '/pve2/manager5/', '/usr/share/pve-manager/manager5/');
+    }
+
     add_dirs($dirs, '/pve2/images/' => '/usr/share/pve-manager/images/');
     add_dirs($dirs, '/pve2/css/' => '/usr/share/pve-manager/css/');
     add_dirs($dirs, '/pve2/js/' => '/usr/share/pve-manager/js/');
@@ -183,22 +191,22 @@ sub get_index {
        $mobile = $args->{mobile} ? 1 : 0;
     }
 
-       my $ext5;
-       if (defined($args->{ext5})) {
+    my $ext5;
+    if (defined($args->{ext5})) {
        $ext5 = $args->{ext5} ? 1 : 0;
     }
 
     my $page;
 
     if (defined($args->{console}) && $args->{novnc}) {
-               $page = PVE::NoVncIndex::get_index($lang, $username, $token, $args->{console});
+       $page = PVE::NoVncIndex::get_index($lang, $username, $token, $args->{console});
     } elsif ($mobile) {
-               $page = PVE::TouchIndex::get_index($lang, $username, $token, $args->{console});
-       } elsif ($ext5) {
-               $page = PVE::ExtJSIndex5::get_index($lang, $username, $token, $args->{console});
-       } else {
-               $page = PVE::ExtJSIndex::get_index($lang, $username, $token, $args->{console});
-       }
+       $page = PVE::TouchIndex::get_index($lang, $username, $token, $args->{console});
+    } elsif ($ext5 && $ext5_dir_exists) {
+       $page = PVE::ExtJSIndex5::get_index($lang, $username, $token, $args->{console});
+    } else {
+       $page = PVE::ExtJSIndex::get_index($lang, $username, $token, $args->{console});
+    }
     my $headers = HTTP::Headers->new(Content_Type => "text/html; charset=utf-8");
     my $resp = HTTP::Response->new(200, "OK", $headers, $page);