d080ca2cc6
further improve developer morale get initial angular loading Add remote css to config index Starts work to port endpoints into config app Add the api blueprint
45 lines
1.9 KiB
JavaScript
45 lines
1.9 KiB
JavaScript
/**
|
|
* Helper service for working with the registry's container. Only works in enterprise.
|
|
*/
|
|
angular.module('quay-config')
|
|
.factory('ContainerService', ['ApiService', '$timeout', 'Restangular',
|
|
function(ApiService, $timeout, Restangular) {
|
|
var containerService = {};
|
|
containerService.restartContainer = function(callback) {
|
|
ApiService.scShutdownContainer(null, null).then(function(resp) {
|
|
$timeout(callback, 2000);
|
|
}, ApiService.errorDisplay('Cannot restart container. Please report this to support.'))
|
|
};
|
|
|
|
containerService.scheduleStatusCheck = function(callback, opt_config) {
|
|
$timeout(function() {
|
|
containerService.checkStatus(callback, opt_config);
|
|
}, 2000);
|
|
};
|
|
|
|
containerService.checkStatus = function(callback, opt_config) {
|
|
var errorHandler = function(resp) {
|
|
if (resp.status == 404 || resp.status == 502 || resp.status == -1) {
|
|
// Container has not yet come back up, so we schedule another check.
|
|
containerService.scheduleStatusCheck(callback, opt_config);
|
|
return;
|
|
}
|
|
|
|
return ApiService.errorDisplay('Cannot load status. Please report this to support')(resp);
|
|
};
|
|
|
|
// If config is specified, override the API base URL from this point onward.
|
|
// TODO(jschorr): Find a better way than this. This is safe, since this will only be called
|
|
// for a restart, but it is still ugly.
|
|
if (opt_config && opt_config['SERVER_HOSTNAME']) {
|
|
var scheme = opt_config['PREFERRED_URL_SCHEME'] || 'http';
|
|
var baseUrl = scheme + '://' + opt_config['SERVER_HOSTNAME'] + '/api/v1/';
|
|
Restangular.setBaseUrl(baseUrl);
|
|
}
|
|
|
|
ApiService.scRegistryStatus(null, null, /* background */true)
|
|
.then(callback, errorHandler);
|
|
};
|
|
|
|
return containerService;
|
|
}]);
|