def test_remove_services(self): cluster = 'test' data = self.service_generator('espresso-machine', 10) syncer.load_services(cluster, data.keys(), data, syncer.dummy_lock) del data['espresso-machine0'] syncer.remove_services(cluster, data.keys(), syncer.dummy_lock) s = service.Service(cluster, 'espresso-machine0') self.assertTrue(s.exists) for i in xrange(1, 10): servname = 'espresso-machine' + str(i) s = service.Service(cluster, servname) self.assertFalse(s.exists)
def test_remove_services(self): cluster = 'test' data = self.service_generator('espresso-machine', 10) with temp_data(data) as basepath: sync = syncer.Syncer('/nonexistent', basepath) sync.load() data = self.service_generator('espresso-machine', 1) with temp_data(data) as basepath: sync = syncer.Syncer('/nonexistent', basepath) sync.load() s = service.Service(cluster, 'espresso-machine0') self.assertTrue(s.exists) for i in range(1, 10): servname = 'espresso-machine' + str(i) s = service.Service(cluster, servname) self.assertFalse(s.exists)
def test_load_services(self): cluster = 'test' data = self.service_generator('espresso-machine', 10) syncer.load_services(cluster, data.keys(), data, syncer.dummy_lock) for i in xrange(10): servname = 'espresso-machine' + str(i) s = service.Service(cluster, servname) self.assertEquals(s.default_values, data[servname]['default_values'])
def remove_services(cluster, servnames, lock): path = service.Service.dir(cluster) with lock(path): for servname in servnames: s = service.Service(cluster, servname) if s.exists: print "Removing service %s/%s" % (cluster, servname) _log.info("Removing service %s/%s", cluster, servname) s.delete()
def test_tags(self): self._mock_read({ "datacenters": ['a', 'b', 'c'], "default_values": { "pooled": "no" }, "something_else": "some_value" }) s = service.Service('cluster', 'foo') self.assertEquals(s.tags, {'cluster': 'cluster'})
def test_new_service(self, mocker): """New service creation""" mocker.return_value = 'default_value' self._mock_read(None) n = service.Service('cluster', 'foo') # Test self.assertEquals(n.base_path(), 'services') self.assertEquals(n.key, 'services/cluster/foo') self.assertFalse(n.exists) self.assertEquals(n.datacenters, 'default_value') self.assertEquals(n.name, 'foo')
def test_load_services(self): data = self.service_generator('espresso-machine', 10) with temp_data(data) as basepath: sync = syncer.Syncer('/nonexistent', basepath) sync.load() for i in range(10): servname = 'espresso-machine' + str(i) s = service.Service('test', servname) self.assertEqual(s.default_values, data[servname]['default_values'])
def test_read(self): """Test that reading fetches correctly the values""" self._mock_read({ "datacenters": ['a', 'b', 'c'], "default_values": { "pooled": "no" }, "something_else": "some_value" }) s = service.Service('cluster', 'foo') self.assertEquals(s.datacenters, ['a', 'b', 'c']) self.assertEquals(s.default_values['pooled'], "no") self.assertEquals(s._schemaless['something_else'], 'some_value')
def test_load_service(self): cluster = 'test' servname = 'espresso-machine' data = { 'default_values': { "pooled": "yes", "weight": 0 }, 'datacenters': ['kitchen_sink', 'sofa'] } syncer.load_service(cluster, servname, data) s = service.Service(cluster, servname) self.assertEquals(s.default_values["pooled"], "yes") self.assertEquals(s.datacenters[0], 'kitchen_sink')
def test_failed_validation(self): """Test bad validation""" self._mock_read({"datacenters": "maybe?", "default_values": 20}) s = service.Service('cluster', 'foo') self.assertEquals(s.datacenters, []) self.assertEquals(s.default_values, {'pooled': "no", "weight": 0})
def load_service(cluster, servname, servdata): s = service.Service(cluster, servname) s._from_net(servdata) s.write()