updateSelectedCloudAccount: (cloudAccount) => {
let nsd = self.nsd[0];
var newState = {
- selectedCloudAccount: cloudAccount
+ selectedCloudAccount: JSON.parse(cloudAccount.target.value)
};
if (cloudAccount['account-type'] == 'openstack') {
newState.displayPlacementGroups = true;
},
updateSelectedDataCenter: (dataCenter) => {
self.setState({
- dataCenterID: dataCenter.target.value
+ dataCenterID: JSON.parse(dataCenter.target.value)
});
},
placementGroupUpdate: (i, k, value) => {
if(!vnfCA.hasOwnProperty(id)) {
vnfCA[id] = {};
}
- vnfCA[id].account = cloudAccount;
+ vnfCA[id].account = JSON.parse(cloudAccount.target.value);
if (cloudAccount['account-type'] == 'openmano' && this.dataCenters && self.dataCenters[cloudAccount['name']]) {
let datacenter = self.dataCenters[cloudAccount['name']][0];
if (!vnfCA[id]) {
vnfCA[id] = {};
}
- vnfCA[id].datacenter = dataCenter.target.value;
+ vnfCA[id].datacenter = JSON.parse(dataCenter.target.value);
self.setState({
vnfdCloudAccounts: vnfCA
});
usersFn = () => {
let self = this;
return {
- add: function() {
- console.log('adding user')
- let newUser = {
- name: '',
- gecos: '',
- passwd: ''
+ add: function(sshKeysList) {
+ return function(e) {
+ let newUser = {
+ name: '',
+ 'user-info': '',
+ 'ssh-authorized-key': [sshKeysList[0].name]
+ }
+ let usersList = self.usersList;
+ usersList.push(newUser);
+ self.setState({
+ usersList: usersList
+ })
}
- let usersList = self.usersList;
- usersList.push(newUser);
- self.setState({
- usersList: usersList
- })
},
remove: function(i) {
return function() {
usersList: self.usersList
})
}
+ },
+ updateSSHkeyRef: function(i, j, remove){
+ return function(e) {
+ let usersList = _.cloneDeep(self.usersList)
+ let keys = usersList[i]['ssh-authorized-key'];
+ if(!remove) {
+ let keyRef = JSON.parse(e.target.value).name;
+ if(!isNaN(j)) {
+ keys.splice(j, 1);
+ }
+ keys.push(keyRef);
+ } else {
+ keys.splice(j, 1);
+ }
+ usersList[i]['ssh-authorized-key'] = keys;
+ self.setState({
+ usersList: usersList
+ })
+ }
}
}
}
"nsd": nsdPayload
}
- if (this.state.ro['account-type'] == 'openmano') {
+ if (this.state.ro && this.state.ro['account-type'] == 'openmano') {
payload['om-datacenter'] = this.state.dataCenterID;
} else {
payload["cloud-account"] = this.state.selectedCloudAccount.name;
if(vnfdCloudAccounts[k].hasOwnProperty('datacenter')) {
vnf['om-datacenter'] = vnfdCloudAccounts[k].datacenter;
}
- payload['vnf-cloud-account-map'].push(vnf);
+ if(vnf['om-datacenter'] || vnf['cloud-account'] || vnf['config-agent-account']) {
+ payload['vnf-cloud-account-map'].push(vnf);
+ }
}
//Add SSH-Keys
payload['ssh-authorized-key'] = this.state.sshKeysRef.map(function(k) {
return {'key-pair-ref': JSON.parse(k).name};
});
//Add Users
- payload['user'] = this.state.usersList;
+ payload['user'] = addKeyPairRefToUsers(this.state.usersList);
+ // console.log(payload)
this.launchNSR({
'nsr': [payload]
});
}
+function addKeyPairRefToUsers(list) {
+ return list.map(function(u) {
+ return {
+ name: u.name,
+ 'user-info': u['user-info'],
+ 'ssh-authorized-key': u['ssh-authorized-key'].map(function(k) {
+ return {
+ 'key-pair-ref' : k
+ }
+ })
+ }
+ })
+}
function getMockSLA(id) {
console.log('Getting mock SLA Data for id: ' + id);