You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by je...@apache.org on 2013/11/19 23:32:28 UTC
git commit: updated refs/heads/master to d6a38c2
Updated Branches:
refs/heads/master 481af07fb -> d6a38c238
CLOUDSTACK-4793: UI > Virtual Routers > add new action "Upgrade Router to Newer Template" on top of listView.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d6a38c23
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d6a38c23
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d6a38c23
Branch: refs/heads/master
Commit: d6a38c238a32a60d2838a6f9a0863480a3609788
Parents: 481af07
Author: Jessica Wang <je...@apache.org>
Authored: Tue Nov 19 14:31:12 2013 -0800
Committer: Jessica Wang <je...@apache.org>
Committed: Tue Nov 19 14:32:18 2013 -0800
----------------------------------------------------------------------
ui/scripts/system.js | 321 +++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 320 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d6a38c23/ui/scripts/system.js
----------------------------------------------------------------------
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index 405c5ce..472c821 100644
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -7391,7 +7391,326 @@
},
virtualRouters: function() {
var listView = $.extend(true, {}, cloudStack.sections.system.subsections.virtualRouters.listView, {
- dataProvider: function(args) {
+
+ //???
+ actions: {
+ upgradeRouterToUseNewerTemplate: {
+ isHeader: true,
+
+ label: 'Upgrade Router to Use Newer Template',
+
+ messages: {
+ notification: function(args) {
+ return 'Upgrade Router to Use Newer Template';
+ }
+ },
+
+ createForm: {
+ title: 'Upgrade Router to Use Newer Template',
+ fields: {
+ zoneid: {
+ label: 'label.zone',
+ select: function(args) {
+ var items = [{ id: '', description: '' }];
+ $.ajax({
+ url: createURL('listZones'),
+ data: {
+ listAll: true
+ },
+ success: function(json) {
+ var objs = json.listzonesresponse.zone;
+ if (objs != null) {
+ for (var i = 0; i < objs.length; i++) {
+ items.push({ id: objs[i].id, description: objs[i].name });
+ }
+ }
+ args.response.success({
+ data: items
+ });
+ }
+ });
+ }
+ },
+ podid: {
+ label: 'Pod',
+ dependsOn: 'zoneid',
+ select: function (args) {
+ var items = [{ id: '', description: '' }];
+ if (args.zoneid.length > 0) {
+ $.ajax({
+ url: createURL('listPods'),
+ data: {
+ zoneid: args.zoneid
+ },
+ success: function (json) {
+ var objs = json.listpodsresponse.pod;
+ if (objs != null) {
+ for (var i = 0; i < objs.length; i++) {
+ items.push({ id: objs[i].id, description: objs[i].name });
+ }
+ }
+ args.response.success({
+ data: items
+ });
+ }
+ });
+ } else {
+ args.response.success({
+ data: items
+ });
+ }
+ }
+ },
+ clusterid: {
+ label: 'label.cluster',
+ dependsOn: 'podid',
+ select: function(args) {
+ var items = [{ id: '', description: '' }];
+ if (args.podid.length > 0) {
+ $.ajax({
+ url: createURL('listClusters'),
+ data: {
+ podid: args.podid
+ },
+ success: function(json) {
+ var objs = json.listclustersresponse.cluster;
+ if (objs != null) {
+ for (var i = 0; i < objs.length; i++) {
+ items.push({ id: objs[i].id, description: objs[i].name });
+ }
+ }
+ args.response.success({
+ data: items
+ });
+ }
+ });
+ } else {
+ args.response.success({
+ data: items
+ });
+ }
+ }
+ }
+ }
+ },
+
+ action: function(args) {
+ var data = {};
+ if (args.data.clusterid.length > 0) {
+ $.extend(data, {
+ clusterid: args.data.clusterid
+ });
+ } else if (args.data.podid.length > 0) {
+ $.extend(data, {
+ podid: args.data.podid
+ });
+ } else if (args.data.zoneid.length > 0) {
+ $.extend(data, {
+ zoneid: args.data.zoneid
+ });
+ } else {
+ args.response.error('Please specify a zone, a pod or a cluster.' );
+ return;
+ }
+
+ $.ajax({
+ url: createURL('upgradeRouterTemplate'),
+ data: data,
+ success: function(json) {
+ //example
+ /*
+ json = {
+ "upgraderoutertemplateresponse": {
+ "count": 3,
+ "asyncjobs": [
+ {
+ "jobid": "2d51f1f9-ea39-4871-9512-431f4a65a5f2"
+ },
+ {
+ "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c"
+ },
+ {
+ "jobid": "850a3cfd-c265-48f1-880a-f001481fc7f7"
+ }
+ ]
+ }
+ };
+ */
+
+ var jobs = json.upgraderoutertemplateresponse.asyncjobs;
+ if (jobs != undefined) {
+ for (var i = 0; i < jobs.length; i++) {
+ var jid = jobs[i].jobid;
+ args.response.success({
+ _custom: {
+ jobId: jid
+ }
+ });
+
+ //example begins
+ /*
+ {
+ "queryasyncjobresultresponse": {
+ "accountid": "ce5820a8-5099-11e3-80db-3c970e739c3e",
+ "userid": "ce58353e-5099-11e3-80db-3c970e739c3e",
+ "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd",
+ "jobstatus": 2,
+ "jobprocstatus": 0,
+ "jobresultcode": 530,
+ "jobresulttype": "object",
+ "jobresult": {
+ "errorcode": 530,
+ "errortext": "Resource [DataCenter:1] is unreachable: Unable to reboot domR, it is not in right state Stopped"
+ },
+ "created": "2013-11-19T11:41:40-0800",
+ "jobid": "2d51f1f9-ea39-4871-9512-431f4a65a5f2"
+ }
+ }
+ {
+ "queryasyncjobresultresponse": {
+ "accountid": "9b0ea3b4-a699-431c-932b-570388ef7b86",
+ "userid": "ce58353e-5099-11e3-80db-3c970e739c3e",
+ "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd",
+ "jobstatus": 0,
+ "jobprocstatus": 0,
+ "jobresultcode": 0,
+ "jobinstancetype": "DomainRouter",
+ "jobinstanceid": "d6e625ea-76f9-4c35-9f89-0998a04a3b9c",
+ "created": "2013-11-19T11:41:40-0800",
+ "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c"
+ }
+ }
+ {
+ "queryasyncjobresultresponse": {
+ "accountid": "6b5334a2-1c0e-46e0-b4d9-524698549f08",
+ "userid": "ce58353e-5099-11e3-80db-3c970e739c3e",
+ "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd",
+ "jobstatus": 2,
+ "jobprocstatus": 0,
+ "jobresultcode": 530,
+ "jobresulttype": "object",
+ "jobresult": {
+ "errorcode": 530,
+ "errortext": "Resource [DataCenter:1] is unreachable: Unable to reboot domR, it is not in right state Starting"
+ },
+ "created": "2013-11-19T11:41:40-0800",
+ "jobid": "850a3cfd-c265-48f1-880a-f001481fc7f7"
+ }
+ }
+
+
+ {
+ "queryasyncjobresultresponse": {
+ "accountid": "9b0ea3b4-a699-431c-932b-570388ef7b86",
+ "userid": "ce58353e-5099-11e3-80db-3c970e739c3e",
+ "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd",
+ "jobstatus": 0,
+ "jobprocstatus": 0,
+ "jobresultcode": 0,
+ "jobinstancetype": "DomainRouter",
+ "jobinstanceid": "d6e625ea-76f9-4c35-9f89-0998a04a3b9c",
+ "created": "2013-11-19T11:41:40-0800",
+ "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c"
+ }
+ }
+ {
+ "queryasyncjobresultresponse": {
+ "accountid": "9b0ea3b4-a699-431c-932b-570388ef7b86",
+ "userid": "ce58353e-5099-11e3-80db-3c970e739c3e",
+ "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd",
+ "jobstatus": 0,
+ "jobprocstatus": 0,
+ "jobresultcode": 0,
+ "jobinstancetype": "DomainRouter",
+ "jobinstanceid": "d6e625ea-76f9-4c35-9f89-0998a04a3b9c",
+ "created": "2013-11-19T11:41:40-0800",
+ "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c"
+ }
+ }
+ {
+ "queryasyncjobresultresponse": {
+ "accountid": "9b0ea3b4-a699-431c-932b-570388ef7b86",
+ "userid": "ce58353e-5099-11e3-80db-3c970e739c3e",
+ "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd",
+ "jobstatus": 1,
+ "jobprocstatus": 0,
+ "jobresultcode": 0,
+ "jobresulttype": "object",
+ "jobresult": {
+ "router": {
+ "id": "d6e625ea-76f9-4c35-9f89-0998a04a3b9c",
+ "zoneid": "3bfdd7d1-134a-4d75-8621-0ccfc8641660",
+ "zonename": "jw-adv",
+ "dns1": "8.8.8.8",
+ "gateway": "10.223.67.1",
+ "name": "r-6-VM",
+ "linklocalip": "169.254.2.29",
+ "linklocalmacaddress": "0e:00:a9:fe:02:1d",
+ "linklocalnetmask": "255.255.0.0",
+ "linklocalnetworkid": "4a02a05f-1312-484a-a82b-246a86ed6949",
+ "publicip": "10.223.67.6",
+ "publicmacaddress": "06:8d:22:00:00:18",
+ "publicnetmask": "255.255.255.0",
+ "publicnetworkid": "e7056c3c-2c7f-4e84-909e-af288ae170e9",
+ "templateid": "cd70f70a-5099-11e3-80db-3c970e739c3e",
+ "created": "2013-11-19T11:36:04-0800",
+ "state": "Running",
+ "account": "aaa_admin",
+ "domainid": "b95a5b02-e45d-4971-b0d8-d1620f7bf44e",
+ "domain": "aaa",
+ "serviceofferingid": "7dd7687c-01f0-4a14-846e-8e46067a8ff9",
+ "serviceofferingname": "System Offering For Software Router",
+ "isredundantrouter": false,
+ "redundantstate": "UNKNOWN",
+ "version": "3.0",
+ "role": "VIRTUAL_ROUTER",
+ "nic": [
+ {
+ "id": "d41bf67e-1d58-4ec9-bf61-41903140cc53",
+ "networkid": "e7056c3c-2c7f-4e84-909e-af288ae170e9",
+ "netmask": "255.255.255.0",
+ "gateway": "10.223.67.1",
+ "ipaddress": "10.223.67.6",
+ "isolationuri": "vlan://159",
+ "broadcasturi": "vlan://159",
+ "traffictype": "Public",
+ "isdefault": true,
+ "macaddress": "06:8d:22:00:00:18"
+ },
+ {
+ "id": "a6d1f6ac-fc45-474e-b372-3571e639fa8e",
+ "networkid": "4a02a05f-1312-484a-a82b-246a86ed6949",
+ "netmask": "255.255.0.0",
+ "gateway": "169.254.0.1",
+ "ipaddress": "169.254.2.29",
+ "traffictype": "Control",
+ "isdefault": false,
+ "macaddress": "0e:00:a9:fe:02:1d"
+ }
+ ],
+ "requiresupgrade": true,
+ "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c",
+ "jobstatus": 0
+ }
+ },
+ "created": "2013-11-19T11:41:40-0800",
+ "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c"
+ }
+ }
+ */
+ //example ends
+ }
+ }
+ }
+ });
+ },
+ notification: {
+ poll: pollAsyncJobResult
+ }
+ }
+ },
+
+ dataProvider: function(args) {
var data = {};
listViewDataProvider(args, data);