def test_to_stream(self): conf = Configuration.from_stream(StringIO(self.TEST_CONFIGURATION)) out = StringIO() conf.to_stream(out) conf2 = Configuration.from_stream(StringIO(out.getvalue())) self.assertEqual(conf, conf2)
def storage_policy_lint(args): '''Implementation of the 'storage-policy-lint' subcommand.''' try: Configuration.from_stream(args.config) return 0 except ConfigurationError as exn: print_error('Configuration error', exn) except ConfigParser.Error as exn: print_error('Parsing error', exn) except Exception as exn: print_error('Error', exn) return 1
def test_from_stream(self): conf = Configuration.from_stream(StringIO(self.TEST_CONFIGURATION)) p1 = conf.get_policy(1) self.assertEqual(p1.index, 1) self.assertEqual( list(p1.read_set), [Ring('sfo-arc6+3', 'sfo', ['http://sfo1.int/arc6+3'])]) self.assertEqual(list(p1.write_set), [ Ring('paris-arc6+3', 'paris', ['http://paris1.int/arc6+3', 'http://paris2.int/arc6+3']) ]) p2 = conf.get_policy(2) self.assertEqual( p2, StoragePolicy(2, [ Ring('nyc-arc6+3', 'nyc', ['http://nyc1.int/arc6+3']) ], [ Ring('paris-arc6+3', 'paris', ['http://paris1.int/arc6+3', 'http://paris2.int/arc6+3']) ])) p3 = conf.get_policy(3) self.assertEqual( p3, StoragePolicy(3, [], [ Ring('paris-rep3', 'paris', ['http://paris1.int/rep3', 'http://paris2.int/rep3']) ])) self.assertRaises(ValueError, conf.get_policy, 4) self.assertRaises(ValueError, conf.get_policy, 'test')
def test_missing_read_in_storage_policy(self): conf = self._format_config(''' [ring:test1] location = paris sproxyd_endpoints = http://localhost [storage-policy:1] write = test1 ''') conf = Configuration.from_stream(conf) read_set = conf.get_policy(1).read_set if len(read_set) != 0: raise self.failureException('%r is not empty' % read_set)
def test_missing_read_in_storage_policy(self): conf = self._format_config(''' [ring:test1] location = paris sproxyd_endpoints = http://localhost [storage-policy:1] write = test1 ''') conf = Configuration.from_stream(conf) read_set = conf.get_policy(1).read_set if len(read_set) != 0: raise self.failureException( '%r is not empty' % read_set)
def test_from_stream(self): conf = Configuration.from_stream(StringIO(self.TEST_CONFIGURATION)) p1 = conf.get_policy(1) self.assertEqual(p1.index, 1) self.assertEqual( list(p1.read_set), [Ring('sfo-arc6+3', 'sfo', ['http://sfo1.int/arc6+3'])]) self.assertEqual( list(p1.write_set), [Ring( 'paris-arc6+3', 'paris', ['http://paris1.int/arc6+3', 'http://paris2.int/arc6+3'])]) p2 = conf.get_policy(2) self.assertEqual( p2, StoragePolicy( 2, [Ring('nyc-arc6+3', 'nyc', ['http://nyc1.int/arc6+3'])], [Ring( 'paris-arc6+3', 'paris', ['http://paris1.int/arc6+3', 'http://paris2.int/arc6+3'])])) p3 = conf.get_policy(3) self.assertEqual( p3, StoragePolicy( 3, [], [Ring( 'paris-rep3', 'paris', ['http://paris1.int/rep3', 'http://paris2.int/rep3'])])) self.assertRaises(ValueError, conf.get_policy, 4) self.assertRaises(ValueError, conf.get_policy, 'test')
def storage_policy_query(args): '''Implementation of the 'storage-policy-query' subcommand.''' try: config = Configuration.from_stream(args.config) policy = config.get_policy(args.policy_index) except Exception as exn: print_error('Error', exn) return 1 print 'Query' print '-----' print 'Policy index:', args.policy_index print 'Action:', args.action print 'Location hints:', args.locations print print 'Result' print '------' result = policy.lookup(args.action, args.locations) for (idx, endpoints) in enumerate(result): print '%d: %r' % (idx, list(sorted(str(e) for e in endpoints))) return 0
def test_hash_equal(self): p = StoragePolicy(1, [], []) self.assertEqual(hash(Configuration([p])), hash(Configuration([p])))
def test_ne_not_implemented(self): self.assertNotEqual(Configuration([]), 1)
def test_ne(self): self.assertNotEqual(Configuration([StoragePolicy(1, [], [])]), Configuration([]))
def test_eq_not_implemented(self): self.assertFalse(Configuration([]) == 1)