You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by je...@apache.org on 2013/06/19 01:01:29 UTC

[1/2] git commit: updated refs/heads/master to a16af43

Updated Branches:
  refs/heads/master 643447e78 -> a16af4380


CLOUDSTACK-2770: UI - Infrastructure menu - physical netework - network service providers - add Baremetal DHCP, Baremetal PXE.


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

Branch: refs/heads/master
Commit: 236dc12d8a384be545d7823470f3a93286477b12
Parents: 643447e
Author: Jessica Wang <je...@apache.org>
Authored: Tue Jun 18 15:56:21 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Tue Jun 18 15:56:21 2013 -0700

----------------------------------------------------------------------
 ui/scripts/system.js | 646 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 645 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/236dc12d/ui/scripts/system.js
----------------------------------------------------------------------
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index df37f31..bcd555d 100644
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -4019,6 +4019,328 @@
             }
           },
 
+          //Baremetal DHCP provider detail view
+          BaremetalDhcpProvider: {
+            type: 'detailView',
+            id: 'BaremetalDhcpProvider',
+            label: 'Baremetal DHCP Provider',
+            viewAll: { label: 'label.devices', path: '_zone.BaremetalDhcpDevices' },
+            tabs: {
+              details: {
+                title: 'label.details',
+                fields: [
+                  {
+                    name: { label: 'label.name' }
+                  },
+                  {
+                    state: { label: 'label.state' }
+                  }
+                ],
+                dataProvider: function(args) {
+                  refreshNspData("BaremetalDhcpProvider");
+                  var providerObj;
+                  $(nspHardcodingArray).each(function(){
+                    if(this.id == "BaremetalDhcpProvider") {
+                      providerObj = this;
+                      return false; //break each loop
+                    }
+                  });
+                  args.response.success({
+                    data: providerObj,
+                    actionFilter: networkProviderActionFilter('BaremetalDhcpProvider')
+                  });
+                }
+              }
+            },
+            actions: {
+              add: {
+                label: 'Add Baremetal DHCP Device',
+                createForm: {
+                  title: 'Add Baremetal DHCP Device',
+                  fields: {
+                    url: {
+                      label: 'label.url',
+                      validation: { required: true }
+                    },
+                    username: {
+                      label: 'label.username',
+                      validation: { required: true }
+                    },
+                    password: {
+                      label: 'label.password',
+                      isPassword: true,
+                      validation: { required: true }
+                    }           
+                  }
+                },
+                action: function(args) {
+                  addBaremetalDhcpDeviceFn(args);
+                },
+                messages: {
+                  notification: function(args) {
+                    return 'Add Baremetal DHCP Device';
+                  }
+                },
+                notification: {
+                  poll: pollAsyncJobResult
+                }
+              },
+              enable: {
+                label: 'label.enable.provider',
+                action: function(args) {
+                  $.ajax({
+                    url: createURL("updateNetworkServiceProvider&id=" + nspMap["BaremetalDhcpProvider"].id + "&state=Enabled"),
+                    dataType: "json",
+                    success: function(json) {
+                      var jid = json.updatenetworkserviceproviderresponse.jobid;
+                      args.response.success(
+                        {_custom:
+                          {
+                            jobId: jid,
+                            getUpdatedItem: function(json) {
+                              $(window).trigger('cloudStack.fullRefresh');
+                            }
+                          }
+                        }
+                      );
+                    }
+                  });
+                },
+                messages: {
+                  confirm: function(args) {
+                    return 'message.confirm.enable.provider';
+                  },
+                  notification: function() {
+                    return 'label.enable.provider';
+                  }
+                },
+                notification: { poll: pollAsyncJobResult }
+              },
+              disable: {
+                label: 'label.disable.provider',
+                action: function(args) {
+                  $.ajax({
+                    url: createURL("updateNetworkServiceProvider&id=" + nspMap["BaremetalDhcpProvider"].id + "&state=Disabled"),
+                    dataType: "json",
+                    success: function(json) {
+                      var jid = json.updatenetworkserviceproviderresponse.jobid;
+                      args.response.success(
+                        {_custom:
+                          {
+                            jobId: jid,
+                            getUpdatedItem: function(json) {
+                              $(window).trigger('cloudStack.fullRefresh');
+                            }
+                          }
+                        }
+                      );
+                    }
+                  });
+                },
+                messages: {
+                  confirm: function(args) {
+                    return 'message.confirm.disable.provider';
+                  },
+                  notification: function() {
+                    return 'label.disable.provider';
+                  }
+                },
+                notification: { poll: pollAsyncJobResult }
+              },
+              destroy: {
+                label: 'label.shutdown.provider',
+                action: function(args) {
+                  $.ajax({
+                    url: createURL("deleteNetworkServiceProvider&id=" + nspMap["BaremetalDhcpProvider"].id),
+                    dataType: "json",
+                    success: function(json) {
+                      var jid = json.deletenetworkserviceproviderresponse.jobid;
+                      args.response.success(
+                        {_custom:
+                         {
+                           jobId: jid
+                         }
+                        }
+                      );
+
+                      $(window).trigger('cloudStack.fullRefresh');
+                    }
+                  });
+                },
+                messages: {
+                  confirm: function(args) {
+                    return 'message.confirm.shutdown.provider';
+                  },
+                notification: function(args) {
+                    return 'label.shutdown.provider';
+                  }
+                },
+                notification: { poll: pollAsyncJobResult }
+              }
+            }
+          },
+          
+          //Baremetal PXE provider detail view
+          BaremetalPxeProvider: {
+            type: 'detailView',
+            id: 'BaremetalPxeProvider',
+            label: 'Baremetal PXE Provider',
+            viewAll: { label: 'label.devices', path: '_zone.BaremetalPxeDevices' },
+            tabs: {
+              details: {
+                title: 'label.details',
+                fields: [
+                  {
+                    name: { label: 'label.name' }
+                  },
+                  {
+                    state: { label: 'label.state' }
+                  }
+                ],
+                dataProvider: function(args) {
+                  refreshNspData("BaremetalPxeProvider");
+                  var providerObj;
+                  $(nspHardcodingArray).each(function(){
+                    if(this.id == "BaremetalPxeProvider") {
+                      providerObj = this;
+                      return false; //break each loop
+                    }
+                  });
+                  args.response.success({
+                    data: providerObj,
+                    actionFilter: networkProviderActionFilter('BaremetalPxeProvider')
+                  });
+                }
+              }
+            },
+            actions: {
+              add: {
+                label: 'Add Baremetal PXE Device',
+                createForm: {
+                  title: 'Add Baremetal PXE Device',
+                  fields: {
+                    url: {
+                      label: 'label.url',
+                      validation: { required: true }
+                    },
+                    username: {
+                      label: 'label.username',
+                      validation: { required: true }
+                    },
+                    password: {
+                      label: 'label.password',
+                      isPassword: true,
+                      validation: { required: true }
+                    }           
+                  }
+                },
+                action: function(args) {
+                  addBaremetalPxeDeviceFn(args);
+                },
+                messages: {
+                  notification: function(args) {
+                    return 'Add Baremetal PXE Device';
+                  }
+                },
+                notification: {
+                  poll: pollAsyncJobResult
+                }
+              },
+              enable: {
+                label: 'label.enable.provider',
+                action: function(args) {
+                  $.ajax({
+                    url: createURL("updateNetworkServiceProvider&id=" + nspMap["BaremetalPxeProvider"].id + "&state=Enabled"),
+                    dataType: "json",
+                    success: function(json) {
+                      var jid = json.updatenetworkserviceproviderresponse.jobid;
+                      args.response.success(
+                        {_custom:
+                          {
+                            jobId: jid,
+                            getUpdatedItem: function(json) {
+                              $(window).trigger('cloudStack.fullRefresh');
+                            }
+                          }
+                        }
+                      );
+                    }
+                  });
+                },
+                messages: {
+                  confirm: function(args) {
+                    return 'message.confirm.enable.provider';
+                  },
+                  notification: function() {
+                    return 'label.enable.provider';
+                  }
+                },
+                notification: { poll: pollAsyncJobResult }
+              },
+              disable: {
+                label: 'label.disable.provider',
+                action: function(args) {
+                  $.ajax({
+                    url: createURL("updateNetworkServiceProvider&id=" + nspMap["BaremetalPxeProvider"].id + "&state=Disabled"),
+                    dataType: "json",
+                    success: function(json) {
+                      var jid = json.updatenetworkserviceproviderresponse.jobid;
+                      args.response.success(
+                        {_custom:
+                          {
+                            jobId: jid,
+                            getUpdatedItem: function(json) {
+                              $(window).trigger('cloudStack.fullRefresh');
+                            }
+                          }
+                        }
+                      );
+                    }
+                  });
+                },
+                messages: {
+                  confirm: function(args) {
+                    return 'message.confirm.disable.provider';
+                  },
+                  notification: function() {
+                    return 'label.disable.provider';
+                  }
+                },
+                notification: { poll: pollAsyncJobResult }
+              },
+              destroy: {
+                label: 'label.shutdown.provider',
+                action: function(args) {
+                  $.ajax({
+                    url: createURL("deleteNetworkServiceProvider&id=" + nspMap["BaremetalPxeProvider"].id),
+                    dataType: "json",
+                    success: function(json) {
+                      var jid = json.deletenetworkserviceproviderresponse.jobid;
+                      args.response.success(
+                        {_custom:
+                         {
+                           jobId: jid
+                         }
+                        }
+                      );
+
+                      $(window).trigger('cloudStack.fullRefresh');
+                    }
+                  });
+                },
+                messages: {
+                  confirm: function(args) {
+                    return 'message.confirm.shutdown.provider';
+                  },
+                notification: function(args) {
+                    return 'label.shutdown.provider';
+                  }
+                },
+                notification: { poll: pollAsyncJobResult }
+              }
+            }
+          },
+          
 		      //f5 provider detail view
           f5: {
             type: 'detailView',
@@ -7925,6 +8247,134 @@
         }
       },
 
