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)
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)
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
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
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
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