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/04 23:32:30 UTC
[48/56] [abbrv] Fix checkstyle errors in Nicira NVP plugin
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/256763cf/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 8b5af3c..78465e4 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
@@ -16,8 +16,18 @@
// under the License.
package com.cloud.network.resource;
-import static org.junit.Assert.*;
-import static org.mockito.Mockito.*;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.argThat;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.atLeast;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.Arrays;
@@ -74,768 +84,769 @@ import com.cloud.network.nicira.NiciraNvpList;
import com.cloud.network.nicira.SourceNatRule;
public class NiciraNvpResourceTest {
- NiciraNvpApi _nvpApi = mock(NiciraNvpApi.class);
- NiciraNvpResource _resource;
- Map<String,Object> _parameters;
-
- @Before
- public void setUp() throws ConfigurationException {
- _resource = new NiciraNvpResource() {
- protected NiciraNvpApi createNiciraNvpApi() {
- return _nvpApi;
- }
- };
-
- _parameters = new HashMap<String,Object>();
- _parameters.put("name","nvptestdevice");
- _parameters.put("ip","127.0.0.1");
- _parameters.put("adminuser","adminuser");
- _parameters.put("guid", "aaaaa-bbbbb-ccccc");
- _parameters.put("zoneId", "blublub");
- _parameters.put("adminpass","adminpass");
- }
-
- @Test (expected=ConfigurationException.class)
- public void resourceConfigureFailure() throws ConfigurationException {
- _resource.configure("NiciraNvpResource", Collections.<String,Object>emptyMap());
- }
-
- @Test
- public void resourceConfigure() throws ConfigurationException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- verify(_nvpApi).setAdminCredentials("adminuser", "adminpass");
- verify(_nvpApi).setControllerAddress("127.0.0.1");
-
- assertTrue("nvptestdevice".equals(_resource.getName()));
-
- /* Pretty lame test, but here to assure this plugin fails
- * if the type name ever changes from L2Networking
- */
- assertTrue(_resource.getType() == Host.Type.L2Networking);
- }
-
- @Test
- public void testInitialization() throws ConfigurationException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- StartupCommand[] sc = _resource.initialize();
- assertTrue(sc.length ==1);
- assertTrue("aaaaa-bbbbb-ccccc".equals(sc[0].getGuid()));
- assertTrue("nvptestdevice".equals(sc[0].getName()));
- assertTrue("blublub".equals(sc[0].getDataCenter()));
- }
-
- @Test
- public void testPingCommandStatusOk() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- ControlClusterStatus ccs = mock(ControlClusterStatus.class);
- when(ccs.getClusterStatus()).thenReturn("stable");
- when(_nvpApi.getControlClusterStatus()).thenReturn(ccs);
-
- PingCommand ping = _resource.getCurrentStatus(42);
- assertTrue(ping != null);
- assertTrue(ping.getHostId() == 42);
- assertTrue(ping.getHostType() == Host.Type.L2Networking);
- }
-
- @Test
- public void testPingCommandStatusFail() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- ControlClusterStatus ccs = mock(ControlClusterStatus.class);
- when(ccs.getClusterStatus()).thenReturn("unstable");
- when(_nvpApi.getControlClusterStatus()).thenReturn(ccs);
-
- PingCommand ping = _resource.getCurrentStatus(42);
- assertTrue(ping == null);
- }
-
- @Test
- public void testPingCommandStatusApiException() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- ControlClusterStatus ccs = mock(ControlClusterStatus.class);
- when(ccs.getClusterStatus()).thenReturn("unstable");
- when(_nvpApi.getControlClusterStatus()).thenThrow(new NiciraNvpApiException());
-
- PingCommand ping = _resource.getCurrentStatus(42);
- assertTrue(ping == null);
- }
-
- @Test
- public void testRetries() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- LogicalSwitch ls = mock(LogicalSwitch.class);
- when(ls.getUuid()).thenReturn("cccc").thenReturn("cccc");
- when(_nvpApi.createLogicalSwitch((LogicalSwitch) any())).thenThrow(new NiciraNvpApiException()).thenThrow(new NiciraNvpApiException()).thenReturn(ls);
-
- CreateLogicalSwitchCommand clsc = new CreateLogicalSwitchCommand((String)_parameters.get("guid"), "stt", "loigicalswitch","owner");
- CreateLogicalSwitchAnswer clsa = (CreateLogicalSwitchAnswer) _resource.executeRequest(clsc);
- assertTrue(clsa.getResult());
- }
-
- @Test
- public void testCreateLogicalSwitch() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- LogicalSwitch ls = mock(LogicalSwitch.class);
- when(ls.getUuid()).thenReturn("cccc").thenReturn("cccc");
- when(_nvpApi.createLogicalSwitch((LogicalSwitch) any())).thenReturn(ls);
-
- CreateLogicalSwitchCommand clsc = new CreateLogicalSwitchCommand((String)_parameters.get("guid"), "stt", "loigicalswitch","owner");
- CreateLogicalSwitchAnswer clsa = (CreateLogicalSwitchAnswer) _resource.executeRequest(clsc);
- assertTrue(clsa.getResult());
- assertTrue("cccc".equals(clsa.getLogicalSwitchUuid()));
- }
-
- @Test
- public void testCreateLogicalSwitchApiException() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- LogicalSwitch ls = mock(LogicalSwitch.class);
- when(ls.getUuid()).thenReturn("cccc").thenReturn("cccc");
- when(_nvpApi.createLogicalSwitch((LogicalSwitch) any())).thenThrow(new NiciraNvpApiException());
-
- CreateLogicalSwitchCommand clsc = new CreateLogicalSwitchCommand((String)_parameters.get("guid"), "stt", "loigicalswitch","owner");
- CreateLogicalSwitchAnswer clsa = (CreateLogicalSwitchAnswer) _resource.executeRequest(clsc);
- assertFalse(clsa.getResult());
- }
-
- @Test
- public void testDeleteLogicalSwitch() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- DeleteLogicalSwitchCommand dlsc = new DeleteLogicalSwitchCommand("cccc");
- DeleteLogicalSwitchAnswer dlsa = (DeleteLogicalSwitchAnswer) _resource.executeRequest(dlsc);
- assertTrue(dlsa.getResult());
- }
-
- @Test
- public void testDeleteLogicalSwitchApiException() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- doThrow(new NiciraNvpApiException()).when(_nvpApi).deleteLogicalSwitch((String)any());
-
- DeleteLogicalSwitchCommand dlsc = new DeleteLogicalSwitchCommand("cccc");
- DeleteLogicalSwitchAnswer dlsa = (DeleteLogicalSwitchAnswer) _resource.executeRequest(dlsc);
- assertFalse(dlsa.getResult());
- }
-
- @Test
- public void testCreateLogicalSwitchPort() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- LogicalSwitchPort lsp = mock(LogicalSwitchPort.class);
- when(lsp.getUuid()).thenReturn("eeee");
- when(_nvpApi.createLogicalSwitchPort(eq("cccc"), (LogicalSwitchPort) any())).thenReturn(lsp);
-
- CreateLogicalSwitchPortCommand clspc = new CreateLogicalSwitchPortCommand("cccc", "dddd", "owner", "nicname");
- CreateLogicalSwitchPortAnswer clspa = (CreateLogicalSwitchPortAnswer) _resource.executeRequest(clspc);
- assertTrue(clspa.getResult());
- assertTrue("eeee".equals(clspa.getLogicalSwitchPortUuid()));
-
- }
-
- @Test
- public void testCreateLogicalSwitchPortApiExceptionInCreate() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- LogicalSwitchPort lsp = mock(LogicalSwitchPort.class);
- when(lsp.getUuid()).thenReturn("eeee");
- when(_nvpApi.createLogicalSwitchPort(eq("cccc"), (LogicalSwitchPort) any())).thenThrow(new NiciraNvpApiException());
-
- CreateLogicalSwitchPortCommand clspc = new CreateLogicalSwitchPortCommand("cccc", "dddd", "owner", "nicname");
- CreateLogicalSwitchPortAnswer clspa = (CreateLogicalSwitchPortAnswer) _resource.executeRequest(clspc);
- assertFalse(clspa.getResult());
- }
-
- @Test
- public void testCreateLogicalSwitchPortApiExceptionInModify() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- LogicalSwitchPort lsp = mock(LogicalSwitchPort.class);
- when(lsp.getUuid()).thenReturn("eeee");
- when(_nvpApi.createLogicalSwitchPort(eq("cccc"), (LogicalSwitchPort) any())).thenReturn(lsp);
- doThrow(new NiciraNvpApiException()).when(_nvpApi).modifyLogicalSwitchPortAttachment((String)any(), (String)any(), (Attachment)any());
-
-
- CreateLogicalSwitchPortCommand clspc = new CreateLogicalSwitchPortCommand("cccc", "dddd", "owner", "nicname");
- CreateLogicalSwitchPortAnswer clspa = (CreateLogicalSwitchPortAnswer) _resource.executeRequest(clspc);
- assertFalse(clspa.getResult());
- verify(_nvpApi, atLeastOnce()).deleteLogicalSwitchPort((String) any(), (String) any());
- }
-
- @Test
- public void testDeleteLogicalSwitchPortException() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- doThrow(new NiciraNvpApiException()).when(_nvpApi).deleteLogicalSwitchPort((String) any(), (String) any());
- DeleteLogicalSwitchPortAnswer dlspa = (DeleteLogicalSwitchPortAnswer) _resource.executeRequest(new DeleteLogicalSwitchPortCommand("aaaa","bbbb"));
- assertFalse(dlspa.getResult());
- }
-
- @Test
- public void testUpdateLogicalSwitchPortException() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- doThrow(new NiciraNvpApiException()).when(_nvpApi).modifyLogicalSwitchPortAttachment((String) any(), (String) any(), (Attachment) any());
- UpdateLogicalSwitchPortAnswer dlspa = (UpdateLogicalSwitchPortAnswer) _resource.executeRequest(
- new UpdateLogicalSwitchPortCommand("aaaa","bbbb","cccc","owner","nicname"));
- assertFalse(dlspa.getResult());
- }
-
- @Test
- public void testFindLogicalSwitchPort() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- @SuppressWarnings("unchecked")
- NiciraNvpList<LogicalSwitchPort> lspl = (NiciraNvpList<LogicalSwitchPort>)mock(NiciraNvpList.class);
- when(lspl.getResultCount()).thenReturn(1);
- when(_nvpApi.findLogicalSwitchPortsByUuid("aaaa", "bbbb")).thenReturn(lspl);
-
- FindLogicalSwitchPortAnswer flspa = (FindLogicalSwitchPortAnswer) _resource.executeRequest(new FindLogicalSwitchPortCommand("aaaa", "bbbb"));
- assertTrue(flspa.getResult());
- }
-
- @Test
- public void testFindLogicalSwitchPortNotFound() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- @SuppressWarnings("unchecked")
- NiciraNvpList<LogicalSwitchPort> lspl = (NiciraNvpList<LogicalSwitchPort>)mock(NiciraNvpList.class);
- when(lspl.getResultCount()).thenReturn(0);
- when(_nvpApi.findLogicalSwitchPortsByUuid("aaaa", "bbbb")).thenReturn(lspl);
-
- FindLogicalSwitchPortAnswer flspa = (FindLogicalSwitchPortAnswer) _resource.executeRequest(new FindLogicalSwitchPortCommand("aaaa", "bbbb"));
- assertFalse(flspa.getResult());
- }
-
- @Test
- public void testFindLogicalSwitchPortApiException() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- when(_nvpApi.findLogicalSwitchPortsByUuid("aaaa", "bbbb")).thenThrow(new NiciraNvpApiException());
-
- FindLogicalSwitchPortAnswer flspa = (FindLogicalSwitchPortAnswer) _resource.executeRequest(new FindLogicalSwitchPortCommand("aaaa", "bbbb"));
- assertFalse(flspa.getResult());
- }
-
- @Test
- public void testCreateLogicalRouter() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- LogicalRouterConfig lrc = mock(LogicalRouterConfig.class);
- LogicalRouterPort lrp = mock(LogicalRouterPort.class);
- LogicalSwitchPort lsp = mock(LogicalSwitchPort.class);
- when(lrc.getUuid()).thenReturn("ccccc");
- when(lrp.getUuid()).thenReturn("ddddd").thenReturn("eeeee");
- when(lsp.getUuid()).thenReturn("fffff");
- when(_nvpApi.createLogicalRouter((LogicalRouterConfig)any())).thenReturn(lrc);
- when(_nvpApi.createLogicalRouterPort(eq("ccccc"), (LogicalRouterPort)any())).thenReturn(lrp);
- when(_nvpApi.createLogicalSwitchPort(eq("bbbbb"), (LogicalSwitchPort)any())).thenReturn(lsp);
- CreateLogicalRouterCommand clrc = new CreateLogicalRouterCommand("aaaaa", 50, "bbbbb", "lrouter", "publiccidr", "nexthop", "internalcidr", "owner");
- CreateLogicalRouterAnswer clra = (CreateLogicalRouterAnswer) _resource.executeRequest(clrc);
-
- assertTrue(clra.getResult());
- assertTrue("ccccc".equals(clra.getLogicalRouterUuid()));
- verify(_nvpApi, atLeast(1)).createLogicalRouterNatRule((String) any(), (NatRule) any());
- }
-
- @Test
- public void testCreateLogicalRouterApiException() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- when(_nvpApi.createLogicalRouter((LogicalRouterConfig)any())).thenThrow(new NiciraNvpApiException());
- CreateLogicalRouterCommand clrc = new CreateLogicalRouterCommand("aaaaa", 50, "bbbbb", "lrouter", "publiccidr", "nexthop", "internalcidr", "owner");
- CreateLogicalRouterAnswer clra = (CreateLogicalRouterAnswer) _resource.executeRequest(clrc);
-
- assertFalse(clra.getResult());
- }
-
- @Test
- public void testCreateLogicalRouterApiExceptionRollbackRouter() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- LogicalRouterConfig lrc = mock(LogicalRouterConfig.class);
- when(lrc.getUuid()).thenReturn("ccccc");
- when(_nvpApi.createLogicalRouter((LogicalRouterConfig)any())).thenReturn(lrc);
- when(_nvpApi.createLogicalRouterPort(eq("ccccc"), (LogicalRouterPort)any())).thenThrow(new NiciraNvpApiException());
- CreateLogicalRouterCommand clrc = new CreateLogicalRouterCommand("aaaaa", 50, "bbbbb", "lrouter", "publiccidr", "nexthop", "internalcidr", "owner");
- CreateLogicalRouterAnswer clra = (CreateLogicalRouterAnswer) _resource.executeRequest(clrc);
-
- assertFalse(clra.getResult());
- verify(_nvpApi, atLeast(1)).deleteLogicalRouter(eq("ccccc"));
- }
-
- @Test
- public void testCreateLogicalRouterApiExceptionRollbackRouterAndSwitchPort() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- LogicalRouterConfig lrc = mock(LogicalRouterConfig.class);
- LogicalRouterPort lrp = mock(LogicalRouterPort.class);
- LogicalSwitchPort lsp = mock(LogicalSwitchPort.class);
- when(lrc.getUuid()).thenReturn("ccccc");
- when(lrp.getUuid()).thenReturn("ddddd").thenReturn("eeeee");
- when(lsp.getUuid()).thenReturn("fffff");
- when(_nvpApi.createLogicalRouter((LogicalRouterConfig)any())).thenReturn(lrc);
- when(_nvpApi.createLogicalRouterPort(eq("ccccc"), (LogicalRouterPort)any())).thenReturn(lrp);
- when(_nvpApi.createLogicalSwitchPort(eq("bbbbb"), (LogicalSwitchPort)any())).thenReturn(lsp);
- when(_nvpApi.createLogicalRouterNatRule((String) any(), (NatRule)any())).thenThrow(new NiciraNvpApiException());
- CreateLogicalRouterCommand clrc = new CreateLogicalRouterCommand("aaaaa", 50, "bbbbb", "lrouter", "publiccidr", "nexthop", "internalcidr", "owner");
- CreateLogicalRouterAnswer clra = (CreateLogicalRouterAnswer) _resource.executeRequest(clrc);
-
- assertFalse(clra.getResult());
- verify(_nvpApi, atLeast(1)).deleteLogicalRouter(eq("ccccc"));
- verify(_nvpApi, atLeast(1)).deleteLogicalSwitchPort(eq("bbbbb"), eq("fffff"));
- }
-
- @Test
- public void testDeleteLogicalRouterApiException() throws ConfigurationException,NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- doThrow(new NiciraNvpApiException()).when(_nvpApi).deleteLogicalRouter(eq("aaaaa"));
- DeleteLogicalRouterAnswer dlspa = (DeleteLogicalRouterAnswer) _resource.executeRequest(new DeleteLogicalRouterCommand("aaaaa"));
- assertFalse(dlspa.getResult());
- }
-
- @Test
- public void testConfigurePublicIpsOnLogicalRouterApiException() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
-
- ConfigurePublicIpsOnLogicalRouterCommand cmd = mock(ConfigurePublicIpsOnLogicalRouterCommand.class);
- @SuppressWarnings("unchecked")
- NiciraNvpList<LogicalRouterPort> list = mock(NiciraNvpList.class);
-
- when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
- when(cmd.getL3GatewayServiceUuid()).thenReturn("bbbbb");
- doThrow(new NiciraNvpApiException()).when(_nvpApi).modifyLogicalRouterPort((String) any(), (LogicalRouterPort) any());
- when(_nvpApi.findLogicalRouterPortByGatewayServiceUuid("aaaaa","bbbbb")).thenReturn(list);
-
- ConfigurePublicIpsOnLogicalRouterAnswer answer =
- (ConfigurePublicIpsOnLogicalRouterAnswer) _resource.executeRequest(cmd);
- assertFalse(answer.getResult());
-
- }
-
- @Test
- public void testConfigureStaticNatRulesOnLogicalRouter() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
- /* StaticNat
- * Outside IP: 11.11.11.11
- * Inside IP: 10.10.10.10
- */
-
- // Mock the command
- ConfigureStaticNatRulesOnLogicalRouterCommand cmd = mock(ConfigureStaticNatRulesOnLogicalRouterCommand.class);
- StaticNatRuleTO rule = new StaticNatRuleTO(1,"11.11.11.11", null, null, "10.10.10.10", null, null, null, false, false);
- List<StaticNatRuleTO> rules = new ArrayList<StaticNatRuleTO>();
- rules.add(rule);
- when(cmd.getRules()).thenReturn(rules);
- when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
-
- // Mock the api find call
- @SuppressWarnings("unchecked")
- NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
- when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
-
- // Mock the api create calls
- NatRule[] rulepair = _resource.generateStaticNatRulePair("10.10.10.10", "11.11.11.11");
- rulepair[0].setUuid(UUID.randomUUID());
- rulepair[1].setUuid(UUID.randomUUID());
- when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenReturn(rulepair[1]);
-
- ConfigureStaticNatRulesOnLogicalRouterAnswer a = (ConfigureStaticNatRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
-
- assertTrue(a.getResult());
- verify(_nvpApi, atLeast(2)).createLogicalRouterNatRule(eq("aaaaa"), argThat(new ArgumentMatcher<NatRule>() {
- @Override
- public boolean matches(Object argument) {
- NatRule rule = (NatRule) argument;
- if (rule.getType().equals("DestinationNatRule") &&
- ((DestinationNatRule)rule).getToDestinationIpAddress().equals("10.10.10.10")) {
- return true;
- }
- if (rule.getType().equals("SourceNatRule") &&
- ((SourceNatRule)rule).getToSourceIpAddressMin().equals("11.11.11.11")) {
- return true;
- }
- return false;
- } }));
- }
-
- @Test
- public void testConfigureStaticNatRulesOnLogicalRouterExistingRules() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
- /* StaticNat
- * Outside IP: 11.11.11.11
- * Inside IP: 10.10.10.10
- */
-
- // Mock the command
- ConfigureStaticNatRulesOnLogicalRouterCommand cmd = mock(ConfigureStaticNatRulesOnLogicalRouterCommand.class);
- StaticNatRuleTO rule = new StaticNatRuleTO(1,"11.11.11.11", null, null, "10.10.10.10", null, null, null, false, false);
- List<StaticNatRuleTO> rules = new ArrayList<StaticNatRuleTO>();
- rules.add(rule);
- when(cmd.getRules()).thenReturn(rules);
- when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
-
- // Mock the api create calls
- NatRule[] rulepair = _resource.generateStaticNatRulePair("10.10.10.10", "11.11.11.11");
- rulepair[0].setUuid(UUID.randomUUID());
- rulepair[1].setUuid(UUID.randomUUID());
- when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenReturn(rulepair[1]);
-
- // Mock the api find call
- @SuppressWarnings("unchecked")
- NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
- when(storedRules.getResultCount()).thenReturn(2);
- when(storedRules.getResults()).thenReturn(Arrays.asList(rulepair));
- when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
-
- ConfigureStaticNatRulesOnLogicalRouterAnswer a = (ConfigureStaticNatRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
-
- assertTrue(a.getResult());
- verify(_nvpApi, never()).createLogicalRouterNatRule(eq("aaaaa"), argThat(new ArgumentMatcher<NatRule>() {
- @Override
- public boolean matches(Object argument) {
- NatRule rule = (NatRule) argument;
- if (rule.getType().equals("DestinationNatRule") &&
- ((DestinationNatRule)rule).getToDestinationIpAddress().equals("10.10.10.10")) {
- return true;
- }
- if (rule.getType().equals("SourceNatRule") &&
- ((SourceNatRule)rule).getToSourceIpAddressMin().equals("11.11.11.11")) {
- return true;
- }
- return false;
- } }));
- }
-
- @Test
- public void testConfigureStaticNatRulesOnLogicalRouterRemoveRules() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
- /* StaticNat
- * Outside IP: 11.11.11.11
- * Inside IP: 10.10.10.10
- */
-
- // Mock the command
- ConfigureStaticNatRulesOnLogicalRouterCommand cmd = mock(ConfigureStaticNatRulesOnLogicalRouterCommand.class);
- StaticNatRuleTO rule = new StaticNatRuleTO(1,"11.11.11.11", null, null, "10.10.10.10", null, null, null, true, false);
- List<StaticNatRuleTO> rules = new ArrayList<StaticNatRuleTO>();
- rules.add(rule);
- when(cmd.getRules()).thenReturn(rules);
- when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
-
- // Mock the api create calls
- NatRule[] rulepair = _resource.generateStaticNatRulePair("10.10.10.10", "11.11.11.11");
- final UUID rule0Uuid = UUID.randomUUID();
- final UUID rule1Uuid = UUID.randomUUID();
- rulepair[0].setUuid(rule0Uuid);
- rulepair[1].setUuid(rule1Uuid);
- when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenReturn(rulepair[1]);
-
- // Mock the api find call
- @SuppressWarnings("unchecked")
- NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
- when(storedRules.getResultCount()).thenReturn(2);
- when(storedRules.getResults()).thenReturn(Arrays.asList(rulepair));
- when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
-
- ConfigureStaticNatRulesOnLogicalRouterAnswer a = (ConfigureStaticNatRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
-
- assertTrue(a.getResult());
- verify(_nvpApi, atLeast(2)).deleteLogicalRouterNatRule(eq("aaaaa"), argThat(new ArgumentMatcher<UUID>() {
- @Override
- public boolean matches(Object argument) {
- UUID uuid = (UUID) argument;
- if (rule0Uuid.equals(uuid) || rule1Uuid.equals(uuid)) {
- return true;
- }
- return false;
- } }));
- }
-
- @Test
- public void testConfigureStaticNatRulesOnLogicalRouterRollback() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
- /* StaticNat
- * Outside IP: 11.11.11.11
- * Inside IP: 10.10.10.10
- */
-
- // Mock the command
- ConfigureStaticNatRulesOnLogicalRouterCommand cmd = mock(ConfigureStaticNatRulesOnLogicalRouterCommand.class);
- StaticNatRuleTO rule = new StaticNatRuleTO(1,"11.11.11.11", null, null, "10.10.10.10", null, null, null, false, false);
- List<StaticNatRuleTO> rules = new ArrayList<StaticNatRuleTO>();
- rules.add(rule);
- when(cmd.getRules()).thenReturn(rules);
- when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
-
- // Mock the api create calls
- NatRule[] rulepair = _resource.generateStaticNatRulePair("10.10.10.10", "11.11.11.11");
- rulepair[0].setUuid(UUID.randomUUID());
- rulepair[1].setUuid(UUID.randomUUID());
- when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenThrow(new NiciraNvpApiException());
-
- // Mock the api find call
- @SuppressWarnings("unchecked")
- NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
- when(storedRules.getResultCount()).thenReturn(0);
- when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
-
- ConfigureStaticNatRulesOnLogicalRouterAnswer a = (ConfigureStaticNatRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
-
- assertFalse(a.getResult());
- verify(_nvpApi, atLeastOnce()).deleteLogicalRouterNatRule(eq("aaaaa"), eq(rulepair[0].getUuid()));
- }
-
- @Test
- public void testConfigurePortForwardingRulesOnLogicalRouter() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
- /* StaticNat
- * Outside IP: 11.11.11.11
- * Inside IP: 10.10.10.10
- */
-
- // Mock the command
- ConfigurePortForwardingRulesOnLogicalRouterCommand cmd = mock(ConfigurePortForwardingRulesOnLogicalRouterCommand.class);
- PortForwardingRuleTO rule = new PortForwardingRuleTO(1,"11.11.11.11", 80, 80, "10.10.10.10", 8080, 8080, "tcp", false, false);
- List<PortForwardingRuleTO> rules = new ArrayList<PortForwardingRuleTO>();
- rules.add(rule);
- when(cmd.getRules()).thenReturn(rules);
- when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
-
- // Mock the api find call
- @SuppressWarnings("unchecked")
- NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
- when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
-
- // Mock the api create calls
- NatRule[] rulepair = _resource.generatePortForwardingRulePair("10.10.10.10", new int[] { 8080, 8080 }, "11.11.11.11", new int[] { 80, 80}, "tcp");
- rulepair[0].setUuid(UUID.randomUUID());
- rulepair[1].setUuid(UUID.randomUUID());
- when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenReturn(rulepair[1]);
-
- ConfigurePortForwardingRulesOnLogicalRouterAnswer a = (ConfigurePortForwardingRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
-
- assertTrue(a.getResult());
- verify(_nvpApi, atLeast(2)).createLogicalRouterNatRule(eq("aaaaa"), argThat(new ArgumentMatcher<NatRule>() {
- @Override
- public boolean matches(Object argument) {
- NatRule rule = (NatRule) argument;
- if (rule.getType().equals("DestinationNatRule") &&
- ((DestinationNatRule)rule).getToDestinationIpAddress().equals("10.10.10.10")) {
- return true;
- }
- if (rule.getType().equals("SourceNatRule") &&
- ((SourceNatRule)rule).getToSourceIpAddressMin().equals("11.11.11.11")) {
- return true;
- }
- return false;
- } }));
- }
-
- @Test
- public void testConfigurePortForwardingRulesOnLogicalRouterExistingRules() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
- /* StaticNat
- * Outside IP: 11.11.11.11
- * Inside IP: 10.10.10.10
- */
-
- // Mock the command
- ConfigurePortForwardingRulesOnLogicalRouterCommand cmd = mock(ConfigurePortForwardingRulesOnLogicalRouterCommand.class);
- PortForwardingRuleTO rule = new PortForwardingRuleTO(1,"11.11.11.11", 80, 80, "10.10.10.10", 8080, 8080, "tcp", false, true);
- List<PortForwardingRuleTO> rules = new ArrayList<PortForwardingRuleTO>();
- rules.add(rule);
- when(cmd.getRules()).thenReturn(rules);
- when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
-
- // Mock the api create calls
- NatRule[] rulepair = _resource.generatePortForwardingRulePair("10.10.10.10", new int[] { 8080, 8080 }, "11.11.11.11", new int[] { 80, 80}, "tcp");
- rulepair[0].setUuid(UUID.randomUUID());
- rulepair[1].setUuid(UUID.randomUUID());
- when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenReturn(rulepair[1]);
-
- // Mock the api find call
- @SuppressWarnings("unchecked")
- NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
- when(storedRules.getResultCount()).thenReturn(2);
- when(storedRules.getResults()).thenReturn(Arrays.asList(rulepair));
- when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
-
- ConfigurePortForwardingRulesOnLogicalRouterAnswer a = (ConfigurePortForwardingRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
-
- assertTrue(a.getResult());
- verify(_nvpApi, never()).createLogicalRouterNatRule(eq("aaaaa"), argThat(new ArgumentMatcher<NatRule>() {
- @Override
- public boolean matches(Object argument) {
- NatRule rule = (NatRule) argument;
- if (rule.getType().equals("DestinationNatRule") &&
- ((DestinationNatRule)rule).getToDestinationIpAddress().equals("10.10.10.10")) {
- return true;
- }
- if (rule.getType().equals("SourceNatRule") &&
- ((SourceNatRule)rule).getToSourceIpAddressMin().equals("11.11.11.11")) {
- return true;
- }
- return false;
- } }));
- }
-
- @Test
- public void testConfigurePortForwardingRulesOnLogicalRouterRemoveRules() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
- /* StaticNat
- * Outside IP: 11.11.11.11
- * Inside IP: 10.10.10.10
- */
-
- // Mock the command
- ConfigurePortForwardingRulesOnLogicalRouterCommand cmd = mock(ConfigurePortForwardingRulesOnLogicalRouterCommand.class);
- PortForwardingRuleTO rule = new PortForwardingRuleTO(1,"11.11.11.11", 80, 80, "10.10.10.10", 8080, 8080, "tcp", true, true);
- List<PortForwardingRuleTO> rules = new ArrayList<PortForwardingRuleTO>();
- rules.add(rule);
- when(cmd.getRules()).thenReturn(rules);
- when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
-
- // Mock the api create calls
- NatRule[] rulepair = _resource.generatePortForwardingRulePair("10.10.10.10", new int[] { 8080, 8080 }, "11.11.11.11", new int[] { 80, 80}, "tcp");
+ NiciraNvpApi _nvpApi = mock(NiciraNvpApi.class);
+ NiciraNvpResource _resource;
+ Map<String,Object> _parameters;
+
+ @Before
+ public void setUp() throws ConfigurationException {
+ _resource = new NiciraNvpResource() {
+ @Override
+ protected NiciraNvpApi createNiciraNvpApi() {
+ return _nvpApi;
+ }
+ };
+
+ _parameters = new HashMap<String,Object>();
+ _parameters.put("name","nvptestdevice");
+ _parameters.put("ip","127.0.0.1");
+ _parameters.put("adminuser","adminuser");
+ _parameters.put("guid", "aaaaa-bbbbb-ccccc");
+ _parameters.put("zoneId", "blublub");
+ _parameters.put("adminpass","adminpass");
+ }
+
+ @Test (expected=ConfigurationException.class)
+ public void resourceConfigureFailure() throws ConfigurationException {
+ _resource.configure("NiciraNvpResource", Collections.<String,Object>emptyMap());
+ }
+
+ @Test
+ public void resourceConfigure() throws ConfigurationException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ verify(_nvpApi).setAdminCredentials("adminuser", "adminpass");
+ verify(_nvpApi).setControllerAddress("127.0.0.1");
+
+ assertTrue("nvptestdevice".equals(_resource.getName()));
+
+ /* Pretty lame test, but here to assure this plugin fails
+ * if the type name ever changes from L2Networking
+ */
+ assertTrue(_resource.getType() == Host.Type.L2Networking);
+ }
+
+ @Test
+ public void testInitialization() throws ConfigurationException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ StartupCommand[] sc = _resource.initialize();
+ assertTrue(sc.length ==1);
+ assertTrue("aaaaa-bbbbb-ccccc".equals(sc[0].getGuid()));
+ assertTrue("nvptestdevice".equals(sc[0].getName()));
+ assertTrue("blublub".equals(sc[0].getDataCenter()));
+ }
+
+ @Test
+ public void testPingCommandStatusOk() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ ControlClusterStatus ccs = mock(ControlClusterStatus.class);
+ when(ccs.getClusterStatus()).thenReturn("stable");
+ when(_nvpApi.getControlClusterStatus()).thenReturn(ccs);
+
+ PingCommand ping = _resource.getCurrentStatus(42);
+ assertTrue(ping != null);
+ assertTrue(ping.getHostId() == 42);
+ assertTrue(ping.getHostType() == Host.Type.L2Networking);
+ }
+
+ @Test
+ public void testPingCommandStatusFail() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ ControlClusterStatus ccs = mock(ControlClusterStatus.class);
+ when(ccs.getClusterStatus()).thenReturn("unstable");
+ when(_nvpApi.getControlClusterStatus()).thenReturn(ccs);
+
+ PingCommand ping = _resource.getCurrentStatus(42);
+ assertTrue(ping == null);
+ }
+
+ @Test
+ public void testPingCommandStatusApiException() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ ControlClusterStatus ccs = mock(ControlClusterStatus.class);
+ when(ccs.getClusterStatus()).thenReturn("unstable");
+ when(_nvpApi.getControlClusterStatus()).thenThrow(new NiciraNvpApiException());
+
+ PingCommand ping = _resource.getCurrentStatus(42);
+ assertTrue(ping == null);
+ }
+
+ @Test
+ public void testRetries() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ LogicalSwitch ls = mock(LogicalSwitch.class);
+ when(ls.getUuid()).thenReturn("cccc").thenReturn("cccc");
+ when(_nvpApi.createLogicalSwitch((LogicalSwitch) any())).thenThrow(new NiciraNvpApiException()).thenThrow(new NiciraNvpApiException()).thenReturn(ls);
+
+ CreateLogicalSwitchCommand clsc = new CreateLogicalSwitchCommand((String)_parameters.get("guid"), "stt", "loigicalswitch","owner");
+ CreateLogicalSwitchAnswer clsa = (CreateLogicalSwitchAnswer) _resource.executeRequest(clsc);
+ assertTrue(clsa.getResult());
+ }
+
+ @Test
+ public void testCreateLogicalSwitch() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ LogicalSwitch ls = mock(LogicalSwitch.class);
+ when(ls.getUuid()).thenReturn("cccc").thenReturn("cccc");
+ when(_nvpApi.createLogicalSwitch((LogicalSwitch) any())).thenReturn(ls);
+
+ CreateLogicalSwitchCommand clsc = new CreateLogicalSwitchCommand((String)_parameters.get("guid"), "stt", "loigicalswitch","owner");
+ CreateLogicalSwitchAnswer clsa = (CreateLogicalSwitchAnswer) _resource.executeRequest(clsc);
+ assertTrue(clsa.getResult());
+ assertTrue("cccc".equals(clsa.getLogicalSwitchUuid()));
+ }
+
+ @Test
+ public void testCreateLogicalSwitchApiException() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ LogicalSwitch ls = mock(LogicalSwitch.class);
+ when(ls.getUuid()).thenReturn("cccc").thenReturn("cccc");
+ when(_nvpApi.createLogicalSwitch((LogicalSwitch) any())).thenThrow(new NiciraNvpApiException());
+
+ CreateLogicalSwitchCommand clsc = new CreateLogicalSwitchCommand((String)_parameters.get("guid"), "stt", "loigicalswitch","owner");
+ CreateLogicalSwitchAnswer clsa = (CreateLogicalSwitchAnswer) _resource.executeRequest(clsc);
+ assertFalse(clsa.getResult());
+ }
+
+ @Test
+ public void testDeleteLogicalSwitch() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ DeleteLogicalSwitchCommand dlsc = new DeleteLogicalSwitchCommand("cccc");
+ DeleteLogicalSwitchAnswer dlsa = (DeleteLogicalSwitchAnswer) _resource.executeRequest(dlsc);
+ assertTrue(dlsa.getResult());
+ }
+
+ @Test
+ public void testDeleteLogicalSwitchApiException() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ doThrow(new NiciraNvpApiException()).when(_nvpApi).deleteLogicalSwitch((String)any());
+
+ DeleteLogicalSwitchCommand dlsc = new DeleteLogicalSwitchCommand("cccc");
+ DeleteLogicalSwitchAnswer dlsa = (DeleteLogicalSwitchAnswer) _resource.executeRequest(dlsc);
+ assertFalse(dlsa.getResult());
+ }
+
+ @Test
+ public void testCreateLogicalSwitchPort() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ LogicalSwitchPort lsp = mock(LogicalSwitchPort.class);
+ when(lsp.getUuid()).thenReturn("eeee");
+ when(_nvpApi.createLogicalSwitchPort(eq("cccc"), (LogicalSwitchPort) any())).thenReturn(lsp);
+
+ CreateLogicalSwitchPortCommand clspc = new CreateLogicalSwitchPortCommand("cccc", "dddd", "owner", "nicname");
+ CreateLogicalSwitchPortAnswer clspa = (CreateLogicalSwitchPortAnswer) _resource.executeRequest(clspc);
+ assertTrue(clspa.getResult());
+ assertTrue("eeee".equals(clspa.getLogicalSwitchPortUuid()));
+
+ }
+
+ @Test
+ public void testCreateLogicalSwitchPortApiExceptionInCreate() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ LogicalSwitchPort lsp = mock(LogicalSwitchPort.class);
+ when(lsp.getUuid()).thenReturn("eeee");
+ when(_nvpApi.createLogicalSwitchPort(eq("cccc"), (LogicalSwitchPort) any())).thenThrow(new NiciraNvpApiException());
+
+ CreateLogicalSwitchPortCommand clspc = new CreateLogicalSwitchPortCommand("cccc", "dddd", "owner", "nicname");
+ CreateLogicalSwitchPortAnswer clspa = (CreateLogicalSwitchPortAnswer) _resource.executeRequest(clspc);
+ assertFalse(clspa.getResult());
+ }
+
+ @Test
+ public void testCreateLogicalSwitchPortApiExceptionInModify() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ LogicalSwitchPort lsp = mock(LogicalSwitchPort.class);
+ when(lsp.getUuid()).thenReturn("eeee");
+ when(_nvpApi.createLogicalSwitchPort(eq("cccc"), (LogicalSwitchPort) any())).thenReturn(lsp);
+ doThrow(new NiciraNvpApiException()).when(_nvpApi).modifyLogicalSwitchPortAttachment((String)any(), (String)any(), (Attachment)any());
+
+
+ CreateLogicalSwitchPortCommand clspc = new CreateLogicalSwitchPortCommand("cccc", "dddd", "owner", "nicname");
+ CreateLogicalSwitchPortAnswer clspa = (CreateLogicalSwitchPortAnswer) _resource.executeRequest(clspc);
+ assertFalse(clspa.getResult());
+ verify(_nvpApi, atLeastOnce()).deleteLogicalSwitchPort((String) any(), (String) any());
+ }
+
+ @Test
+ public void testDeleteLogicalSwitchPortException() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ doThrow(new NiciraNvpApiException()).when(_nvpApi).deleteLogicalSwitchPort((String) any(), (String) any());
+ DeleteLogicalSwitchPortAnswer dlspa = (DeleteLogicalSwitchPortAnswer) _resource.executeRequest(new DeleteLogicalSwitchPortCommand("aaaa","bbbb"));
+ assertFalse(dlspa.getResult());
+ }
+
+ @Test
+ public void testUpdateLogicalSwitchPortException() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ doThrow(new NiciraNvpApiException()).when(_nvpApi).modifyLogicalSwitchPortAttachment((String) any(), (String) any(), (Attachment) any());
+ UpdateLogicalSwitchPortAnswer dlspa = (UpdateLogicalSwitchPortAnswer) _resource.executeRequest(
+ new UpdateLogicalSwitchPortCommand("aaaa","bbbb","cccc","owner","nicname"));
+ assertFalse(dlspa.getResult());
+ }
+
+ @Test
+ public void testFindLogicalSwitchPort() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ @SuppressWarnings("unchecked")
+ NiciraNvpList<LogicalSwitchPort> lspl = mock(NiciraNvpList.class);
+ when(lspl.getResultCount()).thenReturn(1);
+ when(_nvpApi.findLogicalSwitchPortsByUuid("aaaa", "bbbb")).thenReturn(lspl);
+
+ FindLogicalSwitchPortAnswer flspa = (FindLogicalSwitchPortAnswer) _resource.executeRequest(new FindLogicalSwitchPortCommand("aaaa", "bbbb"));
+ assertTrue(flspa.getResult());
+ }
+
+ @Test
+ public void testFindLogicalSwitchPortNotFound() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ @SuppressWarnings("unchecked")
+ NiciraNvpList<LogicalSwitchPort> lspl = mock(NiciraNvpList.class);
+ when(lspl.getResultCount()).thenReturn(0);
+ when(_nvpApi.findLogicalSwitchPortsByUuid("aaaa", "bbbb")).thenReturn(lspl);
+
+ FindLogicalSwitchPortAnswer flspa = (FindLogicalSwitchPortAnswer) _resource.executeRequest(new FindLogicalSwitchPortCommand("aaaa", "bbbb"));
+ assertFalse(flspa.getResult());
+ }
+
+ @Test
+ public void testFindLogicalSwitchPortApiException() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ when(_nvpApi.findLogicalSwitchPortsByUuid("aaaa", "bbbb")).thenThrow(new NiciraNvpApiException());
+
+ FindLogicalSwitchPortAnswer flspa = (FindLogicalSwitchPortAnswer) _resource.executeRequest(new FindLogicalSwitchPortCommand("aaaa", "bbbb"));
+ assertFalse(flspa.getResult());
+ }
+
+ @Test
+ public void testCreateLogicalRouter() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ LogicalRouterConfig lrc = mock(LogicalRouterConfig.class);
+ LogicalRouterPort lrp = mock(LogicalRouterPort.class);
+ LogicalSwitchPort lsp = mock(LogicalSwitchPort.class);
+ when(lrc.getUuid()).thenReturn("ccccc");
+ when(lrp.getUuid()).thenReturn("ddddd").thenReturn("eeeee");
+ when(lsp.getUuid()).thenReturn("fffff");
+ when(_nvpApi.createLogicalRouter((LogicalRouterConfig)any())).thenReturn(lrc);
+ when(_nvpApi.createLogicalRouterPort(eq("ccccc"), (LogicalRouterPort)any())).thenReturn(lrp);
+ when(_nvpApi.createLogicalSwitchPort(eq("bbbbb"), (LogicalSwitchPort)any())).thenReturn(lsp);
+ CreateLogicalRouterCommand clrc = new CreateLogicalRouterCommand("aaaaa", 50, "bbbbb", "lrouter", "publiccidr", "nexthop", "internalcidr", "owner");
+ CreateLogicalRouterAnswer clra = (CreateLogicalRouterAnswer) _resource.executeRequest(clrc);
+
+ assertTrue(clra.getResult());
+ assertTrue("ccccc".equals(clra.getLogicalRouterUuid()));
+ verify(_nvpApi, atLeast(1)).createLogicalRouterNatRule((String) any(), (NatRule) any());
+ }
+
+ @Test
+ public void testCreateLogicalRouterApiException() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ when(_nvpApi.createLogicalRouter((LogicalRouterConfig)any())).thenThrow(new NiciraNvpApiException());
+ CreateLogicalRouterCommand clrc = new CreateLogicalRouterCommand("aaaaa", 50, "bbbbb", "lrouter", "publiccidr", "nexthop", "internalcidr", "owner");
+ CreateLogicalRouterAnswer clra = (CreateLogicalRouterAnswer) _resource.executeRequest(clrc);
+
+ assertFalse(clra.getResult());
+ }
+
+ @Test
+ public void testCreateLogicalRouterApiExceptionRollbackRouter() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ LogicalRouterConfig lrc = mock(LogicalRouterConfig.class);
+ when(lrc.getUuid()).thenReturn("ccccc");
+ when(_nvpApi.createLogicalRouter((LogicalRouterConfig)any())).thenReturn(lrc);
+ when(_nvpApi.createLogicalRouterPort(eq("ccccc"), (LogicalRouterPort)any())).thenThrow(new NiciraNvpApiException());
+ CreateLogicalRouterCommand clrc = new CreateLogicalRouterCommand("aaaaa", 50, "bbbbb", "lrouter", "publiccidr", "nexthop", "internalcidr", "owner");
+ CreateLogicalRouterAnswer clra = (CreateLogicalRouterAnswer) _resource.executeRequest(clrc);
+
+ assertFalse(clra.getResult());
+ verify(_nvpApi, atLeast(1)).deleteLogicalRouter(eq("ccccc"));
+ }
+
+ @Test
+ public void testCreateLogicalRouterApiExceptionRollbackRouterAndSwitchPort() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ LogicalRouterConfig lrc = mock(LogicalRouterConfig.class);
+ LogicalRouterPort lrp = mock(LogicalRouterPort.class);
+ LogicalSwitchPort lsp = mock(LogicalSwitchPort.class);
+ when(lrc.getUuid()).thenReturn("ccccc");
+ when(lrp.getUuid()).thenReturn("ddddd").thenReturn("eeeee");
+ when(lsp.getUuid()).thenReturn("fffff");
+ when(_nvpApi.createLogicalRouter((LogicalRouterConfig)any())).thenReturn(lrc);
+ when(_nvpApi.createLogicalRouterPort(eq("ccccc"), (LogicalRouterPort)any())).thenReturn(lrp);
+ when(_nvpApi.createLogicalSwitchPort(eq("bbbbb"), (LogicalSwitchPort)any())).thenReturn(lsp);
+ when(_nvpApi.createLogicalRouterNatRule((String) any(), (NatRule)any())).thenThrow(new NiciraNvpApiException());
+ CreateLogicalRouterCommand clrc = new CreateLogicalRouterCommand("aaaaa", 50, "bbbbb", "lrouter", "publiccidr", "nexthop", "internalcidr", "owner");
+ CreateLogicalRouterAnswer clra = (CreateLogicalRouterAnswer) _resource.executeRequest(clrc);
+
+ assertFalse(clra.getResult());
+ verify(_nvpApi, atLeast(1)).deleteLogicalRouter(eq("ccccc"));
+ verify(_nvpApi, atLeast(1)).deleteLogicalSwitchPort(eq("bbbbb"), eq("fffff"));
+ }
+
+ @Test
+ public void testDeleteLogicalRouterApiException() throws ConfigurationException,NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ doThrow(new NiciraNvpApiException()).when(_nvpApi).deleteLogicalRouter(eq("aaaaa"));
+ DeleteLogicalRouterAnswer dlspa = (DeleteLogicalRouterAnswer) _resource.executeRequest(new DeleteLogicalRouterCommand("aaaaa"));
+ assertFalse(dlspa.getResult());
+ }
+
+ @Test
+ public void testConfigurePublicIpsOnLogicalRouterApiException() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+
+ ConfigurePublicIpsOnLogicalRouterCommand cmd = mock(ConfigurePublicIpsOnLogicalRouterCommand.class);
+ @SuppressWarnings("unchecked")
+ NiciraNvpList<LogicalRouterPort> list = mock(NiciraNvpList.class);
+
+ when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
+ when(cmd.getL3GatewayServiceUuid()).thenReturn("bbbbb");
+ doThrow(new NiciraNvpApiException()).when(_nvpApi).modifyLogicalRouterPort((String) any(), (LogicalRouterPort) any());
+ when(_nvpApi.findLogicalRouterPortByGatewayServiceUuid("aaaaa","bbbbb")).thenReturn(list);
+
+ ConfigurePublicIpsOnLogicalRouterAnswer answer =
+ (ConfigurePublicIpsOnLogicalRouterAnswer) _resource.executeRequest(cmd);
+ assertFalse(answer.getResult());
+
+ }
+
+ @Test
+ public void testConfigureStaticNatRulesOnLogicalRouter() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+ /* StaticNat
+ * Outside IP: 11.11.11.11
+ * Inside IP: 10.10.10.10
+ */
+
+ // Mock the command
+ ConfigureStaticNatRulesOnLogicalRouterCommand cmd = mock(ConfigureStaticNatRulesOnLogicalRouterCommand.class);
+ StaticNatRuleTO rule = new StaticNatRuleTO(1,"11.11.11.11", null, null, "10.10.10.10", null, null, null, false, false);
+ List<StaticNatRuleTO> rules = new ArrayList<StaticNatRuleTO>();
+ rules.add(rule);
+ when(cmd.getRules()).thenReturn(rules);
+ when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
+
+ // Mock the api find call
+ @SuppressWarnings("unchecked")
+ NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
+ when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
+
+ // Mock the api create calls
+ NatRule[] rulepair = _resource.generateStaticNatRulePair("10.10.10.10", "11.11.11.11");
+ rulepair[0].setUuid(UUID.randomUUID());
+ rulepair[1].setUuid(UUID.randomUUID());
+ when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenReturn(rulepair[1]);
+
+ ConfigureStaticNatRulesOnLogicalRouterAnswer a = (ConfigureStaticNatRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
+
+ assertTrue(a.getResult());
+ verify(_nvpApi, atLeast(2)).createLogicalRouterNatRule(eq("aaaaa"), argThat(new ArgumentMatcher<NatRule>() {
+ @Override
+ public boolean matches(Object argument) {
+ NatRule rule = (NatRule) argument;
+ if (rule.getType().equals("DestinationNatRule") &&
+ ((DestinationNatRule)rule).getToDestinationIpAddress().equals("10.10.10.10")) {
+ return true;
+ }
+ if (rule.getType().equals("SourceNatRule") &&
+ ((SourceNatRule)rule).getToSourceIpAddressMin().equals("11.11.11.11")) {
+ return true;
+ }
+ return false;
+ } }));
+ }
+
+ @Test
+ public void testConfigureStaticNatRulesOnLogicalRouterExistingRules() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+ /* StaticNat
+ * Outside IP: 11.11.11.11
+ * Inside IP: 10.10.10.10
+ */
+
+ // Mock the command
+ ConfigureStaticNatRulesOnLogicalRouterCommand cmd = mock(ConfigureStaticNatRulesOnLogicalRouterCommand.class);
+ StaticNatRuleTO rule = new StaticNatRuleTO(1,"11.11.11.11", null, null, "10.10.10.10", null, null, null, false, false);
+ List<StaticNatRuleTO> rules = new ArrayList<StaticNatRuleTO>();
+ rules.add(rule);
+ when(cmd.getRules()).thenReturn(rules);
+ when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
+
+ // Mock the api create calls
+ NatRule[] rulepair = _resource.generateStaticNatRulePair("10.10.10.10", "11.11.11.11");
+ rulepair[0].setUuid(UUID.randomUUID());
+ rulepair[1].setUuid(UUID.randomUUID());
+ when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenReturn(rulepair[1]);
+
+ // Mock the api find call
+ @SuppressWarnings("unchecked")
+ NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
+ when(storedRules.getResultCount()).thenReturn(2);
+ when(storedRules.getResults()).thenReturn(Arrays.asList(rulepair));
+ when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
+
+ ConfigureStaticNatRulesOnLogicalRouterAnswer a = (ConfigureStaticNatRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
+
+ assertTrue(a.getResult());
+ verify(_nvpApi, never()).createLogicalRouterNatRule(eq("aaaaa"), argThat(new ArgumentMatcher<NatRule>() {
+ @Override
+ public boolean matches(Object argument) {
+ NatRule rule = (NatRule) argument;
+ if (rule.getType().equals("DestinationNatRule") &&
+ ((DestinationNatRule)rule).getToDestinationIpAddress().equals("10.10.10.10")) {
+ return true;
+ }
+ if (rule.getType().equals("SourceNatRule") &&
+ ((SourceNatRule)rule).getToSourceIpAddressMin().equals("11.11.11.11")) {
+ return true;
+ }
+ return false;
+ } }));
+ }
+
+ @Test
+ public void testConfigureStaticNatRulesOnLogicalRouterRemoveRules() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+ /* StaticNat
+ * Outside IP: 11.11.11.11
+ * Inside IP: 10.10.10.10
+ */
+
+ // Mock the command
+ ConfigureStaticNatRulesOnLogicalRouterCommand cmd = mock(ConfigureStaticNatRulesOnLogicalRouterCommand.class);
+ StaticNatRuleTO rule = new StaticNatRuleTO(1,"11.11.11.11", null, null, "10.10.10.10", null, null, null, true, false);
+ List<StaticNatRuleTO> rules = new ArrayList<StaticNatRuleTO>();
+ rules.add(rule);
+ when(cmd.getRules()).thenReturn(rules);
+ when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
+
+ // Mock the api create calls
+ NatRule[] rulepair = _resource.generateStaticNatRulePair("10.10.10.10", "11.11.11.11");
final UUID rule0Uuid = UUID.randomUUID();
final UUID rule1Uuid = UUID.randomUUID();
rulepair[0].setUuid(rule0Uuid);
rulepair[1].setUuid(rule1Uuid);
- when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenReturn(rulepair[1]);
-
- // Mock the api find call
- @SuppressWarnings("unchecked")
- NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
- when(storedRules.getResultCount()).thenReturn(2);
- when(storedRules.getResults()).thenReturn(Arrays.asList(rulepair));
- when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
-
- ConfigurePortForwardingRulesOnLogicalRouterAnswer a = (ConfigurePortForwardingRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
-
- assertTrue(a.getResult());
- verify(_nvpApi, atLeast(2)).deleteLogicalRouterNatRule(eq("aaaaa"), argThat(new ArgumentMatcher<UUID>() {
- @Override
- public boolean matches(Object argument) {
- UUID uuid = (UUID) argument;
- if (rule0Uuid.equals(uuid) || rule1Uuid.equals(uuid)) {
- return true;
- }
- return false;
- } }));
- }
-
- @Test
- public void testConfigurePortForwardingRulesOnLogicalRouterRollback() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
- /* StaticNat
- * Outside IP: 11.11.11.11
- * Inside IP: 10.10.10.10
- */
-
- // Mock the command
- ConfigurePortForwardingRulesOnLogicalRouterCommand cmd = mock(ConfigurePortForwardingRulesOnLogicalRouterCommand.class);
- PortForwardingRuleTO rule = new PortForwardingRuleTO(1,"11.11.11.11", 80, 80, "10.10.10.10", 8080, 8080, "tcp", false, false);
- List<PortForwardingRuleTO> rules = new ArrayList<PortForwardingRuleTO>();
- rules.add(rule);
- when(cmd.getRules()).thenReturn(rules);
- when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
-
- // Mock the api create calls
- NatRule[] rulepair = _resource.generatePortForwardingRulePair("10.10.10.10", new int[] { 8080, 8080 }, "11.11.11.11", new int[] { 80, 80}, "tcp");
- rulepair[0].setUuid(UUID.randomUUID());
- rulepair[1].setUuid(UUID.randomUUID());
- when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenThrow(new NiciraNvpApiException());
-
- // Mock the api find call
- @SuppressWarnings("unchecked")
- NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
- when(storedRules.getResultCount()).thenReturn(0);
- when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
-
- ConfigurePortForwardingRulesOnLogicalRouterAnswer a = (ConfigurePortForwardingRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
-
- assertFalse(a.getResult());
- verify(_nvpApi, atLeastOnce()).deleteLogicalRouterNatRule(eq("aaaaa"), eq(rulepair[0].getUuid()));
- }
-
- @Test
- public void testConfigurePortForwardingRulesOnLogicalRouterPortRange() throws ConfigurationException, NiciraNvpApiException {
- _resource.configure("NiciraNvpResource", _parameters);
- /* StaticNat
- * Outside IP: 11.11.11.11
- * Inside IP: 10.10.10.10
- */
-
- // Mock the command
- ConfigurePortForwardingRulesOnLogicalRouterCommand cmd = mock(ConfigurePortForwardingRulesOnLogicalRouterCommand.class);
- PortForwardingRuleTO rule = new PortForwardingRuleTO(1,"11.11.11.11", 80, 85, "10.10.10.10", 80, 85, "tcp", false, false);
- List<PortForwardingRuleTO> rules = new ArrayList<PortForwardingRuleTO>();
- rules.add(rule);
- when(cmd.getRules()).thenReturn(rules);
- when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
-
- // Mock the api find call
- @SuppressWarnings("unchecked")
- NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
- when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
-
- // Mock the api create calls
- NatRule[] rulepair = _resource.generatePortForwardingRulePair("10.10.10.10", new int[] { 80, 85 }, "11.11.11.11", new int[] { 80, 85}, "tcp");
- rulepair[0].setUuid(UUID.randomUUID());
- rulepair[1].setUuid(UUID.randomUUID());
- when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenReturn(rulepair[1]);
-
- ConfigurePortForwardingRulesOnLogicalRouterAnswer a = (ConfigurePortForwardingRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
-
- // The expected result is false, Nicira does not support port ranges in DNAT
- assertFalse(a.getResult());
-
- }
-
- @Test
- public void testGenerateStaticNatRulePair() {
- NatRule[] rules = _resource.generateStaticNatRulePair("10.10.10.10", "11.11.11.11");
- assertTrue("DestinationNatRule".equals(rules[0].getType()));
- assertTrue("SourceNatRule".equals(rules[1].getType()));
-
- DestinationNatRule dnr = (DestinationNatRule) rules[0];
- assertTrue(dnr.getToDestinationIpAddress().equals("10.10.10.10"));
- assertTrue(dnr.getToDestinationPort() == null);
- assertTrue(dnr.getMatch().getDestinationIpAddresses().equals("11.11.11.11"));
-
- SourceNatRule snr = (SourceNatRule) rules[1];
- assertTrue(snr.getToSourceIpAddressMin().equals("11.11.11.11") && snr.getToSourceIpAddressMax().equals("11.11.11.11"));
- assertTrue(snr.getToSourcePort() == null);
- assertTrue(snr.getMatch().getSourceIpAddresses().equals("10.10.10.10"));
- }
-
- @Test
- public void testGeneratePortForwardingRulePair() {
- NatRule[] rules = _resource.generatePortForwardingRulePair("10.10.10.10", new int[] { 8080, 8080 }, "11.11.11.11", new int[] { 80, 80 }, "tcp" );
- assertTrue("DestinationNatRule".equals(rules[0].getType()));
- assertTrue("SourceNatRule".equals(rules[1].getType()));
-
- DestinationNatRule dnr = (DestinationNatRule) rules[0];
- assertTrue(dnr.getToDestinationIpAddress().equals("10.10.10.10"));
- assertTrue(dnr.getToDestinationPort() == 8080);
- assertTrue(dnr.getMatch().getDestinationIpAddresses().equals("11.11.11.11"));
- assertTrue(dnr.getMatch().getDestinationPort() == 80 );
- assertTrue(dnr.getMatch().getEthertype().equals("IPv4") && dnr.getMatch().getProtocol() == 6);
-
- SourceNatRule snr = (SourceNatRule) rules[1];
- assertTrue(snr.getToSourceIpAddressMin().equals("11.11.11.11") && snr.getToSourceIpAddressMax().equals("11.11.11.11"));
- assertTrue(snr.getToSourcePort() == 80);
- assertTrue(snr.getMatch().getSourceIpAddresses().equals("10.10.10.10"));
- assertTrue(snr.getMatch().getSourcePort() == 8080);
- assertTrue(snr.getMatch().getEthertype().equals("IPv4") && rules[1].getMatch().getProtocol() == 6);
- }
+ when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenReturn(rulepair[1]);
+
+ // Mock the api find call
+ @SuppressWarnings("unchecked")
+ NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
+ when(storedRules.getResultCount()).thenReturn(2);
+ when(storedRules.getResults()).thenReturn(Arrays.asList(rulepair));
+ when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
+
+ ConfigureStaticNatRulesOnLogicalRouterAnswer a = (ConfigureStaticNatRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
+
+ assertTrue(a.getResult());
+ verify(_nvpApi, atLeast(2)).deleteLogicalRouterNatRule(eq("aaaaa"), argThat(new ArgumentMatcher<UUID>() {
+ @Override
+ public boolean matches(Object argument) {
+ UUID uuid = (UUID) argument;
+ if (rule0Uuid.equals(uuid) || rule1Uuid.equals(uuid)) {
+ return true;
+ }
+ return false;
+ } }));
+ }
+
+ @Test
+ public void testConfigureStaticNatRulesOnLogicalRouterRollback() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+ /* StaticNat
+ * Outside IP: 11.11.11.11
+ * Inside IP: 10.10.10.10
+ */
+
+ // Mock the command
+ ConfigureStaticNatRulesOnLogicalRouterCommand cmd = mock(ConfigureStaticNatRulesOnLogicalRouterCommand.class);
+ StaticNatRuleTO rule = new StaticNatRuleTO(1,"11.11.11.11", null, null, "10.10.10.10", null, null, null, false, false);
+ List<StaticNatRuleTO> rules = new ArrayList<StaticNatRuleTO>();
+ rules.add(rule);
+ when(cmd.getRules()).thenReturn(rules);
+ when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
+
+ // Mock the api create calls
+ NatRule[] rulepair = _resource.generateStaticNatRulePair("10.10.10.10", "11.11.11.11");
+ rulepair[0].setUuid(UUID.randomUUID());
+ rulepair[1].setUuid(UUID.randomUUID());
+ when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenThrow(new NiciraNvpApiException());
+
+ // Mock the api find call
+ @SuppressWarnings("unchecked")
+ NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
+ when(storedRules.getResultCount()).thenReturn(0);
+ when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
+
+ ConfigureStaticNatRulesOnLogicalRouterAnswer a = (ConfigureStaticNatRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
+
+ assertFalse(a.getResult());
+ verify(_nvpApi, atLeastOnce()).deleteLogicalRouterNatRule(eq("aaaaa"), eq(rulepair[0].getUuid()));
+ }
+
+ @Test
+ public void testConfigurePortForwardingRulesOnLogicalRouter() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+ /* StaticNat
+ * Outside IP: 11.11.11.11
+ * Inside IP: 10.10.10.10
+ */
+
+ // Mock the command
+ ConfigurePortForwardingRulesOnLogicalRouterCommand cmd = mock(ConfigurePortForwardingRulesOnLogicalRouterCommand.class);
+ PortForwardingRuleTO rule = new PortForwardingRuleTO(1,"11.11.11.11", 80, 80, "10.10.10.10", 8080, 8080, "tcp", false, false);
+ List<PortForwardingRuleTO> rules = new ArrayList<PortForwardingRuleTO>();
+ rules.add(rule);
+ when(cmd.getRules()).thenReturn(rules);
+ when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
+
+ // Mock the api find call
+ @SuppressWarnings("unchecked")
+ NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
+ when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
+
+ // Mock the api create calls
+ NatRule[] rulepair = _resource.generatePortForwardingRulePair("10.10.10.10", new int[] { 8080, 8080 }, "11.11.11.11", new int[] { 80, 80}, "tcp");
+ rulepair[0].setUuid(UUID.randomUUID());
+ rulepair[1].setUuid(UUID.randomUUID());
+ when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenReturn(rulepair[1]);
+
+ ConfigurePortForwardingRulesOnLogicalRouterAnswer a = (ConfigurePortForwardingRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
+
+ assertTrue(a.getResult());
+ verify(_nvpApi, atLeast(2)).createLogicalRouterNatRule(eq("aaaaa"), argThat(new ArgumentMatcher<NatRule>() {
+ @Override
+ public boolean matches(Object argument) {
+ NatRule rule = (NatRule) argument;
+ if (rule.getType().equals("DestinationNatRule") &&
+ ((DestinationNatRule)rule).getToDestinationIpAddress().equals("10.10.10.10")) {
+ return true;
+ }
+ if (rule.getType().equals("SourceNatRule") &&
+ ((SourceNatRule)rule).getToSourceIpAddressMin().equals("11.11.11.11")) {
+ return true;
+ }
+ return false;
+ } }));
+ }
+
+ @Test
+ public void testConfigurePortForwardingRulesOnLogicalRouterExistingRules() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+ /* StaticNat
+ * Outside IP: 11.11.11.11
+ * Inside IP: 10.10.10.10
+ */
+
+ // Mock the command
+ ConfigurePortForwardingRulesOnLogicalRouterCommand cmd = mock(ConfigurePortForwardingRulesOnLogicalRouterCommand.class);
+ PortForwardingRuleTO rule = new PortForwardingRuleTO(1,"11.11.11.11", 80, 80, "10.10.10.10", 8080, 8080, "tcp", false, true);
+ List<PortForwardingRuleTO> rules = new ArrayList<PortForwardingRuleTO>();
+ rules.add(rule);
+ when(cmd.getRules()).thenReturn(rules);
+ when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
+
+ // Mock the api create calls
+ NatRule[] rulepair = _resource.generatePortForwardingRulePair("10.10.10.10", new int[] { 8080, 8080 }, "11.11.11.11", new int[] { 80, 80}, "tcp");
+ rulepair[0].setUuid(UUID.randomUUID());
+ rulepair[1].setUuid(UUID.randomUUID());
+ when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenReturn(rulepair[1]);
+
+ // Mock the api find call
+ @SuppressWarnings("unchecked")
+ NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
+ when(storedRules.getResultCount()).thenReturn(2);
+ when(storedRules.getResults()).thenReturn(Arrays.asList(rulepair));
+ when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
+
+ ConfigurePortForwardingRulesOnLogicalRouterAnswer a = (ConfigurePortForwardingRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
+
+ assertTrue(a.getResult());
+ verify(_nvpApi, never()).createLogicalRouterNatRule(eq("aaaaa"), argThat(new ArgumentMatcher<NatRule>() {
+ @Override
+ public boolean matches(Object argument) {
+ NatRule rule = (NatRule) argument;
+ if (rule.getType().equals("DestinationNatRule") &&
+ ((DestinationNatRule)rule).getToDestinationIpAddress().equals("10.10.10.10")) {
+ return true;
+ }
+ if (rule.getType().equals("SourceNatRule") &&
+ ((SourceNatRule)rule).getToSourceIpAddressMin().equals("11.11.11.11")) {
+ return true;
+ }
+ return false;
+ } }));
+ }
+
+ @Test
+ public void testConfigurePortForwardingRulesOnLogicalRouterRemoveRules() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+ /* StaticNat
+ * Outside IP: 11.11.11.11
+ * Inside IP: 10.10.10.10
+ */
+
+ // Mock the command
+ ConfigurePortForwardingRulesOnLogicalRouterCommand cmd = mock(ConfigurePortForwardingRulesOnLogicalRouterCommand.class);
+ PortForwardingRuleTO rule = new PortForwardingRuleTO(1,"11.11.11.11", 80, 80, "10.10.10.10", 8080, 8080, "tcp", true, true);
+ List<PortForwardingRuleTO> rules = new ArrayList<PortForwardingRuleTO>();
+ rules.add(rule);
+ when(cmd.getRules()).thenReturn(rules);
+ when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
+
+ // Mock the api create calls
+ NatRule[] rulepair = _resource.generatePortForwardingRulePair("10.10.10.10", new int[] { 8080, 8080 }, "11.11.11.11", new int[] { 80, 80}, "tcp");
+ final UUID rule0Uuid = UUID.randomUUID();
+ final UUID rule1Uuid = UUID.randomUUID();
+ rulepair[0].setUuid(rule0Uuid);
+ rulepair[1].setUuid(rule1Uuid);
+ when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenReturn(rulepair[1]);
+
+ // Mock the api find call
+ @SuppressWarnings("unchecked")
+ NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
+ when(storedRules.getResultCount()).thenReturn(2);
+ when(storedRules.getResults()).thenReturn(Arrays.asList(rulepair));
+ when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
+
+ ConfigurePortForwardingRulesOnLogicalRouterAnswer a = (ConfigurePortForwardingRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
+
+ assertTrue(a.getResult());
+ verify(_nvpApi, atLeast(2)).deleteLogicalRouterNatRule(eq("aaaaa"), argThat(new ArgumentMatcher<UUID>() {
+ @Override
+ public boolean matches(Object argument) {
+ UUID uuid = (UUID) argument;
+ if (rule0Uuid.equals(uuid) || rule1Uuid.equals(uuid)) {
+ return true;
+ }
+ return false;
+ } }));
+ }
+
+ @Test
+ public void testConfigurePortForwardingRulesOnLogicalRouterRollback() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+ /* StaticNat
+ * Outside IP: 11.11.11.11
+ * Inside IP: 10.10.10.10
+ */
+
+ // Mock the command
+ ConfigurePortForwardingRulesOnLogicalRouterCommand cmd = mock(ConfigurePortForwardingRulesOnLogicalRouterCommand.class);
+ PortForwardingRuleTO rule = new PortForwardingRuleTO(1,"11.11.11.11", 80, 80, "10.10.10.10", 8080, 8080, "tcp", false, false);
+ List<PortForwardingRuleTO> rules = new ArrayList<PortForwardingRuleTO>();
+ rules.add(rule);
+ when(cmd.getRules()).thenReturn(rules);
+ when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
+
+ // Mock the api create calls
+ NatRule[] rulepair = _resource.generatePortForwardingRulePair("10.10.10.10", new int[] { 8080, 8080 }, "11.11.11.11", new int[] { 80, 80}, "tcp");
+ rulepair[0].setUuid(UUID.randomUUID());
+ rulepair[1].setUuid(UUID.randomUUID());
+ when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenThrow(new NiciraNvpApiException());
+
+ // Mock the api find call
+ @SuppressWarnings("unchecked")
+ NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
+ when(storedRules.getResultCount()).thenReturn(0);
+ when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
+
+ ConfigurePortForwardingRulesOnLogicalRouterAnswer a = (ConfigurePortForwardingRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
+
+ assertFalse(a.getResult());
+ verify(_nvpApi, atLeastOnce()).deleteLogicalRouterNatRule(eq("aaaaa"), eq(rulepair[0].getUuid()));
+ }
+
+ @Test
+ public void testConfigurePortForwardingRulesOnLogicalRouterPortRange() throws ConfigurationException, NiciraNvpApiException {
+ _resource.configure("NiciraNvpResource", _parameters);
+ /* StaticNat
+ * Outside IP: 11.11.11.11
+ * Inside IP: 10.10.10.10
+ */
+
+ // Mock the command
+ ConfigurePortForwardingRulesOnLogicalRouterCommand cmd = mock(ConfigurePortForwardingRulesOnLogicalRouterCommand.class);
+ PortForwardingRuleTO rule = new PortForwardingRuleTO(1,"11.11.11.11", 80, 85, "10.10.10.10", 80, 85, "tcp", false, false);
+ List<PortForwardingRuleTO> rules = new ArrayList<PortForwardingRuleTO>();
+ rules.add(rule);
+ when(cmd.getRules()).thenReturn(rules);
+ when(cmd.getLogicalRouterUuid()).thenReturn("aaaaa");
+
+ // Mock the api find call
+ @SuppressWarnings("unchecked")
+ NiciraNvpList<NatRule> storedRules = mock(NiciraNvpList.class);
+ when(_nvpApi.findNatRulesByLogicalRouterUuid("aaaaa")).thenReturn(storedRules);
+
+ // Mock the api create calls
+ NatRule[] rulepair = _resource.generatePortForwardingRulePair("10.10.10.10", new int[] { 80, 85 }, "11.11.11.11", new int[] { 80, 85}, "tcp");
+ rulepair[0].setUuid(UUID.randomUUID());
+ rulepair[1].setUuid(UUID.randomUUID());
+ when(_nvpApi.createLogicalRouterNatRule(eq("aaaaa"), (NatRule)any())).thenReturn(rulepair[0]).thenReturn(rulepair[1]);
+
+ ConfigurePortForwardingRulesOnLogicalRouterAnswer a = (ConfigurePortForwardingRulesOnLogicalRouterAnswer) _resource.executeRequest(cmd);
+
+ // The expected result is false, Nicira does not support port ranges in DNAT
+ assertFalse(a.getResult());
+
+ }
+
+ @Test
+ public void testGenerateStaticNatRulePair() {
+ NatRule[] rules = _resource.generateStaticNatRulePair("10.10.10.10", "11.11.11.11");
+ assertTrue("DestinationNatRule".equals(rules[0].getType()));
+ assertTrue("SourceNatRule".equals(rules[1].getType()));
+
+ DestinationNatRule dnr = (DestinationNatRule) rules[0];
+ assertTrue(dnr.getToDestinationIpAddress().equals("10.10.10.10"));
+ assertTrue(dnr.getToDestinationPort() == null);
+ assertTrue(dnr.getMatch().getDestinationIpAddresses().equals("11.11.11.11"));
+
+ SourceNatRule snr = (SourceNatRule) rules[1];
+ assertTrue(snr.getToSourceIpAddressMin().equals("11.11.11.11") && snr.getToSourceIpAddressMax().equals("11.11.11.11"));
+ assertTrue(snr.getToSourcePort() == null);
+ assertTrue(snr.getMatch().getSourceIpAddresses().equals("10.10.10.10"));
+ }
+
+ @Test
+ public void testGeneratePortForwardingRulePair() {
+ NatRule[] rules = _resource.generatePortForwardingRulePair("10.10.10.10", new int[] { 8080, 8080 }, "11.11.11.11", new int[] { 80, 80 }, "tcp" );
+ assertTrue("DestinationNatRule".equals(rules[0].getType()));
+ assertTrue("SourceNatRule".equals(rules[1].getType()));
+
+ DestinationNatRule dnr = (DestinationNatRule) rules[0];
+ assertTrue(dnr.getToDestinationIpAddress().equals("10.10.10.10"));
+ assertTrue(dnr.getToDestinationPort() == 8080);
+ assertTrue(dnr.getMatch().getDestinationIpAddresses().equals("11.11.11.11"));
+ assertTrue(dnr.getMatch().getDestinationPort() == 80 );
+ assertTrue(dnr.getMatch().getEthertype().equals("IPv4") && dnr.getMatch().getProtocol() == 6);
+
+ SourceNatRule snr = (SourceNatRule) rules[1];
+ assertTrue(snr.getToSourceIpAddressMin().equals("11.11.11.11") && snr.getToSourceIpAddressMax().equals("11.11.11.11"));
+ assertTrue(snr.getToSourcePort() == 80);
+ assertTrue(snr.getMatch().getSourceIpAddresses().equals("10.10.10.10"));
+ assertTrue(snr.getMatch().getSourcePort() == 8080);
+ assertTrue(snr.getMatch().getEthertype().equals("IPv4") && rules[1].getMatch().getProtocol() == 6);
+ }
}