Exemplo n.º 1
0
 def test_dry_run(self):
     self.builder()
     self.client.nodes.info.return_value = {u'nodes':{self.node_id:{u'roles':[u'data']}}}
     self.client.indices.get.return_value = {testvars.named_index:{'settings':{'index':{'number_of_shards': 2}}}}
     self.client.indices.exists.return_value = False
     shrink = curator.Shrink(self.ilo, shrink_node=self.node_name, post_allocation={'allocation_type':'require', 'key':'_name', 'value':self.node_name})
     self.assertIsNone(shrink.do_dry_run())
Exemplo n.º 2
0
 def test_dry_run_raises(self):
     self.builder()
     self.client.nodes.info.return_value = {u'nodes':{self.node_id:{u'roles':[u'data']}}}
     self.client.indices.get.side_effect = testvars.fake_fail
     self.client.indices.exists.return_value = False
     shrink = curator.Shrink(self.ilo, shrink_node=self.node_name)
     self.assertRaises(Exception, shrink.do_dry_run)
Exemplo n.º 3
0
 def test_multi_data_path_node(self):
     self.builder()
     self.client.nodes.info.return_value = {
         u'nodes': {
             self.node_id: {
                 u'roles': [u'data']
             }
         }
     }
     self.client.nodes.stats.return_value = {
         u'nodes': {
             self.node_id: {
                 u'fs': {
                     u'data': [u'one', u'two'],
                     u'total': {
                         'available_in_bytes': self.byte_count
                     }
                 },
                 u'name': self.node_name
             }
         }
     }
     shrink = curator.Shrink(self.ilo)
     shrink.most_available_node()
     self.assertIsNone(shrink.shrink_node_name)
Exemplo n.º 4
0
 def test_excluded(self):
     self.builder()
     self.client.nodes.info.return_value = {
         u'nodes': {
             self.node_id: {
                 u'roles': [u'data']
             }
         }
     }
     self.client.nodes.stats.return_value = {
         u'nodes': {
             self.node_id: {
                 u'fs': {
                     u'data': [u'one'],
                     u'total': {
                         'available_in_bytes': self.byte_count
                     }
                 },
                 u'name': self.node_name
             }
         }
     }
     node_filters = {u'exclude_nodes': [self.node_name]}
     shrink = curator.Shrink(self.ilo, node_filters=node_filters)
     shrink.most_available_node()
     self.assertIsNone(shrink.shrink_node_name)
Exemplo n.º 5
0
 def test_positive(self):
     self.builder()
     byte_count = 123456
     self.client.nodes.info.return_value = {
         u'nodes': {
             self.node_id: {
                 u'roles': [u'data']
             }
         }
     }
     self.client.nodes.stats.return_value = {
         u'nodes': {
             self.node_id: {
                 u'fs': {
                     u'data': [u'one'],
                     u'total': {
                         'available_in_bytes': byte_count
                     }
                 },
                 u'name': self.node_name
             }
         }
     }
     shrink = curator.Shrink(self.ilo, shrink_node=self.node_name)
     shrink.qualify_single_node()
     self.assertEqual(byte_count, shrink.shrink_node_avail)
Exemplo n.º 6
0
 def builder(self):
     self.client = Mock()
     self.client.info.return_value = {'version': {'number': '5.0.0'} }
     self.client.indices.get_settings.return_value = testvars.settings_one
     self.client.cluster.state.return_value = testvars.clu_state_one
     self.client.indices.stats.return_value = testvars.stats_one
     self.ilo = curator.IndexList(self.client)
     self.shrink = curator.Shrink(self.ilo)
Exemplo n.º 7
0
 def test_excluded(self):
     self.builder()
     node_filters = {u'exclude_nodes': [self.node_name]}
     shrink = curator.Shrink(self.ilo,
                             shrink_node=self.node_name,
                             node_filters=node_filters)
     self.assertRaises(curator.ConfigurationError,
                       shrink.qualify_single_node)
Exemplo n.º 8
0
 def test_non_data_node(self):
     self.builder()
     self.client.nodes.info.return_value = {
         u'nodes': {
             self.node_id: {
                 u'roles': [u'ingest']
             }
         }
     }
     shrink = curator.Shrink(self.ilo, shrink_node=self.node_name)
     self.assertRaises(curator.ActionError, shrink.qualify_single_node)
Exemplo n.º 9
0
 def test_doc_count(self):
     self.builder()
     too_many = 2147483520
     self.client.indices.stats.return_value = {
         'indices': {
             testvars.named_index: {
                 'primaries': {
                     'docs': {
                         'count': too_many
                     }
                 }
             }
         }
     }
     shrink = curator.Shrink(self.ilo)
     self.assertRaises(curator.ActionError, shrink._check_doc_count,
                       testvars.named_index)
Exemplo n.º 10
0
 def test_check_all_shards(self):
     self.builder()
     self.client.cluster.state.return_value = {
         'routing_table': {
             'indices': {
                 testvars.named_index: {
                     'shards': {
                         '0': [{
                             u'index': testvars.named_index,
                             u'node': 'not_this_node',
                             u'primary': True,
                             u'shard': 0,
                             u'state': u'STARTED'
                         }]
                     }
                 }
             }
         }
     }
     shrink = curator.Shrink(self.ilo, shrink_node=self.node_name)
     shrink.shrink_node_id = self.node_id
     self.assertRaises(curator.ActionError, shrink._check_all_shards,
                       testvars.named_index)
Exemplo n.º 11
0
 def test_not_found(self):
     self.builder()
     shrink = curator.Shrink(self.ilo, shrink_node='not_me')
     self.assertRaises(curator.ConfigurationError, shrink.qualify_single_node)
Exemplo n.º 12
0
 def test_negative(self):
     self.builder()
     node_filters = {u'exclude_nodes': [u'not_this_node']}
     shrink = curator.Shrink(self.ilo, node_filters=node_filters)
     self.assertFalse(shrink._exclude_node(self.node_name))
Exemplo n.º 13
0
 def test_positive(self):
     self.builder()
     node_filters = {u'exclude_nodes': [self.node_name]}
     shrink = curator.Shrink(self.ilo, node_filters=node_filters)
     self.assertTrue(shrink._exclude_node(self.node_name))
Exemplo n.º 14
0
 def test_shard_factor(self):
     self.builder()
     src_shards = 5
     shrink = curator.Shrink(self.ilo, number_of_shards=3)
     self.assertRaises(curator.ActionError, shrink._check_shard_factor, testvars.named_index, src_shards)
Exemplo n.º 15
0
 def test_target_exists(self):
     self.builder()
     self.client.indices.exists.return_value = True
     shrink = curator.Shrink(self.ilo)
     self.assertRaises(curator.ActionError, shrink._check_target_exists, testvars.named_index)
Exemplo n.º 16
0
 def test_multi_data_path_node(self):
     self.builder()
     self.client.nodes.stats.return_value = {u'nodes':{self.node_id:{u'fs':{u'data':[u'one',u'two']}, u'name':self.node_name}}}
     self.client.nodes.info.return_value = {u'nodes':{self.node_id:{u'roles':[u'data']}}}
     shrink = curator.Shrink(self.ilo, shrink_node=self.node_name)
     self.assertRaises(curator.ActionError, shrink.qualify_single_node)