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);