You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bf...@apache.org on 2013/11/21 22:55:32 UTC

[1/3] System, main routers page: Split into subsections (WIP)

Updated Branches:
  refs/heads/4.3 cb14dad75 -> 5b4fa5c06


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5b4fa5c0/ui/scripts/system.js
----------------------------------------------------------------------
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index ba875a0..63e0c90 100644
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -7391,417 +7391,425 @@
                             return listView;
                         },
                         virtualRouters: function() {
-                            var listView = $.extend(true, {}, cloudStack.sections.system.subsections.virtualRouters.listView, {                            
-                            	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);
-                                	
-                                    var routers = [];
-                                    
-                                    //get account-owned routers
-                                    $.ajax({
-                                        url: createURL('listRouters'),
-                                        data: $.extend(data,{
-                                        	listAll: true
-                                        }), 
-                                        async: false,
-                                        success: function(json) {
-                                            var items = json.listroutersresponse.router ? json.listroutersresponse.router : [];
-                                            $(items).map(function(index, item) {
-                                                routers.push(item);
-                                            });
-                                              
-                                            //get project-owned routers
-                                            var toSearchByProjectid = true;                                            
-                                            if (args.filterBy != null) {
-                                            	if (args.filterBy.advSearch != null && typeof(args.filterBy.advSearch) == "object") { //advanced search
-                                            		if ('account' in args.filterBy.advSearch  && args.filterBy.advSearch.account.length > 0) { //if account is specified in advanced search, don't search project-owned routers
-                                            			toSearchByProjectid = false;  //since account and projectid can't be specified together
-                                            		}
-                                            	}
-                                            }
-                                            if (toSearchByProjectid) {                                             	
-	                                            $.ajax({
-	                                            	url: createURL('listRouters'),                                                 
-	                                                data: $.extend(data,{
-	                                                	listAll: true,
-	                                                	projectid: -1
-	                                                }), 
-	                                                async: false,
-	                                                success: function(json) {
-	                                                    var items = json.listroutersresponse.router ? json.listroutersresponse.router : [];	
-	                                                    $(items).map(function(index, item) {
-	                                                        routers.push(item);
-	                                                    });
-	                                                }
-	                                            });
-                                            }
-                                        }
-                                    });                                    
+                            var listView = $.extend(true, {}, cloudStack.sections.system.subsections.virtualRouters, {
+                                //???????
+                                sections: {
+                                    virtualRouterNoGrouping: {
+                                        listView: {
+                                            actions: {
+                                                upgradeRouterToUseNewerTemplate: {
+                                                    isHeader: true,
 
-                                    args.response.success({
-                                        actionFilter: routerActionfilter,
-                                        data: $(routers).map(mapRouterType)
-                                    });                                    
-                                },
+                                                    label: 'Upgrade Router to Use Newer Template',
 
-                                detailView: {
-                                    updateContext: function(args) {
-                                        var zone;
+                                                    messages: {
+                                                        notification: function (args) {
+                                                            return 'Upgrade Router to Use Newer Template';
+                                                        }
+                                                    },
 
-                                        $.ajax({
-                                            url: createURL('listZones'),
-                                            data: {
-                                                id: args.context.routers[0].zoneid
+                                                    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
+                                                    }
+                                                }
                                             },
-                                            async: false,
-                                            success: function(json) {
-                                                zone = json.listzonesresponse.zone[0];
-                                            }
-                                        });
 
-                                        selectedZoneObj = zone;
+                                            dataProvider: function(args) {
+                                                var data = {};
+                                                listViewDataProvider(args, data);
 
-                                        return {
-                                            zones: [zone]
-                                        };
+                                                var routers = [];
+
+                                                //get account-owned routers
+                                                $.ajax({
+                                                    url: createURL('listRouters'),
+                                                    data: $.extend(data,{
+                                                        listAll: true
+                                                    }),
+                                                    async: false,
+                                                    success: function(json) {
+                                                        var items = json.listroutersresponse.router ? json.listroutersresponse.router : [];
+                                                        $(items).map(function(index, item) {
+                                                            routers.push(item);
+                                                        });
+
+                                                        //get project-owned routers
+                                                        var toSearchByProjectid = true;
+                                                        if (args.filterBy != null) {
+                                                            if (args.filterBy.advSearch != null && typeof(args.filterBy.advSearch) == "object") { //advanced search
+                                                                if ('account' in args.filterBy.advSearch  && args.filterBy.advSearch.account.length > 0) { //if account is specified in advanced search, don't search project-owned routers
+                                                                    toSearchByProjectid = false;  //since account and projectid can't be specified together
+                                                                }
+                                                            }
+                                                        }
+                                                        if (toSearchByProjectid) {
+                                                            $.ajax({
+                                                                url: createURL('listRouters'),
+                                                                data: $.extend(data,{
+                                                                    listAll: true,
+                                                                    projectid: -1
+                                                                }),
+                                                                async: false,
+                                                                success: function(json) {
+                                                                    var items = json.listroutersresponse.router ? json.listroutersresponse.router : [];
+                                                                    $(items).map(function(index, item) {
+                                                                        routers.push(item);
+                                                                    });
+                                                                }
+                                                            });
+                                                        }
+                                                    }
+                                                });
+
+                                                args.response.success({
+                                                    actionFilter: routerActionfilter,
+                                                    data: $(routers).map(mapRouterType)
+                                                });
+                                            },
+
+                                            detailView: {
+                                                updateContext: function(args) {
+                                                    var zone;
+
+                                                    $.ajax({
+                                                        url: createURL('listZones'),
+                                                        data: {
+                                                            id: args.context.routers[0].zoneid
+                                                        },
+                                                        async: false,
+                                                        success: function(json) {
+                                                            zone = json.listzonesresponse.zone[0];
+                                                        }
+                                                    });
+
+                                                    selectedZoneObj = zone;
+
+                                                    return {
+                                                        zones: [zone]
+                                                    };
+                                                }
+                                            }
+                                        }
                                     }
                                 }
+                                //???????
                             });
 
                             return listView;
@@ -7882,726 +7890,1492 @@
         }),
         subsections: {
             virtualRouters: {
-                listView: {
-                    label: 'label.virtual.appliances',
-                    id: 'routers',
-                    fields: {
-                        name: {
-                            label: 'label.name'
-                        },
-                        zonename: {
-                            label: 'label.zone'
-                        },
-                        routerType: {
-                            label: 'label.type'
-                        },
-                        state: {
-                            converter: function(str) {
-                                // For localization
-                                return str;
-                            },
-                            label: 'label.status',
-                            indicator: {
-                                'Running': 'on',
-                                'Stopped': 'off',
-                                'Error': 'off'
-                            }
-                        }
-                    },
-                                        
-                    advSearchFields: {
-                        name: {
-                            label: 'Name'
-                        },
-                        zoneid: {
-                            label: 'Zone',
-                            select: function(args) {
-                                $.ajax({
-                                    url: createURL('listZones'),
-                                    data: {
-                                        listAll: true
+            	sectionSelect: {
+                    label: 'label.select-view'
+                },   
+                sections: {
+                    routerNoGroup: {
+                        id: 'routers',
+                        type: 'select',
+                        title: '(no grouping)',
+                        listView: {
+                            id: 'routers',
+                            label: 'label.virtual.appliances',
+                            fields: {
+                                name: {
+                                    label: 'label.name'
+                                },
+                                zonename: {
+                                    label: 'label.zone'
+                                },
+                                routerType: {
+                                    label: 'label.type'
+                                },
+                                state: {
+                                    converter: function(str) {
+                                        // For localization
+                                        return str;
                                     },
-                                    success: function(json) {
-                                        var zones = json.listzonesresponse.zone ? json.listzonesresponse.zone : [];
-
-                                        args.response.success({
-                                            data: $.map(zones, function(zone) {
-                                                return {
-                                                    id: zone.id,
-                                                    description: zone.name
-                                                };
-                                            })
-                                        });
-                                    }
-                                });
-                            }
-                        },                        
-                        podid: {
-                            label: 'Pod',
-                            dependsOn: 'zoneid',
-                            select: function (args) {                            	
-                                $.ajax({
-                                    url: createURL("listPods&zoneid=" + args.zoneid),
-                                    dataType: "json",
-                                    async: true,
-                                    success: function (json) {                                    
-                                        var pods = json.listpodsresponse.pod ? json.listpodsresponse.pod : [];
-                                        args.response.success({
-                                            data: $.map(pods, function(pod) {
-                                                return {
-                                                    id: pod.id,
-                                                    description: pod.name
-                                                };
-                                            })
-                                        });                                        
-                                    }
-                                });
-                            }
-                        },                         
-                        clusterid: {
-                            label: 'label.cluster',    
-                            dependsOn: 'podid',
-                            select: function(args) {
-                                $.ajax({
-                                    url: createURL("listClusters&podid=" + args.podid),
-                                    dataType: "json",
-                                    async: false,
-                                    success: function(json) {
-                                        var clusters = json.listclustersresponse.cluster ? json.listclustersresponse.cluster : [];                                        
-                                        args.response.success({
-                                            data: $.map(clusters, function(cluster) {
-                                                return {
-                                                    id: cluster.id,
-                                                    description: cluster.name
-                                                };
-                                            })
-                                        });       
+                                    label: 'label.status',
+                                    indicator: {
+                                        'Running': 'on',
+                                        'Stopped': 'off',
+                                        'Error': 'off'
                                     }
-                                });
-                            }
-                        },                          
-                        domainid: {
-                            label: 'Domain',
-                            select: function(args) {
-                                if (isAdmin() || isDomainAdmin()) {
-                                    $.ajax({
-                                        url: createURL('listDomains'),
-                                        data: {
-                                            listAll: true,
-                                            details: 'min'
-                                        },
-                                        success: function(json) {
-                                            var array1 = [{
-                                                id: '',
-                                                description: ''
-                                            }];
-                                            var domains = json.listdomainsresponse.domain;
-                                            if (domains != null && domains.length > 0) {
-                                                for (var i = 0; i < domains.length; i++) {
-                                                    array1.push({
-                                                        id: domains[i].id,
-                                                        description: domains[i].path
-                                                    });
-                                                }
-                                            }
-                                            args.response.success({
-                                                data: array1
-                                            });
-                                        }
-                                    });
-                                } else {
-                                    args.response.success({
-                                        data: null
-                                    });
                                 }
                             },
-                            isHidden: function(args) {
-                                if (isAdmin() || isDomainAdmin())
-                                    return false;
-                                else
-                                    return true;
-                            }
-                        },
-
-                        account: {
-                            label: 'Account',
-                            isHidden: function(args) {
-                                if (isAdmin() || isDomainAdmin())
-                                    return false;
-                                else
-                                    return true;
-                            }
-                        }
-                    },                    
-                    
-                    dataProvider: function(args) {
-                        var array1 = [];
-                        if (args.filterBy != null) {
-                            if (args.filterBy.search != null && args.filterBy.search.by != null && args.filterBy.search.value != null) {
-                                switch (args.filterBy.search.by) {
-                                    case "name":
-                                        if (args.filterBy.search.value.length > 0)
-                                            array1.push("&keyword=" + args.filterBy.search.value);
-                                        break;
-                                }
-                            }
-                        }
-
-                        var data2 = {
-                            forvpc: false
-                        };
 
-                        var routers = [];
-                        $.ajax({
-                            url: createURL("listRouters&zoneid=" + selectedZoneObj.id + "&listAll=true&page=" + args.page + "&pagesize=" + pageSize + array1.join("")),
-                            data: data2,
-                            success: function(json) {
-                                var items = json.listroutersresponse.router ?
-                                    json.listroutersresponse.router : [];
+                            advSearchFields: {
+                                name: {
+                                    label: 'Name'
+                                },
+                                zoneid: {
+                                    label: 'Zone',
+                                    select: function(args) {
+                                        $.ajax({
+                                            url: createURL('listZones'),
+                                            data: {
+                                                listAll: true
+                                            },
+                                            success: function(json) {
+                                                var zones = json.listzonesresponse.zone ? json.listzonesresponse.zone : [];
 
-                                $(items).map(function(index, item) {
-                                    routers.push(item);
-                                });
-                                // Get project routers
-                                $.ajax({
-                                    url: createURL("listRouters&zoneid=" + selectedZoneObj.id + "&listAll=true&page=" + args.page + "&pagesize=" + pageSize + array1.join("") + "&projectid=-1"),
-                                    data: data2,
-                                    success: function(json) {
-                                        var items = json.listroutersresponse.router ?
-                                            json.listroutersresponse.router : [];
-
-                                        $(items).map(function(index, item) {
-                                            routers.push(item);
+                                                args.response.success({
+                                                    data: $.map(zones, function(zone) {
+                                                        return {
+                                                            id: zone.id,
+                                                            description: zone.name
+                                                        };
+                                                    })
+                                                });
+                                            }
                                         });
-                                        args.response.success({
-                                            actionFilter: routerActionfilter,
-                                            data: $(routers).map(mapRouterType)
+                                    }
+                                },
+                                podid: {
+                                    label: 'Pod',
+                                    dependsOn: 'zoneid',
+                                    select: function (args) {
+                                        $.ajax({
+                                            url: createURL("listPods&zoneid=" + args.zoneid),
+                                            dataType: "json",
+                                            async: true,
+                                            success: function (json) {
+                                                var pods = json.listpodsresponse.pod ? json.listpodsresponse.pod : [];
+                                                args.response.success({
+                                                    data: $.map(pods, function(pod) {
+                                                        return {
+                                                            id: pod.id,
+                                                            description: pod.name
+                                                        };
+                                                    })
+                                                });
+                                            }
                                         });
                                     }
-                                });
-                            }
-          

<TRUNCATED>

[2/3] git commit: updated refs/heads/4.3 to 5b4fa5c

Posted by bf...@apache.org.
System, main routers page: Split into subsections (WIP)


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/5b4fa5c0
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/5b4fa5c0
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/5b4fa5c0

Branch: refs/heads/4.3
Commit: 5b4fa5c0680d86d6a916ab641d601feeacf794b1
Parents: fb876d3
Author: Brian Federle <bf...@gmail.com>
Authored: Thu Nov 21 13:54:50 2013 -0800
Committer: Brian Federle <bf...@gmail.com>
Committed: Thu Nov 21 13:55:28 2013 -0800

----------------------------------------------------------------------
 ui/scripts/system.js | 2836 +++++++++++++++++++++++++++++----------------
 1 file changed, 1805 insertions(+), 1031 deletions(-)
----------------------------------------------------------------------



[3/3] git commit: updated refs/heads/4.3 to 5b4fa5c

Posted by bf...@apache.org.
List view: Support passing custom ID to detail view context

For section select list views, if 'id' is specied under section: {},
then use that ID instead of the section's key ID. This allows sections
to use i.e. the same ID as each other for a consistent context ID.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/fb876d3f
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/fb876d3f
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/fb876d3f

Branch: refs/heads/4.3
Commit: fb876d3f451e9849bcee3241b6216d8936dd47aa
Parents: cb14dad
Author: Brian Federle <bf...@gmail.com>
Authored: Thu Nov 21 13:53:11 2013 -0800
Committer: Brian Federle <bf...@gmail.com>
Committed: Thu Nov 21 13:55:28 2013 -0800

----------------------------------------------------------------------
 ui/scripts/ui/widgets/listView.js | 36 +++++++++++++++++++++++++++++-----
 1 file changed, 31 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fb876d3f/ui/scripts/ui/widgets/listView.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/widgets/listView.js b/ui/scripts/ui/widgets/listView.js
index 3fa8f54..53b37f1 100644
--- a/ui/scripts/ui/widgets/listView.js
+++ b/ui/scripts/ui/widgets/listView.js
@@ -1330,9 +1330,24 @@
                         var itemID = $tr.data('list-view-item-id');
                         var jsonObj = $tr.data('json-obj');
                         var $loading = $('<div>').addClass('loading-overlay').appendTo($detailsContainer);
+                        var listViewArgs = $listView.data('view-args');
+                        var listViewActiveSection = activeSection;
+                        var targetSection;
 
                         if ($tr.hasClass('loading')) return;
 
+                        if (listViewActiveSection != '_zone') {
+                            if (listViewArgs.sections &&
+                                listViewArgs.sections[listViewActiveSection] &&
+                                listViewArgs.sections[listViewActiveSection].id) {
+                                targetSection = listViewArgs.sections[listViewActiveSection].id;
+                            } else {
+                                targetSection = listViewActiveSection;
+                            }
+                        } else {
+                            targetSection = detailViewArgs.section;
+                        }
+
                         // Title
                         $title.append(
                             $('<span>').html(_l('label.quickview') + ': '),
@@ -1352,7 +1367,7 @@
                             if (!$quickViewTooltip.is(':visible')) return;
 
                             // Init detail view
-                            context[activeSection] = [jsonObj];
+                            context[targetSection] = [jsonObj];
                             createDetailView({
                                     data: $.extend(true, {}, detailView, {
                                         onLoad: function($detailView) {
@@ -1998,13 +2013,24 @@
 
                 var listViewArgs = $listView.data('view-args');
 
+                var targetSection;
+
                 detailViewArgs.section = listViewArgs.activeSection ?
                     listViewArgs.activeSection : listViewArgs.id;
 
-                detailViewArgs.context[
-                    listViewActiveSection != '_zone' ?
-                    listViewActiveSection : detailViewArgs.section
-                ] = [jsonObj];
+                if (listViewActiveSection != '_zone') {
+                    if (listViewArgs.sections &&
+                        listViewArgs.sections[listViewActiveSection] &&
+                        listViewArgs.sections[listViewActiveSection].id) {
+                        targetSection = listViewArgs.sections[listViewActiveSection].id;
+                    } else {
+                        targetSection = listViewActiveSection;
+                    }
+                } else {
+                    targetSection = detailViewArgs.section;
+                }
+
+                detailViewArgs.context[targetSection] = [jsonObj];
 
                 if ($.isFunction(detailViewArgs.data)) {
                     detailViewArgs.data = detailViewArgs.data({