You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by hu...@apache.org on 2012/10/12 14:15:51 UTC
[8/16] git commit: Add Nicira configuration to the UI
Add Nicira configuration to the UI
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/c9b0b0b1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/c9b0b0b1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/c9b0b0b1
Branch: refs/heads/master
Commit: c9b0b0b1a9510f7740ca2c1de8961ad25b2d023f
Parents: c5634b9
Author: Hugo Trippaers <ht...@schubergphilis.com>
Authored: Sun Sep 30 23:33:37 2012 -0700
Committer: Hugo Trippaers <ht...@schubergphilis.com>
Committed: Sun Sep 30 23:33:37 2012 -0700
----------------------------------------------------------------------
api/src/com/cloud/event/EventTypes.java | 5 +
.../cloud/api/commands/AddNiciraNvpDeviceCmd.java | 12 +-
.../api/commands/DeleteNiciraNvpDeviceCmd.java | 16 +-
.../api/commands/ListNiciraNvpDevicesCmd.java | 2 +-
.../api/response/NiciraNvpDeviceResponse.java | 33 ++-
.../cloud/network/element/NiciraNvpElement.java | 8 +-
.../cloud/network/resource/NiciraNvpResource.java | 3 +-
ui/scripts/system.js | 418 ++++++++++++++-
8 files changed, 486 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c9b0b0b1/api/src/com/cloud/event/EventTypes.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/event/EventTypes.java b/api/src/com/cloud/event/EventTypes.java
index e84a403..9e6b36b 100755
--- a/api/src/com/cloud/event/EventTypes.java
+++ b/api/src/com/cloud/event/EventTypes.java
@@ -291,4 +291,9 @@ public class EventTypes {
public static final String EVENT_TAGS_CREATE = "CREATE_TAGS";
public static final String EVENT_TAGS_DELETE = "DELETE_TAGS";
+ // external network device events
+ public static final String EVENT_EXTERNAL_NVP_CONTROLLER_ADD = "PHYSICAL.NVPCONTROLLER.ADD";
+ public static final String EVENT_EXTERNAL_NVP_CONTROLLER_DELETE = "PHYSICAL.NVPCONTROLLER.DELETE";
+ public static final String EVENT_EXTERNAL_NVP_CONTROLLER_CONFIGURE = "PHYSICAL.NVPCONTROLLER.CONFIGURE";
+
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c9b0b0b1/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/AddNiciraNvpDeviceCmd.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/AddNiciraNvpDeviceCmd.java b/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/AddNiciraNvpDeviceCmd.java
index 1f497c6..7744b4f 100644
--- a/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/AddNiciraNvpDeviceCmd.java
+++ b/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/AddNiciraNvpDeviceCmd.java
@@ -42,7 +42,7 @@ import com.cloud.user.UserContext;
import com.cloud.utils.exception.CloudRuntimeException;
@Implementation(responseObject=NiciraNvpDeviceResponse.class, description="Adds a Nicira NVP device")
-public class AddNiciraNvpDeviceCmd extends BaseCmd {
+public class AddNiciraNvpDeviceCmd extends BaseAsyncCmd {
private static final Logger s_logger = Logger.getLogger(AddNiciraNvpDeviceCmd.class.getName());
private static final String s_name = "addniciranvpdevice";
@PlugService NiciraNvpElementService _niciraNvpElementService;
@@ -130,4 +130,14 @@ public class AddNiciraNvpDeviceCmd extends BaseCmd {
public long getEntityOwnerId() {
return UserContext.current().getCaller().getId();
}
+
+ @Override
+ public String getEventType() {
+ return EventTypes.EVENT_EXTERNAL_NVP_CONTROLLER_ADD;
+ }
+
+ @Override
+ public String getEventDescription() {
+ return "Adding a Nicira Nvp Controller";
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c9b0b0b1/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/DeleteNiciraNvpDeviceCmd.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/DeleteNiciraNvpDeviceCmd.java b/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/DeleteNiciraNvpDeviceCmd.java
index 01a3946..9cc8d62 100644
--- a/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/DeleteNiciraNvpDeviceCmd.java
+++ b/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/DeleteNiciraNvpDeviceCmd.java
@@ -19,6 +19,7 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
+import com.cloud.api.BaseAsyncCmd;
import com.cloud.api.BaseCmd;
import com.cloud.api.IdentityMapper;
import com.cloud.api.Implementation;
@@ -26,6 +27,7 @@ import com.cloud.api.Parameter;
import com.cloud.api.PlugService;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.SuccessResponse;
+import com.cloud.event.EventTypes;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.InvalidParameterValueException;
@@ -36,9 +38,9 @@ import com.cloud.user.UserContext;
import com.cloud.utils.exception.CloudRuntimeException;
@Implementation(responseObject=SuccessResponse.class, description=" delete a nicira nvp device")
-public class DeleteNiciraNvpDeviceCmd extends BaseCmd {
+public class DeleteNiciraNvpDeviceCmd extends BaseAsyncCmd {
private static final Logger s_logger = Logger.getLogger(DeleteNiciraNvpDeviceCmd.class.getName());
- private static final String s_name = "addniciranvpdevice";
+ private static final String s_name = "deleteniciranvpdeviceresponse";
@PlugService NiciraNvpElementService _niciraNvpElementService;
/////////////////////////////////////////////////////
@@ -89,4 +91,14 @@ public class DeleteNiciraNvpDeviceCmd extends BaseCmd {
return UserContext.current().getCaller().getId();
}
+ @Override
+ public String getEventType() {
+ return EventTypes.EVENT_EXTERNAL_LB_DEVICE_DELETE;
+ }
+
+ @Override
+ public String getEventDescription() {
+ return "Deleting Nicira Nvp Controller";
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c9b0b0b1/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/ListNiciraNvpDevicesCmd.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/ListNiciraNvpDevicesCmd.java b/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/ListNiciraNvpDevicesCmd.java
index f9c157d..f38cb16 100644
--- a/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/ListNiciraNvpDevicesCmd.java
+++ b/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/ListNiciraNvpDevicesCmd.java
@@ -43,7 +43,7 @@ import com.cloud.utils.exception.CloudRuntimeException;
@Implementation(responseObject=NiciraNvpDeviceResponse.class, description="Lists Nicira NVP devices")
public class ListNiciraNvpDevicesCmd extends BaseListCmd {
private static final Logger s_logger = Logger.getLogger(ListNiciraNvpDevicesCmd.class.getName());
- private static final String s_name = "listniciranvpdevices";
+ private static final String s_name = "listniciranvpdeviceresponse";
@PlugService NiciraNvpElementService _niciraNvpElementService;
/////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c9b0b0b1/plugins/network-elements/nicira-nvp/src/com/cloud/api/response/NiciraNvpDeviceResponse.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/api/response/NiciraNvpDeviceResponse.java b/plugins/network-elements/nicira-nvp/src/com/cloud/api/response/NiciraNvpDeviceResponse.java
index d5c82b3..e50be81 100644
--- a/plugins/network-elements/nicira-nvp/src/com/cloud/api/response/NiciraNvpDeviceResponse.java
+++ b/plugins/network-elements/nicira-nvp/src/com/cloud/api/response/NiciraNvpDeviceResponse.java
@@ -33,7 +33,16 @@ public class NiciraNvpDeviceResponse extends BaseResponse {
@SerializedName(ApiConstants.NICIRA_NVP_DEVICE_NAME) @Param(description="device name")
private String deviceName;
-
+
+ @SerializedName(ApiConstants.HOST_NAME) @Param(description="the controller Ip address")
+ private String hostName;
+
+ @SerializedName(ApiConstants.NICIRA_NVP_TRANSPORT_ZONE_UUID) @Param(description="the transport zone Uuid")
+ private String transportZoneUuid;
+
+ @SerializedName(ApiConstants.NICIRA_NVP_GATEWAYSERVICE_UUID) @Param(description="this L3 gateway service Uuid")
+ private String l3GatewayServiceUuid;
+
public void setId(long nvpDeviceId) {
this.id.setValue(nvpDeviceId);
}
@@ -48,6 +57,26 @@ public class NiciraNvpDeviceResponse extends BaseResponse {
public void setDeviceName(String deviceName) {
this.deviceName = deviceName;
- }
+ }
+
+ public void setId(IdentityProxy id) {
+ this.id = id;
+ }
+
+ public void setPhysicalNetworkId(IdentityProxy physicalNetworkId) {
+ this.physicalNetworkId = physicalNetworkId;
+ }
+
+ public void setHostName(String hostName) {
+ this.hostName = hostName;
+ }
+
+ public void setTransportZoneUuid(String transportZoneUuid) {
+ this.transportZoneUuid = transportZoneUuid;
+ }
+
+ public void setL3GatewayServiceUuid(String l3GatewayServiceUuid) {
+ this.l3GatewayServiceUuid = l3GatewayServiceUuid;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c9b0b0b1/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java b/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
index 716cd78..487a64d 100644
--- a/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
+++ b/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
@@ -657,11 +657,18 @@ public class NiciraNvpElement extends AdapterBase implements
@Override
public NiciraNvpDeviceResponse createNiciraNvpDeviceResponse(
NiciraNvpDeviceVO niciraNvpDeviceVO) {
+ HostVO niciraNvpHost = _hostDao.findById(niciraNvpDeviceVO.getHostId());
+ _hostDao.loadDetails(niciraNvpHost);
+
NiciraNvpDeviceResponse response = new NiciraNvpDeviceResponse();
response.setDeviceName(niciraNvpDeviceVO.getDeviceName());
response.setPhysicalNetworkId(niciraNvpDeviceVO.getPhysicalNetworkId());
response.setId(niciraNvpDeviceVO.getId());
response.setProviderName(niciraNvpDeviceVO.getProviderName());
+ response.setHostName(niciraNvpHost.getDetail("ip"));
+ response.setTransportZoneUuid(niciraNvpHost.getDetail("transportzoneuuid"));
+ response.setL3GatewayServiceUuid(niciraNvpHost.getDetail("l3gatewayserviceuuid"));
+ response.setObjectName("niciranvpdevice");
return response;
}
@@ -705,7 +712,6 @@ public class NiciraNvpElement extends AdapterBase implements
_resourceMgr.deleteHost(hostId, false, false);
_niciraNvpDao.remove(niciraDeviceId);
-
return true;
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c9b0b0b1/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpResource.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpResource.java b/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpResource.java
index 0908101..4d01bc6 100644
--- a/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpResource.java
+++ b/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpResource.java
@@ -229,7 +229,8 @@ public class NiciraNvpResource implements ServerResource {
}
else if (cmd instanceof ConfigurePortForwardingRulesOnLogicalRouterCommand) {
return executeRequest((ConfigurePortForwardingRulesOnLogicalRouterCommand) cmd, numRetries);
- } s_logger.debug("Received unsupported command " + cmd.toString());
+ }
+ s_logger.debug("Received unsupported command " + cmd.toString());
return Answer.createUnsupportedCommandAnswer(cmd);
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c9b0b0b1/ui/scripts/system.js
----------------------------------------------------------------------
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index e5d53e2..826ba08 100644
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -3761,7 +3761,213 @@
name: { label: 'label.name' }//,
//state: { label: 'label.status' } //comment it for now, since dataProvider below doesn't get called by widget code after action is done
}
- }
+ },
+ // Nicira Nvp provider detail view
+ niciraNvp: {
+ type: 'detailView',
+ id: 'niciraNvpProvider',
+ label: 'label.niciraNvp',
+ viewAll: { label: 'label.devices', path: '_zone.niciraNvpDevices' },
+ tabs: {
+ details: {
+ title: 'label.details',
+ fields: [
+ {
+ name: { label: 'label.name' }
+ },
+ {
+ state: { label: 'label.state' }
+ }
+ ],
+ dataProvider: function(args) {
+ refreshNspData("NiciraNvp");
+ var providerObj;
+ $(nspHardcodingArray).each(function(){
+ if(this.id == "niciraNvp") {
+ providerObj = this;
+ return false; //break each loop
+ }
+ });
+ args.response.success({
+ data: providerObj,
+ actionFilter: networkProviderActionFilter('niciraNvp')
+ });
+ }
+ }
+ },
+ actions: {
+ add: {
+ label: 'label.add.NiciraNvp.device',
+ createForm: {
+ title: 'label.add.NiciraNvp.device',
+ preFilter: function(args) { }, // TODO What is this?
+ fields: {
+ host: {
+ label: 'label.ip.address'
+ },
+ username: {
+ label: 'label.username'
+ },
+ password: {
+ label: 'label.password',
+ isPassword: true
+ },
+ numretries: {
+ label: 'label.numretries',
+ defaultValue: '2'
+ },
+ transportzoneuuid: {
+ label: 'label.nicira.transportzoneuuid'
+ },
+ l3gatewayserviceuuid: {
+ label: 'label.nicira.l3gatewayserviceuuid'
+ }
+ }
+ },
+ action: function(args) {
+ if(nspMap["niciraNvp"] == null) {
+ $.ajax({
+ url: createURL("addNetworkServiceProvider&name=NiciraNvp&physicalnetworkid=" + selectedPhysicalNetworkObj.id),
+ dataType: "json",
+ async: true,
+ success: function(json) {
+ var jobId = json.addnetworkserviceproviderresponse.jobid;
+ var addNiciraNvpProviderIntervalID = 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(addNiciraNvpProviderIntervalID);
+ if (result.jobstatus == 1) {
+ nspMap["niciraNvp"] = json.queryasyncjobresultresponse.jobresult.networkserviceprovider;
+ addNiciraNvpDevice(args, selectedPhysicalNetworkObj, "addNiciraNvpDevice", "addniciranvpdeviceresponse", "niciranvpdevice")
+ }
+ else if (result.jobstatus == 2) {
+ alert("addNetworkServiceProvider&name=NiciraNvp failed. Error: " + _s(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert("addNetworkServiceProvider&name=NiciraNvp failed. Error: " + errorMsg);
+ }
+ });
+ }, 3000);
+ }
+ });
+ }
+ else {
+ addNiciraNvpDevice(args, selectedPhysicalNetworkObj, "addNiciraNvpDevice", "addniciranvpdeviceresponse", "niciranvpdevice")
+ }
+ },
+ messages: {
+ notification: function(args) {
+ return 'label.add.NiciraNvp.device';
+ }
+ },
+ notification: {
+ poll: pollAsyncJobResult
+ }
+ },
+ enable: {
+ label: 'label.enable.provider',
+ action: function(args) {
+ $.ajax({
+ url: createURL("updateNetworkServiceProvider&id=" + nspMap["niciraNvp"].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["niciraNvp"].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["niciraNvp"].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 }
+ }
+ }
+ }
}
}
},
@@ -6312,7 +6518,171 @@
}
}
},
-
+ // FIXME convert to nicira detailview
+ // NiciraNvp devices listView
+ niciraNvpDevices: {
+ id: 'niciraNvpDevices',
+ title: 'label.devices',
+ listView: {
+ id: 'niciraNvpDevices',
+ fields: {
+ hostname: { label: 'label.nicira.controller.address' },
+ transportzoneuuid: { label: 'label.nicira.transportzoneuuid'},
+ l3gatewayserviceuuid: { label: 'label.nicira.l3gatewayserviceuuid' }
+ },
+ actions: {
+ add: {
+ label: 'label.add.NiciraNvp.device',
+ createForm: {
+ title: 'label.add.NiciraNvp.device',
+ preFilter: function(args) { }, // TODO What is this?
+ fields: {
+ host: {
+ label: 'label.ip.address'
+ },
+ username: {
+ label: 'label.username'
+ },
+ password: {
+ label: 'label.password',
+ isPassword: true
+ },
+ numretries: {
+ label: 'label.numretries',
+ defaultValue: '2'
+ },
+ transportzoneuuid: {
+ label: 'label.nicira.transportzoneuuid'
+ },
+ l3gatewayserviceuuid: {
+ label: 'label.nicira.l3gatewayserviceuuid'
+ }
+ }
+ },
+ action: function(args) {
+ if(nspMap["niciraNvp"] == null) {
+ $.ajax({
+ url: createURL("addNetworkServiceProvider&name=NiciraNvp&physicalnetworkid=" + selectedPhysicalNetworkObj.id),
+ dataType: "json",
+ async: true,
+ success: function(json) {
+ var jobId = json.addnetworkserviceproviderresponse.jobid;
+ var addNiciraNvpProviderIntervalID = 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(addNiciraNvpProviderIntervalID);
+ if (result.jobstatus == 1) {
+ nspMap["niciraNvp"] = json.queryasyncjobresultresponse.jobresult.networkserviceprovider;
+ addNiciraNvpDevice(args, selectedPhysicalNetworkObj, "addNiciraNvpDevice", "addniciranvpdeviceresponse", "niciranvpdevice")
+ }
+ else if (result.jobstatus == 2) {
+ alert("addNetworkServiceProvider&name=NiciraNvp failed. Error: " + _s(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert("addNetworkServiceProvider&name=NiciraNvp failed. Error: " + errorMsg);
+ }
+ });
+ }, 3000);
+ }
+ });
+ }
+ else {
+ addNiciraNvpDevice(args, selectedPhysicalNetworkObj, "addNiciraNvpDevice", "addniciranvpdeviceresponse", "niciranvpdevice")
+ }
+ },
+
+ messages: {
+ notification: function(args) {
+ return 'Added new Nicira Nvp Controller';
+ }
+ },
+ notification: {
+ poll: pollAsyncJobResult
+ }
+ }
+ },
+ dataProvider: function(args) {
+ $.ajax({
+ url: createURL("listNiciraNvpDevices&physicalnetworkid=" + selectedPhysicalNetworkObj.id),
+ data: { page: args.page, pageSize: pageSize },
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ var items = json.listniciranvpdeviceresponse.niciranvpdevice;
+ args.response.success({data: items});
+ }
+ });
+ },
+ detailView: {
+ name: 'Nicira Nvp details',
+ actions: {
+ 'remove': {
+ label: 'label.delete.NiciaNvp',
+ messages: {
+ confirm: function(args) {
+ return 'message.confirm.delete.NiciraNvp';
+ },
+ notification: function(args) {
+ return 'label.delete.NiciraNvp';
+ }
+ },
+ action: function(args) {
+ $.ajax({
+ url: createURL("deleteNiciraNvpDevice&nvpdeviceid=" + args.context.niciraNvpDevices[0].nvpdeviceid),
+ dataType: "json",
+ async: true,
+ success: function(json) {
+ var jid = json.deleteniciranvpdeviceresponse.jobid;
+ args.response.success(
+ {_custom:
+ {jobId: jid}
+ }
+ );
+ }
+ });
+ },
+ notification: {
+ poll: pollAsyncJobResult
+ }
+ }
+ },
+ tabs: {
+ details: {
+ title: 'label.details',
+ fields: [
+ {
+ nvpdeviceid: { label: 'label.id' },
+ hostname: { label: 'label.ip.address' },
+ transportzoneuuid: { label: 'label.nicira.transportzoneuuid' },
+ l3gatewayserviceuuid: { label: 'label.nicira.l3gatewayserviceuuid' }
+ }
+ ],
+ dataProvider: function(args) {
+ $.ajax({
+ url: createURL("listNiciraNvpDevices&nvpdeviceid=" + args.context.niciraNvpDevices[0].nvpdeviceid),
+ dataType: "json",
+ async: true,
+ success: function(json) {
+ var item = json.listniciranvpdeviceresponse.niciranvpdevice[0];
+ args.response.success({data: item});
+ }
+ });
+ }
+ }
+ }
+ }
+ }
+ },
pods: {
title: 'label.pods',
listView: {
@@ -9327,6 +9697,40 @@
});
}
+ function addNiciraNvpDevice(args, physicalNetworkObj, apiCmd, apiCmdRes, apiCmdObj) {
+ var array1 = [];
+ array1.push("&physicalnetworkid=" + physicalNetworkObj.id);
+ array1.push("&username=" + todb(args.data.username));
+ array1.push("&password=" + todb(args.data.password));
+ array1.push("&hostname=" + todb(args.data.host));
+ array1.push("&transportzoneuuid=" + todb(args.data.transportzoneuuid));
+
+ var l3GatewayServiceUuid = args.data.l3gatewayserviceuuid;
+ if(l3GatewayServiceUuid != null && l3GatewayServiceUuid.length > 0) {
+ array1.push("&l3gatewayserviceuuid=" + todb(args.data.l3gatewayserviceuuid));
+ }
+
+ $.ajax({
+ url: createURL(apiCmd + array1.join("")),
+ dataType: "json",
+ success: function(json) {
+ var jid = json[apiCmdRes].jobid;
+ args.response.success(
+ {_custom:
+ {jobId: jid,
+ getUpdatedItem: function(json) {
+ var item = json.queryasyncjobresultresponse.jobresult[apiCmdObj];
+
+ return item;
+ }
+ }
+ }
+ );
+ }
+ });
+ }
+
+
var afterCreateZonePhysicalNetworkTrafficTypes = function(args, newZoneObj, newPhysicalnetwork) {
$.ajax({
url: createURL("updatePhysicalNetwork&state=Enabled&id=" + newPhysicalnetwork.id),
@@ -9924,6 +10328,9 @@
case "SecurityGroupProvider":
nspMap["securityGroups"] = items[i];
break;
+ case "NiciraNvp":
+ nspMap["niciraNvp"] = items[i];
+ break;
}
}
}
@@ -9940,7 +10347,12 @@
id: 'virtualRouter',
name: 'Virtual Router',
state: nspMap.virtualRouter ? nspMap.virtualRouter.state : 'Disabled'
- }
+ },
+ {
+ id: 'niciraNvp',
+ name: 'Nicira Nvp',
+ state: nspMap.niciraNvp ? nspMap.niciraNvp.state : 'Disabled'
+ }
];
if(selectedZoneObj.networktype == "Basic") {