mirror of https://github.com/apache/cloudstack.git
Adding tests for IpAssocVpc; DeleteIpAlias; DnsMasqConfig
Adding IpAssocVpcCommand to the AbstractConfigItemFacade map
This commit is contained in:
parent
6d7f75e18b
commit
0a1677242a
|
|
@ -30,6 +30,7 @@ import com.cloud.agent.api.routing.DeleteIpAliasCommand;
|
|||
import com.cloud.agent.api.routing.DhcpEntryCommand;
|
||||
import com.cloud.agent.api.routing.DnsMasqConfigCommand;
|
||||
import com.cloud.agent.api.routing.IpAssocCommand;
|
||||
import com.cloud.agent.api.routing.IpAssocVpcCommand;
|
||||
import com.cloud.agent.api.routing.LoadBalancerConfigCommand;
|
||||
import com.cloud.agent.api.routing.NetworkElementCommand;
|
||||
import com.cloud.agent.api.routing.RemoteAccessVpnCfgCommand;
|
||||
|
|
@ -85,6 +86,7 @@ public abstract class AbstractConfigItemFacade {
|
|||
flyweight.put(SetNetworkACLCommand.class, new SetNetworkAclConfigItem());
|
||||
flyweight.put(SetSourceNatCommand.class, new SetSourceNatConfigItem());
|
||||
flyweight.put(IpAssocCommand.class, new IpAssociationConfigItem());
|
||||
flyweight.put(IpAssocVpcCommand.class, new IpAssociationConfigItem());
|
||||
}
|
||||
|
||||
protected String destinationFile;
|
||||
|
|
|
|||
|
|
@ -29,14 +29,26 @@ import java.util.UUID;
|
|||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.cloud.agent.api.routing.DeleteIpAliasCommand;
|
||||
import com.cloud.agent.api.routing.DnsMasqConfigCommand;
|
||||
import com.cloud.agent.api.routing.IpAliasTO;
|
||||
import com.cloud.agent.api.routing.IpAssocVpcCommand;
|
||||
import com.cloud.agent.api.routing.LoadBalancerConfigCommand;
|
||||
import com.cloud.agent.api.routing.NetworkElementCommand;
|
||||
import com.cloud.agent.api.routing.SetPortForwardingRulesVpcCommand;
|
||||
import com.cloud.agent.api.to.DhcpTO;
|
||||
import com.cloud.agent.api.to.IpAddressTO;
|
||||
import com.cloud.agent.api.to.LoadBalancerTO;
|
||||
import com.cloud.agent.api.to.NicTO;
|
||||
import com.cloud.agent.api.to.PortForwardingRuleTO;
|
||||
import com.cloud.agent.resource.virtualnetwork.model.DhcpConfig;
|
||||
import com.cloud.agent.resource.virtualnetwork.model.DhcpConfigEntry;
|
||||
import com.cloud.agent.resource.virtualnetwork.model.ForwardingRule;
|
||||
import com.cloud.agent.resource.virtualnetwork.model.ForwardingRules;
|
||||
import com.cloud.agent.resource.virtualnetwork.model.IpAddress;
|
||||
import com.cloud.agent.resource.virtualnetwork.model.IpAddressAlias;
|
||||
import com.cloud.agent.resource.virtualnetwork.model.IpAliases;
|
||||
import com.cloud.agent.resource.virtualnetwork.model.IpAssociation;
|
||||
import com.cloud.agent.resource.virtualnetwork.model.LoadBalancerRule;
|
||||
import com.cloud.agent.resource.virtualnetwork.model.LoadBalancerRules;
|
||||
import com.cloud.network.lb.LoadBalancingRule.LbDestination;
|
||||
|
|
@ -108,6 +120,93 @@ public class ConfigHelperTest {
|
|||
assertTrue(scriptConfig instanceof ScriptConfigItem);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIpAssocVpc() {
|
||||
|
||||
final IpAssocVpcCommand command = generateIpAssocVpcCommand();
|
||||
|
||||
final List<ConfigItem> config = ConfigHelper.generateCommandCfg(command);
|
||||
assertTrue(config.size() > 0);
|
||||
|
||||
final ConfigItem fileConfig = config.get(0);
|
||||
assertNotNull(fileConfig);
|
||||
assertTrue(fileConfig instanceof FileConfigItem);
|
||||
|
||||
final String fileContents = ((FileConfigItem)fileConfig).getFileContents();
|
||||
assertNotNull(fileContents);
|
||||
|
||||
final IpAssociation jsonClass = gson.fromJson(fileContents, IpAssociation.class);
|
||||
assertNotNull(jsonClass);
|
||||
assertEquals(jsonClass.getType(), "ips");
|
||||
|
||||
final IpAddress [] ips = jsonClass.getIpAddress();
|
||||
assertNotNull(ips);
|
||||
assertTrue(ips.length == 3);
|
||||
assertEquals(ips[0].getPublicIp(), "64.1.1.10");
|
||||
|
||||
final ConfigItem scriptConfig = config.get(1);
|
||||
assertNotNull(scriptConfig);
|
||||
assertTrue(scriptConfig instanceof ScriptConfigItem);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDnsMasqConfig() {
|
||||
|
||||
final DnsMasqConfigCommand command = generateDnsMasqConfigCommand();
|
||||
|
||||
final List<ConfigItem> config = ConfigHelper.generateCommandCfg(command);
|
||||
assertTrue(config.size() > 0);
|
||||
|
||||
final ConfigItem fileConfig = config.get(0);
|
||||
assertNotNull(fileConfig);
|
||||
assertTrue(fileConfig instanceof FileConfigItem);
|
||||
|
||||
final String fileContents = ((FileConfigItem)fileConfig).getFileContents();
|
||||
assertNotNull(fileContents);
|
||||
|
||||
final DhcpConfig jsonClass = gson.fromJson(fileContents, DhcpConfig.class);
|
||||
assertNotNull(jsonClass);
|
||||
assertEquals(jsonClass.getType(), "dhcpconfig");
|
||||
|
||||
final List<DhcpConfigEntry> entries = jsonClass.getEntries();
|
||||
assertNotNull(entries);
|
||||
assertTrue(entries.size() == 2);
|
||||
assertEquals(entries.get(0).getRouterIpAddress(), "10.1.20.2");
|
||||
|
||||
final ConfigItem scriptConfig = config.get(1);
|
||||
assertNotNull(scriptConfig);
|
||||
assertTrue(scriptConfig instanceof ScriptConfigItem);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteIpAlias() {
|
||||
|
||||
final DeleteIpAliasCommand command = generateDeleteIpAliasCommand();
|
||||
|
||||
final List<ConfigItem> config = ConfigHelper.generateCommandCfg(command);
|
||||
assertTrue(config.size() > 0);
|
||||
|
||||
final ConfigItem fileConfig = config.get(0);
|
||||
assertNotNull(fileConfig);
|
||||
assertTrue(fileConfig instanceof FileConfigItem);
|
||||
|
||||
final String fileContents = ((FileConfigItem)fileConfig).getFileContents();
|
||||
assertNotNull(fileContents);
|
||||
|
||||
final IpAliases jsonClass = gson.fromJson(fileContents, IpAliases.class);
|
||||
assertNotNull(jsonClass);
|
||||
assertEquals(jsonClass.getType(), "ipaliases");
|
||||
|
||||
final List<IpAddressAlias> aliases = jsonClass.getAliases();
|
||||
assertNotNull(aliases);
|
||||
assertTrue(aliases.size() == 6);
|
||||
assertEquals(aliases.get(0).getIpAddress(), "169.254.3.10");
|
||||
|
||||
final ConfigItem scriptConfig = config.get(1);
|
||||
assertNotNull(scriptConfig);
|
||||
assertTrue(scriptConfig instanceof ScriptConfigItem);
|
||||
}
|
||||
|
||||
protected LoadBalancerConfigCommand generateLoadBalancerConfigCommand() {
|
||||
final List<LoadBalancerTO> lbs = new ArrayList<>();
|
||||
final List<LbDestination> dests = new ArrayList<>();
|
||||
|
|
@ -137,4 +236,39 @@ public class ConfigHelperTest {
|
|||
|
||||
return cmd;
|
||||
}
|
||||
|
||||
protected DnsMasqConfigCommand generateDnsMasqConfigCommand() {
|
||||
final List<DhcpTO> dhcps = new ArrayList<>();
|
||||
dhcps.add(new DhcpTO("10.1.20.2", "10.1.20.1", "255.255.255.0", "10.1.20.5"));
|
||||
dhcps.add(new DhcpTO("10.1.21.2", "10.1.21.1", "255.255.255.0", "10.1.21.5"));
|
||||
|
||||
final DnsMasqConfigCommand cmd = new DnsMasqConfigCommand(dhcps);
|
||||
cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, ROUTERNAME);
|
||||
return cmd;
|
||||
}
|
||||
|
||||
protected DeleteIpAliasCommand generateDeleteIpAliasCommand() {
|
||||
final List<IpAliasTO> aliases = new ArrayList<>();
|
||||
aliases.add(new IpAliasTO("169.254.3.10", "255.255.255.0", "1"));
|
||||
aliases.add(new IpAliasTO("169.254.3.11", "255.255.255.0", "2"));
|
||||
aliases.add(new IpAliasTO("169.254.3.12", "255.255.255.0", "3"));
|
||||
|
||||
final DeleteIpAliasCommand cmd = new DeleteIpAliasCommand("169.254.10.1", aliases, aliases);
|
||||
cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, ROUTERNAME);
|
||||
return cmd;
|
||||
}
|
||||
|
||||
protected IpAssocVpcCommand generateIpAssocVpcCommand() {
|
||||
final List<IpAddressTO> ips = new ArrayList<IpAddressTO>();
|
||||
ips.add(new IpAddressTO(1, "64.1.1.10", true, true, true, "vlan://64", "64.1.1.1", "255.255.255.0", "01:23:45:67:89:AB", 1000, false));
|
||||
ips.add(new IpAddressTO(2, "64.1.1.11", false, false, true, "vlan://64", "64.1.1.1", "255.255.255.0", "01:23:45:67:89:AB", 1000, false));
|
||||
ips.add(new IpAddressTO(3, "65.1.1.11", true, false, false, "vlan://65", "65.1.1.1", "255.255.255.0", "11:23:45:67:89:AB", 1000, false));
|
||||
|
||||
final IpAddressTO[] ipArray = ips.toArray(new IpAddressTO[ips.size()]);
|
||||
final IpAssocVpcCommand cmd = new IpAssocVpcCommand(ipArray);
|
||||
cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, ROUTERNAME);
|
||||
assertEquals(6, cmd.getAnswersCount()); // AnswersCount is clearly wrong as it doesn't know enough to tell
|
||||
|
||||
return cmd;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue