package org.openstack.atlas.adapter.helpers; import org.openstack.atlas.service.domain.entities.*; import java.util.*; import static org.mockito.Mockito.spy; public class StmAdapterImplTestHelper { static String username = "username"; static String ipv41 = "10.0.0.1"; static String ipv42 = "10.0.0.2"; static String ipv43 = "10.0.1.0"; static String ipv44 = "10.0.1.1"; static String user = "user"; static String name = "loadbalancer"; static String ipv6 = "::"; static String reason = "because"; static String comment = "comment"; static String metaKey = "color"; static String metaValue = "red"; static String ticketId = "1234321"; static String errorPage = "ERROR"; static String regex = "regex"; static String path = "path"; static String header = "header"; public static final String cert = "" + "-----BEGIN CERTIFICATE-----\n" + "MIID+TCCAuGgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBpTE2MDQGA1UEAwwtd3d3\n" + "LnJhY2tleHAub3JnL2VtYWlsQWRkcmVzcz1yb290QHJhY2tleHAub3JnMRwwGgYD\n" + "VQQLExNDbG91ZCBMb2FkQmFsYW5jaW5nMRowGAYDVQQKExFSYWNrc3BhY2UgSG9z\n" + "dGluZzEUMBIGA1UEBxMLU2FuIEFudG9uaW8xDjAMBgNVBAgTBVRleGFzMQswCQYD\n" + "VQQGEwJVUzAeFw0xNDAxMTMxODU4NDZaFw0xODAxMTMxODU4NDZaMIGlMTYwNAYD\n" + "VQQDDC13d3cucmFja2V4cC5vcmcvZW1haWxBZGRyZXNzPXJvb3RAcmFja2V4cC5v\n" + "cmcxHDAaBgNVBAsTE0Nsb3VkIExvYWRCYWxhbmNpbmcxGjAYBgNVBAoTEVJhY2tz\n" + "cGFjZSBIb3N0aW5nMRQwEgYDVQQHEwtTYW4gQW50b25pbzEOMAwGA1UECBMFVGV4\n" + "YXMxCzAJBgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\n" + "hrKPELJaJw2xvQI2qeYhq66qPAHJGV7WQgaN9k3HgFTYePz6SpUC1DORbg1hkxbi\n" + "GxIbzuwaRu4AqIyjb48yrkgQb9+1iWLHx1q01LEk/8lMRSXBdzMizs5t58zKOZ6W\n" + "dR3ENsGEGAw+sHPzCKVFzi2Y3moLmpVDs6DFzeWA6lZ4XPnGuFYIDhkmeLVVLlBk\n" + "MI0vyaQMrwCo6IlBlEvbn9L1Sq7dQYj7Fz/I6vzxdr7qlBbasVT5QfQzOgNIdZCM\n" + "OQ+mHUVCs2Q93tdllgCK/AtEbrNMnhlsa/1MvhBmRkvwav01y8dETTpg1zom7ZIV\n" + "EcyyitXxg7N+al2DSagbtQIDAQABozIwMDAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud\n" + "DgQWBBQ0fOl4Hc6VAMmaJHHi7LogvLHJ4TANBgkqhkiG9w0BAQsFAAOCAQEAgOgc\n" + "BYiLRA/q26i0FbbvehXgaKHBnDbjx7aW9bDY6RFY3hcmzHC94+pHatwLR9leamou\n" + "3zuqcSujFsClOigubaxxhs6BSA55rDJExDvwWvhDxHl2kV8LOuFu2WqgFjd+WjKE\n" + "n0Dp8d3DpGfAl5ruB6V8vJ0GYzP8v33lYP4uI2ZMOBQGfJjfZ1dURTBnxGKQ+/EZ\n" + "yTfpEuL+H+p4SDLLYTMzlEc/wR1Y+lUgIRDxDZyLsFKnAcnrLaZ+3Ds7pZMuISU/\n" + "caGHLzz7AVetPUYnQdCMa2ReveZdDl04NbENv0SL5z3R924SrjXxkE3FdABBNoVf\n" + "fD0ygn3i5Jfn5iHy6Q==\n" + "-----END CERTIFICATE-----\n" + ""; private static final String key = "" + "-----BEGIN RSA PRIVATE KEY-----\n" + "MIIEogIBAAKCAQEAhrKPELJaJw2xvQI2qeYhq66qPAHJGV7WQgaN9k3HgFTYePz6\n" + "SpUC1DORbg1hkxbiGxIbzuwaRu4AqIyjb48yrkgQb9+1iWLHx1q01LEk/8lMRSXB\n" + "dzMizs5t58zKOZ6WdR3ENsGEGAw+sHPzCKVFzi2Y3moLmpVDs6DFzeWA6lZ4XPnG\n" + "uFYIDhkmeLVVLlBkMI0vyaQMrwCo6IlBlEvbn9L1Sq7dQYj7Fz/I6vzxdr7qlBba\n" + "sVT5QfQzOgNIdZCMOQ+mHUVCs2Q93tdllgCK/AtEbrNMnhlsa/1MvhBmRkvwav01\n" + "y8dETTpg1zom7ZIVEcyyitXxg7N+al2DSagbtQIDAQABAoIBACaA+GB/e0Haqkor\n" + "TdD3Vfyrq0IICKJV981b7kzQIw1OM6syNaIIQozCSPo6nP/c9LlkTcqytzg7ZLjJ\n" + "qxaCyqwDMZ+pRU2GjTExfqumD7uGoWTKzCj01yhi3gv7AHvEF6JW5fX5D3eIWIs8\n" + "Oebox7GOWzqI+dQwgu/gL2sSBe32a7s//G8+Jem4wYAQyQOWfN4xYl8ax6a8oVhZ\n" + "xnSX+rwidvtKHuTWQAVvMfmkS2wrCS1t6w1r91ZDEzsaik/4KZSDeclmQz2t2/wg\n" + "fulDZUJvLXqcm9EM0/D1aVSI1ZcbeT9lafYWyRL/n3fvJlUgeHg/HINMOr6ZL7qu\n" + "WVk6EUECgYEAuo/BP2wmzpYhAapFBhnU8QsF7ITxEICiQCaRnGx9QV+GfnbNOLkz\n" + "vPCTha3ivQlsY7fzpmYSppdTyoxzXhOi4H0MKQzN6YUMMeDRN1ZEEq++51dEWiLV\n" + "ZtS6hojaR5L30wp7YWXiQeHhJZpdfPzD1bPNlHIaDyeQ46Zqn+qqfc0CgYEAuNUD\n" + "gzxoOBOavZHfHgSAQO6edU2J0NelmksmClp4jLGlp2x6HTxsBjX9B+TSo+1Ua+f7\n" + "166B9s6rUgvaj83SGd1ze5OYRbIPN4504Vh+NH6iWE/JYFNM6vlwYlFG7RjtS2OI\n" + "H9Xo9Nba7uJBLgzO07Rdc0dSR9MogNvAi8HE7YkCgYAEN0Vtsnr6Bih+yiM/LQxD\n" + "2jTrEGIGNnH0MyrtNwJpnMgESZj/pCfIKEOdLL3H+dOKOVj3NK1NOHQ7Sos84AK5\n" + "QfopX1Gz6j7JTcRMlNV6+p+8yJsR0mGyLjJ84dDU9zxEd6MsI0pGpN0apW9haLDg\n" + "Pmzx4tY163X5vwP/0yTBLQKBgH+jEgbpiyrWVvB8MHChORQd9C0bO4WNtZ1kMcPK\n" + "kB7Qeo2wem+ADzUGyVJPMSrktHzDuYVKzBLsyyAgcXEG+ATGiX4YAXp3qMx7wrjv\n" + "DFAh9ug3SOANBjvpvzMV333RzeRWumUJqhKR4KRAeDRdweIuVq5J3UceSYUau8+H\n" + "Iv/JAoGAf9dyE5wW0fehbq9LYzxG+s8VO+EGjdoZgjO1xGsTo6IeLgq17nuIkvhu\n" + "NAoyMnaHbJQp1dYGwKBYzrHs6h+RHTBkJ+TOgtMjvOzFCkm5SlDnVe4MJ4FMLwJp\n" + "o4lKPbuTPdYY2DFYRl+Yc1guima/WdXznA80lOuxWqqJT4Vy3zg=\n" + "-----END RSA PRIVATE KEY-----\n" + ""; static Integer accountId = 13531; static Integer securePort = 443; static Integer port = 80; static Integer id = 0; static Integer timeout = 10; static Integer weight = 5; static Integer maxConnectRate = 10; static Integer maxConnections = 10; static Integer minConnections = 1; static Integer rateInterval = 3; static Integer numAttempts = 10; static Integer delay = 1; static Integer maxRequests = 3; static Boolean active = true; static Boolean inactive = false; public static LoadBalancer generateLoadBalancer() { LoadBalancer loadBalancer = new LoadBalancer(); loadBalancer.setPort(port); Set<AccessList> accessLists = new HashSet<AccessList>(); AccessList item = new AccessList(); item.setUserName(username); item.setId(id); item.setIpAddress(ipv42); item.setType(AccessListType.DENY); item.setLoadbalancer(loadBalancer); accessLists.add(item); loadBalancer.setAccessLists(accessLists); loadBalancer.setAccountId(accountId); loadBalancer.setAlgorithm(LoadBalancerAlgorithm.ROUND_ROBIN); ConnectionLimit limit = new ConnectionLimit(); limit.setId(id); limit.setUserName(username); limit.setLoadBalancer(loadBalancer); limit.setMaxConnectionRate(maxConnectRate); limit.setMaxConnections(maxConnections); limit.setMinConnections(minConnections); limit.setRateInterval(rateInterval); loadBalancer.setConnectionLimit(limit); loadBalancer.setConnectionLogging(active); loadBalancer.setContentCaching(active); loadBalancer.setCreated(Calendar.getInstance()); loadBalancer.setUpdated(Calendar.getInstance()); loadBalancer.setHalfClosed(active); HealthMonitor monitor = new HealthMonitor(); monitor.setUserName(username); monitor.setId(id); monitor.setAttemptsBeforeDeactivation(numAttempts); monitor.setBodyRegex(regex); monitor.setDelay(delay); monitor.setHostHeader(header); monitor.setLoadbalancer(loadBalancer); monitor.setStatusRegex(regex); monitor.setPath(path); monitor.setTimeout(timeout); monitor.setType(HealthMonitorType.CONNECT); loadBalancer.setHealthMonitor(monitor); loadBalancer.setHost(new Host()); loadBalancer.setName(name); Set<Node> nodes = new HashSet<Node>(); Node node = new Node(); node.setId(id); node.setPort(port); node.setLoadbalancer(loadBalancer); node.setCondition(NodeCondition.ENABLED); node.setIpAddress(ipv43); List<NodeMeta> nodeMetadata = new ArrayList<NodeMeta>(); NodeMeta nodeMeta = new NodeMeta(); nodeMeta.setKey(metaKey); nodeMeta.setNode(node); nodeMeta.setValue(metaValue); nodeMeta.setId(id); nodeMeta.setUserName(username); nodeMetadata.add(nodeMeta); node.setNodeMetadata(nodeMetadata); node.setStatus(NodeStatus.ONLINE); node.setType(NodeType.PRIMARY); node.setWeight(weight); nodes.add(node); node = new Node(); node.setId(id + 1); node.setPort(port); node.setLoadbalancer(loadBalancer); node.setCondition(NodeCondition.ENABLED); node.setIpAddress(ipv44); nodeMetadata = new ArrayList<NodeMeta>(); nodeMeta = new NodeMeta(); nodeMeta.setKey(metaKey); nodeMeta.setNode(node); nodeMeta.setValue(metaValue); nodeMeta.setId(id + 1); nodeMeta.setUserName(username); nodeMetadata.add(nodeMeta); node.setNodeMetadata(nodeMetadata); node.setStatus(NodeStatus.ONLINE); node.setType(NodeType.PRIMARY); node.setWeight(weight); nodes.add(node); loadBalancer.setNodes(nodes); Set<LoadbalancerMeta> lbMetadata = new HashSet<LoadbalancerMeta>(); LoadbalancerMeta lbMeta = new LoadbalancerMeta(); lbMeta.setUserName(username); lbMeta.setId(id); lbMeta.setKey(metaKey); lbMeta.setValue(metaValue); lbMeta.setLoadbalancer(loadBalancer); lbMetadata.add(lbMeta); loadBalancer.setLoadbalancerMetadata(lbMetadata); loadBalancer.setProtocol(LoadBalancerProtocol.HTTP); RateLimit limits = new RateLimit(); limits.setLoadbalancer(loadBalancer); limits.setId(id); limits.setUserName(username); limits.setExpirationTime(Calendar.getInstance()); limits.setMaxRequestsPerSecond(maxRequests); Ticket ticket = new Ticket(); ticket.setUserName(username); ticket.setId(id); ticket.setLoadbalancer(loadBalancer); ticket.setComment(comment); ticket.setTicketId(ticketId); limits.setTicket(ticket); loadBalancer.setRateLimit(limits); loadBalancer.setSessionPersistence(SessionPersistence.HTTP_COOKIE); SslTermination termination = new SslTermination(); termination.setId(id); termination.setEnabled(active); termination.setUserName(username); termination.setSecurePort(securePort); termination.setCertificate(cert); termination.setPrivatekey(key); termination.setSecureTrafficOnly(inactive); termination.setLoadbalancer(loadBalancer); loadBalancer.setSslTermination(termination); loadBalancer.setStatus(LoadBalancerStatus.ACTIVE); loadBalancer.setSticky(inactive); Suspension suspension = new Suspension(); suspension.setUserName(username); suspension.setId(id); suspension.setLoadbalancer(loadBalancer); suspension.setUser(user); suspension.setReason(reason); suspension.setTicket(ticket); loadBalancer.setSuspension(suspension); Set<Ticket> tickets = new HashSet<Ticket>(); tickets.add(ticket); loadBalancer.setTickets(tickets); loadBalancer.setTimeout(timeout); UserPages pages = new UserPages(); pages.setLoadbalancer(loadBalancer); pages.setId(id); pages.setUserName(username); pages.setErrorpage(errorPage); loadBalancer.setUserPages(pages); loadBalancer.setId(id); loadBalancer.setUserName(username); Set<LoadBalancerJoinVip> vipList = spy(new HashSet<LoadBalancerJoinVip>()); VirtualIp vip = new VirtualIp(); vip.setId(1234); vip.setIpAddress("10.69.0.60"); LoadBalancerJoinVip loadBalancerJoinVip = new LoadBalancerJoinVip(); loadBalancerJoinVip.setVirtualIp(vip); vipList.add(loadBalancerJoinVip); loadBalancer.setLoadBalancerJoinVipSet(vipList); return loadBalancer; } }