mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
- UI: use post when updating user - S3: don't send s3 key in the response - VPN: don't send preshared key in remoteaccessvpn api response - Snapshot response should set zone id not volume's device id Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com> (cherry picked from commit 02cadc3fb3fae7f5e8c87b7fafb977fb5eeae6eb) Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
360 lines
14 KiB
JavaScript
360 lines
14 KiB
JavaScript
// Licensed to the Apache Software Foundation (ASF) under one
|
|
// or more contributor license agreements. See the NOTICE file
|
|
// distributed with this work for additional information
|
|
// regarding copyright ownership. The ASF licenses this file
|
|
// to you under the Apache License, Version 2.0 (the
|
|
// "License"); you may not use this file except in compliance
|
|
// with the License. You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing,
|
|
// software distributed under the License is distributed on an
|
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
// KIND, either express or implied. See the License for the
|
|
// specific language governing permissions and limitations
|
|
// under the License.
|
|
(function($, cloudStack) {
|
|
cloudStack.installWizard = {
|
|
// Check if install wizard should be invoked
|
|
check: function(args) {
|
|
$.ajax({
|
|
url: createURL('listZones'),
|
|
dataType: 'json',
|
|
async: true,
|
|
success: function(data) {
|
|
args.response.success({
|
|
doInstall: !data.listzonesresponse.zone
|
|
});
|
|
}
|
|
});
|
|
},
|
|
|
|
changeUser: function(args) {
|
|
$.ajax({
|
|
url: createURL('updateUser'),
|
|
data: {
|
|
id: cloudStack.context.users[0].userid,
|
|
password: md5Hashed ? $.md5(args.data.password) : args.data.password
|
|
},
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
async: true,
|
|
success: function(data) {
|
|
args.response.success({
|
|
data: {
|
|
newUser: data.updateuserresponse.user
|
|
}
|
|
});
|
|
}
|
|
});
|
|
},
|
|
|
|
// Copy text
|
|
copy: {
|
|
// Tooltips
|
|
'tooltip.addZone.name': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addZone.name'
|
|
});
|
|
},
|
|
|
|
'tooltip.addZone.ip4dns1': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addZone.dns1'
|
|
});
|
|
},
|
|
|
|
'tooltip.addZone.ip4dns2': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addZone.dns2'
|
|
});
|
|
},
|
|
|
|
'tooltip.addZone.internaldns1': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addZone.internaldns1'
|
|
});
|
|
},
|
|
|
|
'tooltip.addZone.internaldns2': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addZone.internaldns2'
|
|
});
|
|
},
|
|
|
|
'tooltip.configureGuestTraffic.name': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.configureGuestTraffic.name'
|
|
});
|
|
},
|
|
|
|
'tooltip.configureGuestTraffic.description': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.configureGuestTraffic.description'
|
|
});
|
|
},
|
|
|
|
'tooltip.configureGuestTraffic.guestGateway': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.configureGuestTraffic.guestGateway'
|
|
});
|
|
},
|
|
|
|
'tooltip.configureGuestTraffic.guestNetmask': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.configureGuestTraffic.guestNetmask'
|
|
});
|
|
},
|
|
|
|
'tooltip.configureGuestTraffic.guestStartIp': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.configureGuestTraffic.guestStartIp'
|
|
});
|
|
},
|
|
|
|
'tooltip.configureGuestTraffic.guestEndIp': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.configureGuestTraffic.guestEndIp'
|
|
});
|
|
},
|
|
|
|
'tooltip.addPod.name': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addPod.name'
|
|
});
|
|
},
|
|
|
|
'tooltip.addPod.reservedSystemGateway': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addPod.reservedSystemGateway'
|
|
});
|
|
},
|
|
|
|
'tooltip.addPod.reservedSystemNetmask': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addPod.reservedSystemNetmask'
|
|
});
|
|
},
|
|
|
|
'tooltip.addPod.reservedSystemStartIp': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addPod.reservedSystemStartIp'
|
|
});
|
|
},
|
|
|
|
'tooltip.addPod.reservedSystemEndIp': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addPod.reservedSystemEndIp'
|
|
});
|
|
},
|
|
|
|
'tooltip.addCluster.name': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addCluster.name'
|
|
});
|
|
},
|
|
|
|
'tooltip.addHost.hostname': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addHost.hostname'
|
|
});
|
|
},
|
|
|
|
'tooltip.addHost.username': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addHost.username'
|
|
});
|
|
},
|
|
|
|
'tooltip.addHost.password': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addHost.password'
|
|
});
|
|
},
|
|
|
|
'tooltip.addPrimaryStorage.name': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addPrimaryStorage.name'
|
|
});
|
|
},
|
|
|
|
'tooltip.addPrimaryStorage.server': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addPrimaryStorage.server'
|
|
});
|
|
},
|
|
|
|
'tooltip.addPrimaryStorage.path': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addPrimaryStorage.path'
|
|
});
|
|
},
|
|
|
|
'tooltip.addSecondaryStorage.nfsServer': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addSecondaryStorage.nfsServer'
|
|
});
|
|
},
|
|
|
|
'tooltip.addSecondaryStorage.path': function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.tooltip.addSecondaryStorage.path'
|
|
});
|
|
},
|
|
|
|
// Intro text
|
|
whatIsCloudStack: function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.copy.whatIsCloudStack'
|
|
});
|
|
},
|
|
|
|
whatIsAZone: function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.copy.whatIsAZone'
|
|
});
|
|
},
|
|
|
|
whatIsAPod: function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.copy.whatIsAPod'
|
|
});
|
|
},
|
|
|
|
whatIsACluster: function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.copy.whatIsACluster'
|
|
});
|
|
},
|
|
|
|
whatIsAHost: function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.copy.whatIsAHost'
|
|
});
|
|
},
|
|
|
|
whatIsPrimaryStorage: function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.copy.whatIsPrimaryStorage'
|
|
});
|
|
},
|
|
|
|
whatIsSecondaryStorage: function(args) {
|
|
args.response.success({
|
|
text: 'message.installWizard.copy.whatIsSecondaryStorage'
|
|
});
|
|
}
|
|
},
|
|
|
|
action: function(args) {
|
|
var success = args.response.success;
|
|
var message = args.response.message;
|
|
|
|
// Get default network offering
|
|
var selectedNetworkOffering;
|
|
$.ajax({
|
|
url: createURL("listNetworkOfferings&state=Enabled&guestiptype=Shared"),
|
|
dataType: "json",
|
|
async: false,
|
|
success: function(json) {
|
|
selectedNetworkOffering = $.grep(
|
|
json.listnetworkofferingsresponse.networkoffering,
|
|
function(networkOffering) {
|
|
var services = $.map(networkOffering.service, function(service) {
|
|
return service.name;
|
|
});
|
|
|
|
//pick the network offering including SecurityGroup, but excluding Lb and StaticNat. (bug 13665)
|
|
return (($.inArray('SecurityGroup', services) != -1) && ($.inArray('Lb', services) == -1) && ($.inArray('StaticNat', services) == -1));
|
|
}
|
|
)[0];
|
|
}
|
|
});
|
|
|
|
cloudStack.zoneWizard.action($.extend(true, {}, args, {
|
|
// Plug in hard-coded values specific to quick install
|
|
data: {
|
|
zone: {
|
|
networkType: 'Basic',
|
|
networkOfferingId: selectedNetworkOffering.id
|
|
},
|
|
pluginFrom: {
|
|
name: 'installWizard',
|
|
selectedNetworkOffering: selectedNetworkOffering,
|
|
selectedNetworkOfferingHavingSG: true
|
|
}
|
|
},
|
|
response: {
|
|
success: function(args) {
|
|
var enableZone = function() {
|
|
message(_l('message.enabling.zone.dots'));
|
|
cloudStack.zoneWizard.enableZoneAction({
|
|
data: args.data,
|
|
formData: args.data,
|
|
launchData: args.data,
|
|
response: {
|
|
success: function(args) {
|
|
pollSystemVMs();
|
|
}
|
|
}
|
|
});
|
|
};
|
|
|
|
var pollSystemVMs = function() {
|
|
// Poll System VMs, then enable zone
|
|
message(_l('message.creating.systemVM'));
|
|
var poll = setInterval(function() {
|
|
$.ajax({
|
|
url: createURL('listSystemVms'),
|
|
success: function(data) {
|
|
var systemVMs = data.listsystemvmsresponse.systemvm;
|
|
|
|
if (systemVMs && systemVMs.length > 1) {
|
|
if (systemVMs.length == $.grep(systemVMs, function(vm) {
|
|
return vm.state == 'Running';
|
|
}).length) {
|
|
clearInterval(poll);
|
|
message('message.systems.vms.ready');
|
|
setTimeout(pollBuiltinTemplates, 500);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}, 5000);
|
|
};
|
|
|
|
// Wait for builtin template to be present -- otherwise VMs cannot launch
|
|
var pollBuiltinTemplates = function() {
|
|
message('message.waiting.for.builtin.templates.to.load');
|
|
var poll = setInterval(function() {
|
|
$.ajax({
|
|
url: createURL('listTemplates'),
|
|
data: {
|
|
templatefilter: 'all'
|
|
},
|
|
success: function(data) {
|
|
var templates = data.listtemplatesresponse.template ?
|
|
data.listtemplatesresponse.template : [];
|
|
var builtinTemplates = $.grep(templates, function(template) {
|
|
return template.templatetype == 'BUILTIN';
|
|
});
|
|
|
|
if (builtinTemplates.length) {
|
|
clearInterval(poll);
|
|
message('message.your.cloudstack.is.ready');
|
|
setTimeout(success, 1000);
|
|
}
|
|
}
|
|
});
|
|
}, 5000);
|
|
};
|
|
|
|
enableZone();
|
|
}
|
|
}
|
|
}));
|
|
}
|
|
};
|
|
}(jQuery, cloudStack));
|