CS-9919: Support for Nexus Swiches (Cisco Vswitches)
Description:
Incorporating more changes from Alena's review.
Modified the Nexus Enable and Disable commands
to return CiscoNexusVSMResponse instead of
SuccessResponse.
Put event annotations for enable/disable functions
that the enable/disable nexus commands cal into.
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit:
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/0083074b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/0083074b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/0083074b
Branch: refs/heads/3.0.x
Commit: 0083074be47e868b66961a89a44e02854035e764
Parents: a48a3bb
Author: Vijayendra Bhamidipati <[email protected]>
Authored: Wed May 23 17:42:39 2012 -0700
Committer: Vijayendra Bhamidipati <[email protected]>
Committed: Wed May 23 17:42:39 2012 -0700
----------------------------------------------------------------------
.../api/commands/DisableCiscoNexusVSMCmd.java | 12 ++++++------
.../cloud/api/commands/EnableCiscoNexusVSMCmd.java | 12 ++++++------
.../network/CiscoNexusVSMDeviceManagerImpl.java | 12 +++++-------
.../network/element/CiscoNexusVSMElement.java | 10 ++++++----
.../element/CiscoNexusVSMElementService.java | 4 ++--
5 files changed, 25 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/0083074b/server/src/com/cloud/api/commands/DisableCiscoNexusVSMCmd.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/commands/DisableCiscoNexusVSMCmd.java
b/server/src/com/cloud/api/commands/DisableCiscoNexusVSMCmd.java
index 8700086..17f4eb1 100644
--- a/server/src/com/cloud/api/commands/DisableCiscoNexusVSMCmd.java
+++ b/server/src/com/cloud/api/commands/DisableCiscoNexusVSMCmd.java
@@ -27,17 +27,17 @@ import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.PlugService;
import com.cloud.api.ServerApiException;
-import com.cloud.api.response.SuccessResponse;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.element.CiscoNexusVSMElementService;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
import com.cloud.event.EventTypes;
+import com.cloud.api.response.CiscoNexusVSMResponse;
+import com.cloud.network.CiscoNexusVSMDevice;
-@Implementation(responseObject=SuccessResponse.class, description="disable a
Cisco Nexus VSM device")
+@Implementation(responseObject=CiscoNexusVSMResponse.class,
description="disable a Cisco Nexus VSM device")
public class DisableCiscoNexusVSMCmd extends BaseAsyncCmd {
public static final Logger s_logger =
Logger.getLogger(DisableCiscoNexusVSMCmd.class.getName());
@@ -66,9 +66,9 @@ public class DisableCiscoNexusVSMCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceUnavailableException,
InsufficientCapacityException, ServerApiException,
ConcurrentOperationException, ResourceAllocationException {
- boolean result = _ciscoNexusVSMService.disableCiscoNexusVSM(this);
- if (result) {
- SuccessResponse response = new
SuccessResponse(getCommandName());
+ CiscoNexusVSMDevice result =
_ciscoNexusVSMService.disableCiscoNexusVSM(this);
+ if (result != null) {
+ CiscoNexusVSMResponse response =
_ciscoNexusVSMService.createCiscoNexusVSMDetailedResponse(result);
response.setResponseName(getCommandName());
this.setResponseObject(response);
} else {
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/0083074b/server/src/com/cloud/api/commands/EnableCiscoNexusVSMCmd.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/commands/EnableCiscoNexusVSMCmd.java
b/server/src/com/cloud/api/commands/EnableCiscoNexusVSMCmd.java
index af85a86..b532269 100644
--- a/server/src/com/cloud/api/commands/EnableCiscoNexusVSMCmd.java
+++ b/server/src/com/cloud/api/commands/EnableCiscoNexusVSMCmd.java
@@ -27,7 +27,6 @@ import com.cloud.api.Implementation;
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;
@@ -35,9 +34,10 @@ import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.element.CiscoNexusVSMElementService;
import com.cloud.user.Account;
-import com.cloud.user.UserContext;
+import com.cloud.api.response.CiscoNexusVSMResponse;
+import com.cloud.network.CiscoNexusVSMDevice;
-@Implementation(responseObject=SuccessResponse.class, description="Enable a
Cisco Nexus VSM device")
+@Implementation(responseObject=CiscoNexusVSMResponse.class,
description="Enable a Cisco Nexus VSM device")
public class EnableCiscoNexusVSMCmd extends BaseAsyncCmd {
public static final Logger s_logger =
Logger.getLogger(EnableCiscoNexusVSMCmd.class.getName());
@@ -66,9 +66,9 @@ public class EnableCiscoNexusVSMCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceUnavailableException,
InsufficientCapacityException, ServerApiException,
ConcurrentOperationException, ResourceAllocationException {
- boolean result = _ciscoNexusVSMService.enableCiscoNexusVSM(this);
- if (result) {
- SuccessResponse response = new
SuccessResponse(getCommandName());
+ CiscoNexusVSMDevice result =
_ciscoNexusVSMService.enableCiscoNexusVSM(this);
+ if (result != null) {
+ CiscoNexusVSMResponse response =
_ciscoNexusVSMService.createCiscoNexusVSMDetailedResponse(result);
response.setResponseName(getCommandName());
this.setResponseObject(response);
} else {
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/0083074b/server/src/com/cloud/network/CiscoNexusVSMDeviceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/CiscoNexusVSMDeviceManagerImpl.java
b/server/src/com/cloud/network/CiscoNexusVSMDeviceManagerImpl.java
index fec8a4a..6746880 100644
--- a/server/src/com/cloud/network/CiscoNexusVSMDeviceManagerImpl.java
+++ b/server/src/com/cloud/network/CiscoNexusVSMDeviceManagerImpl.java
@@ -242,10 +242,9 @@ public abstract class CiscoNexusVSMDeviceManagerImpl
extends AdapterBase {
}
@DB
- public boolean enableCiscoNexusVSM(long vsmId) {
+ public CiscoNexusVSMDeviceVO enableCiscoNexusVSM(long vsmId) {
CiscoNexusVSMDeviceVO cisconexusvsm =
_ciscoNexusVSMDeviceDao.findById(vsmId);
if (cisconexusvsm == null) {
- // This entry is already not present. Return success.
throw new InvalidParameterValueException("Invalid vsm Id
specified");
}
// Else, check if this db record shows that this VSM is enabled or not.
@@ -269,14 +268,13 @@ public abstract class CiscoNexusVSMDeviceManagerImpl
extends AdapterBase {
obj.addPortProfile("pp1", 1, 4000, PortType.vEthernet,
BindingType.Ephemeral);
***/
- return true;
+ return cisconexusvsm;
}
- @DB
- public boolean disableCiscoNexusVSM(long vsmId) {
+ @DB
+ public CiscoNexusVSMDeviceVO disableCiscoNexusVSM(long vsmId) {
CiscoNexusVSMDeviceVO cisconexusvsm =
_ciscoNexusVSMDeviceDao.findById(vsmId);
if (cisconexusvsm == null) {
- // This entry is already not present. Return success.
throw new InvalidParameterValueException("Invalid vsm Id
specified");
}
// Else, check if this db record shows that this VSM is enabled or not.
@@ -301,7 +299,7 @@ public abstract class CiscoNexusVSMDeviceManagerImpl
extends AdapterBase {
obj2.deletePortProfile(obj.getId());
//_ppmgr.addPortProfile("pp1", 1, 4000, PortType.vEthernet,
BindingType.Ephemeral);
**/
- return true;
+ return cisconexusvsm;
}
@DB
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/0083074b/server/src/com/cloud/network/element/CiscoNexusVSMElement.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/element/CiscoNexusVSMElement.java
b/server/src/com/cloud/network/element/CiscoNexusVSMElement.java
index 1156a26..c57b664 100644
--- a/server/src/com/cloud/network/element/CiscoNexusVSMElement.java
+++ b/server/src/com/cloud/network/element/CiscoNexusVSMElement.java
@@ -146,15 +146,17 @@ public class CiscoNexusVSMElement extends
CiscoNexusVSMDeviceManagerImpl impleme
}
@Override
- public boolean enableCiscoNexusVSM(EnableCiscoNexusVSMCmd cmd) {
- boolean result;
+ @ActionEvent(eventType =
EventTypes.EVENT_EXTERNAL_SWITCH_MGMT_DEVICE_ENABLE, eventDescription =
"deleting VSM", async = true)
+ public CiscoNexusVSMDeviceVO enableCiscoNexusVSM(EnableCiscoNexusVSMCmd
cmd) {
+ CiscoNexusVSMDeviceVO result;
result = enableCiscoNexusVSM(cmd.getCiscoNexusVSMDeviceId());
return result;
}
@Override
- public boolean disableCiscoNexusVSM(DisableCiscoNexusVSMCmd cmd) {
- boolean result;
+ @ActionEvent(eventType =
EventTypes.EVENT_EXTERNAL_SWITCH_MGMT_DEVICE_DISABLE, eventDescription =
"deleting VSM", async = true)
+ public CiscoNexusVSMDeviceVO disableCiscoNexusVSM(DisableCiscoNexusVSMCmd
cmd) {
+ CiscoNexusVSMDeviceVO result;
result = disableCiscoNexusVSM(cmd.getCiscoNexusVSMDeviceId());
return result;
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/0083074b/server/src/com/cloud/network/element/CiscoNexusVSMElementService.java
----------------------------------------------------------------------
diff --git
a/server/src/com/cloud/network/element/CiscoNexusVSMElementService.java
b/server/src/com/cloud/network/element/CiscoNexusVSMElementService.java
index 2912e6f..d462e99 100644
--- a/server/src/com/cloud/network/element/CiscoNexusVSMElementService.java
+++ b/server/src/com/cloud/network/element/CiscoNexusVSMElementService.java
@@ -40,13 +40,13 @@ public interface CiscoNexusVSMElementService extends
PluggableService {
/**
* Enables a Cisco Nexus VSM.
*/
- public boolean enableCiscoNexusVSM(EnableCiscoNexusVSMCmd cmd);
+ public CiscoNexusVSMDeviceVO enableCiscoNexusVSM(EnableCiscoNexusVSMCmd
cmd);
/**
* Disables a Cisco Nexus VSM.
*/
- public boolean disableCiscoNexusVSM(DisableCiscoNexusVSMCmd cmd);
+ public CiscoNexusVSMDeviceVO disableCiscoNexusVSM(DisableCiscoNexusVSMCmd
cmd);
/**
* Returns a list of VSMs.