mirror of
https://github.com/caprover/caprover
synced 2026-08-21 23:16:34 +00:00
added endpoint for removing service
This commit is contained in:
@@ -548,8 +548,9 @@ class DockerApi {
|
||||
}
|
||||
return self.dockerode.createService(dataToCreate);
|
||||
}
|
||||
removeService(serviceName) {
|
||||
return this.dockerode.getService(serviceName).remove();
|
||||
removeServiceByName(serviceName) {
|
||||
const self = this;
|
||||
return self.dockerode.getService(serviceName).remove();
|
||||
}
|
||||
isServiceRunningByName(serviceName) {
|
||||
return this.dockerode
|
||||
@@ -565,10 +566,6 @@ class DockerApi {
|
||||
throw error;
|
||||
});
|
||||
}
|
||||
removeServiceByName(serviceName) {
|
||||
const self = this;
|
||||
return self.dockerode.getService(serviceName).remove();
|
||||
}
|
||||
getContainerIdByServiceName(serviceName, retryCountMaybe) {
|
||||
const self = this;
|
||||
const retryCount = retryCountMaybe || 0;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -8,25 +8,16 @@ const CaptainConstants = require("../../utils/CaptainConstants");
|
||||
const InjectionExtractor = require("../../injection/InjectionExtractor");
|
||||
const uuid = require("uuid/v4");
|
||||
const router = express.Router();
|
||||
router.post('/enableregistryssl/', function (req, res, next) {
|
||||
router.post('/enableregistry/', function (req, res, next) {
|
||||
const captainManager = CaptainManager.get();
|
||||
const password = uuid();
|
||||
const registryHelper = InjectionExtractor.extractAppAndUserForWebhook(res).user.serviceManager.getRegistryHelper();
|
||||
return Promise.resolve()
|
||||
.then(function () {
|
||||
return CaptainManager.get()
|
||||
.getDockerRegistry()
|
||||
.enableRegistrySsl();
|
||||
})
|
||||
.then(function () {
|
||||
let msg = 'General SSL is enabled for docker registry.';
|
||||
Logger.d(msg);
|
||||
res.send(new BaseApi(ApiStatusCodes.STATUS_OK, msg));
|
||||
})
|
||||
.catch(ApiStatusCodes.createCatcher(res));
|
||||
});
|
||||
router.post('/enableregistry/', function (req, res, next) {
|
||||
const captainManager = CaptainManager.get();
|
||||
const password = uuid();
|
||||
const registryHelper = InjectionExtractor.extractAppAndUserForWebhook(res).user.serviceManager.getRegistryHelper();
|
||||
return Promise.resolve()
|
||||
.then(function () {
|
||||
return captainManager
|
||||
.getDockerRegistry()
|
||||
@@ -46,5 +37,41 @@ router.post('/enableregistry/', function (req, res, next) {
|
||||
})
|
||||
.catch(ApiStatusCodes.createCatcher(res));
|
||||
});
|
||||
router.post('/disableregistry/', function (req, res, next) {
|
||||
const captainManager = CaptainManager.get();
|
||||
const registryHelper = InjectionExtractor.extractAppAndUserForWebhook(res).user.serviceManager.getRegistryHelper();
|
||||
let localRegistryId = '';
|
||||
return Promise.resolve()
|
||||
.then(function () {
|
||||
return registryHelper.getAllRegistries();
|
||||
})
|
||||
.then(function (regs) {
|
||||
for (let idx = 0; idx < regs.length; idx++) {
|
||||
const element = regs[idx];
|
||||
if (element.registryType == IRegistryTypes.LOCAL_REG) {
|
||||
// If local is already removed, localRegistryId will be empty even after this for loop
|
||||
localRegistryId = element.id;
|
||||
}
|
||||
}
|
||||
return registryHelper.getDefaultPushRegistryId();
|
||||
})
|
||||
.then(function (defaultId) {
|
||||
if (!!defaultId && defaultId === localRegistryId) {
|
||||
throw ApiStatusCodes.createError(ApiStatusCodes.ILLEGAL_OPERATION, 'Cannot remove DEFAULT PUSH registry. First demote from default, then delete');
|
||||
}
|
||||
return captainManager.getDockerRegistry().ensureServiceRemoved();
|
||||
})
|
||||
.then(function () {
|
||||
if (localRegistryId) {
|
||||
return registryHelper.deleteRegistry(localRegistryId);
|
||||
}
|
||||
})
|
||||
.then(function () {
|
||||
let msg = 'Local registry is removed.';
|
||||
Logger.d(msg);
|
||||
res.send(new BaseApi(ApiStatusCodes.STATUS_OK, msg));
|
||||
})
|
||||
.catch(ApiStatusCodes.createCatcher(res));
|
||||
});
|
||||
module.exports = router;
|
||||
//# sourceMappingURL=SystemRouteSelfHostRegistry.js.map
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"SystemRouteSelfHostRegistry.js","sourceRoot":"","sources":["../../../src/routes/system/SystemRouteSelfHostRegistry.ts"],"names":[],"mappings":";AAAA,mCAAmC;AACnC,6CAA6C;AAC7C,2DAA2D;AAC3D,6CAA6C;AAC7C,4DAA4D;AAE5D,iEAAiE;AACjE,yEAAyE;AACzE,gCAAgC;AAEhC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;AAE/B,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,UAAS,GAAG,EAAE,GAAG,EAAE,IAAI;IACtD,OAAO,OAAO,CAAC,OAAO,EAAE;SACnB,IAAI,CAAC;QACF,OAAO,cAAc,CAAC,GAAG,EAAE;aACtB,iBAAiB,EAAE;aACnB,iBAAiB,EAAE,CAAA;IAC5B,CAAC,CAAC;SACD,IAAI,CAAC;QACF,IAAI,GAAG,GAAG,6CAA6C,CAAA;QACvD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACb,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;IACxD,CAAC,CAAC;SACD,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;AACjD,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAS,GAAG,EAAE,GAAG,EAAE,IAAI;IACnD,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,EAAE,CAAA;IAC3C,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAA;IACvB,MAAM,cAAc,GAAG,kBAAkB,CAAC,2BAA2B,CACjE,GAAG,CACN,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAA;IAEzC,OAAO,OAAO,CAAC,OAAO,EAAE;SACnB,IAAI,CAAC;QACF,OAAO,cAAc;aAChB,iBAAiB,EAAE;aACnB,qCAAqC,CAAC,QAAQ,CAAC,CAAA;IACxD,CAAC,CAAC;SACD,IAAI,CAAC;QACF,IAAI,IAAI,GAAG,gBAAgB,CAAC,uBAAuB,CAAA;QACnD,IAAI,MAAM,GAAG,cAAc;aACtB,iBAAiB,EAAE;aACnB,6BAA6B,EAAE,CAAA;QAEpC,OAAO,cAAc,CAAC,WAAW,CAC7B,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,cAAc,CAAC,SAAS,CAC3B,CAAA;IACL,CAAC,CAAC;SACD,IAAI,CAAC;QACF,IAAI,GAAG,GAAG,4BAA4B,CAAA;QACtC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACb,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;IACxD,CAAC,CAAC;SACD,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;AACjD,CAAC,CAAC,CAAA;AAEF,iBAAS,MAAM,CAAA"}
|
||||
{"version":3,"file":"SystemRouteSelfHostRegistry.js","sourceRoot":"","sources":["../../../src/routes/system/SystemRouteSelfHostRegistry.ts"],"names":[],"mappings":";AAAA,mCAAmC;AACnC,6CAA6C;AAC7C,2DAA2D;AAC3D,6CAA6C;AAC7C,4DAA4D;AAE5D,iEAAiE;AACjE,yEAAyE;AACzE,gCAAgC;AAEhC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;AAE/B,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAS,GAAG,EAAE,GAAG,EAAE,IAAI;IACnD,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,EAAE,CAAA;IAC3C,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAA;IACvB,MAAM,cAAc,GAAG,kBAAkB,CAAC,2BAA2B,CACjE,GAAG,CACN,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAA;IAEzC,OAAO,OAAO,CAAC,OAAO,EAAE;SACnB,IAAI,CAAC;QACF,OAAO,cAAc,CAAC,GAAG,EAAE;aACtB,iBAAiB,EAAE;aACnB,iBAAiB,EAAE,CAAA;IAC5B,CAAC,CAAC;SACD,IAAI,CAAC;QACF,OAAO,cAAc;aAChB,iBAAiB,EAAE;aACnB,qCAAqC,CAAC,QAAQ,CAAC,CAAA;IACxD,CAAC,CAAC;SACD,IAAI,CAAC;QACF,IAAI,IAAI,GAAG,gBAAgB,CAAC,uBAAuB,CAAA;QACnD,IAAI,MAAM,GAAG,cAAc;aACtB,iBAAiB,EAAE;aACnB,6BAA6B,EAAE,CAAA;QAEpC,OAAO,cAAc,CAAC,WAAW,CAC7B,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,cAAc,CAAC,SAAS,CAC3B,CAAA;IACL,CAAC,CAAC;SACD,IAAI,CAAC;QACF,IAAI,GAAG,GAAG,4BAA4B,CAAA;QACtC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACb,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;IACxD,CAAC,CAAC;SACD,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;AACjD,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAS,GAAG,EAAE,GAAG,EAAE,IAAI;IACpD,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,EAAE,CAAA;IAC3C,MAAM,cAAc,GAAG,kBAAkB,CAAC,2BAA2B,CACjE,GAAG,CACN,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAA;IAEzC,IAAI,eAAe,GAAG,EAAE,CAAA;IAExB,OAAO,OAAO,CAAC,OAAO,EAAE;SACnB,IAAI,CAAC;QACF,OAAO,cAAc,CAAC,gBAAgB,EAAE,CAAA;IAC5C,CAAC,CAAC;SACD,IAAI,CAAC,UAAS,IAAI;QACf,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;YACzB,IAAI,OAAO,CAAC,YAAY,IAAI,cAAc,CAAC,SAAS,EAAE;gBAClD,sFAAsF;gBACtF,eAAe,GAAG,OAAO,CAAC,EAAE,CAAA;aAC/B;SACJ;QAED,OAAO,cAAc,CAAC,wBAAwB,EAAE,CAAA;IACpD,CAAC,CAAC;SACD,IAAI,CAAC,UAAS,SAAS;QACpB,IAAI,CAAC,CAAC,SAAS,IAAI,SAAS,KAAK,eAAe,EAAE;YAC9C,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,iBAAiB,EAChC,6EAA6E,CAChF,CAAA;SACJ;QAED,OAAO,cAAc,CAAC,iBAAiB,EAAE,CAAC,oBAAoB,EAAE,CAAA;IACpE,CAAC,CAAC;SAED,IAAI,CAAC;QACF,IAAI,eAAe,EAAE;YACjB,OAAO,cAAc,CAAC,cAAc,CAAC,eAAe,CAAC,CAAA;SACxD;IACL,CAAC,CAAC;SACD,IAAI,CAAC;QACF,IAAI,GAAG,GAAG,4BAA4B,CAAA;QACtC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACb,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;IACxD,CAAC,CAAC;SACD,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;AACjD,CAAC,CAAC,CAAA;AAEF,iBAAS,MAAM,CAAA"}
|
||||
@@ -45,6 +45,18 @@ class DockerRegistry {
|
||||
':' +
|
||||
CaptainConstants.registrySubDomainPort);
|
||||
}
|
||||
ensureServiceRemoved() {
|
||||
const dockerApi = this.dockerApi;
|
||||
return Promise.resolve() //
|
||||
.then(function () {
|
||||
return dockerApi.isServiceRunningByName(CaptainConstants.registryServiceName);
|
||||
})
|
||||
.then(function (isRunning) {
|
||||
if (!isRunning)
|
||||
return;
|
||||
return dockerApi.removeServiceByName(CaptainConstants.registryServiceName);
|
||||
});
|
||||
}
|
||||
ensureDockerRegistryRunningOnThisNode(password) {
|
||||
const dockerApi = this.dockerApi;
|
||||
const dataStore = this.dataStore;
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"DockerRegistry.js","sourceRoot":"","sources":["../../src/user/DockerRegistry.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"DockerRegistry.js","sourceRoot":"","sources":["../../src/user/DockerRegistry.ts"],"names":[],"mappings":"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"}
|
||||
@@ -202,7 +202,7 @@ class ServiceManager {
|
||||
})
|
||||
.then(function (isRunning) {
|
||||
if (isRunning) {
|
||||
return dockerApi.removeService(serviceName);
|
||||
return dockerApi.removeServiceByName(serviceName);
|
||||
}
|
||||
else {
|
||||
Logger.w('Cannot delete service... It is not running: ' +
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -675,9 +675,10 @@ class DockerApi {
|
||||
|
||||
return self.dockerode.createService(dataToCreate)
|
||||
}
|
||||
|
||||
removeService(serviceName: string) {
|
||||
return this.dockerode.getService(serviceName).remove()
|
||||
|
||||
removeServiceByName(serviceName: string) {
|
||||
const self = this
|
||||
return self.dockerode.getService(serviceName).remove()
|
||||
}
|
||||
|
||||
isServiceRunningByName(serviceName: string) {
|
||||
@@ -695,11 +696,6 @@ class DockerApi {
|
||||
})
|
||||
}
|
||||
|
||||
removeServiceByName(serviceName: string) {
|
||||
const self = this
|
||||
return self.dockerode.getService(serviceName).remove()
|
||||
}
|
||||
|
||||
getContainerIdByServiceName(
|
||||
serviceName: string,
|
||||
retryCountMaybe?: number
|
||||
|
||||
@@ -10,21 +10,6 @@ import uuid = require('uuid/v4')
|
||||
|
||||
const router = express.Router()
|
||||
|
||||
router.post('/enableregistryssl/', function(req, res, next) {
|
||||
return Promise.resolve()
|
||||
.then(function() {
|
||||
return CaptainManager.get()
|
||||
.getDockerRegistry()
|
||||
.enableRegistrySsl()
|
||||
})
|
||||
.then(function() {
|
||||
let msg = 'General SSL is enabled for docker registry.'
|
||||
Logger.d(msg)
|
||||
res.send(new BaseApi(ApiStatusCodes.STATUS_OK, msg))
|
||||
})
|
||||
.catch(ApiStatusCodes.createCatcher(res))
|
||||
})
|
||||
|
||||
router.post('/enableregistry/', function(req, res, next) {
|
||||
const captainManager = CaptainManager.get()
|
||||
const password = uuid()
|
||||
@@ -33,6 +18,11 @@ router.post('/enableregistry/', function(req, res, next) {
|
||||
).user.serviceManager.getRegistryHelper()
|
||||
|
||||
return Promise.resolve()
|
||||
.then(function() {
|
||||
return CaptainManager.get()
|
||||
.getDockerRegistry()
|
||||
.enableRegistrySsl()
|
||||
})
|
||||
.then(function() {
|
||||
return captainManager
|
||||
.getDockerRegistry()
|
||||
@@ -60,4 +50,51 @@ router.post('/enableregistry/', function(req, res, next) {
|
||||
.catch(ApiStatusCodes.createCatcher(res))
|
||||
})
|
||||
|
||||
router.post('/disableregistry/', function(req, res, next) {
|
||||
const captainManager = CaptainManager.get()
|
||||
const registryHelper = InjectionExtractor.extractAppAndUserForWebhook(
|
||||
res
|
||||
).user.serviceManager.getRegistryHelper()
|
||||
|
||||
let localRegistryId = ''
|
||||
|
||||
return Promise.resolve()
|
||||
.then(function() {
|
||||
return registryHelper.getAllRegistries()
|
||||
})
|
||||
.then(function(regs) {
|
||||
for (let idx = 0; idx < regs.length; idx++) {
|
||||
const element = regs[idx]
|
||||
if (element.registryType == IRegistryTypes.LOCAL_REG) {
|
||||
// If local is already removed, localRegistryId will be empty even after this for loop
|
||||
localRegistryId = element.id
|
||||
}
|
||||
}
|
||||
|
||||
return registryHelper.getDefaultPushRegistryId()
|
||||
})
|
||||
.then(function(defaultId) {
|
||||
if (!!defaultId && defaultId === localRegistryId) {
|
||||
throw ApiStatusCodes.createError(
|
||||
ApiStatusCodes.ILLEGAL_OPERATION,
|
||||
'Cannot remove DEFAULT PUSH registry. First demote from default, then delete'
|
||||
)
|
||||
}
|
||||
|
||||
return captainManager.getDockerRegistry().ensureServiceRemoved()
|
||||
})
|
||||
|
||||
.then(function() {
|
||||
if (localRegistryId) {
|
||||
return registryHelper.deleteRegistry(localRegistryId)
|
||||
}
|
||||
})
|
||||
.then(function() {
|
||||
let msg = 'Local registry is removed.'
|
||||
Logger.d(msg)
|
||||
res.send(new BaseApi(ApiStatusCodes.STATUS_OK, msg))
|
||||
})
|
||||
.catch(ApiStatusCodes.createCatcher(res))
|
||||
})
|
||||
|
||||
export = router
|
||||
|
||||
@@ -68,6 +68,24 @@ class DockerRegistry {
|
||||
)
|
||||
}
|
||||
|
||||
ensureServiceRemoved() {
|
||||
const dockerApi = this.dockerApi
|
||||
|
||||
return Promise.resolve() //
|
||||
.then(function() {
|
||||
return dockerApi.isServiceRunningByName(
|
||||
CaptainConstants.registryServiceName
|
||||
)
|
||||
})
|
||||
.then(function(isRunning) {
|
||||
if (!isRunning) return
|
||||
|
||||
return dockerApi.removeServiceByName(
|
||||
CaptainConstants.registryServiceName
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
ensureDockerRegistryRunningOnThisNode(password: string) {
|
||||
const dockerApi = this.dockerApi
|
||||
const dataStore = this.dataStore
|
||||
|
||||
@@ -281,7 +281,7 @@ class ServiceManager {
|
||||
})
|
||||
.then(function(isRunning) {
|
||||
if (isRunning) {
|
||||
return dockerApi.removeService(serviceName)
|
||||
return dockerApi.removeServiceByName(serviceName)
|
||||
} else {
|
||||
Logger.w(
|
||||
'Cannot delete service... It is not running: ' +
|
||||
|
||||
Reference in New Issue
Block a user