def test_find_free(self): self._create_nodes() fn = db.bm_node_find_free(self.context, 'host2') self.assertEqual(fn['pm_address'], '2') fn = db.bm_node_find_free(self.context, 'host2', memory_mb=500, cpus=2, local_gb=100) self.assertEqual(fn['pm_address'], '3') fn = db.bm_node_find_free(self.context, 'host2', memory_mb=1001, cpus=1, local_gb=1000) self.assertEqual(fn['pm_address'], '4') fn = db.bm_node_find_free(self.context, 'host2', memory_mb=2000, cpus=1, local_gb=1000) self.assertEqual(fn['pm_address'], '4') fn = db.bm_node_find_free(self.context, 'host2', memory_mb=2000, cpus=2, local_gb=1000) self.assertEqual(fn['pm_address'], '5') # check memory_mb fn = db.bm_node_find_free(self.context, 'host2', memory_mb=2001, cpus=2, local_gb=1000) self.assertIsNone(fn) # check cpus fn = db.bm_node_find_free(self.context, 'host2', memory_mb=2000, cpus=3, local_gb=1000) self.assertIsNone(fn) # check local_gb fn = db.bm_node_find_free(self.context, 'host2', memory_mb=2000, cpus=2, local_gb=1001) self.assertIsNone(fn)
def test_find_free(self): self._create_nodes() fn = db.bm_node_find_free(self.context, "host2") self.assertEqual(fn["pm_address"], "2") fn = db.bm_node_find_free(self.context, "host2", memory_mb=500, cpus=2, local_gb=100) self.assertEqual(fn["pm_address"], "3") fn = db.bm_node_find_free(self.context, "host2", memory_mb=1001, cpus=1, local_gb=1000) self.assertEqual(fn["pm_address"], "4") fn = db.bm_node_find_free(self.context, "host2", memory_mb=2000, cpus=1, local_gb=1000) self.assertEqual(fn["pm_address"], "4") fn = db.bm_node_find_free(self.context, "host2", memory_mb=2000, cpus=2, local_gb=1000) self.assertEqual(fn["pm_address"], "5") # check memory_mb fn = db.bm_node_find_free(self.context, "host2", memory_mb=2001, cpus=2, local_gb=1000) self.assertTrue(fn is None) # check cpus fn = db.bm_node_find_free(self.context, "host2", memory_mb=2000, cpus=3, local_gb=1000) self.assertTrue(fn is None) # check local_gb fn = db.bm_node_find_free(self.context, "host2", memory_mb=2000, cpus=2, local_gb=1001) self.assertTrue(fn is None)
def test_find_free(self): self._create_nodes() fn = db.bm_node_find_free(self.context, 'host2') self.assertEqual(fn['pm_address'], '2') fn = db.bm_node_find_free(self.context, 'host2', memory_mb=500, cpus=2, local_gb=100) self.assertEqual(fn['pm_address'], '3') fn = db.bm_node_find_free(self.context, 'host2', memory_mb=1001, cpus=1, local_gb=1000) self.assertEqual(fn['pm_address'], '4') fn = db.bm_node_find_free(self.context, 'host2', memory_mb=2000, cpus=1, local_gb=1000) self.assertEqual(fn['pm_address'], '4') fn = db.bm_node_find_free(self.context, 'host2', memory_mb=2000, cpus=2, local_gb=1000) self.assertEqual(fn['pm_address'], '5') # check memory_mb fn = db.bm_node_find_free(self.context, 'host2', memory_mb=2001, cpus=2, local_gb=1000) self.assertTrue(fn is None) # check cpus fn = db.bm_node_find_free(self.context, 'host2', memory_mb=2000, cpus=3, local_gb=1000) self.assertTrue(fn is None) # check local_gb fn = db.bm_node_find_free(self.context, 'host2', memory_mb=2000, cpus=2, local_gb=1001) self.assertTrue(fn is None)
def get_nodename_for_new_instance(self, context, instance): def none_to_0(x): if x is None: return 0 else: return x local_gb = none_to_0(instance.get('root_gb')) + \ none_to_0(instance.get('ephemeral_gb')) node = bmdb.bm_node_find_free(context, FLAGS.host, memory_mb=instance['memory_mb'], cpus=instance['vcpus'], local_gb=local_gb) if not node: raise NoSuitableNode(instance_uuid=instance['uuid']) return str(node['id'])