Set Admin Password at NG Launch Instance dialog
This patch allows to set admin password at Angular Launch Instance dialog when 'can_set_password' is true in OPENSTACK_HYPERVISOR_FEATURES. Closes-Bug: #1439905 Closes-Bug: #1609777 Change-Id: I3307521df524da30b910f0001165cefa2be6c8bb
This commit is contained in:
parent
29260bbf13
commit
c2d3f61d4d
@ -60,6 +60,7 @@
|
||||
ctrl.createKeyPair = createKeyPair;
|
||||
ctrl.importKeyPair = importKeyPair;
|
||||
ctrl.setKeypairRequired = setKeypairRequired;
|
||||
ctrl.setAdminPasswordChange = setAdminPasswordChange;
|
||||
|
||||
ctrl.tableData = {
|
||||
available: launchInstanceModel.keypairs,
|
||||
@ -105,6 +106,10 @@
|
||||
'OPENSTACK_HYPERVISOR_FEATURES.requires_keypair'
|
||||
).then(setKeypairRequired);
|
||||
|
||||
ctrl.setAdminPassword = false;
|
||||
|
||||
ctrl.adminPassConfError = gettext('Passwords do not match.');
|
||||
|
||||
//////////
|
||||
|
||||
/**
|
||||
@ -200,6 +205,11 @@
|
||||
function setKeypairRequired(setting) {
|
||||
ctrl.isKeypairRequired = setting ? 1 : 0;
|
||||
}
|
||||
|
||||
function setAdminPasswordChange() {
|
||||
ctrl.confirmedAdminPassword = null;
|
||||
launchInstanceModel.newInstanceSpec.admin_pass = null;
|
||||
}
|
||||
}
|
||||
|
||||
})();
|
||||
|
@ -19,7 +19,7 @@
|
||||
describe('Launch Instance Keypair Step', function() {
|
||||
|
||||
describe('LaunchInstanceKeypairController', function() {
|
||||
var ctrl, q, settings;
|
||||
var ctrl, q, settings, model;
|
||||
var $uibModal = { open: angular.noop };
|
||||
var toastServiceMock = {add: angular.noop};
|
||||
|
||||
@ -28,6 +28,7 @@
|
||||
beforeEach(function() {
|
||||
settings = {
|
||||
OPENSTACK_HYPERVISOR_FEATURES: {
|
||||
can_set_password: true,
|
||||
requires_keypair: false
|
||||
}
|
||||
};
|
||||
@ -48,7 +49,7 @@
|
||||
|
||||
beforeEach(inject(function($controller, $q) {
|
||||
q = $q;
|
||||
var model = {
|
||||
model = {
|
||||
newInstanceSpec: {
|
||||
key_pair: ['key1']
|
||||
},
|
||||
@ -189,6 +190,17 @@
|
||||
ctrl.setKeypairRequired(false);
|
||||
expect(ctrl.isKeypairRequired).toBe(0);
|
||||
});
|
||||
|
||||
it('defines setAdminPassword', function() {
|
||||
expect(ctrl.setAdminPassword).toBeDefined();
|
||||
expect(ctrl.setAdminPassword).toBe(false);
|
||||
});
|
||||
|
||||
it('clears password fields when setAdminPassword is changed', function() {
|
||||
ctrl.setAdminPasswordChange();
|
||||
expect(ctrl.confirmedAdminPassword).toBe(null);
|
||||
expect(model.newInstanceSpec.admin_pass).toBe(null);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
@ -25,4 +25,56 @@
|
||||
table="ctrl">
|
||||
</hz-dynamic-table>
|
||||
</transfer-table> <!-- End Key Pairs Table -->
|
||||
|
||||
<settings-service required-settings='["OPENSTACK_HYPERVISOR_FEATURES.can_set_password"]'>
|
||||
<div class="admin-password">
|
||||
<div class="themable-checkbox">
|
||||
<input ng-change="ctrl.setAdminPasswordChange()"
|
||||
ng-model="ctrl.setAdminPassword"
|
||||
type="checkbox"
|
||||
id="setPassword">
|
||||
<label for="setPassword">
|
||||
<span translate>Set admin password</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
|
||||
<div ng-if="ctrl.setAdminPassword" ng-form="adminPasswordForm">
|
||||
<div class="col-sm-3">
|
||||
<div class="form-group">
|
||||
<label class="control-label" translate for="adminPassword">Password</label>
|
||||
<input class="form-control"
|
||||
id="adminPassword"
|
||||
name="adminPassword"
|
||||
ng-model="model.newInstanceSpec.admin_pass"
|
||||
type="password">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-3">
|
||||
<div class="form-group"
|
||||
ng-class="{ 'has-error':
|
||||
adminPasswordForm['confirmPassword'].$invalid &&
|
||||
adminPasswordForm['confirmPassword'].$dirty }">
|
||||
<label class="control-label" translate for="confirmPassword">Confirm password</label>
|
||||
<input id="confirmPassword"
|
||||
name="confirmPassword"
|
||||
class="form-control"
|
||||
hz-password-match="model.newInstanceSpec.admin_pass"
|
||||
ng-model="ctrl.confirmedAdminPassword"
|
||||
type="password">
|
||||
<span class="help-block"
|
||||
ng-show="adminPasswordForm['confirmPassword'].$invalid &&
|
||||
adminPasswordForm['confirmPassword'].$dirty">
|
||||
{$ ctrl.adminPassConfError $}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</settings-service> <!-- End Admin Password Form-->
|
||||
</div> <!-- End Controller -->
|
||||
|
@ -1041,7 +1041,7 @@
|
||||
expect(finalSpec.key_pair).toBeUndefined();
|
||||
});
|
||||
|
||||
it('stips null properties', function() {
|
||||
it('strips null properties', function() {
|
||||
model.newInstanceSpec.useless = null;
|
||||
|
||||
var finalSpec = model.createInstance();
|
||||
|
@ -0,0 +1,5 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
Setting 'can_set_password' to True in OPENSTACK_HYPERVISOR_FEATURES adds
|
||||
the option to set admin password from AngularJS Launch Instance dialog.
|
Loading…
Reference in New Issue
Block a user