def test_convertMapperToModel(self):
     """
     Check that the converter function properly creates the appropriate
     proxy model classes.
     """
     proxies = model.convertMapperToModel(self.proxyServices)
     # two services
     self.assertEquals(len(proxies), 2)
     for proxy in proxies:
         group = proxy.getEnabledGroup()
         # make sure the expected groups are enabled and that their host
         # counts are correct
         if proxy.name == 'web':
             self.assertTrue(group.name == 'prod')
             self.assertEquals(len(group.getHosts()), 3)
         elif proxy.name == 'dns':
             self.assertTrue(group.name == 'corp')
             self.assertEquals(len(group.getHosts()), 2)
         # one service should have two groups, the other should have one
         groups = proxy.getGroups()
         if proxy.name == 'web':
             self.assertEquals(len(groups), 2)
         elif proxy.name == 'dns':
             self.assertEquals(len(groups), 1)
Beispiel #2
0
def proxyManagerFactory(services):
    """
    This factory is for simplifying the common task of creating a proxy manager
    with presets for many attributes and/or much data.
    """
    # check to see what got passed, in case we need to convert it
    if isinstance(services[0], model.HostMapper):
        services = model.convertMapperToModel(services)
    # create the manager
    pm = ProxyManager(services)
    for serviceName, service in pm.getServices():
        # set up the trackers for each group
        for groupName, group in pm.getGroups(serviceName):
            tracker = HostTracking(group)
            scheduler = schedulers.schedulerFactory(group.lbType, tracker)
            pm.addTracker(serviceName, groupName, tracker)
        # now let's setup actual proxies for the hosts in the enabled group
        group = service.getEnabledGroup()
        # XXX maybe won't need this next line
        #enabledTracker = pm.getTracker(service.name, group.name)
        for host, port in service.addresses:
            pm.createProxy(serviceName, host, port)
        # return proxy manager
    return pm
Beispiel #3
0
 def test_convertMapperToModel(self):
     """
     Check that the converter function properly creates the appropriate
     proxy model classes.
     """
     proxies = model.convertMapperToModel(self.proxyServices)
     # two services
     self.assertEquals(len(proxies), 2)
     for proxy in proxies:
         group = proxy.getEnabledGroup()
         # make sure the expected groups are enabled and that their host
         # counts are correct
         if proxy.name == 'web':
             self.assertTrue(group.name == 'prod')
             self.assertEquals(len(group.getHosts()), 3)
         elif proxy.name == 'dns':
             self.assertTrue(group.name == 'corp')
             self.assertEquals(len(group.getHosts()), 2)
         # one service should have two groups, the other should have one
         groups = proxy.getGroups()
         if proxy.name == 'web':
             self.assertEquals(len(groups), 2)
         elif proxy.name == 'dns':
             self.assertEquals(len(groups), 1)
Beispiel #4
0
def proxyManagerFactory(services):
    """
    This factory is for simplifying the common task of creating a proxy manager
    with presets for many attributes and/or much data.
    """
    # check to see what got passed, in case we need to convert it
    if isinstance(services[0], model.HostMapper):
        services = model.convertMapperToModel(services)
    # create the manager
    pm = ProxyManager(services)
    for serviceName, service in pm.getServices():
        # set up the trackers for each group
        for groupName, group in pm.getGroups(serviceName):
            tracker = HostTracking(group)
            scheduler = schedulers.schedulerFactory(group.lbType, tracker)
            pm.addTracker(serviceName, groupName, tracker)
        # now let's setup actual proxies for the hosts in the enabled group
        group = service.getEnabledGroup()
        # XXX maybe won't need this next line
        #enabledTracker = pm.getTracker(service.name, group.name)
        for host, port in service.addresses:
            pm.createProxy(serviceName, host, port)
        # return proxy manager
    return pm