1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-19 13:29:41 +02:00
portainer/app/kubernetes/__module.js
Chaim Lev-Ari 3c34fbd8f2
refactor(router): show endpoint id in url (#3966)
* refactor(module): provide basic endpoint id url

* fix(stacks): fix route to include endpointId

* fix(stacks): fix stacks urls

* fix(sidebar): fix urls to docker routes

* refactor(app): set endpoint id on change view

* refactor(dashboard): revert to old version

* refactor(sidebar): revert file

* feat(app): wip load endpoint on route change

* feat(home): show error

* feat(app): load endpoint route

* feat(sidebar): show endpoint per provider

* refactor(app): revert

* refactor(app): clean endpoint startup

* feat(edge): check for edge k8s

* refactor(endpoints): move all modules under endpoint route

* refactor(stacks): move stacks route to docker

* refactor(templates): move templates route to docker

* refactor(app): check endpoint when entering docker module

* fix(app): load endpoint when entering endpoints modules

* feat(azure): check endpoint

* feat(kubernetes): check endpoint

* feat(home): show loading state when loading edge

* style(app): revert small changes

* refactor(sidebar): remove refernce to endpointId

* fix(stacks): fix stacks route

* style(docker): sort routes

* feat(app): change route to home if endpoint failed

* fix(services): guard against empty snapshots

* feat(app): show error when failed to load endpoint

* feat(app): reload home route when failing

* refactor(router): replace resolvers with onEnter
2020-07-15 08:46:38 +12:00

268 lines
6.5 KiB
JavaScript

angular.module('portainer.kubernetes', ['portainer.app']).config([
'$stateRegistryProvider',
function ($stateRegistryProvider) {
'use strict';
const kubernetes = {
name: 'kubernetes',
url: '/kubernetes',
parent: 'endpoint',
abstract: true,
/* @ngInject */
async onEnter($state, endpoint, EndpointProvider, KubernetesHealthService, Notifications, StateManager) {
try {
if (endpoint.Type === 7) {
try {
await KubernetesHealthService.ping();
endpoint.Status = 1;
} catch (e) {
endpoint.Status = 2;
}
}
EndpointProvider.setEndpointID(endpoint.Id);
await StateManager.updateEndpointState(endpoint, []);
} catch (e) {
Notifications.error('Failed loading endpoint', e);
$state.go('portainer.home', {}, { reload: true });
}
},
};
const applications = {
name: 'kubernetes.applications',
url: '/applications',
views: {
'content@': {
component: 'kubernetesApplicationsView',
},
},
};
const applicationCreation = {
name: 'kubernetes.applications.new',
url: '/new',
views: {
'content@': {
component: 'kubernetesCreateApplicationView',
},
},
};
const application = {
name: 'kubernetes.applications.application',
url: '/:namespace/:name',
views: {
'content@': {
component: 'kubernetesApplicationView',
},
},
};
const applicationEdit = {
name: 'kubernetes.applications.application.edit',
url: '/edit',
views: {
'content@': {
component: 'kubernetesCreateApplicationView',
},
},
};
const applicationConsole = {
name: 'kubernetes.applications.application.console',
url: '/:pod/console',
views: {
'content@': {
component: 'kubernetesApplicationConsoleView',
},
},
};
const applicationLogs = {
name: 'kubernetes.applications.application.logs',
url: '/:pod/logs',
views: {
'content@': {
component: 'kubernetesApplicationLogsView',
},
},
};
const stacks = {
name: 'kubernetes.stacks',
url: '/stacks',
abstract: true,
};
const stack = {
name: 'kubernetes.stacks.stack',
url: '/:namespace/:name',
abstract: true,
};
const stackLogs = {
name: 'kubernetes.stacks.stack.logs',
url: '/logs',
views: {
'content@': {
component: 'kubernetesStackLogsView',
},
},
};
const configurations = {
name: 'kubernetes.configurations',
url: '/configurations',
views: {
'content@': {
component: 'kubernetesConfigurationsView',
},
},
};
const configurationCreation = {
name: 'kubernetes.configurations.new',
url: '/new',
views: {
'content@': {
component: 'kubernetesCreateConfigurationView',
},
},
};
const configuration = {
name: 'kubernetes.configurations.configuration',
url: '/:namespace/:name',
views: {
'content@': {
component: 'kubernetesConfigurationView',
},
},
};
const cluster = {
name: 'kubernetes.cluster',
url: '/cluster',
views: {
'content@': {
component: 'kubernetesClusterView',
},
},
};
const node = {
name: 'kubernetes.cluster.node',
url: '/:name',
views: {
'content@': {
component: 'kubernetesNodeView',
},
},
};
const dashboard = {
name: 'kubernetes.dashboard',
url: '/dashboard',
views: {
'content@': {
component: 'kubernetesDashboardView',
},
},
};
const deploy = {
name: 'kubernetes.deploy',
url: '/deploy',
views: {
'content@': {
component: 'kubernetesDeployView',
},
},
};
const resourcePools = {
name: 'kubernetes.resourcePools',
url: '/pools',
views: {
'content@': {
component: 'kubernetesResourcePoolsView',
},
},
};
const resourcePoolCreation = {
name: 'kubernetes.resourcePools.new',
url: '/new',
views: {
'content@': {
component: 'kubernetesCreateResourcePoolView',
},
},
};
const resourcePool = {
name: 'kubernetes.resourcePools.resourcePool',
url: '/:id',
views: {
'content@': {
component: 'kubernetesResourcePoolView',
},
},
};
const resourcePoolAccess = {
name: 'kubernetes.resourcePools.resourcePool.access',
url: '/access',
views: {
'content@': {
component: 'kubernetesResourcePoolAccessView',
},
},
};
const volumes = {
name: 'kubernetes.volumes',
url: '/volumes',
views: {
'content@': {
component: 'kubernetesVolumesView',
},
},
};
const volume = {
name: 'kubernetes.volumes.volume',
url: '/:namespace/:name',
views: {
'content@': {
component: 'kubernetesVolumeView',
},
},
};
$stateRegistryProvider.register(kubernetes);
$stateRegistryProvider.register(applications);
$stateRegistryProvider.register(applicationCreation);
$stateRegistryProvider.register(application);
$stateRegistryProvider.register(applicationEdit);
$stateRegistryProvider.register(applicationConsole);
$stateRegistryProvider.register(applicationLogs);
$stateRegistryProvider.register(stacks);
$stateRegistryProvider.register(stack);
$stateRegistryProvider.register(stackLogs);
$stateRegistryProvider.register(configurations);
$stateRegistryProvider.register(configurationCreation);
$stateRegistryProvider.register(configuration);
$stateRegistryProvider.register(cluster);
$stateRegistryProvider.register(dashboard);
$stateRegistryProvider.register(deploy);
$stateRegistryProvider.register(node);
$stateRegistryProvider.register(resourcePools);
$stateRegistryProvider.register(resourcePoolCreation);
$stateRegistryProvider.register(resourcePool);
$stateRegistryProvider.register(resourcePoolAccess);
$stateRegistryProvider.register(volumes);
$stateRegistryProvider.register(volume);
},
]);