Andy Baugh 5 жил өмнө
parent
commit
505395f8d9

+ 3 - 0
js/pgupgrade.js

@@ -91,6 +91,9 @@ function versionHandler (resp) {
     </td>
 </tr>`;
         }
+        if( !rows.length ) {
+            rows = '<tr id="noAvailableVersions"><td colspan=4>No newer versions are currently available for install.</td></tr>';
+        }
         document.getElementById('loadingCell').remove();
         document.querySelector('#upgradeForm > table > tbody').innerHTML = rows;
     } else {

+ 3 - 4
lib/Troglodyne/API/Postgres.pm

@@ -9,8 +9,7 @@ our $dir = '/var/cpanel/logs/troglodyne/pgupgrade';
 
 sub get_postgresql_versions {
     Cpanel::LoadModule::Custom::load_perl_module('Troglodyne::CpPostgreSQL');
-    require Cpanel::PostgresUtils;
-    my @ver_arr = ( Cpanel::PostgresUtils::get_version() );
+    my @ver_arr = ( Troglodyne::CpPostgreSQL::get_version() );
     my $running = eval { readlink("$dir/INSTALL_IN_PROGRESS"); } || 0;
     return {
         'installed_version'         => { 'major' => $ver_arr[0], 'minor' => $ver_arr[1] },
@@ -119,8 +118,8 @@ sub _real_install {
 
     # FORCE UNCACHED LOAD YOU FUCKER
     unlink '/root/.cpanel/datastore/_usr_bin_psql_--version';
-    require Cpanel::PostgresUtils;
-    my @cur_ver = ( Cpanel::PostgresUtils::get_version() );
+    Cpanel::LoadModule::Custom::load_perl_module('Troglodyne::CpPostgreSQL');
+    my @cur_ver = ( Troglodyne::CpPostgreSQL::get_version() );
     my $str_ver = join( '.', @cur_ver );
     my $postgres_enabled = 0;
     if( $str_ver + 0 < 9.3 ) {

+ 14 - 0
lib/Troglodyne/CpPostgreSQL.pm

@@ -50,4 +50,18 @@ our %CP_UNSUPPORTED_VERSIONS_MAP = (
     '8.4' => { 'release' => 1246424400, 'EOL' => 1406178000 }, # Cent 6
 );
 
+# The cPanel version is a joke. You have to further massage data.
+sub get_version {
+    require Cpanel::PostgresUtils;
+    my @cur_ver = ( Cpanel::PostgresUtils::get_version() );
+    if(!$cur_ver[0]) {
+
+        # Chop off the bullshit error message -- "Failed to determine postgresql version: "
+        # If we start at the end, that's 40 chars
+        my $str = substr( $cur_ver[1], 40 );
+        @cur_ver = $cur_ver[1] =~ m/(\d+)\.(\d+)$/;
+    }
+    return @cur_ver;
+}
+
 1;