Merge "Tabs in launch server wizard not depending on OPENSTACK_NOVA_EXTENSIONS_BLACKLIST" into stable/pike
This commit is contained in:
commit
880096a080
|
@ -81,7 +81,8 @@
|
|||
title: gettext('Key Pair'),
|
||||
templateUrl: basePath + 'keypair/keypair.html',
|
||||
helpUrl: basePath + 'keypair/keypair.help.html',
|
||||
formName: 'launchInstanceKeypairForm'
|
||||
formName: 'launchInstanceKeypairForm',
|
||||
novaExtension: 'Keypairs'
|
||||
},
|
||||
{
|
||||
id: 'configuration',
|
||||
|
@ -96,7 +97,8 @@
|
|||
templateUrl: basePath + 'server-groups/server-groups.html',
|
||||
helpUrl: basePath + 'server-groups/server-groups.help.html',
|
||||
formName: 'launchInstanceServerGroupsForm',
|
||||
policy: stepPolicy.serverGroups
|
||||
policy: stepPolicy.serverGroups,
|
||||
novaExtension: 'ServerGroups'
|
||||
},
|
||||
{
|
||||
id: 'hints',
|
||||
|
@ -105,7 +107,8 @@
|
|||
helpUrl: basePath + 'scheduler-hints/scheduler-hints.help.html',
|
||||
formName: 'launchInstanceSchedulerHintsForm',
|
||||
policy: stepPolicy.schedulerHints,
|
||||
setting: 'LAUNCH_INSTANCE_DEFAULTS.enable_scheduler_hints'
|
||||
setting: 'LAUNCH_INSTANCE_DEFAULTS.enable_scheduler_hints',
|
||||
novaExtension: 'SchedulerHints'
|
||||
},
|
||||
{
|
||||
id: 'metadata',
|
||||
|
|
|
@ -71,13 +71,26 @@
|
|||
expect(launchInstanceWorkflow.steps[4].requiredServiceTypes).toEqual(['network']);
|
||||
});
|
||||
|
||||
it('has a nova extension the key pair step depends on', function() {
|
||||
expect(launchInstanceWorkflow.steps[6].novaExtension).toEqual("Keypairs");
|
||||
});
|
||||
|
||||
it('has a policy rule for the server groups step', function() {
|
||||
expect(launchInstanceWorkflow.steps[8].policy).toEqual(stepPolicy.serverGroups);
|
||||
});
|
||||
|
||||
it('has a nova extension the server groups step depends on', function() {
|
||||
expect(launchInstanceWorkflow.steps[8].novaExtension).toEqual("ServerGroups");
|
||||
});
|
||||
|
||||
it('has a policy rule for the scheduler hints step', function() {
|
||||
expect(launchInstanceWorkflow.steps[9].policy).toEqual(stepPolicy.schedulerHints);
|
||||
});
|
||||
|
||||
it('has a nova extension the scheduler hints step depends on', function() {
|
||||
expect(launchInstanceWorkflow.steps[9].novaExtension).toEqual("SchedulerHints");
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
})();
|
||||
|
|
|
@ -50,12 +50,13 @@
|
|||
'$q',
|
||||
'horizon.app.core.openstack-service-api.serviceCatalog',
|
||||
'horizon.app.core.openstack-service-api.policy',
|
||||
'horizon.app.core.openstack-service-api.settings'
|
||||
'horizon.app.core.openstack-service-api.settings',
|
||||
'horizon.app.core.openstack-service-api.novaExtensions'
|
||||
];
|
||||
|
||||
/////////////
|
||||
|
||||
function dashboardWorkflowDecorator($q, serviceCatalog, policy, settings) {
|
||||
function dashboardWorkflowDecorator($q, serviceCatalog, policy, settings, novaExtensions) {
|
||||
return decorator;
|
||||
|
||||
function decorator(spec) {
|
||||
|
@ -81,6 +82,9 @@
|
|||
if (step.setting) {
|
||||
promises.push(settings.ifEnabled(step.setting, true, true));
|
||||
}
|
||||
if (step.novaExtension) {
|
||||
promises.push(novaExtensions.ifNameEnabled(step.novaExtension));
|
||||
}
|
||||
if (promises.length > 0) {
|
||||
step.checkReadiness = function () {
|
||||
return $q.all(promises);
|
||||
|
|
|
@ -17,12 +17,14 @@
|
|||
'use strict';
|
||||
|
||||
describe('Workflow Decorator', function () {
|
||||
var decoratorService, catalogService, policyService, settingsService, $scope, deferred;
|
||||
var decoratorService, catalogService, policyService, settingsService, $scope, deferred,
|
||||
novaExtensionsService;
|
||||
var steps = [
|
||||
{ id: '1' },
|
||||
{ id: '2', requiredServiceTypes: ['foo-service'] },
|
||||
{ id: '3', policy: 'foo-policy' },
|
||||
{ id: '4', setting: 'STEPS.step_4_enabled' }
|
||||
{ id: '4', setting: 'STEPS.step_4_enabled' },
|
||||
{ id: '5', novaExtension: 'foo-novaExtension'}
|
||||
];
|
||||
var spec = { steps: steps };
|
||||
|
||||
|
@ -38,9 +40,12 @@
|
|||
catalogService = $injector.get('horizon.app.core.openstack-service-api.serviceCatalog');
|
||||
policyService = $injector.get('horizon.app.core.openstack-service-api.policy');
|
||||
settingsService = $injector.get('horizon.app.core.openstack-service-api.settings');
|
||||
novaExtensionsService = $injector
|
||||
.get('horizon.app.core.openstack-service-api.novaExtensions');
|
||||
spyOn(catalogService, 'ifTypeEnabled').and.returnValue(deferred.promise);
|
||||
spyOn(policyService, 'ifAllowed').and.returnValue(deferred.promise);
|
||||
spyOn(settingsService, 'ifEnabled').and.returnValue(deferred.promise);
|
||||
spyOn(novaExtensionsService, 'ifNameEnabled').and.returnValue(deferred.promise);
|
||||
}));
|
||||
|
||||
it('is a function', function() {
|
||||
|
@ -58,6 +63,8 @@
|
|||
expect(policyService.ifAllowed).toHaveBeenCalledWith('foo-policy');
|
||||
expect(settingsService.ifEnabled.calls.count()).toBe(1);
|
||||
expect(settingsService.ifEnabled).toHaveBeenCalledWith('STEPS.step_4_enabled', true, true);
|
||||
expect(novaExtensionsService.ifNameEnabled.calls.count()).toBe(1);
|
||||
expect(novaExtensionsService.ifNameEnabled).toHaveBeenCalledWith('foo-novaExtension');
|
||||
});
|
||||
|
||||
it('step checkReadiness function returns correct results', function() {
|
||||
|
|
Loading…
Reference in New Issue