+      // Baremetal DHCP devices listView
+      BaremetalDhcpDevices: {
+        id: 'BaremetalDhcpDevices',
+        title: 'Baremetal DHCP Devices',
+        listView: {
+          id: 'BaremetalDhcpDevices',
+          fields: {
+            url: { label: 'label.url' }            
+          },
+          actions: {           
+            add: {
+              label: 'Add Baremetal DHCP Device',
+              createForm: {
+                title: 'Add Baremetal DHCP Device',
+                fields: {
+                  url: {
+                    label: 'label.url',
+                    validation: { required: true }
+                  },
+                  username: {
+                    label: 'label.username',
+                    validation: { required: true }
+                  },
+                  password: {
+                    label: 'label.password',
+                    isPassword: true,
+                    validation: { required: true }
+                  }           
+                }
+              },
+              action: function(args) {
+                addBaremetalDhcpDeviceFn(args);
+              },
+              messages: {
+                notification: function(args) {
+                  return 'Add Baremetal DHCP Device';
+                }
+              },
+              notification: {
+                poll: pollAsyncJobResult
+              }
+            },           
+          },
+          dataProvider: function(args) {
+            $.ajax({
+              url: createURL('listBaremetalDhcp'),
+              data: { 
+                physicalnetworkid: selectedPhysicalNetworkObj.id,
+                page: args.page, 
+                pageSize: pageSize 
+              },
+              dataType: "json",
+              async: false,
+              success: function(json) {
+                var items = json.listexternaldhcpresponse.baremetaldhcp;
+                args.response.success({data: items});
+              }
+            });
+          }
+        }
+      },
+      
+      // Baremetal PXE devices listView
+      BaremetalPxeDevices: {
+        id: 'BaremetalPxeDevices',
+        title: 'Baremetal PXE Devices',
+        listView: {
+          id: 'BaremetalPxeDevices',
+          fields: {
+            url: { label: 'label.url' }            
+          },
+          actions: {           
+            add: {
+              label: 'Add Baremetal PXE Device',
+              createForm: {
+                title: 'Add Baremetal PXE Device',
+                fields: {
+                  url: {
+                    label: 'label.url',
+                    validation: { required: true }
+                  },
+                  username: {
+                    label: 'label.username',
+                    validation: { required: true }
+                  },
+                  password: {
+                    label: 'label.password',
+                    isPassword: true,
+                    validation: { required: true }
+                  },
+                  tftpdir: {
+                    label: 'Tftp root directory',
+                    validation: { required: true }
+                  }           
+                }
+              },
+              action: function(args) {
+                addBaremetalPxeDeviceFn(args);
+              },
+              messages: {
+                notification: function(args) {
+                  return 'Add Baremetal PXE Device';
+                }
+              },
+              notification: {
+                poll: pollAsyncJobResult
+              }
+            },           
+          },
+          dataProvider: function(args) {
+            $.ajax({
+              url: createURL('listBaremetalPxePingServer'),
+              data: { 
+                physicalnetworkid: selectedPhysicalNetworkObj.id,
+                page: args.page, 
+                pageSize: pageSize 
+              },
+              dataType: "json",
+              async: false,
+              success: function(json) {
+                var items = json.listpingpxeserverresponse.pingpxeserver;
+                args.response.success({data: items});
+              }
+            });
+          }
+        }
+      },
+      
 			// F5 devices listView
       f5Devices: {
         id: 'f5Devices',
@@ -12675,6 +13125,184 @@
     }
   };
 
