You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ek...@apache.org on 2015/07/01 15:05:22 UTC
[05/11] git commit: updated refs/heads/master to 96ad6f6
CLOUDSTACK-8590 - Refactoring NiciraNVP resource
- Adding NiciraNvpCreateLogicalSwitchPortCommandWrapper
- Removing unsued field from NiciraNvpResourceTest
Signed-off-by: wilderrodrigues <wr...@schubergphilis.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/361ab5dd
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/361ab5dd
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/361ab5dd
Branch: refs/heads/master
Commit: 361ab5ddbd138559423f747b1030608633f2af00
Parents: 28c1da9
Author: wilderrodrigues <wr...@schubergphilis.com>
Authored: Tue Jun 30 10:22:25 2015 +0200
Committer: wilderrodrigues <wr...@schubergphilis.com>
Committed: Wed Jul 1 15:04:57 2015 +0200
----------------------------------------------------------------------
.../network/resource/NiciraNvpResource.java | 31 +--------
.../network/resource/NiciraNvpUtilities.java | 17 +++++
...vpCreateLogicalSwitchPortCommandWrapper.java | 70 ++++++++++++++++++++
.../network/resource/NiciraNvpResourceTest.java | 2 -
4 files changed, 88 insertions(+), 32 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/361ab5dd/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 1ab1992..85faf9d 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
@@ -38,8 +38,6 @@ import com.cloud.agent.api.ConfigureStaticNatRulesOnLogicalRouterAnswer;
import com.cloud.agent.api.ConfigureStaticNatRulesOnLogicalRouterCommand;
import com.cloud.agent.api.CreateLogicalRouterAnswer;
import com.cloud.agent.api.CreateLogicalRouterCommand;
-import com.cloud.agent.api.CreateLogicalSwitchPortAnswer;
-import com.cloud.agent.api.CreateLogicalSwitchPortCommand;
import com.cloud.agent.api.DeleteLogicalRouterAnswer;
import com.cloud.agent.api.DeleteLogicalRouterCommand;
import com.cloud.agent.api.DeleteLogicalSwitchPortAnswer;
@@ -209,9 +207,7 @@ public class NiciraNvpResource implements ServerResource {
// [TODO] Remove when all the commands are refactored.
}
- if (cmd instanceof CreateLogicalSwitchPortCommand) {
- return executeRequest((CreateLogicalSwitchPortCommand)cmd, NUM_RETRIES);
- } else if (cmd instanceof DeleteLogicalSwitchPortCommand) {
+ if (cmd instanceof DeleteLogicalSwitchPortCommand) {
return executeRequest((DeleteLogicalSwitchPortCommand)cmd, NUM_RETRIES);
} else if (cmd instanceof UpdateLogicalSwitchPortCommand) {
return executeRequest((UpdateLogicalSwitchPortCommand)cmd, NUM_RETRIES);
@@ -245,31 +241,6 @@ public class NiciraNvpResource implements ServerResource {
public void setAgentControl(final IAgentControl agentControl) {
}
- private Answer executeRequest(final CreateLogicalSwitchPortCommand cmd, final int numRetries) {
- final String logicalSwitchUuid = cmd.getLogicalSwitchUuid();
- final String attachmentUuid = cmd.getAttachmentUuid();
-
- try {
- // Tags set to scope cs_account and account name
- final List<NiciraNvpTag> tags = new ArrayList<NiciraNvpTag>();
- tags.add(new NiciraNvpTag("cs_account", cmd.getOwnerName()));
-
- final LogicalSwitchPort logicalSwitchPort = new LogicalSwitchPort(attachmentUuid, tags, true);
- final LogicalSwitchPort newPort = niciraNvpApi.createLogicalSwitchPort(logicalSwitchUuid, logicalSwitchPort);
- try {
- niciraNvpApi.updateLogicalSwitchPortAttachment(cmd.getLogicalSwitchUuid(), newPort.getUuid(), new VifAttachment(attachmentUuid));
- } catch (final NiciraNvpApiException ex) {
- s_logger.warn("modifyLogicalSwitchPort failed after switchport was created, removing switchport");
- niciraNvpApi.deleteLogicalSwitchPort(cmd.getLogicalSwitchUuid(), newPort.getUuid());
- throw ex; // Rethrow the original exception
- }
- return new CreateLogicalSwitchPortAnswer(cmd, true, "Logical switch port " + newPort.getUuid() + " created", newPort.getUuid());
- } catch (final NiciraNvpApiException e) {
- retryUtility.addRetry(cmd, NUM_RETRIES);
- return retryUtility.retry(cmd, CreateLogicalSwitchPortAnswer.class, e);
- }
- }
-
private Answer executeRequest(final DeleteLogicalSwitchPortCommand cmd, final int numRetries) {
try {
niciraNvpApi.deleteLogicalSwitchPort(cmd.getLogicalSwitchUuid(), cmd.getLogicalSwitchPortUuid());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/361ab5dd/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpUtilities.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpUtilities.java b/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpUtilities.java
index 69cacab..f63ca98 100644
--- a/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpUtilities.java
+++ b/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpUtilities.java
@@ -18,7 +18,13 @@
//
package com.cloud.network.resource;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.cloud.agent.api.CreateLogicalSwitchPortCommand;
import com.cloud.network.nicira.LogicalSwitch;
+import com.cloud.network.nicira.LogicalSwitchPort;
+import com.cloud.network.nicira.NiciraNvpTag;
public class NiciraNvpUtilities {
@@ -39,4 +45,15 @@ public class NiciraNvpUtilities {
final LogicalSwitch logicalSwitch = new LogicalSwitch();
return logicalSwitch;
}
+
+ public LogicalSwitchPort createLogicalSwitchPort(final CreateLogicalSwitchPortCommand command) {
+ final String attachmentUuid = command.getAttachmentUuid();
+
+ // Tags set to scope cs_account and account name
+ final List<NiciraNvpTag> tags = new ArrayList<NiciraNvpTag>();
+ tags.add(new NiciraNvpTag("cs_account", command.getOwnerName()));
+
+ final LogicalSwitchPort logicalSwitchPort = new LogicalSwitchPort(attachmentUuid, tags, true);
+ return logicalSwitchPort;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/361ab5dd/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/wrapper/NiciraNvpCreateLogicalSwitchPortCommandWrapper.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/wrapper/NiciraNvpCreateLogicalSwitchPortCommandWrapper.java b/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/wrapper/NiciraNvpCreateLogicalSwitchPortCommandWrapper.java
new file mode 100644
index 0000000..42a4067
--- /dev/null
+++ b/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/wrapper/NiciraNvpCreateLogicalSwitchPortCommandWrapper.java
@@ -0,0 +1,70 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package com.cloud.network.resource.wrapper;
+
+import static com.cloud.network.resource.NiciraNvpResource.NUM_RETRIES;
+
+import org.apache.log4j.Logger;
+
+import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.CreateLogicalSwitchPortAnswer;
+import com.cloud.agent.api.CreateLogicalSwitchPortCommand;
+import com.cloud.network.nicira.LogicalSwitchPort;
+import com.cloud.network.nicira.NiciraNvpApi;
+import com.cloud.network.nicira.NiciraNvpApiException;
+import com.cloud.network.nicira.VifAttachment;
+import com.cloud.network.resource.NiciraNvpResource;
+import com.cloud.network.resource.NiciraNvpUtilities;
+import com.cloud.network.utils.CommandRetryUtility;
+import com.cloud.resource.CommandWrapper;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles = CreateLogicalSwitchPortCommand.class)
+public final class NiciraNvpCreateLogicalSwitchPortCommandWrapper extends CommandWrapper<CreateLogicalSwitchPortCommand, Answer, NiciraNvpResource> {
+
+ private static final Logger s_logger = Logger.getLogger(NiciraNvpCreateLogicalSwitchPortCommandWrapper.class);
+
+ @Override
+ public Answer execute(final CreateLogicalSwitchPortCommand command, final NiciraNvpResource niciraNvpResource) {
+ final NiciraNvpUtilities niciraNvpUtilities = niciraNvpResource.getNiciraNvpUtilities();
+
+ final String logicalSwitchUuid = command.getLogicalSwitchUuid();
+ final String attachmentUuid = command.getAttachmentUuid();
+
+ try {
+ final NiciraNvpApi niciraNvpApi = niciraNvpResource.getNiciraNvpApi();
+
+ final LogicalSwitchPort logicalSwitchPort = niciraNvpUtilities.createLogicalSwitchPort(command);
+ final LogicalSwitchPort newPort = niciraNvpApi.createLogicalSwitchPort(logicalSwitchUuid, logicalSwitchPort);
+ try {
+ niciraNvpApi.updateLogicalSwitchPortAttachment(command.getLogicalSwitchUuid(), newPort.getUuid(), new VifAttachment(attachmentUuid));
+ } catch (final NiciraNvpApiException ex) {
+ s_logger.warn("modifyLogicalSwitchPort failed after switchport was created, removing switchport");
+ niciraNvpApi.deleteLogicalSwitchPort(command.getLogicalSwitchUuid(), newPort.getUuid());
+ throw ex; // Rethrow the original exception
+ }
+ return new CreateLogicalSwitchPortAnswer(command, true, "Logical switch port " + newPort.getUuid() + " created", newPort.getUuid());
+ } catch (final NiciraNvpApiException e) {
+ final CommandRetryUtility retryUtility = niciraNvpResource.getRetryUtility();
+ retryUtility.addRetry(command, NUM_RETRIES);
+ return retryUtility.retry(command, CreateLogicalSwitchPortAnswer.class, e);
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/361ab5dd/plugins/network-elements/nicira-nvp/test/com/cloud/network/resource/NiciraNvpResourceTest.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/test/com/cloud/network/resource/NiciraNvpResourceTest.java b/plugins/network-elements/nicira-nvp/test/com/cloud/network/resource/NiciraNvpResourceTest.java
index b8b81b2..ccee017 100644
--- a/plugins/network-elements/nicira-nvp/test/com/cloud/network/resource/NiciraNvpResourceTest.java
+++ b/plugins/network-elements/nicira-nvp/test/com/cloud/network/resource/NiciraNvpResourceTest.java
@@ -92,7 +92,6 @@ public class NiciraNvpResourceTest {
NiciraNvpResource resource;
Map<String, Object> parameters;
- private NiciraNvpUtilities niciraNvpUtilities;
private CommandRetryUtility retryUtility;
@Before
@@ -112,7 +111,6 @@ public class NiciraNvpResourceTest {
parameters.put("zoneId", "blublub");
parameters.put("adminpass", "adminpass");
- niciraNvpUtilities = NiciraNvpUtilities.getInstance();
retryUtility = CommandRetryUtility.getInstance();
retryUtility.setServerResource(resource);
}