@spotinst/spinnaker-deck
Version:
Spinnaker-Deck service, forked with support to Spotinst
47 lines (41 loc) • 1.9 kB
text/typescript
import { module } from 'angular';
import { Application } from 'core/application/application.model';
import { INFRASTRUCTURE_KEY } from 'core/application/nav/defaultCategories';
import { ApplicationDataSourceRegistry } from 'core/application/service/ApplicationDataSourceRegistry';
import { ISecurityGroup } from 'core/domain';
import { EntityTagsReader } from 'core/entityTag/EntityTagsReader';
import { addManagedResourceMetadataToSecurityGroups } from 'core/managed';
import { SECURITY_GROUP_READER, SecurityGroupReader } from './securityGroupReader.service';
export const SECURITY_GROUP_DATA_SOURCE = 'spinnaker.core.securityGroup.dataSource';
module(SECURITY_GROUP_DATA_SOURCE, [SECURITY_GROUP_READER]).run([
'securityGroupReader',
(securityGroupReader: SecurityGroupReader) => {
const loadSecurityGroups = (application: Application) => {
return securityGroupReader.loadSecurityGroupsByApplicationName(application.name);
};
const addSecurityGroups = (application: Application, securityGroups: ISecurityGroup[]) => {
return securityGroupReader.getApplicationSecurityGroups(application, securityGroups);
};
const addTags = (application: Application) => {
EntityTagsReader.addTagsToSecurityGroups(application);
addManagedResourceMetadataToSecurityGroups(application);
};
ApplicationDataSourceRegistry.registerDataSource({
key: 'securityGroups',
label: 'Firewalls',
category: INFRASTRUCTURE_KEY,
sref: '.insight.firewalls',
optional: true,
icon: 'fa fa-xs fa-fw fa-lock',
iconName: 'spMenuSecurityGroups',
loader: loadSecurityGroups,
onLoad: addSecurityGroups,
afterLoad: addTags,
providerField: 'provider',
credentialsField: 'accountName',
regionField: 'region',
description: 'Network traffic access management',
defaultData: [],
});
},
]);