+  function addBaremetalDhcpDeviceFn(args) {  
+    if(nspMap["BaremetalDhcpProvider"] == null) {
+      $.ajax({
+        url: createURL("addNetworkServiceProvider&name=BaremetalDhcpProvider&physicalnetworkid=" + selectedPhysicalNetworkObj.id),
+        dataType: "json",
+        async: true,
+        success: function(json) {
+          var jobId = json.addnetworkserviceproviderresponse.jobid;                        
+          var addBaremetalDhcpProviderIntervalID = setInterval(function() {   
+            $.ajax({
+              url: createURL("queryAsyncJobResult&jobId="+jobId),
+              dataType: "json",
+              success: function(json) {
+                var result = json.queryasyncjobresultresponse;
+                if (result.jobstatus == 0) {
+                  return; //Job has not completed
+                }
+                else {
+                  clearInterval(addBaremetalDhcpProviderIntervalID); 
+                  if (result.jobstatus == 1) {
+                    nspMap["BaremetalDhcpProvider"] = json.queryasyncjobresultresponse.jobresult.networkserviceprovider;
+                                         
+                    $.ajax({
+                      url: createURL('addBaremetalDhcp'),
+                      data: {
+                        physicalnetworkid: selectedPhysicalNetworkObj.id,
+                        dhcpservertype: 'DHCPD',
+                        url: args.data.url,
+                        username: args.data.username,
+                        password: args.data.password
+                      },
+                      success: function(json) {
+                        var jid = json.addexternaldhcpresponse.jobid;
+                        args.response.success(
+                          {_custom:
+                            {
+                              jobId: jid,
+                              getUpdatedItem: function(json) {
+                                var item = json.queryasyncjobresultresponse.jobresult.baremetaldhcp;
+                                return item;
+                              }
+                            }
+                          }
+                        );
+                      }
+                    });                          
+                  }
+                  else if (result.jobstatus == 2) {
+                    alert(_s(result.jobresult.errortext));
+                  }
+                }
+              },
+              error: function(XMLHttpResponse) {                             
+                alert(parseXMLHttpResponse(XMLHttpResponse));
+              }
+            });
+          }, g_queryAsyncJobResultInterval);    
+        }
+      });
+    }
+    else {     
+      $.ajax({
+        url: createURL('addBaremetalDhcp'),
+        data: {
+          physicalnetworkid: selectedPhysicalNetworkObj.id,
+          dhcpservertype: 'DHCPD',
+          url: args.data.url,
+          username: args.data.username,
+          password: args.data.password
+        },
+        success: function(json) {
+          var jid = json.addexternaldhcpresponse.jobid;
+          args.response.success(
+            {_custom:
+              {
+                jobId: jid,
+                getUpdatedItem: function(json) {
+                  var item = json.queryasyncjobresultresponse.jobresult.baremetaldhcp;
+                  return item;
+                }
+              }
+            }
+          );
+        }
+      });            
+    }
+  }
+  
+  function addBaremetalPxeDeviceFn(args) {  
+    if(nspMap["BaremetalPxeProvider"] == null) {
+      $.ajax({
+        url: createURL("addNetworkServiceProvider&name=BaremetalPxeProvider&physicalnetworkid=" + selectedPhysicalNetworkObj.id),
+        dataType: "json",
+        async: true,
+        success: function(json) {
+          var jobId = json.addnetworkserviceproviderresponse.jobid;                        
+          var addBaremetalPxeProviderIntervalID = setInterval(function() {   
+            $.ajax({
+              url: createURL("queryAsyncJobResult&jobId="+jobId),
+              dataType: "json",
+              success: function(json) {
+                var result = json.queryasyncjobresultresponse;
+                if (result.jobstatus == 0) {
+                  return; //Job has not completed
+                }
+                else {
+                  clearInterval(addBaremetalPxeProviderIntervalID); 
+                  if (result.jobstatus == 1) {
+                    nspMap["BaremetalPxeProvider"] = json.queryasyncjobresultresponse.jobresult.networkserviceprovider;
+                                         
+                    $.ajax({
+                      url: createURL('addBaremetalPxeKickStartServer'),
+                      data: {
+                        physicalnetworkid: selectedPhysicalNetworkObj.id,
+                        pxeservertype: 'KICK_START',
+                        url: args.data.url,
+                        username: args.data.username,
+                        password: args.data.password,
+                        tftpdir: args.data.tftpdir
+                      },
+                      success: function(json) {
+                        var jid = json.addexternalpxeresponse.jobid;
+                        args.response.success(
+                          {_custom:
+                            {
+                              jobId: jid,
+                              getUpdatedItem: function(json) {
+                                var item = json.queryasyncjobresultresponse.jobresult.externalpxe;
+                                return item;
+                              }
+                            }
+                          }
+                        );
+                      }
+                    });                          
+                  }
+                  else if (result.jobstatus == 2) {
+                    alert(_s(result.jobresult.errortext));
+                  }
+                }
+              },
+              error: function(XMLHttpResponse) {                             
+                alert(parseXMLHttpResponse(XMLHttpResponse));
+              }
+            });
+          }, g_queryAsyncJobResultInterval);    
+        }
+      });
+    }
+    else {     
+      $.ajax({
+        url: createURL('addBaremetalPxeKickStartServer'),
+        data: {
+          physicalnetworkid: selectedPhysicalNetworkObj.id,
+          pxeservertype: 'KICK_START',
+          url: args.data.url,
+          username: args.data.username,
+          password: args.data.password,
+          tftpdir: args.data.tftpdir
+        },
+        success: function(json) {
+          var jid = json.addexternalpxeresponse.jobid;
+          args.response.success(
+            {_custom:
+              {
+                jobId: jid,
+                getUpdatedItem: function(json) {
+                  var item = json.queryasyncjobresultresponse.jobresult.externalpxe;
+                  return item;
+                }
+             }
+            }
+          );
+        }
+      });    
+    }
+  }
+  
   function addExternalLoadBalancer(args, physicalNetworkObj, apiCmd, apiCmdRes, apiCmdObj) {
     var array1 = [];
     array1.push("&physicalnetworkid=" + physicalNetworkObj.id);
@@ -13626,6 +14254,12 @@
                             case "MidoNet":
                                 nspMap["midoNet"] = items[i];
                                 break;
+              case "BaremetalDhcpProvider":
+                nspMap["BaremetalDhcpProvider"] = items[i];
+                break;
+              case "BaremetalPxeProvider":
+                nspMap["BaremetalPxeProvider"] = items[i];
+                break;
 							case "F5BigIp":
 								nspMap["f5"] = items[i];
 								break;
@@ -13667,7 +14301,17 @@
                                 id: 'bigswitchVns',
                                 name: 'BigSwitch Vns',
                                 state: nspMap.bigswitchVns ? nspMap.bigswitchVns.state : 'Disabled'
-                        }
+                        },
+      {
+        id: 'BaremetalDhcpProvider',
+        name: 'Baremetal DHCP',
+        state: nspMap.BaremetalDhcpProvider ? nspMap.BaremetalDhcpProvider.state : 'Disabled'
+      },
+      {
+        id: 'BaremetalPxeProvider',
+        name: 'Baremetal PXE',
+        state: nspMap.BaremetalPxeProvider ? nspMap.BaremetalPxeProvider.state : 'Disabled'
+      }
 		];
 
     $(window).trigger('cloudStack.system.serviceProviders.makeHarcodedArray', {


[2/2] git commit: updated refs/heads/master to a16af43

Posted by je...@apache.org.
CLOUDSTACK-2770: UI - Infrastructure menu - physical netework - network service providers - Baremetal PXE - Add Baremetal PXE Device dialog - add Tftp Root Diectory field.


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

Branch: refs/heads/master
Commit: a16af4380b5a5e9c80c9d65c86e36d7184b4d9fa
Parents: 236dc12
Author: Jessica Wang <je...@apache.org>
Authored: Tue Jun 18 15:57:11 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Tue Jun 18 15:57:11 2013 -0700

----------------------------------------------------------------------
 ui/scripts/system.js | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a16af438/ui/scripts/system.js
----------------------------------------------------------------------
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index bcd555d..452249a 100644
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -4231,7 +4231,11 @@
                       label: 'label.password',
                       isPassword: true,
                       validation: { required: true }
-                    }           
+                    },
+                    tftpdir: {
+                      label: 'Tftp root directory',
+                      validation: { required: true }
+                    } 
                   }
                 },
                 action: function(args) {