def test_check_hypervisor_stats(self): mock_compute = mock.Mock() mock_stats = mock.Mock() return_values = [ { 'count': 0, 'memory_mb': 0, 'vcpus': 0 }, { 'count': 1, 'memory_mb': 1, 'vcpus': 1 }, ] mock_stats.to_dict.side_effect = return_values mock_compute.hypervisors.statistics.return_value = mock_stats stats = utils.check_hypervisor_stats(mock_compute, nodes=1, memory=1, vcpu=1) self.assertEqual(stats, None) self.assertEqual(mock_stats.to_dict.call_count, 1) stats = utils.check_hypervisor_stats(mock_compute, nodes=1, memory=1, vcpu=1) self.assertEqual(stats, return_values[-1]) self.assertEqual(mock_stats.to_dict.call_count, 2)
def test_check_hypervisor_stats(self): mock_compute = mock.Mock() mock_stats = mock.Mock() return_values = [{"count": 0, "memory_mb": 0, "vcpus": 0}, {"count": 1, "memory_mb": 1, "vcpus": 1}] mock_stats.to_dict.side_effect = return_values mock_compute.hypervisors.statistics.return_value = mock_stats stats = utils.check_hypervisor_stats(mock_compute, nodes=1, memory=1, vcpu=1) self.assertEqual(stats, None) self.assertEqual(mock_stats.to_dict.call_count, 1) stats = utils.check_hypervisor_stats(mock_compute, nodes=1, memory=1, vcpu=1) self.assertEqual(stats, return_values[-1]) self.assertEqual(mock_stats.to_dict.call_count, 2)
def _pre_heat_deploy(self): """Setup before the Heat stack create or update has been done.""" clients = self.app.client_manager compute_client = clients.compute self.log.debug("Checking hypervisor stats") if utils.check_hypervisor_stats(compute_client) is None: raise exceptions.DeploymentError( "Expected hypervisor stats not met") return True
def test_check_hypervisor_stats(self): mock_compute = mock.Mock() mock_stats = mock.Mock() return_values = [ {'count': 0, 'memory_mb': 0, 'vcpus': 0}, {'count': 1, 'memory_mb': 1, 'vcpus': 1}, ] mock_stats.to_dict.side_effect = return_values mock_compute.hypervisors.statistics.return_value = mock_stats stats = utils.check_hypervisor_stats( mock_compute, nodes=1, memory=1, vcpu=1) self.assertIsNone(stats) self.assertEqual(mock_stats.to_dict.call_count, 1) stats = utils.check_hypervisor_stats( mock_compute, nodes=1, memory=1, vcpu=1) self.assertEqual(stats, return_values[-1]) self.assertEqual(mock_stats.to_dict.call_count, 2)
def _predeploy_verify_capabilities(self, stack, parameters, parsed_args): self.predeploy_errors = 0 self.predeploy_warnings = 0 self.log.debug("Starting _pre_verify_capabilities") bm_client = self.app.client_manager.baremetal self._check_boot_images() flavors = self._collect_flavors(parsed_args) self._check_ironic_boot_configuration(bm_client) errors, warnings = utils.assign_and_verify_profiles( bm_client, flavors, assign_profiles=False, dry_run=parsed_args.dry_run ) self.predeploy_errors += errors self.predeploy_warnings += warnings compute_client = self.app.client_manager.compute self.log.debug("Checking hypervisor stats") if utils.check_hypervisor_stats(compute_client) is None: self.log.error("Expected hypervisor stats not met") self.predeploy_errors += 1 self.log.debug("Checking nodes count") enough_nodes, count, ironic_nodes_count = utils.check_nodes_count( bm_client, stack, parameters, { 'ControllerCount': 1, 'ComputeCount': 1, 'ObjectStorageCount': 0, 'BlockStorageCount': 0, 'CephStorageCount': 0, } ) if not enough_nodes: self.log.error( "Not enough nodes - available: {0}, requested: {1}".format( ironic_nodes_count, count)) self.predeploy_errors += 1 return self.predeploy_errors, self.predeploy_warnings