diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/ConfigHelper.java b/core/src/com/cloud/agent/resource/virtualnetwork/ConfigHelper.java index 7644fcf99ec..32c28cc0b9e 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/ConfigHelper.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/ConfigHelper.java @@ -100,7 +100,7 @@ public class ConfigHelper { gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create(); } - public static List generateCommandCfg(NetworkElementCommand cmd) { + public static List generateCommandCfg(final NetworkElementCommand cmd) { List cfg; if (cmd instanceof SetPortForwardingRulesVpcCommand) { cfg = generateConfig((SetPortForwardingRulesVpcCommand)cmd); // Migrated @@ -151,85 +151,85 @@ public class ConfigHelper { } - private static List generateConfig(VpnUsersCfgCommand cmd) { + private static List generateConfig(final VpnUsersCfgCommand cmd) { - List vpnUsers = new LinkedList(); - for (VpnUsersCfgCommand.UsernamePassword userpwd : cmd.getUserpwds()) { + final List vpnUsers = new LinkedList(); + 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 generateConfig(RemoteAccessVpnCfgCommand cmd) { - RemoteAccessVpn remoteAccessVpn = new RemoteAccessVpn(cmd.isCreate(), cmd.getIpRange(), cmd.getPresharedKey(), cmd.getVpnServerIp(), cmd.getLocalIp(), cmd.getLocalCidr(), + private static List 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 generateConfig(SetFirewallRulesCommand cmd) { - List rules = new ArrayList(); - for (FirewallRuleTO rule : cmd.getRules()) { - FirewallRule fwRule = new FirewallRule(rule.getId(), rule.getSrcVlanTag(), rule.getSrcIp(), rule.getProtocol(), rule.getSrcPortRange(), rule.revoked(), + private static List generateConfig(final SetFirewallRulesCommand cmd) { + final List rules = new ArrayList(); + 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 generateConfig(SetPortForwardingRulesCommand cmd) { - List rules = new ArrayList(); + private static List generateConfig(final SetPortForwardingRulesCommand cmd) { + final List rules = new ArrayList(); - 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 generateConfig(SetStaticNatRulesCommand cmd) { + private static List generateConfig(final SetStaticNatRulesCommand cmd) { - LinkedList rules = new LinkedList<>(); - for (StaticNatRuleTO rule : cmd.getRules()) { - StaticNatRule staticNatRule = new StaticNatRule(rule.revoked(), rule.getProtocol(), rule.getSrcIp(), rule.getStringSrcPortRange(), rule.getDstIp()); + final LinkedList 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 generateConfig(LoadBalancerConfigCommand cmd) { - LinkedList cfg = new LinkedList<>(); + private static List generateConfig(final LoadBalancerConfigCommand cmd) { + final LinkedList 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 generateConfig(SavePasswordCommand cmd) { - VmPassword vmPassword = new VmPassword(cmd.getVmIpAddress(), cmd.getPassword()); + private static List generateConfig(final SavePasswordCommand cmd) { + final VmPassword vmPassword = new VmPassword(cmd.getVmIpAddress(), cmd.getPassword()); return generateConfigItems(vmPassword); } - private static List generateConfig(DhcpEntryCommand cmd) { - VmDhcpConfig vmDhcpConfig = new VmDhcpConfig(cmd.getVmName(), cmd.getVmMac(), cmd.getVmIpAddress(), cmd.getVmIp6Address(), cmd.getDuid(), cmd.getDefaultDns(), + private static List 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 generateConfig(CreateIpAliasCommand cmd) { - List ipAliases = new LinkedList(); - List ipAliasTOs = cmd.getIpAliasList(); - for (IpAliasTO ipaliasto : ipAliasTOs) { - IpAddressAlias alias = new IpAddressAlias(false, ipaliasto.getRouterip(), ipaliasto.getNetmask(), Long.parseLong(ipaliasto.getAlias_count())); + private static List generateConfig(final CreateIpAliasCommand cmd) { + final List ipAliases = new LinkedList(); + final List 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 generateConfig(DeleteIpAliasCommand cmd) { - List ipAliases = new LinkedList(); + private static List generateConfig(final DeleteIpAliasCommand cmd) { + final List ipAliases = new LinkedList(); - List revokedIpAliasTOs = cmd.getDeleteIpAliasTos(); - for (IpAliasTO ipAliasTO : revokedIpAliasTOs) { - IpAddressAlias alias = new IpAddressAlias(true, ipAliasTO.getRouterip(), ipAliasTO.getNetmask(), Long.parseLong(ipAliasTO.getAlias_count())); + final List 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 activeIpAliasTOs = cmd.getCreateIpAliasTos(); - for (IpAliasTO ipAliasTO : activeIpAliasTOs) { - IpAddressAlias alias = new IpAddressAlias(false, ipAliasTO.getRouterip(), ipAliasTO.getNetmask(), Long.parseLong(ipAliasTO.getAlias_count())); + final List 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 generateConfig(DnsMasqConfigCommand cmd) { - LinkedList entries = new LinkedList(); + private static List generateConfig(final DnsMasqConfigCommand cmd) { + final LinkedList entries = new LinkedList(); - 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 generateConfig(BumpUpPriorityCommand cmd) { - LinkedList cfg = new LinkedList<>(); + private static List generateConfig(final BumpUpPriorityCommand cmd) { + final LinkedList cfg = new LinkedList<>(); cfg.add(new ScriptConfigItem(VRScripts.RVR_BUMPUP_PRI, null)); return cfg; } - private static List generateConfig(VmDataCommand cmd) { - VmData vmData = new VmData(cmd.getVmIpAddress(), cmd.getVmData()); + private static List generateConfig(final VmDataCommand cmd) { + final VmData vmData = new VmData(cmd.getVmIpAddress(), cmd.getVmData()); return generateConfigItems(vmData); } - private static List generateConfig(Site2SiteVpnCfgCommand cmd) { - Site2SiteVpn site2siteVpn = new Site2SiteVpn(cmd.getLocalPublicIp(), cmd.getLocalGuestCidr(), cmd.getLocalPublicGateway(), cmd.getPeerGatewayIp(), + private static List 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 generateConfig(SetMonitorServiceCommand cmd) { - MonitorService monitorService = new MonitorService(cmd.getConfiguration(), cmd.getAccessDetail(NetworkElementCommand.ROUTER_MONITORING_ENABLE)); + private static List generateConfig(final SetMonitorServiceCommand cmd) { + final MonitorService monitorService = new MonitorService(cmd.getConfiguration(), cmd.getAccessDetail(NetworkElementCommand.ROUTER_MONITORING_ENABLE)); return generateConfigItems(monitorService); } - private static List 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 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 generateConfig(SetNetworkACLCommand cmd) { - String privateGw = cmd.getAccessDetail(NetworkElementCommand.VPC_PRIVATE_GATEWAY); + private static List 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 ingressRules = new ArrayList(); - List egressRules = new ArrayList(); + final List ingressRules = new ArrayList(); + final List egressRules = new ArrayList(); 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 generateConfig(SetSourceNatCommand cmd) { - LinkedList cfg = new LinkedList<>(); + private static List generateConfig(final SetSourceNatCommand cmd) { + final LinkedList 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 generateConfig(SetStaticRouteCommand cmd) { - LinkedList routes = new LinkedList<>(); + private static List generateConfig(final SetStaticRouteCommand cmd) { + final LinkedList 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 generateConfig(IpAssocCommand cmd) { + private static List generateConfig(final IpAssocCommand cmd) { new LinkedList<>(); - List ips = new LinkedList(); + final List ips = new LinkedList(); - 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 generateConfigItems(ConfigBase configuration) { - List cfg = new LinkedList<>(); + private static List generateConfigItems(final ConfigBase configuration) { + final List 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; diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/VRScripts.java b/core/src/com/cloud/agent/resource/virtualnetwork/VRScripts.java index 64420a2844a..d8ee3c29b30 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/VRScripts.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/VRScripts.java @@ -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"; } diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/AbstractConfigItemFacade.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/AbstractConfigItemFacade.java index 80e10ad7968..02df41662e4 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/AbstractConfigItemFacade.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/AbstractConfigItemFacade.java @@ -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 generateConfig(NetworkElementCommand cmd); + protected final static Gson gson; - public abstract List generateConfigItems(ConfigBase configuration); + static { + gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create(); + } + + protected String destinationFile; + + protected List generateConfigItems(final ConfigBase configuration) { + final List 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 generateConfig(NetworkElementCommand cmd); } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/BumUpPriorityConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/BumUpPriorityConfigItem.java index af65d8d9ad8..f4669751239 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/BumUpPriorityConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/BumUpPriorityConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { return null; } - public List generateConfigItems(final ConfigBase configuration) { + @Override + protected List generateConfigItems(final ConfigBase configuration) { return null; } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/CreateIpAliasConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/CreateIpAliasConfigItem.java index 9cd4cb6e36d..0fac9a02a02 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/CreateIpAliasConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/CreateIpAliasConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { return null; } - public List generateConfigItems(final ConfigBase configuration) { + @Override + protected List generateConfigItems(final ConfigBase configuration) { return null; } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/DeleteIpAliasConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/DeleteIpAliasConfigItem.java index 6b889b2e636..683008cc0a3 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/DeleteIpAliasConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/DeleteIpAliasConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { return null; } - public List generateConfigItems(final ConfigBase configuration) { + @Override + protected List generateConfigItems(final ConfigBase configuration) { return null; } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/DhcpEntryConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/DhcpEntryConfigItem.java index 53f6230d2f0..a73ba191202 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/DhcpEntryConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/DhcpEntryConfigItem.java @@ -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 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 generateConfigItems(final ConfigBase configuration) { - return null; + @Override + protected List generateConfigItems(final ConfigBase configuration) { + destinationFile = VRScripts.VM_DHCP_CONFIG; + + return super.generateConfigItems(configuration); } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/DnsMasqConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/DnsMasqConfigItem.java index 87413cb526a..742bc33941f 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/DnsMasqConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/DnsMasqConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { return null; } - public List generateConfigItems(final ConfigBase configuration) { + @Override + protected List generateConfigItems(final ConfigBase configuration) { return null; } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/IpAssociationConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/IpAssociationConfigItem.java index cd1c7ebdb58..4106fa725a3 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/IpAssociationConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/IpAssociationConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { return null; } - public List generateConfigItems(final ConfigBase configuration) { + @Override + protected List generateConfigItems(final ConfigBase configuration) { return null; } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/LoadBalancerConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/LoadBalancerConfigItem.java index fc20d1e2642..0d3ecc5ea2b 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/LoadBalancerConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/LoadBalancerConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { - return null; + final LoadBalancerConfigCommand command = (LoadBalancerConfigCommand) cmd; + + final LinkedList 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 generateConfigItems(final ConfigBase configuration) { + @Override + protected List generateConfigItems(final ConfigBase configuration) { return null; } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/RemoteAccessVpnConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/RemoteAccessVpnConfigItem.java index 261525f822a..06c78a23c84 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/RemoteAccessVpnConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/RemoteAccessVpnConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { return null; } - public List generateConfigItems(final ConfigBase configuration) { + @Override + protected List generateConfigItems(final ConfigBase configuration) { return null; } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SavePasswordConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SavePasswordConfigItem.java index 249517164e8..4819fa989ad 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SavePasswordConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SavePasswordConfigItem.java @@ -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 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 generateConfigItems(final ConfigBase configuration) { - return null; + @Override + protected List generateConfigItems(final ConfigBase configuration) { + destinationFile = VRScripts.VM_PASSWORD_CONFIG; + + return super.generateConfigItems(configuration); } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetFirewallRulesConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetFirewallRulesConfigItem.java index ad41cd6921e..30824581cb5 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetFirewallRulesConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetFirewallRulesConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { return null; } - public List generateConfigItems(final ConfigBase configuration) { + @Override + protected List generateConfigItems(final ConfigBase configuration) { return null; } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetGuestNetworkConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetGuestNetworkConfigItem.java index bc7f177acfe..c8769c591cf 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetGuestNetworkConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetGuestNetworkConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { return null; } - public List generateConfigItems(final ConfigBase configuration) { + @Override + protected List generateConfigItems(final ConfigBase configuration) { return null; } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetMonitorServiceConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetMonitorServiceConfigItem.java index ef4d8f7bfe2..9e4f18019b5 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetMonitorServiceConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetMonitorServiceConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { return null; } - public List generateConfigItems(final ConfigBase configuration) { + @Override + protected List generateConfigItems(final ConfigBase configuration) { return null; } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetNetworkAclConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetNetworkAclConfigItem.java index 65976701922..0a8e58a1370 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetNetworkAclConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetNetworkAclConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { return null; } - public List generateConfigItems(final ConfigBase configuration) { + @Override + protected List generateConfigItems(final ConfigBase configuration) { return null; } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetPortForwardingRulusConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetPortForwardingRulusConfigItem.java index d19e0d52dd2..f4112f0a7f5 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetPortForwardingRulusConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetPortForwardingRulusConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { return null; } - public List generateConfigItems(final ConfigBase configuration) { + @Override + protected List generateConfigItems(final ConfigBase configuration) { return null; } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetPortForwardingRulusVpcConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetPortForwardingRulusVpcConfigItem.java index e8ff3698e09..94e4458dd90 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetPortForwardingRulusVpcConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetPortForwardingRulusVpcConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { - return null; + final SetPortForwardingRulesCommand command = (SetPortForwardingRulesCommand) cmd; + + final List rules = new ArrayList(); + + 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 generateConfigItems(final ConfigBase configuration) { - return null; + @Override + protected List generateConfigItems(final ConfigBase configuration) { + destinationFile = VRScripts.FORWARDING_RULES_CONFIG;; + + return super.generateConfigItems(configuration); } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetSourceNatConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetSourceNatConfigItem.java index 61031d1c189..9b47fa17005 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetSourceNatConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetSourceNatConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { return null; } - public List generateConfigItems(final ConfigBase configuration) { + @Override + protected List generateConfigItems(final ConfigBase configuration) { return null; } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetStaticNatRulesConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetStaticNatRulesConfigItem.java index f0e3e107f99..69afa9bf70c 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetStaticNatRulesConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetStaticNatRulesConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { - return null; + final SetStaticNatRulesCommand command = (SetStaticNatRulesCommand) cmd; + + final LinkedList 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 generateConfigItems(final ConfigBase configuration) { - return null; + @Override + protected List generateConfigItems(final ConfigBase configuration) { + destinationFile = VRScripts.STATICNAT_RULES_CONFIG; + + return super.generateConfigItems(configuration); } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetStaticRouteConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetStaticRouteConfigItem.java index d7fda102dc5..8f33bcd598a 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetStaticRouteConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetStaticRouteConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { - return null; + final SetStaticRouteCommand command = (SetStaticRouteCommand) cmd; + + final LinkedList 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 generateConfigItems(final ConfigBase configuration) { - return null; + @Override + protected List generateConfigItems(final ConfigBase configuration) { + destinationFile = VRScripts.STATIC_ROUTES_CONFIG; + + return super.generateConfigItems(configuration); } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/Site2SiteVpnConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/Site2SiteVpnConfigItem.java index c9711582d0a..402a852debe 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/Site2SiteVpnConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/Site2SiteVpnConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { return null; } - public List generateConfigItems(final ConfigBase configuration) { + @Override + protected List generateConfigItems(final ConfigBase configuration) { return null; } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/VmDataConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/VmDataConfigItem.java index a8c4685188d..49afb1a976f 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/VmDataConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/VmDataConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { return null; } - public List generateConfigItems(final ConfigBase configuration) { + @Override + protected List generateConfigItems(final ConfigBase configuration) { return null; } } \ No newline at end of file diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/VpnUsersConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/VpnUsersConfigItem.java index 630e48984ce..895162a5b86 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/VpnUsersConfigItem.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/VpnUsersConfigItem.java @@ -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 generateConfig(final NetworkElementCommand cmd) { return null; } - public List generateConfigItems(final ConfigBase configuration) { + @Override + protected List generateConfigItems(final ConfigBase configuration) { return null; } } \ No newline at end of file