diff --git a/manifest.jps b/manifest.jps index 68637bb8..bb51b564 100644 --- a/manifest.jps +++ b/manifest.jps @@ -58,7 +58,7 @@ description: globals: scriptSufix: letsencrypt-ssl - + mixins: - configs/vers.yaml @@ -114,7 +114,7 @@ onInstall: onUninstall: - callScript: action: uninstall - - delete + - deleteScript onBeforeDelete: delete @@ -165,6 +165,10 @@ actions: action: auto-update configure: installScript delete: + - callScript: + action: delete + - deleteScript + deleteScript: script: | jelastic.dev.scripting.DeleteScript('${env.envName}-${targetNodes.nodeGroup}-${globals.scriptSufix}'); return {result:0} diff --git a/scripts/generate-ssl-cert.sh b/scripts/generate-ssl-cert.sh index 1388bb3a..222f5cde 100644 --- a/scripts/generate-ssl-cert.sh +++ b/scripts/generate-ssl-cert.sh @@ -73,7 +73,7 @@ do [[ -z $error ]] && { error=$(sed -rn 's/.*\s(.*)(Invalid response from http:\/\/.*)\\\"".*/\2/p' $LOG_FILE | sed '$!d') - [[ ! -z $error ]] && invalid_domain=$(echo $error | sed -rn 's/Invalid response from http:\/\/([^/]*)\/\.well-known.*/\1/p') + [[ ! -z $error ]] && invalid_domain=$(echo $error | sed -rn 's/Invalid response from https?:\/\/([^/]*)\/\.well-known.*/\1/p') } [[ -z $error ]] && { diff --git a/scripts/ssl-manager.js b/scripts/ssl-manager.js index 490e09af..192bdaf2 100644 --- a/scripts/ssl-manager.js +++ b/scripts/ssl-manager.js @@ -94,6 +94,7 @@ function SSLManager(config) { me.invoke = function (action) { var actions = { "install" : me.install, + "delete" : me.delete, "uninstall" : me.uninstall, "auto-update" : me.autoUpdate, "backup-scripts": me.backupScripts, @@ -316,6 +317,14 @@ function SSLManager(config) { return resp; }; + me.delete = function() { + return me.execAll([ + [ me.initAddOnExtIp, config.withExtIp ], + + me.undeploy + ]); + }; + me.uninstall = function () { var autoUpdateScript = nodeManager.getScriptPath(AUTO_UPDATE_SCRIPT); @@ -1400,13 +1409,28 @@ function SSLManager(config) { me.removeSSLCert = function removeSSLCert() { var resp, - sslCerts; + sslCert, + sslCerts, + extDomain; resp = jelastic.env.binder.GetSSLCerts(config.envName, session); if (resp.result != 0) return resp; sslCerts = resp.responses; + sslCert = sslCerts[sslCerts.length - 1]; + + if (sslCert.extDomains.length) { + for (var i = 0, n = sslCert.extDomains.length; i < n; i++) { + extDomain = sslCert.extDomains[i]; + + if (extDomain.sslEnabled) { + resp = jelastic.env.binder.RemoveExtDomain(config.envName, session, extDomain.domain); + if (resp.result != 0) return resp; + } + } + } + return jelastic.env.binder.RemoveSSLCerts(config.envName, session, sslCerts[sslCerts.length - 1].id); };