Add 8 Commands/ConfigItems to new style

Make subclasses extend the abstract class; change accessor of few methods
This commit is contained in:
wilderrodrigues 2014-10-13 20:03:49 +02:00
parent 36a95e7577
commit 7ccd174471
24 changed files with 423 additions and 208 deletions

View File

@ -100,7 +100,7 @@ public class ConfigHelper {
gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create();
}
public static List<ConfigItem> generateCommandCfg(NetworkElementCommand cmd) {
public static List<ConfigItem> generateCommandCfg(final NetworkElementCommand cmd) {
List<ConfigItem> cfg;
if (cmd instanceof SetPortForwardingRulesVpcCommand) {
cfg = generateConfig((SetPortForwardingRulesVpcCommand)cmd); // Migrated
@ -151,85 +151,85 @@ public class ConfigHelper {
}
private static List<ConfigItem> generateConfig(VpnUsersCfgCommand cmd) {
private static List<ConfigItem> generateConfig(final VpnUsersCfgCommand cmd) {
List<VpnUser> vpnUsers = new LinkedList<VpnUser>();
for (VpnUsersCfgCommand.UsernamePassword userpwd : cmd.getUserpwds()) {
final List<VpnUser> vpnUsers = new LinkedList<VpnUser>();
for (final VpnUsersCfgCommand.UsernamePassword userpwd : cmd.getUserpwds()) {
vpnUsers.add(new VpnUser(userpwd.getUsername(), userpwd.getPassword(), userpwd.isAdd()));
}
VpnUserList vpnUserList = new VpnUserList(vpnUsers);
final VpnUserList vpnUserList = new VpnUserList(vpnUsers);
return generateConfigItems(vpnUserList);
}
private static List<ConfigItem> generateConfig(RemoteAccessVpnCfgCommand cmd) {
RemoteAccessVpn remoteAccessVpn = new RemoteAccessVpn(cmd.isCreate(), cmd.getIpRange(), cmd.getPresharedKey(), cmd.getVpnServerIp(), cmd.getLocalIp(), cmd.getLocalCidr(),
private static List<ConfigItem> generateConfig(final RemoteAccessVpnCfgCommand cmd) {
final RemoteAccessVpn remoteAccessVpn = new RemoteAccessVpn(cmd.isCreate(), cmd.getIpRange(), cmd.getPresharedKey(), cmd.getVpnServerIp(), cmd.getLocalIp(), cmd.getLocalCidr(),
cmd.getPublicInterface());
return generateConfigItems(remoteAccessVpn);
}
private static List<ConfigItem> generateConfig(SetFirewallRulesCommand cmd) {
List<FirewallRule> rules = new ArrayList<FirewallRule>();
for (FirewallRuleTO rule : cmd.getRules()) {
FirewallRule fwRule = new FirewallRule(rule.getId(), rule.getSrcVlanTag(), rule.getSrcIp(), rule.getProtocol(), rule.getSrcPortRange(), rule.revoked(),
private static List<ConfigItem> generateConfig(final SetFirewallRulesCommand cmd) {
final List<FirewallRule> rules = new ArrayList<FirewallRule>();
for (final FirewallRuleTO rule : cmd.getRules()) {
final FirewallRule fwRule = new FirewallRule(rule.getId(), rule.getSrcVlanTag(), rule.getSrcIp(), rule.getProtocol(), rule.getSrcPortRange(), rule.revoked(),
rule.isAlreadyAdded(), rule.getSourceCidrList(), rule.getPurpose().toString(), rule.getIcmpType(), rule.getIcmpCode(), rule.getTrafficType().toString(),
rule.getGuestCidr(), rule.isDefaultEgressPolicy());
rules.add(fwRule);
}
FirewallRules ruleSet = new FirewallRules(rules.toArray(new FirewallRule[rules.size()]));
final FirewallRules ruleSet = new FirewallRules(rules.toArray(new FirewallRule[rules.size()]));
return generateConfigItems(ruleSet);
}
private static List<ConfigItem> generateConfig(SetPortForwardingRulesCommand cmd) {
List<ForwardingRule> rules = new ArrayList<ForwardingRule>();
private static List<ConfigItem> generateConfig(final SetPortForwardingRulesCommand cmd) {
final List<ForwardingRule> rules = new ArrayList<ForwardingRule>();
for (PortForwardingRuleTO rule : cmd.getRules()) {
ForwardingRule fwdRule = new ForwardingRule(rule.revoked(), rule.getProtocol().toLowerCase(), rule.getSrcIp(), rule.getStringSrcPortRange(), rule.getDstIp(),
for (final PortForwardingRuleTO rule : cmd.getRules()) {
final ForwardingRule fwdRule = new ForwardingRule(rule.revoked(), rule.getProtocol().toLowerCase(), rule.getSrcIp(), rule.getStringSrcPortRange(), rule.getDstIp(),
rule.getStringDstPortRange());
rules.add(fwdRule);
}
ForwardingRules ruleSet = new ForwardingRules(rules.toArray(new ForwardingRule[rules.size()]));
final ForwardingRules ruleSet = new ForwardingRules(rules.toArray(new ForwardingRule[rules.size()]));
return generateConfigItems(ruleSet);
}
private static List<ConfigItem> generateConfig(SetStaticNatRulesCommand cmd) {
private static List<ConfigItem> generateConfig(final SetStaticNatRulesCommand cmd) {
LinkedList<StaticNatRule> rules = new LinkedList<>();
for (StaticNatRuleTO rule : cmd.getRules()) {
StaticNatRule staticNatRule = new StaticNatRule(rule.revoked(), rule.getProtocol(), rule.getSrcIp(), rule.getStringSrcPortRange(), rule.getDstIp());
final LinkedList<StaticNatRule> rules = new LinkedList<>();
for (final StaticNatRuleTO rule : cmd.getRules()) {
final StaticNatRule staticNatRule = new StaticNatRule(rule.revoked(), rule.getProtocol(), rule.getSrcIp(), rule.getStringSrcPortRange(), rule.getDstIp());
rules.add(staticNatRule);
}
StaticNatRules staticNatRules = new StaticNatRules(rules);
final StaticNatRules staticNatRules = new StaticNatRules(rules);
return generateConfigItems(staticNatRules);
}
private static List<ConfigItem> generateConfig(LoadBalancerConfigCommand cmd) {
LinkedList<ConfigItem> cfg = new LinkedList<>();
private static List<ConfigItem> generateConfig(final LoadBalancerConfigCommand cmd) {
final LinkedList<ConfigItem> cfg = new LinkedList<>();
String routerIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
LoadBalancerConfigurator cfgtr = new HAProxyConfigurator();
final String routerIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
final LoadBalancerConfigurator cfgtr = new HAProxyConfigurator();
String[] config = cfgtr.generateConfiguration(cmd);
StringBuffer buff = new StringBuffer();
final String[] config = cfgtr.generateConfiguration(cmd);
final StringBuffer buff = new StringBuffer();
for (int i = 0; i < config.length; i++) {
buff.append(config[i]);
buff.append("\n");
}
String tmpCfgFilePath = "/etc/haproxy/";
String tmpCfgFileName = "haproxy.cfg.new." + String.valueOf(System.currentTimeMillis());
final String tmpCfgFilePath = "/etc/haproxy/";
final String tmpCfgFileName = "haproxy.cfg.new." + String.valueOf(System.currentTimeMillis());
cfg.add(new FileConfigItem(tmpCfgFilePath, tmpCfgFileName, buff.toString()));
String[][] rules = cfgtr.generateFwRules(cmd);
final String[][] rules = cfgtr.generateFwRules(cmd);
String[] addRules = rules[LoadBalancerConfigurator.ADD];
String[] removeRules = rules[LoadBalancerConfigurator.REMOVE];
String[] statRules = rules[LoadBalancerConfigurator.STATS];
final String[] addRules = rules[LoadBalancerConfigurator.ADD];
final String[] removeRules = rules[LoadBalancerConfigurator.REMOVE];
final String[] statRules = rules[LoadBalancerConfigurator.STATS];
String args = " -f " + tmpCfgFilePath + tmpCfgFileName;
StringBuilder sb = new StringBuilder();
@ -269,126 +269,126 @@ public class ConfigHelper {
return cfg;
}
private static List<ConfigItem> generateConfig(SavePasswordCommand cmd) {
VmPassword vmPassword = new VmPassword(cmd.getVmIpAddress(), cmd.getPassword());
private static List<ConfigItem> generateConfig(final SavePasswordCommand cmd) {
final VmPassword vmPassword = new VmPassword(cmd.getVmIpAddress(), cmd.getPassword());
return generateConfigItems(vmPassword);
}
private static List<ConfigItem> generateConfig(DhcpEntryCommand cmd) {
VmDhcpConfig vmDhcpConfig = new VmDhcpConfig(cmd.getVmName(), cmd.getVmMac(), cmd.getVmIpAddress(), cmd.getVmIp6Address(), cmd.getDuid(), cmd.getDefaultDns(),
private static List<ConfigItem> generateConfig(final DhcpEntryCommand cmd) {
final VmDhcpConfig vmDhcpConfig = new VmDhcpConfig(cmd.getVmName(), cmd.getVmMac(), cmd.getVmIpAddress(), cmd.getVmIp6Address(), cmd.getDuid(), cmd.getDefaultDns(),
cmd.getDefaultRouter(), cmd.getStaticRoutes(), cmd.isDefault());
return generateConfigItems(vmDhcpConfig);
}
private static List<ConfigItem> generateConfig(CreateIpAliasCommand cmd) {
List<IpAddressAlias> ipAliases = new LinkedList<IpAddressAlias>();
List<IpAliasTO> ipAliasTOs = cmd.getIpAliasList();
for (IpAliasTO ipaliasto : ipAliasTOs) {
IpAddressAlias alias = new IpAddressAlias(false, ipaliasto.getRouterip(), ipaliasto.getNetmask(), Long.parseLong(ipaliasto.getAlias_count()));
private static List<ConfigItem> generateConfig(final CreateIpAliasCommand cmd) {
final List<IpAddressAlias> ipAliases = new LinkedList<IpAddressAlias>();
final List<IpAliasTO> ipAliasTOs = cmd.getIpAliasList();
for (final IpAliasTO ipaliasto : ipAliasTOs) {
final IpAddressAlias alias = new IpAddressAlias(false, ipaliasto.getRouterip(), ipaliasto.getNetmask(), Long.parseLong(ipaliasto.getAlias_count()));
ipAliases.add(alias);
}
IpAliases ipAliasList = new IpAliases(ipAliases);
final IpAliases ipAliasList = new IpAliases(ipAliases);
return generateConfigItems(ipAliasList);
}
private static List<ConfigItem> generateConfig(DeleteIpAliasCommand cmd) {
List<IpAddressAlias> ipAliases = new LinkedList<IpAddressAlias>();
private static List<ConfigItem> generateConfig(final DeleteIpAliasCommand cmd) {
final List<IpAddressAlias> ipAliases = new LinkedList<IpAddressAlias>();
List<IpAliasTO> revokedIpAliasTOs = cmd.getDeleteIpAliasTos();
for (IpAliasTO ipAliasTO : revokedIpAliasTOs) {
IpAddressAlias alias = new IpAddressAlias(true, ipAliasTO.getRouterip(), ipAliasTO.getNetmask(), Long.parseLong(ipAliasTO.getAlias_count()));
final List<IpAliasTO> revokedIpAliasTOs = cmd.getDeleteIpAliasTos();
for (final IpAliasTO ipAliasTO : revokedIpAliasTOs) {
final IpAddressAlias alias = new IpAddressAlias(true, ipAliasTO.getRouterip(), ipAliasTO.getNetmask(), Long.parseLong(ipAliasTO.getAlias_count()));
ipAliases.add(alias);
}
List<IpAliasTO> activeIpAliasTOs = cmd.getCreateIpAliasTos();
for (IpAliasTO ipAliasTO : activeIpAliasTOs) {
IpAddressAlias alias = new IpAddressAlias(false, ipAliasTO.getRouterip(), ipAliasTO.getNetmask(), Long.parseLong(ipAliasTO.getAlias_count()));
final List<IpAliasTO> activeIpAliasTOs = cmd.getCreateIpAliasTos();
for (final IpAliasTO ipAliasTO : activeIpAliasTOs) {
final IpAddressAlias alias = new IpAddressAlias(false, ipAliasTO.getRouterip(), ipAliasTO.getNetmask(), Long.parseLong(ipAliasTO.getAlias_count()));
ipAliases.add(alias);
}
IpAliases ipAliasList = new IpAliases(ipAliases);
final IpAliases ipAliasList = new IpAliases(ipAliases);
return generateConfigItems(ipAliasList);
}
private static List<ConfigItem> generateConfig(DnsMasqConfigCommand cmd) {
LinkedList<DhcpConfigEntry> entries = new LinkedList<DhcpConfigEntry>();
private static List<ConfigItem> generateConfig(final DnsMasqConfigCommand cmd) {
final LinkedList<DhcpConfigEntry> entries = new LinkedList<DhcpConfigEntry>();
for (DhcpTO dhcpTo : cmd.getIps()) {
DhcpConfigEntry entry = new DhcpConfigEntry(dhcpTo.getRouterIp(), dhcpTo.getGateway(), dhcpTo.getNetmask(), dhcpTo.getStartIpOfSubnet());
for (final DhcpTO dhcpTo : cmd.getIps()) {
final DhcpConfigEntry entry = new DhcpConfigEntry(dhcpTo.getRouterIp(), dhcpTo.getGateway(), dhcpTo.getNetmask(), dhcpTo.getStartIpOfSubnet());
entries.add(entry);
}
return generateConfigItems(new DhcpConfig(entries));
}
private static List<ConfigItem> generateConfig(BumpUpPriorityCommand cmd) {
LinkedList<ConfigItem> cfg = new LinkedList<>();
private static List<ConfigItem> generateConfig(final BumpUpPriorityCommand cmd) {
final LinkedList<ConfigItem> cfg = new LinkedList<>();
cfg.add(new ScriptConfigItem(VRScripts.RVR_BUMPUP_PRI, null));
return cfg;
}
private static List<ConfigItem> generateConfig(VmDataCommand cmd) {
VmData vmData = new VmData(cmd.getVmIpAddress(), cmd.getVmData());
private static List<ConfigItem> generateConfig(final VmDataCommand cmd) {
final VmData vmData = new VmData(cmd.getVmIpAddress(), cmd.getVmData());
return generateConfigItems(vmData);
}
private static List<ConfigItem> generateConfig(Site2SiteVpnCfgCommand cmd) {
Site2SiteVpn site2siteVpn = new Site2SiteVpn(cmd.getLocalPublicIp(), cmd.getLocalGuestCidr(), cmd.getLocalPublicGateway(), cmd.getPeerGatewayIp(),
private static List<ConfigItem> generateConfig(final Site2SiteVpnCfgCommand cmd) {
final Site2SiteVpn site2siteVpn = new Site2SiteVpn(cmd.getLocalPublicIp(), cmd.getLocalGuestCidr(), cmd.getLocalPublicGateway(), cmd.getPeerGatewayIp(),
cmd.getPeerGuestCidrList(), cmd.getEspPolicy(), cmd.getIkePolicy(), cmd.getIpsecPsk(), cmd.getIkeLifetime(), cmd.getEspLifetime(), cmd.isCreate(), cmd.getDpd(),
cmd.isPassive());
return generateConfigItems(site2siteVpn);
}
private static List<ConfigItem> generateConfig(SetMonitorServiceCommand cmd) {
MonitorService monitorService = new MonitorService(cmd.getConfiguration(), cmd.getAccessDetail(NetworkElementCommand.ROUTER_MONITORING_ENABLE));
private static List<ConfigItem> generateConfig(final SetMonitorServiceCommand cmd) {
final MonitorService monitorService = new MonitorService(cmd.getConfiguration(), cmd.getAccessDetail(NetworkElementCommand.ROUTER_MONITORING_ENABLE));
return generateConfigItems(monitorService);
}
private static List<ConfigItem> generateConfig(SetupGuestNetworkCommand cmd) {
NicTO nic = cmd.getNic();
String routerGIP = cmd.getAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP);
String gateway = cmd.getAccessDetail(NetworkElementCommand.GUEST_NETWORK_GATEWAY);
String cidr = Long.toString(NetUtils.getCidrSize(nic.getNetmask()));
String netmask = nic.getNetmask();
String domainName = cmd.getNetworkDomain();
private static List<ConfigItem> generateConfig(final SetupGuestNetworkCommand cmd) {
final NicTO nic = cmd.getNic();
final String routerGIP = cmd.getAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP);
final String gateway = cmd.getAccessDetail(NetworkElementCommand.GUEST_NETWORK_GATEWAY);
final String cidr = Long.toString(NetUtils.getCidrSize(nic.getNetmask()));
final String netmask = nic.getNetmask();
final String domainName = cmd.getNetworkDomain();
String dns = cmd.getDefaultDns1();
if (dns == null || dns.isEmpty()) {
dns = cmd.getDefaultDns2();
} else {
String dns2 = cmd.getDefaultDns2();
final String dns2 = cmd.getDefaultDns2();
if (dns2 != null && !dns2.isEmpty()) {
dns += "," + dns2;
}
}
GuestNetwork guestNetwork = new GuestNetwork(cmd.isAdd(), nic.getMac(), "eth" + nic.getDeviceId(), routerGIP, netmask, gateway,
final GuestNetwork guestNetwork = new GuestNetwork(cmd.isAdd(), nic.getMac(), "eth" + nic.getDeviceId(), routerGIP, netmask, gateway,
cidr, dns, domainName);
return generateConfigItems(guestNetwork);
}
private static List<ConfigItem> generateConfig(SetNetworkACLCommand cmd) {
String privateGw = cmd.getAccessDetail(NetworkElementCommand.VPC_PRIVATE_GATEWAY);
private static List<ConfigItem> generateConfig(final SetNetworkACLCommand cmd) {
final String privateGw = cmd.getAccessDetail(NetworkElementCommand.VPC_PRIVATE_GATEWAY);
String[][] rules = cmd.generateFwRules();
String[] aclRules = rules[0];
NicTO nic = cmd.getNic();
String dev = "eth" + nic.getDeviceId();
String netmask = Long.toString(NetUtils.getCidrSize(nic.getNetmask()));
final String[][] rules = cmd.generateFwRules();
final String[] aclRules = rules[0];
final NicTO nic = cmd.getNic();
final String dev = "eth" + nic.getDeviceId();
final String netmask = Long.toString(NetUtils.getCidrSize(nic.getNetmask()));
List<AclRule> ingressRules = new ArrayList<AclRule>();
List<AclRule> egressRules = new ArrayList<AclRule>();
final List<AclRule> ingressRules = new ArrayList<AclRule>();
final List<AclRule> egressRules = new ArrayList<AclRule>();
for (int i = 0; i < aclRules.length; i++) {
AclRule aclRule;
String[] ruleParts = aclRules[i].split(":");
final String[] ruleParts = aclRules[i].split(":");
switch (ruleParts[1].toLowerCase()) {
case "icmp":
aclRule = new IcmpAclRule(ruleParts[4], "ACCEPT".equals(ruleParts[5]), Integer.parseInt(ruleParts[2]), Integer.parseInt(ruleParts[3]));
@ -412,14 +412,14 @@ public class ConfigHelper {
}
}
NetworkACL networkACL = new NetworkACL(dev, nic.getMac(), privateGw != null, nic.getIp(), netmask, ingressRules.toArray(new AclRule[ingressRules.size()]),
final NetworkACL networkACL = new NetworkACL(dev, nic.getMac(), privateGw != null, nic.getIp(), netmask, ingressRules.toArray(new AclRule[ingressRules.size()]),
egressRules.toArray(new AclRule[egressRules.size()]));
return generateConfigItems(networkACL);
}
private static List<ConfigItem> generateConfig(SetSourceNatCommand cmd) {
LinkedList<ConfigItem> cfg = new LinkedList<>();
private static List<ConfigItem> generateConfig(final SetSourceNatCommand cmd) {
final LinkedList<ConfigItem> cfg = new LinkedList<>();
/* FIXME This seems useless as we already pass this info with the ipassoc
* IpAddressTO pubIP = cmd.getIpAddress();
@ -435,14 +435,14 @@ public class ConfigHelper {
return cfg;
}
private static List<ConfigItem> generateConfig(SetStaticRouteCommand cmd) {
LinkedList<StaticRoute> routes = new LinkedList<>();
private static List<ConfigItem> generateConfig(final SetStaticRouteCommand cmd) {
final LinkedList<StaticRoute> routes = new LinkedList<>();
for (StaticRouteProfile profile : cmd.getStaticRoutes()) {
String cidr = profile.getCidr();
String subnet = NetUtils.getCidrSubNet(cidr);
String cidrSize = cidr.split("\\/")[1];
boolean keep = profile.getState() == com.cloud.network.vpc.StaticRoute.State.Active || profile.getState() == com.cloud.network.vpc.StaticRoute.State.Add;
for (final StaticRouteProfile profile : cmd.getStaticRoutes()) {
final String cidr = profile.getCidr();
final String subnet = NetUtils.getCidrSubNet(cidr);
final String cidrSize = cidr.split("\\/")[1];
final boolean keep = profile.getState() == com.cloud.network.vpc.StaticRoute.State.Active || profile.getState() == com.cloud.network.vpc.StaticRoute.State.Add;
routes.add(new StaticRoute(!keep, profile.getIp4Address(), profile.getGateway(), subnet + "/" + cidrSize));
}
@ -450,23 +450,23 @@ public class ConfigHelper {
return generateConfigItems(new StaticRoutes(routes));
}
private static List<ConfigItem> generateConfig(IpAssocCommand cmd) {
private static List<ConfigItem> generateConfig(final IpAssocCommand cmd) {
new LinkedList<>();
List<IpAddress> ips = new LinkedList<IpAddress>();
final List<IpAddress> ips = new LinkedList<IpAddress>();
for (IpAddressTO ip : cmd.getIpAddresses()) {
IpAddress ipAddress = new IpAddress(ip.getPublicIp(), ip.isSourceNat(), ip.isAdd(), ip.isOneToOneNat(), ip.isFirstIP(), ip.getVlanGateway(), ip.getVlanNetmask(),
for (final IpAddressTO ip : cmd.getIpAddresses()) {
final IpAddress ipAddress = new IpAddress(ip.getPublicIp(), ip.isSourceNat(), ip.isAdd(), ip.isOneToOneNat(), ip.isFirstIP(), ip.getVlanGateway(), ip.getVlanNetmask(),
ip.getVifMacAddress(), ip.getNicDevId(), ip.isNewNic());
ips.add(ipAddress);
}
IpAssociation ipAssociation = new IpAssociation(ips.toArray(new IpAddress[ips.size()]));
final IpAssociation ipAssociation = new IpAssociation(ips.toArray(new IpAddress[ips.size()]));
return generateConfigItems(ipAssociation);
}
private static List<ConfigItem> generateConfigItems(ConfigBase configuration) {
List<ConfigItem> cfg = new LinkedList<>();
private static List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
final List<ConfigItem> cfg = new LinkedList<>();
String destinationFile;
switch (configuration.getType()) {
@ -521,10 +521,10 @@ public class ConfigHelper {
throw new CloudRuntimeException("Unable to process the configuration for " + configuration.getType());
}
ConfigItem configFile = new FileConfigItem(VRScripts.CONFIG_PERSIST_LOCATION, destinationFile, gson.toJson(configuration));
final ConfigItem configFile = new FileConfigItem(VRScripts.CONFIG_PERSIST_LOCATION, destinationFile, gson.toJson(configuration));
cfg.add(configFile);
ConfigItem updateCommand = new ScriptConfigItem(VRScripts.UPDATE_CONFIG, destinationFile);
final ConfigItem updateCommand = new ScriptConfigItem(VRScripts.UPDATE_CONFIG, destinationFile);
cfg.add(updateCommand);
return cfg;

View File

@ -20,60 +20,60 @@
package com.cloud.agent.resource.virtualnetwork;
public class VRScripts {
protected final static String CONFIG_PERSIST_LOCATION = "/var/cache/cloud/";
protected final static String IP_ASSOCIATION_CONFIG = "ip_associations.json";
protected final static String GUEST_NETWORK_CONFIG = "guest_network.json";
protected final static String NETWORK_ACL_CONFIG = "network_acl.json";
protected final static String VM_METADATA_CONFIG = "vm_metadata.json";
protected final static String VM_DHCP_CONFIG = "vm_dhcp_entry.json";
protected final static String VM_PASSWORD_CONFIG = "vm_password.json";
protected static final String FORWARDING_RULES_CONFIG = "forwarding_rules.json";
protected static final String FIREWALL_RULES_CONFIG = "firewall_rules.json";
protected static final String VPN_USER_LIST_CONFIG = "vpn_user_list.json";
protected static final String STATICNAT_RULES_CONFIG = "staticnat_rules.json";
protected static final String SITE_2_SITE_VPN_CONFIG = "site_2_site_vpn.json";
protected static final String STATIC_ROUTES_CONFIG = "static_routes.json";
protected static final String REMOTE_ACCESS_VPN_CONFIG = "remote_access_vpn.json";
protected static final String MONITOR_SERVICE_CONFIG = "monitor_service.json";
protected static final String DHCP_CONFIG = "dhcp.json";
protected static final String IP_ALIAS_CONFIG = "ip_aliases.json";
public final static String CONFIG_PERSIST_LOCATION = "/var/cache/cloud/";
public final static String IP_ASSOCIATION_CONFIG = "ip_associations.json";
public final static String GUEST_NETWORK_CONFIG = "guest_network.json";
public final static String NETWORK_ACL_CONFIG = "network_acl.json";
public final static String VM_METADATA_CONFIG = "vm_metadata.json";
public final static String VM_DHCP_CONFIG = "vm_dhcp_entry.json";
public final static String VM_PASSWORD_CONFIG = "vm_password.json";
public static final String FORWARDING_RULES_CONFIG = "forwarding_rules.json";
public static final String FIREWALL_RULES_CONFIG = "firewall_rules.json";
public static final String VPN_USER_LIST_CONFIG = "vpn_user_list.json";
public static final String STATICNAT_RULES_CONFIG = "staticnat_rules.json";
public static final String SITE_2_SITE_VPN_CONFIG = "site_2_site_vpn.json";
public static final String STATIC_ROUTES_CONFIG = "static_routes.json";
public static final String REMOTE_ACCESS_VPN_CONFIG = "remote_access_vpn.json";
public static final String MONITOR_SERVICE_CONFIG = "monitor_service.json";
public static final String DHCP_CONFIG = "dhcp.json";
public static final String IP_ALIAS_CONFIG = "ip_aliases.json";
protected final static String CONFIG_CACHE_LOCATION = "/var/cache/cloud/";
protected final static int DEFAULT_EXECUTEINVR_TIMEOUT = 120; //Seconds
public final static String CONFIG_CACHE_LOCATION = "/var/cache/cloud/";
public final static int DEFAULT_EXECUTEINVR_TIMEOUT = 120; //Seconds
// New scripts for use with chef
protected static final String UPDATE_CONFIG = "update_config.py";
public static final String UPDATE_CONFIG = "update_config.py";
protected static final String S2SVPN_CHECK = "checkbatchs2svpn.sh";
protected static final String S2SVPN_IPSEC = "ipsectunnel.sh";
protected static final String DHCP = "edithosts.sh";
protected static final String DNSMASQ_CONFIG = "dnsmasq.sh";
protected static final String FIREWALL_EGRESS = "firewall_egress.sh";
protected static final String FIREWALL_INGRESS = "firewall_ingress.sh";
protected static final String FIREWALL_NAT = "firewall_nat.sh";
protected static final String IPALIAS_CREATE = "createIpAlias.sh";
protected static final String IPALIAS_DELETE = "deleteIpAlias.sh";
protected static final String IPASSOC = "ipassoc.sh";
protected static final String LB = "loadbalancer.sh";
protected static final String MONITOR_SERVICE = "monitor_service.sh";
protected static final String ROUTER_ALERTS = "getRouterAlerts.sh";
protected static final String PASSWORD = "savepassword.sh";
protected static final String RVR_CHECK = "checkrouter.sh";
protected static final String RVR_BUMPUP_PRI = "bumpup_priority.sh";
protected static final String VMDATA = "vmdata.py";
protected static final String VERSION = "get_template_version.sh";
protected static final String VPC_ACL = "vpc_acl.sh";
protected static final String VPC_GUEST_NETWORK = "vpc_guestnw.sh";
protected static final String VPC_IPASSOC = "vpc_ipassoc.sh";
protected static final String VPC_LB = "vpc_loadbalancer.sh";
protected static final String VPC_PRIVATEGW = "vpc_privateGateway.sh";
protected static final String VPC_PRIVATEGW_ACL = "vpc_privategw_acl.sh";
protected static final String VPC_PORTFORWARDING = "vpc_portforwarding.sh";
protected static final String VPC_SOURCE_NAT = "vpc_snat.sh";
protected static final String VPC_STATIC_NAT = "vpc_staticnat.sh";
protected static final String VPC_STATIC_ROUTE = "vpc_staticroute.sh";
protected static final String VPN_L2TP = "vpn_l2tp.sh";
public static final String S2SVPN_CHECK = "checkbatchs2svpn.sh";
public static final String S2SVPN_IPSEC = "ipsectunnel.sh";
public static final String DHCP = "edithosts.sh";
public static final String DNSMASQ_CONFIG = "dnsmasq.sh";
public static final String FIREWALL_EGRESS = "firewall_egress.sh";
public static final String FIREWALL_INGRESS = "firewall_ingress.sh";
public static final String FIREWALL_NAT = "firewall_nat.sh";
public static final String IPALIAS_CREATE = "createipAlias.sh";
public static final String IPALIAS_DELETE = "deleteipAlias.sh";
public static final String IPASSOC = "ipassoc.sh";
public static final String LB = "loadbalancer.sh";
public static final String MONITOR_SERVICE = "monitor_service.sh";
public static final String ROUTER_ALERTS = "getRouterAlerts.sh";
public static final String PASSWORD = "savepassword.sh";
public static final String RVR_CHECK = "checkrouter.sh";
public static final String RVR_BUMPUP_PRI = "bumpup_priority.sh";
public static final String VMDATA = "vmdata.py";
public static final String VERSION = "get_template_version.sh";
public static final String VPC_ACL = "vpc_acl.sh";
public static final String VPC_GUEST_NETWORK = "vpc_guestnw.sh";
public static final String VPC_IPASSOC = "vpc_ipassoc.sh";
public static final String VPC_LB = "vpc_loadbalancer.sh";
public static final String VPC_PRIVATEGW = "vpc_privateGateway.sh";
public static final String VPC_PRIVATEGW_ACL = "vpc_privategw_acl.sh";
public static final String VPC_PORTFORWARDING = "vpc_portforwarding.sh";
public static final String VPC_SOURCE_NAT = "vpc_snat.sh";
public static final String VPC_STATIC_NAT = "vpc_staticnat.sh";
public static final String VPC_STATIC_ROUTE = "vpc_staticroute.sh";
public static final String VPN_L2TP = "vpn_l2tp.sh";
protected static final String VR_CFG = "vr_cfg.sh";
public static final String VR_CFG = "vr_cfg.sh";
}

View File

@ -19,14 +19,39 @@
package com.cloud.agent.resource.virtualnetwork.facade;
import java.util.LinkedList;
import java.util.List;
import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.FileConfigItem;
import com.cloud.agent.resource.virtualnetwork.ScriptConfigItem;
import com.cloud.agent.resource.virtualnetwork.VRScripts;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public abstract class AbstractConfigItemFacade {
public abstract List<ConfigItem> generateConfig(NetworkElementCommand cmd);
protected final static Gson gson;
public abstract List<ConfigItem> generateConfigItems(ConfigBase configuration);
static {
gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create();
}
protected String destinationFile;
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
final List<ConfigItem> cfg = new LinkedList<>();
final ConfigItem configFile = new FileConfigItem(VRScripts.CONFIG_PERSIST_LOCATION, destinationFile, gson.toJson(configuration));
cfg.add(configFile);
final ConfigItem updateCommand = new ScriptConfigItem(VRScripts.UPDATE_CONFIG, destinationFile);
cfg.add(updateCommand);
return cfg;
}
public abstract List<ConfigItem> generateConfig(NetworkElementCommand cmd);
}

View File

@ -25,12 +25,14 @@ import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
public class BumUpPriorityConfigItem {
public class BumUpPriorityConfigItem extends AbstractConfigItemFacade {
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
}
}

View File

@ -25,12 +25,14 @@ import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
public class CreateIpAliasConfigItem {
public class CreateIpAliasConfigItem extends AbstractConfigItemFacade {
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
}
}

View File

@ -25,12 +25,14 @@ import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
public class DeleteIpAliasConfigItem {
public class DeleteIpAliasConfigItem extends AbstractConfigItemFacade {
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
}
}

View File

@ -21,16 +21,29 @@ package com.cloud.agent.resource.virtualnetwork.facade;
import java.util.List;
import com.cloud.agent.api.routing.DhcpEntryCommand;
import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.VRScripts;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
import com.cloud.agent.resource.virtualnetwork.model.VmDhcpConfig;
public class DhcpEntryConfigItem {
public class DhcpEntryConfigItem extends AbstractConfigItemFacade{
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
final DhcpEntryCommand command = (DhcpEntryCommand) cmd;
final VmDhcpConfig vmDhcpConfig = new VmDhcpConfig(command.getVmName(), command.getVmMac(), command.getVmIpAddress(), command.getVmIp6Address(), command.getDuid(), command.getDefaultDns(),
command.getDefaultRouter(), command.getStaticRoutes(), command.isDefault());
return generateConfigItems(vmDhcpConfig);
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
destinationFile = VRScripts.VM_DHCP_CONFIG;
return super.generateConfigItems(configuration);
}
}

View File

@ -25,12 +25,14 @@ import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
public class DnsMasqConfigItem {
public class DnsMasqConfigItem extends AbstractConfigItemFacade {
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
}
}

View File

@ -25,12 +25,14 @@ import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
public class IpAssociationConfigItem {
public class IpAssociationConfigItem extends AbstractConfigItemFacade {
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
}
}

View File

@ -19,18 +19,86 @@
package com.cloud.agent.resource.virtualnetwork.facade;
import java.util.LinkedList;
import java.util.List;
import com.cloud.agent.api.routing.LoadBalancerConfigCommand;
import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.FileConfigItem;
import com.cloud.agent.resource.virtualnetwork.ScriptConfigItem;
import com.cloud.agent.resource.virtualnetwork.VRScripts;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
import com.cloud.network.HAProxyConfigurator;
import com.cloud.network.LoadBalancerConfigurator;
public class LoadBalancerConfigItem {
public class LoadBalancerConfigItem extends AbstractConfigItemFacade{
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
final LoadBalancerConfigCommand command = (LoadBalancerConfigCommand) cmd;
final LinkedList<ConfigItem> cfg = new LinkedList<>();
final String routerIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
final LoadBalancerConfigurator cfgtr = new HAProxyConfigurator();
final String[] config = cfgtr.generateConfiguration(command);
final StringBuffer buff = new StringBuffer();
for (int i = 0; i < config.length; i++) {
buff.append(config[i]);
buff.append("\n");
}
final String tmpCfgFilePath = "/etc/haproxy/";
final String tmpCfgFileName = "haproxy.cfg.new." + String.valueOf(System.currentTimeMillis());
cfg.add(new FileConfigItem(tmpCfgFilePath, tmpCfgFileName, buff.toString()));
final String[][] rules = cfgtr.generateFwRules(command);
final String[] addRules = rules[LoadBalancerConfigurator.ADD];
final String[] removeRules = rules[LoadBalancerConfigurator.REMOVE];
final String[] statRules = rules[LoadBalancerConfigurator.STATS];
String args = " -f " + tmpCfgFilePath + tmpCfgFileName;
StringBuilder sb = new StringBuilder();
if (addRules.length > 0) {
for (int i = 0; i < addRules.length; i++) {
sb.append(addRules[i]).append(',');
}
args += " -a " + sb.toString();
}
sb = new StringBuilder();
if (removeRules.length > 0) {
for (int i = 0; i < removeRules.length; i++) {
sb.append(removeRules[i]).append(',');
}
args += " -d " + sb.toString();
}
sb = new StringBuilder();
if (statRules.length > 0) {
for (int i = 0; i < statRules.length; i++) {
sb.append(statRules[i]).append(',');
}
args += " -s " + sb.toString();
}
if (command.getVpcId() == null) {
args = " -i " + routerIp + args;
cfg.add(new ScriptConfigItem(VRScripts.LB, args));
} else {
args = " -i " + command.getNic().getIp() + args;
cfg.add(new ScriptConfigItem(VRScripts.VPC_LB, args));
}
return cfg;
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
}
}

View File

@ -25,12 +25,14 @@ import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
public class RemoteAccessVpnConfigItem {
public class RemoteAccessVpnConfigItem extends AbstractConfigItemFacade{
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
}
}

View File

@ -22,15 +22,26 @@ package com.cloud.agent.resource.virtualnetwork.facade;
import java.util.List;
import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.api.routing.SavePasswordCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.VRScripts;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
import com.cloud.agent.resource.virtualnetwork.model.VmPassword;
public class SavePasswordConfigItem {
public class SavePasswordConfigItem extends AbstractConfigItemFacade {
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
final SavePasswordCommand command = (SavePasswordCommand) cmd;
final VmPassword vmPassword = new VmPassword(command.getVmIpAddress(), command.getPassword());
return generateConfigItems(vmPassword);
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
destinationFile = VRScripts.VM_PASSWORD_CONFIG;
return super.generateConfigItems(configuration);
}
}

View File

@ -25,12 +25,14 @@ import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
public class SetFirewallRulesConfigItem {
public class SetFirewallRulesConfigItem extends AbstractConfigItemFacade{
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
}
}

View File

@ -25,12 +25,14 @@ import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
public class SetGuestNetworkConfigItem {
public class SetGuestNetworkConfigItem extends AbstractConfigItemFacade{
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
}
}

View File

@ -25,12 +25,14 @@ import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
public class SetMonitorServiceConfigItem {
public class SetMonitorServiceConfigItem extends AbstractConfigItemFacade{
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
}
}

View File

@ -25,12 +25,14 @@ import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
public class SetNetworkAclConfigItem {
public class SetNetworkAclConfigItem extends AbstractConfigItemFacade {
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
}
}

View File

@ -25,12 +25,14 @@ import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
public class SetPortForwardingRulusConfigItem {
public class SetPortForwardingRulusConfigItem extends AbstractConfigItemFacade {
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
}
}

View File

@ -19,18 +19,41 @@
package com.cloud.agent.resource.virtualnetwork.facade;
import java.util.ArrayList;
import java.util.List;
import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.api.routing.SetPortForwardingRulesCommand;
import com.cloud.agent.api.to.PortForwardingRuleTO;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.VRScripts;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
import com.cloud.agent.resource.virtualnetwork.model.ForwardingRule;
import com.cloud.agent.resource.virtualnetwork.model.ForwardingRules;
public class SetPortForwardingRulusVpcConfigItem {
public class SetPortForwardingRulusVpcConfigItem extends AbstractConfigItemFacade {
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
final SetPortForwardingRulesCommand command = (SetPortForwardingRulesCommand) cmd;
final List<ForwardingRule> rules = new ArrayList<ForwardingRule>();
for (final PortForwardingRuleTO rule : command.getRules()) {
final ForwardingRule fwdRule = new ForwardingRule(rule.revoked(), rule.getProtocol().toLowerCase(), rule.getSrcIp(), rule.getStringSrcPortRange(), rule.getDstIp(),
rule.getStringDstPortRange());
rules.add(fwdRule);
}
final ForwardingRules ruleSet = new ForwardingRules(rules.toArray(new ForwardingRule[rules.size()]));
return generateConfigItems(ruleSet);
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
destinationFile = VRScripts.FORWARDING_RULES_CONFIG;;
return super.generateConfigItems(configuration);
}
}

View File

@ -25,12 +25,14 @@ import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
public class SetSourceNatConfigItem {
public class SetSourceNatConfigItem extends AbstractConfigItemFacade{
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
}
}

View File

@ -19,18 +19,38 @@
package com.cloud.agent.resource.virtualnetwork.facade;
import java.util.LinkedList;
import java.util.List;
import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.api.routing.SetStaticNatRulesCommand;
import com.cloud.agent.api.to.StaticNatRuleTO;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.VRScripts;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
import com.cloud.agent.resource.virtualnetwork.model.StaticNatRule;
import com.cloud.agent.resource.virtualnetwork.model.StaticNatRules;
public class SetStaticNatRulesConfigItem {
public class SetStaticNatRulesConfigItem extends AbstractConfigItemFacade{
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
final SetStaticNatRulesCommand command = (SetStaticNatRulesCommand) cmd;
final LinkedList<StaticNatRule> rules = new LinkedList<>();
for (final StaticNatRuleTO rule : command.getRules()) {
final StaticNatRule staticNatRule = new StaticNatRule(rule.revoked(), rule.getProtocol(), rule.getSrcIp(), rule.getStringSrcPortRange(), rule.getDstIp());
rules.add(staticNatRule);
}
final StaticNatRules staticNatRules = new StaticNatRules(rules);
return generateConfigItems(staticNatRules);
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
destinationFile = VRScripts.STATICNAT_RULES_CONFIG;
return super.generateConfigItems(configuration);
}
}

View File

@ -19,18 +19,43 @@
package com.cloud.agent.resource.virtualnetwork.facade;
import java.util.LinkedList;
import java.util.List;
import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.api.routing.SetStaticRouteCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.VRScripts;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
import com.cloud.agent.resource.virtualnetwork.model.StaticRoute;
import com.cloud.agent.resource.virtualnetwork.model.StaticRoutes;
import com.cloud.network.vpc.StaticRouteProfile;
import com.cloud.utils.net.NetUtils;
public class SetStaticRouteConfigItem {
public class SetStaticRouteConfigItem extends AbstractConfigItemFacade{
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
final SetStaticRouteCommand command = (SetStaticRouteCommand) cmd;
final LinkedList<StaticRoute> routes = new LinkedList<>();
for (final StaticRouteProfile profile : command.getStaticRoutes()) {
final String cidr = profile.getCidr();
final String subnet = NetUtils.getCidrSubNet(cidr);
final String cidrSize = cidr.split("\\/")[1];
final boolean keep = profile.getState() == com.cloud.network.vpc.StaticRoute.State.Active || profile.getState() == com.cloud.network.vpc.StaticRoute.State.Add;
routes.add(new StaticRoute(!keep, profile.getIp4Address(), profile.getGateway(), subnet + "/" + cidrSize));
}
return generateConfigItems(new StaticRoutes(routes));
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
destinationFile = VRScripts.STATIC_ROUTES_CONFIG;
return super.generateConfigItems(configuration);
}
}

View File

@ -25,12 +25,14 @@ import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
public class Site2SiteVpnConfigItem {
public class Site2SiteVpnConfigItem extends AbstractConfigItemFacade{
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
}
}

View File

@ -25,12 +25,14 @@ import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
public class VmDataConfigItem {
public class VmDataConfigItem extends AbstractConfigItemFacade {
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
}
}

View File

@ -25,12 +25,14 @@ import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.resource.virtualnetwork.ConfigItem;
import com.cloud.agent.resource.virtualnetwork.model.ConfigBase;
public class VpnUsersConfigItem {
public class VpnUsersConfigItem extends AbstractConfigItemFacade{
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
return null;
}
public List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
@Override
protected List<ConfigItem> generateConfigItems(final ConfigBase configuration) {
return null;
}
}