237 lines
15 KiB
JavaScript
237 lines
15 KiB
JavaScript
/// <reference path="../../includes.ts"/>
|
|
/// <reference path="kubernetesHelpers.ts"/>
|
|
var Kubernetes;
|
|
(function (Kubernetes) {
|
|
Kubernetes._module = angular.module(Kubernetes.pluginName, ['hawtio-core', 'hawtio-ui', 'ui.codemirror', 'ui.validate', 'kubernetesUI']);
|
|
Kubernetes.controller = PluginHelpers.createControllerFunction(Kubernetes._module, Kubernetes.pluginName);
|
|
Kubernetes.route = PluginHelpers.createRoutingFunction(Kubernetes.templatePath);
|
|
Kubernetes._module.config(['$routeProvider', function ($routeProvider) {
|
|
$routeProvider
|
|
.when(UrlHelpers.join(Kubernetes.context, '/pods'), Kubernetes.route('pods.html', false))
|
|
.when(UrlHelpers.join(Kubernetes.context, 'replicationControllers'), Kubernetes.route('replicationControllers.html', false))
|
|
.when(UrlHelpers.join(Kubernetes.context, 'services'), Kubernetes.route('services.html', false))
|
|
.when(UrlHelpers.join(Kubernetes.context, 'events'), Kubernetes.route('events.html', false))
|
|
.when(UrlHelpers.join(Kubernetes.context, 'apps'), Kubernetes.route('apps.html', false))
|
|
.when(UrlHelpers.join(Kubernetes.context, 'apps/:namespace'), Kubernetes.route('apps.html', false))
|
|
.when(UrlHelpers.join(Kubernetes.context, 'templates'), Kubernetes.route('templates.html', false))
|
|
.when(UrlHelpers.join(Kubernetes.context, 'hosts'), Kubernetes.route('hosts.html', false))
|
|
.when(UrlHelpers.join(Kubernetes.context, 'hosts/:id'), Kubernetes.route('host.html', true))
|
|
.when(UrlHelpers.join(Kubernetes.context, 'pipelines'), Kubernetes.route('pipelines.html', false))
|
|
.when(UrlHelpers.join(Kubernetes.context, 'overview'), Kubernetes.route('overview.html', true))
|
|
.when(Kubernetes.context, { redirectTo: UrlHelpers.join(Kubernetes.context, 'replicationControllers') });
|
|
angular.forEach([Kubernetes.context, "/workspaces/:workspace/projects/:project"], function (context) {
|
|
$routeProvider
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/podCreate'), Kubernetes.route('podCreate.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/podEdit/:id'), Kubernetes.route('podEdit.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/pods'), Kubernetes.route('pods.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/pods/:id'), Kubernetes.route('pod.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/replicationControllers'), Kubernetes.route('replicationControllers.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/replicationControllers/:id'), Kubernetes.route('replicationController.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/replicationControllerCreate'), Kubernetes.route('replicationControllerCreate.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/replicationControllerEdit/:id'), Kubernetes.route('replicationControllerEdit.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/secrets'), Kubernetes.route('secrets.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/secrets/:id'), Kubernetes.route('secret.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/secretCreate'), Kubernetes.route('secret.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/services'), Kubernetes.route('services.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/services/:id'), Kubernetes.route('service.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/serviceCreate'), Kubernetes.route('serviceCreate.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/serviceEdit/:id'), Kubernetes.route('serviceEdit.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/events'), Kubernetes.route('events.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/apps'), Kubernetes.route('apps.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/overview'), Kubernetes.route('overview.html', true))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace/templates/:targetNamespace'), Kubernetes.route('templates.html', false))
|
|
.when(UrlHelpers.join(context, '/namespace/:namespace'), Kubernetes.route('apps.html', false))
|
|
.when(UrlHelpers.join(context, 'builds'), Kubernetes.route('builds.html', false))
|
|
.when(UrlHelpers.join(context, 'builds/:id'), Kubernetes.route('build.html', true))
|
|
.when(UrlHelpers.join(context, 'buildLogs/:id'), Kubernetes.route('buildLogs.html', true))
|
|
.when(UrlHelpers.join(context, 'buildConfigs'), Kubernetes.route('buildConfigs.html', false))
|
|
.when(UrlHelpers.join(context, 'buildConfigs/:id'), Kubernetes.route('buildConfig.html', true))
|
|
.when(UrlHelpers.join(context, 'buildConfigEdit/:id'), Kubernetes.route('buildConfigEdit.html', true))
|
|
.when(UrlHelpers.join(context, 'deploymentConfigs'), Kubernetes.route('deploymentConfigs.html', false))
|
|
.when(UrlHelpers.join(context, 'deploymentConfigs/:id'), Kubernetes.route('deploymentConfig.html', true))
|
|
.when(UrlHelpers.join(context, 'imageRepositories'), Kubernetes.route('imageRepositories.html', false));
|
|
});
|
|
angular.forEach([Kubernetes.context, "/workspaces/:workspace", "/workspaces/:workspace/projects/:project"], function (context) {
|
|
$routeProvider
|
|
.when(UrlHelpers.join(context, 'buildConfigEdit'), Kubernetes.route('buildConfigEdit.html', true))
|
|
.when(UrlHelpers.join(context, 'buildConfigEdit/:id'), Kubernetes.route('buildConfigEdit.html', true))
|
|
.when(UrlHelpers.join(context, 'importProject'), Kubernetes.route('importProject.html', true));
|
|
});
|
|
}]);
|
|
Kubernetes._module.factory('AppLibraryURL', ['$rootScope', function ($rootScope) {
|
|
return UrlHelpers.join(Kubernetes.kubernetesApiUrl(), "/proxy", Kubernetes.kubernetesNamespacePath(), "/services/app-library");
|
|
}]);
|
|
Kubernetes._module.factory('WikiGitUrlPrefix', function () {
|
|
return UrlHelpers.join(Kubernetes.kubernetesApiUrl(), "/proxy", Kubernetes.kubernetesNamespacePath(), "services/app-library");
|
|
});
|
|
Kubernetes._module.factory('wikiRepository', ["$location", "localStorage", function ($location, localStorage) {
|
|
return false;
|
|
}]);
|
|
Kubernetes._module.factory('ConnectDialogService', ['$rootScope', function ($rootScope) {
|
|
return {
|
|
dialog: new UI.Dialog(),
|
|
saveCredentials: false,
|
|
userName: null,
|
|
password: null,
|
|
jolokiaUrl: null,
|
|
containerName: null,
|
|
view: null
|
|
};
|
|
}]);
|
|
Kubernetes._module.filter('kubernetesPageLink', function () { return Kubernetes.entityPageLink; });
|
|
Kubernetes._module.filter('relativeTime', function () {
|
|
return function (date) {
|
|
return humandate.relativeTime(date);
|
|
};
|
|
});
|
|
Kubernetes._module.run(['viewRegistry', 'ServiceRegistry', 'HawtioNav', 'KubernetesModel', '$templateCache', function (viewRegistry, ServiceRegistry, HawtioNav, KubernetesModel, $templateCache) {
|
|
Kubernetes.log.debug("Running");
|
|
viewRegistry['kubernetes'] = Kubernetes.templatePath + 'layoutKubernetes.html';
|
|
//viewRegistry['kubernetes'] = Configs.templatePath + 'shareLayout.html';
|
|
var builder = HawtioNav.builder();
|
|
var apps = builder.id('kube-apps')
|
|
.href(function () { return UrlHelpers.join(Kubernetes.context, 'apps'); })
|
|
.title(function () { return 'Apps'; })
|
|
.build();
|
|
var services = builder.id('kube-services')
|
|
.href(function () { return UrlHelpers.join(Kubernetes.context, 'services'); })
|
|
.title(function () { return 'Services'; })
|
|
.build();
|
|
var controllers = builder.id('kube-controllers')
|
|
.href(function () { return UrlHelpers.join(Kubernetes.context, 'replicationControllers'); })
|
|
.title(function () { return 'oracle服务'; })
|
|
.build();
|
|
var pods = builder.id('kube-pods')
|
|
.href(function () { return UrlHelpers.join(Kubernetes.context, 'pods'); })
|
|
.title(function () { return '测试页面'; })
|
|
.build();
|
|
var events = builder.id('kube-events')
|
|
.href(function () { return UrlHelpers.join(Kubernetes.context, 'events'); })
|
|
.title(function () { return '服务启动日志'; })
|
|
.build();
|
|
var hosts = builder.id('kube-hosts')
|
|
.href(function () { return UrlHelpers.join(Kubernetes.context, 'hosts'); })
|
|
.title(function () { return '集群节点'; })
|
|
.build();
|
|
var overview = builder.id('kube-overview')
|
|
.href(function () { return UrlHelpers.join(Kubernetes.context, 'overview'); })
|
|
.title(function () { return 'Diagram'; })
|
|
.build();
|
|
var builds = builder.id('kube-builds')
|
|
.href(function () { return UrlHelpers.join(Kubernetes.context, 'builds'); })
|
|
.title(function () { return 'Builds'; })
|
|
.build();
|
|
var buildConfigs = builder.id('kube-buildConfigs')
|
|
.href(function () { return UrlHelpers.join(Kubernetes.context, 'buildConfigs'); })
|
|
.title(function () { return 'Build Configs'; })
|
|
.build();
|
|
var deploys = builder.id('kube-deploys')
|
|
.href(function () { return UrlHelpers.join(Kubernetes.context, 'deploymentConfigs'); })
|
|
.title(function () { return 'Deploys'; })
|
|
.build();
|
|
var imageRepositories = builder.id('kube-imageRepositories')
|
|
.href(function () { return UrlHelpers.join(Kubernetes.context, 'imageRepositories'); })
|
|
.title(function () { return 'Registries'; })
|
|
.build();
|
|
var pipelines = builder.id('kube-pipelines')
|
|
.href(function () { return UrlHelpers.join(Kubernetes.context, 'pipelines'); })
|
|
.title(function () { return 'Pipelines'; })
|
|
.build();
|
|
var repos = builder.id('kube-repos')
|
|
.href(function () { return "/forge/repos"; })
|
|
.isValid(function () { return ServiceRegistry.hasService(Kubernetes.fabric8ForgeServiceName) && ServiceRegistry.hasService(Kubernetes.gogsServiceName); })
|
|
.title(function () { return 'Repositories'; })
|
|
.build();
|
|
var mainTab = builder.id('kubernetes')
|
|
.rank(100)
|
|
.defaultPage({
|
|
rank: 20,
|
|
isValid: function (yes, no) {
|
|
yes();
|
|
}
|
|
})
|
|
.href(function () { return UrlHelpers.join(Kubernetes.context, "/namespace/default/replicationControllers"); })
|
|
.title(function () { return '服务集群'; })
|
|
.tabs(controllers, pods, events)
|
|
.build();
|
|
HawtioNav.add(mainTab);
|
|
/* testKubernetesModel
|
|
HawtioNav.add({
|
|
id: 'k8sAppSwitcher',
|
|
title: () => '', // not used as 'template' below overrides this
|
|
isValid: () => KubernetesModel.serviceApps.length > 0,
|
|
context: true,
|
|
template: () => $templateCache.get(UrlHelpers.join(templatePath, 'serviceApps.html'))
|
|
});
|
|
*/
|
|
var projectsTab = builder.id('openshift')
|
|
.rank(100)
|
|
.href(function () { return UrlHelpers.join(Kubernetes.context, 'buildConfigs') + '?sub-tab=kube-buildConfigs'; })
|
|
.title(function () { return 'Projects'; })
|
|
.tabs(repos, buildConfigs, builds, deploys, imageRepositories)
|
|
.build();
|
|
//HawtioNav.add(projectsTab);
|
|
}]);
|
|
hawtioPluginLoader.registerPreBootstrapTask({
|
|
name: 'KubernetesInit',
|
|
task: function (next) {
|
|
$.getScript('osconsole/config.js')
|
|
.done(function (script, textStatus) {
|
|
var config = Kubernetes.osConfig = window['OPENSHIFT_CONFIG'];
|
|
Kubernetes.log.debug("Fetched OAuth config: ", config);
|
|
var master = config.master_uri;
|
|
if (!master && config.api && config.api.k8s) {
|
|
var masterUri = new URI().host(config.api.k8s.hostPort).path("").query("");
|
|
if (config.api.k8s.proto) {
|
|
masterUri.protocol(config.api.k8s.proto);
|
|
}
|
|
master = masterUri.toString();
|
|
}
|
|
OSOAuthConfig = config.openshift;
|
|
GoogleOAuthConfig = config.google;
|
|
KeycloakConfig = config.keycloak;
|
|
if (OSOAuthConfig && !master) {
|
|
// TODO auth.master_uri no longer used right?
|
|
// master = OSOAuthConfig.master_uri;
|
|
if (!master) {
|
|
var oauth_authorize_uri = OSOAuthConfig.oauth_authorize_uri;
|
|
if (oauth_authorize_uri) {
|
|
var text = oauth_authorize_uri;
|
|
var idx = text.indexOf("://");
|
|
if (idx > 0) {
|
|
idx += 3;
|
|
idx = text.indexOf("/", idx);
|
|
if (idx > 0) {
|
|
master = text.substring(0, ++idx);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ((!Kubernetes.masterUrl || Kubernetes.masterUrl === "/") && (!master || master === "/")) {
|
|
// lets default the master to the current protocol and host/port
|
|
// in case the master url is "/" and we are
|
|
// serving up static content from inside /api/v1/namespaces/default/services/fabric8 or something like that
|
|
var href = location.href;
|
|
if (href) {
|
|
master = new URI(href).query("").path("").toString();
|
|
}
|
|
}
|
|
if (master) {
|
|
Kubernetes.masterUrl = master;
|
|
next();
|
|
return;
|
|
}
|
|
})
|
|
.fail(function (response) {
|
|
Kubernetes.log.debug("Error fetching OAUTH config: ", response);
|
|
})
|
|
.always(function () {
|
|
next();
|
|
});
|
|
}
|
|
}, true);
|
|
hawtioPluginLoader.addModule('ngResource');
|
|
hawtioPluginLoader.addModule(Kubernetes.pluginName);
|
|
})(Kubernetes || (Kubernetes = {}));
|
|
//# sourceMappingURL=kubernetesPlugin.js.map
|