Pārlūkot izejas kodu

WIP. Also add implements field.

Andy Baugh 5 gadi atpakaļ
vecāks
revīzija
f9d99f4cd4
4 mainītis faili ar 28 papildinājumiem un 2 dzēšanām
  1. 1 1
      cgi/api.cgi
  2. 6 1
      js/pgupgrade.js
  3. 20 0
      lib/Troglodyne/API/Postgres.pm
  4. 1 0
      plugin/better_postgres.conf

+ 1 - 1
cgi/api.cgi

@@ -41,7 +41,7 @@ sub run {
     };
     if( $loaded && $coderef ) {
         local $@;
-        my $data = eval { $coderef->() };
+        my $data = eval { $coderef->($args) };
         my $error = $@;
         if($data) {
             $ret->{'data'} = $data;

+ 6 - 1
js/pgupgrade.js

@@ -92,6 +92,10 @@ function doInstallScroller () {
     return false;
 }
 
+function handlePGInstall () {
+    return false;
+}
+
 window.doUpgrade = function () {
     'use strict';
     let form = new FormData(upgradeForm);
@@ -104,7 +108,8 @@ window.doUpgrade = function () {
     doAPIRequestWithCallback('Postgres', 'enable_community_repositories', doInstallScroller );
     let versionSelectedElem = document.querySelector('input[name="selectedVersion"]:checked');
     let version2install = versionSelectedElem.value;
-    doAPIRequestWithCallback( 'Postgres', 'install_postgres', doInstallScroller, { "version": "9.5" } );
+    doAPIRequestWithCallback( 'Postgres', 'start_postgres_install', handlePGInstall, { "version": "9.5" } );
+    
     return false;
 }
 

+ 20 - 0
lib/Troglodyne/API/Postgres.pm

@@ -45,4 +45,24 @@ sub enable_community_repositories {
     };
 }
 
+sub start_postgres_install {
+    my ( $args_hr ) = @_;
+    my $version = $args_hr->{'version'};
+    my $dir = '/var/cpanel/logs/troglodyne/pgupgrade'
+    require Cpanel::Mkdir;
+    Cpanel::Mkdir::ensure_directory_existence_and_mode( $dir, 0711 );
+
+    require Cpanel::FileUtils::Touch;
+    my $time = time;
+    Cpanel::FileUtils::Touch::touch_if_not_exists("$dir/pgupgrade-to-$version-at-$time.log");
+    
+    require Cpanel::Autodie;
+    Cpanel::Autodie::unlink_if_exists("$dir/last");
+    require Cpanel::Chdir;
+    {
+        my $chdir = Cpanel::Chdir->new($dir);
+        symlink( "pgupgrade-to-$version-at-$time.log", "last" );
+    }
+}
+
 1;

+ 1 - 0
plugin/better_postgres.conf

@@ -6,3 +6,4 @@ entryurl=troglodyne/pgupgrade.cgi
 displayname=PostgreSQL Upgrade
 icon=troglophant.png
 target=_self
+implements=troglodyne_pgupgrade