コード例 #1
0
ファイル: test_obj.py プロジェクト: vefimova/swift
 def test_connect_put_node_timeout(self):
     controller = proxy_server.ObjectController(self.app, 'a', 'c', 'o')
     self.app.conn_timeout = 0.05
     with set_http_connect(slow_connect=True):
         nodes = [dict(ip='', port='', device='')]
         res = controller._connect_put_node(nodes, '', '', {}, ('', ''))
     self.assertTrue(res is None)
コード例 #2
0
ファイル: test_obj.py プロジェクト: crisbud/swiftonfile
 def test_PUT_log_info(self):
     # mock out enough to get to the area of the code we want to test
     with mock.patch('swift.proxy.controllers.obj.check_object_creation',
                     mock.MagicMock(return_value=None)):
         app = mock.MagicMock()
         app.container_ring.get_nodes.return_value = (1, [2])
         app.object_ring.get_nodes.return_value = (1, [2])
         controller = proxy_server.ObjectController(app, 'a', 'c', 'o')
         controller.container_info = mock.MagicMock(
             return_value={
                 'partition': 1,
                 'nodes': [{}],
                 'write_acl': None,
                 'sync_key': None,
                 'versions': None
             })
         # and now test that we add the header to log_info
         req = swift.common.swob.Request.blank('/v1/a/c/o')
         req.headers['x-copy-from'] = 'somewhere'
         try:
             controller.PUT(req)
         except HTTPException:
             pass
         self.assertEquals(req.environ.get('swift.log_info'),
                           ['x-copy-from:somewhere'])
         # and then check that we don't do that for originating POSTs
         req = swift.common.swob.Request.blank('/v1/a/c/o')
         req.method = 'POST'
         req.headers['x-copy-from'] = 'elsewhere'
         try:
             controller.PUT(req)
         except HTTPException:
             pass
         self.assertEquals(req.environ.get('swift.log_info'), None)
コード例 #3
0
ファイル: test_obj.py プロジェクト: vefimova/swift
    def test_iter_nodes_local_first_noops_when_no_affinity(self):
        controller = proxy_server.ObjectController(self.app, 'a', 'c', 'o')
        self.app.write_affinity_is_local_fn = None
        object_ring = self.app.get_object_ring(None)
        all_nodes = object_ring.get_part_nodes(1)
        all_nodes.extend(object_ring.get_more_nodes(1))

        local_first_nodes = list(
            controller.iter_nodes_local_first(object_ring, 1))

        self.maxDiff = None

        self.assertEqual(all_nodes, local_first_nodes)
コード例 #4
0
ファイル: test_obj.py プロジェクト: crisbud/swiftonfile
    def test_iter_nodes_local_first_moves_locals_first(self):
        controller = proxy_server.ObjectController(self.app, 'a', 'c', 'o')
        self.app.write_affinity_is_local_fn = (
            lambda node: node['region'] == 1)
        self.app.write_affinity_node_count = lambda ring: 4

        all_nodes = self.app.object_ring.get_part_nodes(1)
        all_nodes.extend(self.app.object_ring.get_more_nodes(1))

        local_first_nodes = list(
            controller.iter_nodes_local_first(self.app.object_ring, 1))

        # the local nodes move up in the ordering
        self.assertEqual([1, 1, 1, 1],
                         [node['region'] for node in local_first_nodes[:4]])
        # we don't skip any nodes
        self.assertEqual(sorted(all_nodes), sorted(local_first_nodes))
コード例 #5
0
ファイル: test_obj.py プロジェクト: zhengjiaai2008/swift
 def setUp(self):
     logger = debug_logger('proxy-server')
     logger.thread_locals = ('txn1', '127.0.0.2')
     self.app = proxy_server.Application(None,
                                         FakeMemcache(),
                                         account_ring=FakeRing(),
                                         container_ring=FakeRing(),
                                         object_ring=FakeRing(),
                                         logger=logger)
     self.controller = proxy_server.ObjectController(
         self.app, 'a', 'c', 'o')
     self.controller.container_info = mock.MagicMock(
         return_value={
             'partition':
             1,
             'nodes': [
                 {
                     'ip': '127.0.0.1',
                     'port': '1',
                     'device': 'sda'
                 },
                 {
                     'ip': '127.0.0.1',
                     'port': '2',
                     'device': 'sda'
                 },
                 {
                     'ip': '127.0.0.1',
                     'port': '3',
                     'device': 'sda'
                 },
             ],
             'write_acl':
             None,
             'read_acl':
             None,
             'sync_key':
             None,
             'versions':
             None
         })