Skip to content

Commit

Permalink
refactor(core): de-angularize services (#5385)
Browse files Browse the repository at this point in the history
* refactor(core): de-angularize EntityTagsReader

* refactor(core): de-angularize WhatsNewReader

* refactor(core): de-angularize InstanceReader

* refactor(core): de-angularize PubsubSubscriptionReader

* refactor(core): de-angularize StorageAccountReader

* refactor(core): de-angularize ManifestReader

* refactor(core): de-angularize ExecutionsTransformer

* refactor(core): de-angularize PageNavigationState

* refactor(core): de-angularize ApplicationNameValidator
  • Loading branch information
anotherchrisberry committed May 25, 2018
1 parent d646ad3 commit 37a96b1
Show file tree
Hide file tree
Showing 76 changed files with 440 additions and 672 deletions.
3 changes: 1 addition & 2 deletions app/scripts/modules/amazon/src/aws.module.ts
Expand Up @@ -6,7 +6,7 @@ import { AWS_LOAD_BALANCER_MODULE } from './loadBalancer/loadBalancer.module';
import { AWS_REACT_MODULE } from './reactShims/aws.react.module';
import { AWS_SECURITY_GROUP_MODULE } from './securityGroup/securityGroup.module';
import { AWS_SERVER_GROUP_TRANSFORMER } from './serverGroup/serverGroup.transformer';
import { AMAZON_APPLICATION_NAME_VALIDATOR } from './validation/applicationName.validator';
import './validation/ApplicationNameValidator';
import { VPC_MODULE } from './vpc/vpc.module';
import { SUBNET_RENDERER } from './subnet/subnet.renderer';
import { SERVER_GROUP_DETAILS_MODULE } from './serverGroup/details/serverGroupDetails.module';
Expand Down Expand Up @@ -49,7 +49,6 @@ templates.keys().forEach(function(key) {
export const AMAZON_MODULE = 'spinnaker.amazon';
module(AMAZON_MODULE, [
AWS_REACT_MODULE,
AMAZON_APPLICATION_NAME_VALIDATOR,
require('./pipeline/stages/bake/awsBakeStage').name,
require('./pipeline/stages/cloneServerGroup/awsCloneServerGroupStage').name,
require('./pipeline/stages/destroyAsg/awsDestroyAsgStage').name,
Expand Down
Expand Up @@ -6,7 +6,7 @@ import _ from 'lodash';
import {
CloudProviderRegistry,
CONFIRMATION_MODAL_SERVICE,
INSTANCE_READ_SERVICE,
InstanceReader,
RecentHistoryService,
SETTINGS,
FirewallLabels,
Expand All @@ -19,7 +19,6 @@ module.exports = angular
require('@uirouter/angularjs').default,
require('angular-ui-bootstrap'),
AMAZON_INSTANCE_WRITE_SERVICE,
INSTANCE_READ_SERVICE,
require('../../vpc/vpcTag.directive.js').name,
CONFIRMATION_MODAL_SERVICE,
])
Expand All @@ -29,7 +28,6 @@ module.exports = angular
$uibModal,
amazonInstanceWriter,
confirmationModalService,
instanceReader,
instance,
app,
moniker,
Expand Down Expand Up @@ -176,7 +174,7 @@ module.exports = angular
extraData.account = account;
extraData.region = region;
RecentHistoryService.addExtraDataToLatest('instances', extraData);
return instanceReader.getInstanceDetails(account, region, instance.instanceId).then(details => {
return InstanceReader.getInstanceDetails(account, region, instance.instanceId).then(details => {
if ($scope.$$destroyed) {
return;
}
Expand Down
@@ -1,18 +1,16 @@
import { APPLICATION_MODEL_BUILDER } from '@spinnaker/core';
import { APPLICATION_MODEL_BUILDER, InstanceReader } from '@spinnaker/core';

describe('Controller: awsInstanceDetailsCtrl', function() {
var controller;
var scope;
var instanceReader;
var $q;
var application;

beforeEach(window.module(require('./instance.details.controller').name, APPLICATION_MODEL_BUILDER));

beforeEach(
window.inject(function($rootScope, $controller, _instanceReader_, _$q_, applicationModelBuilder) {
window.inject(function($rootScope, $controller, _$q_, applicationModelBuilder) {
scope = $rootScope.$new();
instanceReader = _instanceReader_;
$q = _$q_;

this.createController = function(application, instance) {
Expand Down Expand Up @@ -45,7 +43,7 @@ describe('Controller: awsInstanceDetailsCtrl', function() {
account: 'test',
};

spyOn(instanceReader, 'getInstanceDetails').and.returnValue($q.when(details));
spyOn(InstanceReader, 'getInstanceDetails').and.returnValue($q.when(details));

application.loadBalancers.loaded = true;

Expand Down Expand Up @@ -82,7 +80,7 @@ describe('Controller: awsInstanceDetailsCtrl', function() {
account: 'test',
};

spyOn(instanceReader, 'getInstanceDetails').and.returnValue(
spyOn(InstanceReader, 'getInstanceDetails').and.returnValue(
$q.when({
plain: function() {
return details;
Expand Down
@@ -1,11 +1,4 @@
import { module } from 'angular';

import {
APPLICATION_NAME_VALIDATOR,
FirewallLabels,
IApplicationNameValidator,
ApplicationNameValidator,
} from '@spinnaker/core';
import { ApplicationNameValidator, FirewallLabels, IApplicationNameValidator } from '@spinnaker/core';
import { AWSProviderSettings } from '../aws.settings';

class AmazonApplicationNameValidator implements IApplicationNameValidator {
Expand All @@ -20,8 +13,8 @@ class AmazonApplicationNameValidator implements IApplicationNameValidator {
const lockoutDate = AWSProviderSettings.classicLaunchLockout;
if (lockoutDate && lockoutDate < new Date().getTime()) {
warnings.push(
`New applications deployed to AWS are restricted to VPC; you cannot create server groups, ' +
'load balancers, or ${FirewallLabels.get('firewalls')} in EC2 Classic.`,
`New applications deployed to AWS are restricted to VPC; you cannot create server groups,
load balancers, or ${FirewallLabels.get('firewalls')} in EC2 Classic.`,
);
}
}
Expand Down Expand Up @@ -86,11 +79,4 @@ class AmazonApplicationNameValidator implements IApplicationNameValidator {
};
}
}

export const AMAZON_APPLICATION_NAME_VALIDATOR = 'spinnaker.amazon.validation.application.name';

module(AMAZON_APPLICATION_NAME_VALIDATOR, [APPLICATION_NAME_VALIDATOR])
.service('awsApplicationNameValidator', AmazonApplicationNameValidator)
.run((applicationNameValidator: ApplicationNameValidator, awsApplicationNameValidator: IApplicationNameValidator) => {
applicationNameValidator.registerValidator('aws', awsApplicationNameValidator);
});
ApplicationNameValidator.registerValidator('aws', new AmazonApplicationNameValidator());
3 changes: 1 addition & 2 deletions app/scripts/modules/appengine/src/appengine.module.ts
Expand Up @@ -16,7 +16,7 @@ import { APPENGINE_CLONE_SERVER_GROUP_CTRL } from './serverGroup/configure/wizar
import { APPENGINE_SERVER_GROUP_DETAILS_CTRL } from './serverGroup/details/details.controller';
import { APPENGINE_SERVER_GROUP_TRANSFORMER } from './serverGroup/transformer';
import { APPENGINE_SERVER_GROUP_WRITER } from './serverGroup/writer/serverGroup.write.service';
import { APPENGINE_APPLICATION_NAME_VALIDATOR } from './validation/applicationName.validator';
import './validation/ApplicationNameValidator';

import './logo/appengine.logo.less';

Expand All @@ -28,7 +28,6 @@ templates.keys().forEach(function(key) {
export const APPENGINE_MODULE = 'spinnaker.appengine';

module(APPENGINE_MODULE, [
APPENGINE_APPLICATION_NAME_VALIDATOR,
APPENGINE_CACHE_CONFIGURER,
APPENGINE_CLONE_SERVER_GROUP_CTRL,
APPENGINE_COMPONENT_URL_DETAILS,
Expand Down
Expand Up @@ -5,7 +5,6 @@ import {
Application,
CONFIRMATION_MODAL_SERVICE,
ConfirmationModalService,
INSTANCE_READ_SERVICE,
INSTANCE_WRITE_SERVICE,
InstanceReader,
InstanceWriter,
Expand Down Expand Up @@ -37,7 +36,6 @@ class AppengineInstanceDetailsController implements IController {
constructor(
private $q: IQService,
private app: Application,
private instanceReader: InstanceReader,
private instanceWriter: InstanceWriter,
private confirmationModalService: ConfirmationModalService,
instance: InstanceFromStateParams,
Expand Down Expand Up @@ -109,13 +107,15 @@ class AppengineInstanceDetailsController implements IController {
}
RecentHistoryService.addExtraDataToLatest('instances', recentHistoryExtraData);

return this.instanceReader
.getInstanceDetails(instanceManager.account, instanceManager.region, instance.instanceId)
.then((instanceDetails: IAppengineInstance) => {
instanceDetails.account = instanceManager.account;
instanceDetails.region = instanceManager.region;
return instanceDetails;
});
return InstanceReader.getInstanceDetails(
instanceManager.account,
instanceManager.region,
instance.instanceId,
).then((instanceDetails: IAppengineInstance) => {
instanceDetails.account = instanceManager.account;
instanceDetails.region = instanceManager.region;
return instanceDetails;
});
} else {
return this.$q.reject();
}
Expand All @@ -124,8 +124,7 @@ class AppengineInstanceDetailsController implements IController {

export const APPENGINE_INSTANCE_DETAILS_CTRL = 'spinnaker.appengine.instanceDetails.controller';

module(APPENGINE_INSTANCE_DETAILS_CTRL, [
INSTANCE_READ_SERVICE,
INSTANCE_WRITE_SERVICE,
CONFIRMATION_MODAL_SERVICE,
]).controller('appengineInstanceDetailsCtrl', AppengineInstanceDetailsController);
module(APPENGINE_INSTANCE_DETAILS_CTRL, [INSTANCE_WRITE_SERVICE, CONFIRMATION_MODAL_SERVICE]).controller(
'appengineInstanceDetailsCtrl',
AppengineInstanceDetailsController,
);
Expand Up @@ -2,8 +2,7 @@ import { IPromise, IQService, module } from 'angular';

import {
AccountService,
STORAGE_ACCOUNT_SERVICE,
StorageAccountService,
StorageAccountReader,
Application,
IBuildTrigger,
IExpectedArtifact,
Expand Down Expand Up @@ -90,7 +89,7 @@ export class AppengineServerGroupCommandBuilder {
return pipeline.expectedArtifacts || [];
}

constructor(private $q: IQService, private storageAccountService: StorageAccountService) {
constructor(private $q: IQService) {
'ngInject';
}

Expand All @@ -101,7 +100,7 @@ export class AppengineServerGroupCommandBuilder {
): IPromise<IAppengineServerGroupCommand> {
const dataToFetch = {
accounts: AccountService.getAllAccountDetailsForProvider('appengine'),
storageAccounts: this.storageAccountService.getStorageAccounts(),
storageAccounts: StorageAccountReader.getStorageAccounts(),
};

const viewState: IViewState = {
Expand Down Expand Up @@ -207,7 +206,7 @@ export class AppengineServerGroupCommandBuilder {

export const APPENGINE_SERVER_GROUP_COMMAND_BUILDER = 'spinnaker.appengine.serverGroupCommandBuilder.service';

module(APPENGINE_SERVER_GROUP_COMMAND_BUILDER, [STORAGE_ACCOUNT_SERVICE]).service(
module(APPENGINE_SERVER_GROUP_COMMAND_BUILDER, []).service(
'appengineServerGroupCommandBuilder',
AppengineServerGroupCommandBuilder,
);
@@ -1,11 +1,4 @@
import { module } from 'angular';

import {
APPLICATION_NAME_VALIDATOR,
ApplicationNameValidator,
IApplicationNameValidator,
IValidationResult,
} from '@spinnaker/core';
import { ApplicationNameValidator, IApplicationNameValidator, IValidationResult } from '@spinnaker/core';

// See https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version
class AppengineApplicationNameValidator implements IApplicationNameValidator {
Expand Down Expand Up @@ -43,14 +36,4 @@ class AppengineApplicationNameValidator implements IApplicationNameValidator {
}
}

export const APPENGINE_APPLICATION_NAME_VALIDATOR = 'spinnaker.appengine.applicationNameValidator.service';
module(APPENGINE_APPLICATION_NAME_VALIDATOR, [APPLICATION_NAME_VALIDATOR])
.service('appengineApplicationNameValidator', AppengineApplicationNameValidator)
.run(
(
applicationNameValidator: ApplicationNameValidator,
appengineApplicationNameValidator: IApplicationNameValidator,
) => {
applicationNameValidator.registerValidator('appengine', appengineApplicationNameValidator);
},
);
ApplicationNameValidator.registerValidator('appengine', new AppengineApplicationNameValidator());
Expand Up @@ -6,7 +6,7 @@ import _ from 'lodash';
import {
CloudProviderRegistry,
CONFIRMATION_MODAL_SERVICE,
INSTANCE_READ_SERVICE,
InstanceReader,
INSTANCE_WRITE_SERVICE,
InstanceTemplates,
RecentHistoryService,
Expand All @@ -17,7 +17,6 @@ module.exports = angular
require('@uirouter/angularjs').default,
require('angular-ui-bootstrap'),
INSTANCE_WRITE_SERVICE,
INSTANCE_READ_SERVICE,
CONFIRMATION_MODAL_SERVICE,
])
.controller('azureInstanceDetailsCtrl', function(
Expand All @@ -26,7 +25,6 @@ module.exports = angular
$uibModal,
instanceWriter,
confirmationModalService,
instanceReader,
instance,
app,
$q,
Expand Down Expand Up @@ -128,7 +126,7 @@ module.exports = angular
extraData.account = account;
extraData.region = region;
RecentHistoryService.addExtraDataToLatest('instances', extraData);
return instanceReader.getInstanceDetails(account, region, instance.instanceId).then(
return InstanceReader.getInstanceDetails(account, region, instance.instanceId).then(
function(details) {
$scope.state.loading = false;
extractHealthMetrics(instanceSummary, details);
Expand Down
@@ -1,18 +1,16 @@
import { APPLICATION_MODEL_BUILDER } from '@spinnaker/core';
import { APPLICATION_MODEL_BUILDER, InstanceReader } from '@spinnaker/core';

describe('Controller: azureInstanceDetailsCtrl', function() {
var controller;
var scope;
var instanceReader;
var $q;
var application;

beforeEach(window.module(require('./instance.details.controller').name, APPLICATION_MODEL_BUILDER));

beforeEach(
window.inject(function($rootScope, $controller, _instanceReader_, _$q_, applicationModelBuilder) {
window.inject(function($rootScope, $controller, _$q_, applicationModelBuilder) {
scope = $rootScope.$new();
instanceReader = _instanceReader_;
$q = _$q_;

application = applicationModelBuilder.createApplication(
Expand Down Expand Up @@ -42,7 +40,7 @@ describe('Controller: azureInstanceDetailsCtrl', function() {
account: 'test',
};

spyOn(instanceReader, 'getInstanceDetails').and.returnValue($q.when(details));
spyOn(InstanceReader, 'getInstanceDetails').and.returnValue($q.when(details));

application.loadBalancers.loaded = true;

Expand Down Expand Up @@ -79,7 +77,7 @@ describe('Controller: azureInstanceDetailsCtrl', function() {
account: 'test',
};

spyOn(instanceReader, 'getInstanceDetails').and.returnValue(
spyOn(InstanceReader, 'getInstanceDetails').and.returnValue(
$q.when({
plain: function() {
return details;
Expand Down
Expand Up @@ -6,7 +6,7 @@ import _ from 'lodash';
import {
CloudProviderRegistry,
CONFIRMATION_MODAL_SERVICE,
INSTANCE_READ_SERVICE,
InstanceReader,
INSTANCE_WRITE_SERVICE,
RecentHistoryService,
} from '@spinnaker/core';
Expand All @@ -16,7 +16,6 @@ module.exports = angular
require('@uirouter/angularjs').default,
require('angular-ui-bootstrap'),
INSTANCE_WRITE_SERVICE,
INSTANCE_READ_SERVICE,
CONFIRMATION_MODAL_SERVICE,
])
.controller('cfInstanceDetailsCtrl', function(
Expand All @@ -26,7 +25,6 @@ module.exports = angular
$uibModal,
instanceWriter,
confirmationModalService,
instanceReader,
instance,
app,
moniker,
Expand Down Expand Up @@ -132,7 +130,7 @@ module.exports = angular
extraData.account = account;
extraData.region = region;
RecentHistoryService.addExtraDataToLatest('instances', extraData);
return instanceReader.getInstanceDetails(account, region, instance.instanceId).then(function(details) {
return InstanceReader.getInstanceDetails(account, region, instance.instanceId).then(function(details) {
$scope.state.loading = false;
extractHealthMetrics(instanceSummary, details);
$scope.instance = _.defaults(details, instanceSummary);
Expand Down
Expand Up @@ -3,7 +3,7 @@ import { APP_CONFIG_STATES } from './appConfig.states';

const angular = require('angular');

module.exports = angular.module('spinnaker.core.application.config.dataSource', [APP_CONFIG_STATES]).run(function($q) {
module.exports = angular.module('spinnaker.core.application.config.dataSource', [APP_CONFIG_STATES]).run(function() {
ApplicationDataSourceRegistry.registerDataSource({
key: 'config',
label: 'Config',
Expand Down
2 changes: 1 addition & 1 deletion app/scripts/modules/core/src/application/index.ts
Expand Up @@ -2,7 +2,7 @@ export * from './ApplicationIcon';
export * from './application.model';
export * from './applicationModel.builder';
export * from './nav/defaultCategories';
export * from './modal/validation/applicationName.validator';
export * from './modal/validation/ApplicationNameValidator';
export * from './listExtractor/listExtractor.service';
export * from './service/ApplicationReader';
export * from './service/ApplicationWriter';
Expand Down

0 comments on commit 37a96b1

Please sign in to comment.