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 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)
Beispiel #3
0
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
Beispiel #4
0
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')
Beispiel #9
0
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
Beispiel #10
0
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)