示例#1
0
 def test_get_all_with_az(self):
     self.mox.StubOutWithMock(db, "service_get_all")
     self.mox.StubOutWithMock(db, "aggregate_host_get_by_metadata_key")
     db.service_get_all(self.context, disabled=None).AndReturn([dict(fake_service, topic="compute")])
     db.aggregate_host_get_by_metadata_key(self.context, key="availability_zone").AndReturn(
         {fake_service["host"]: ["test-az"]}
     )
     self.mox.ReplayAll()
     services = service.ServiceList.get_all(self.context, set_zones=True)
     self.assertEqual(1, len(services))
     self.assertEqual("test-az", services[0].availability_zone)
示例#2
0
 def test_get_all_with_az(self):
     self.mox.StubOutWithMock(db, 'service_get_all')
     self.mox.StubOutWithMock(db, 'aggregate_host_get_by_metadata_key')
     db.service_get_all(self.context, disabled=None).AndReturn(
         [dict(fake_service, topic='compute')])
     db.aggregate_host_get_by_metadata_key(
         self.context, key='availability_zone').AndReturn(
             {fake_service['host']: ['test-az']})
     self.mox.ReplayAll()
     services = service.ServiceList.get_all(self.context, set_zones=True)
     self.assertEqual(1, len(services))
     self.assertEqual('test-az', services[0].availability_zone)
示例#3
0
 def test_get_all_with_az(self):
     self.mox.StubOutWithMock(db, 'service_get_all')
     self.mox.StubOutWithMock(db, 'aggregate_host_get_by_metadata_key')
     db.service_get_all(self.context, disabled=None).AndReturn(
         [dict(fake_service, topic='compute')])
     db.aggregate_host_get_by_metadata_key(
         self.context, key='availability_zone').AndReturn(
             {fake_service['host']: ['test-az']})
     self.mox.ReplayAll()
     services = service.ServiceList.get_all(self.context, set_zones=True)
     self.assertEqual(1, len(services))
     self.assertEqual('test-az', services[0].availability_zone)
示例#4
0
def set_availability_zones(context, services):
    # Makes sure services isn't a sqlalchemy object
    services = [dict(service.iteritems()) for service in services]
    metadata = db.aggregate_host_get_by_metadata_key(context, key="availability_zone")
    for service in services:
        az = CONF.internal_service_availability_zone
        if service["topic"] == "compute":
            if metadata.get(service["host"]):
                az = str(metadata[service["host"]])[5:-2]
            else:
                az = CONF.default_availability_zone
        service["availability_zone"] = az
    return services
示例#5
0
def set_availability_zones(context, services):
    # Makes sure services isn't a sqlalchemy object
    services = [dict(service.iteritems()) for service in services]
    metadata = db.aggregate_host_get_by_metadata_key(context,
            key='availability_zone')
    for service in services:
        az = CONF.internal_service_availability_zone
        if service['topic'] == "compute":
            if metadata.get(service['host']):
                az = u','.join(list(metadata[service['host']]))
            else:
                az = CONF.default_availability_zone
        service['availability_zone'] = az
    return services
示例#6
0
def set_availability_zones(context, services):
    # Makes sure services isn't a sqlalchemy object
    services = [dict(service.iteritems()) for service in services]
    metadata = db.aggregate_host_get_by_metadata_key(context,
            key='availability_zone')
    for service in services:
        az = CONF.internal_service_availability_zone
        if service['topic'] == "compute":
            if metadata.get(service['host']):
                az = u','.join(list(metadata[service['host']]))
            else:
                az = CONF.default_availability_zone
        service['availability_zone'] = az
    return services
示例#7
0
def set_availability_zones(context, services):
    # Makes sure services isn't a sqlalchemy object
    services = [dict(service.iteritems()) for service in services]
    metadata = db.aggregate_host_get_by_metadata_key(context, key="availability_zone")
    for service in services:
        az = CONF.internal_service_availability_zone
        if service["topic"] == "compute":
            if metadata.get(service["host"]):
                az = u",".join(list(metadata[service["host"]]))
            else:
                az = CONF.default_availability_zone
                # update the cache
                cache = _get_cache()
                cache_key = _make_cache_key(service["host"])
                cache.delete(cache_key)
                cache.set(cache_key, az, AZ_CACHE_SECONDS)
        service["availability_zone"] = az
    return services
示例#8
0
def set_availability_zones(context, services):
    # Makes sure services isn't a sqlalchemy object
    services = [dict(service.iteritems()) for service in services]
    metadata = db.aggregate_host_get_by_metadata_key(context,
                                                     key='availability_zone')
    for service in services:
        az = CONF.internal_service_availability_zone
        if service['topic'] == "compute":
            if metadata.get(service['host']):
                az = u','.join(list(metadata[service['host']]))
            else:
                az = CONF.default_availability_zone
                # update the cache
                cache = _get_cache()
                cache_key = _make_cache_key(service['host'])
                cache.delete(cache_key)
                cache.set(cache_key, az, AZ_CACHE_SECONDS)
        service['availability_zone'] = az
    return services