def test_create_onefs_bad_image(self, fake_vCenter, fake_deploy_from_ova, fake_get_info, fake_Ova, fake_consume_task): """``create_onefs`` raises ValueError if supplied with a non-existing image of OneFS""" fake_logger = MagicMock() fake_Ova.side_effect = FileNotFoundError("testing") fake_get_info.return_value = {'worked': True} fake_vCenter.return_value.__enter__.return_value.networks = { 'externallNetwork': vmware.vim.Network(moId='asdf') } with self.assertRaises(ValueError): vmware.create_onefs(username='******', machine_name='isi01', image='4.0.0.0', front_end='externallNetwork', back_end='internalNetwork', ram=4, cpu_count=2, logger=fake_logger)
def test_create_onefs_value_error_2(self, fake_vCenter, fake_deploy_from_ova, fake_get_info, fake_Ova, fake_consume_task): """``create_onefs`` raises ValueError if supplied with a non-existing back_end network""" fake_logger = MagicMock() fake_Ova.return_value.networks = ['vLabNetwork'] fake_get_info.return_value = {'worked': True} fake_vCenter.return_value.__enter__.return_value.networks = { 'externallNetwork': vmware.vim.Network(moId='asdf') } with self.assertRaises(ValueError): vmware.create_onefs(username='******', machine_name='isi01', image='8.0.0.4', front_end='externallNetwork', back_end='not a thing', ram=4, cpu_count=2, logger=fake_logger)
def test_create_onefs_cpu(self, fake_vCenter, fake_deploy_from_ova, fake_get_info, fake_Ova, make_network_map, fake_consume_task, fake_set_meta, fake_adjust_ram, fake_adjust_cpu): """``create_onefs`` sets the amount of CPU cores the VM has""" fake_logger = MagicMock() fake_Ova.return_value.networks = ['vLabNetwork'] fake_get_info.return_value = {'worked': True} fake_deploy_from_ova.return_value.name = 'isi01' vmware.create_onefs(username='******', machine_name='isi01', image='8.0.0.4', front_end='externalNetwork', back_end='internalNetwork', ram=4, cpu_count=2, logger=fake_logger) all_args, _ = fake_adjust_cpu.call_args defined_ram = all_args[1] expected_ram = 2 self.assertEqual(defined_ram, expected_ram)
def test_create_onefs_power(self, fake_vCenter, fake_deploy_from_ova, fake_get_info, fake_Ova, make_network_map, fake_consume_task, fake_set_meta, fake_adjust_ram, fake_adjust_cpu): """``create_onefs`` opts out of the deploy lib powering on the new VM""" fake_logger = MagicMock() fake_Ova.return_value.networks = ['vLabNetwork'] fake_get_info.return_value = {'worked': True} fake_deploy_from_ova.return_value.name = 'isi01' vmware.create_onefs(username='******', machine_name='isi01', image='8.0.0.4', front_end='externalNetwork', back_end='internalNetwork', ram=4, cpu_count=2, logger=fake_logger) _, call_kwargs = fake_deploy_from_ova.call_args called_power = call_kwargs['power_on'] expected_power = False self.assertEqual(called_power, expected_power)
def create(self, username, machine_name, image, front_end, back_end, ram, cpu_count, txn_id): """Deploy a new OneFS node :Returns: Dictionary :param username: The name of the user who wants to create a new default gateway :type username: String :param machine_name: The name of the new OneFS node :type machine_name: String :param image: The image version of OneFS to create :type image: String :param front_end: The network to hook up the external network to :type front_end: String :param back_end: The network to hook the internal network to :type back_end: String :param ram: The number of GB of memory to provision the node with :type ram: Integer :param cpu_count: The number of CPU cores to allocate to the vOneFS node :type cpu_count: Integer :param txn_id: A unique string supplied by the client to track the call through logs :type txn_id: String """ logger = get_task_logger(txn_id=txn_id, task_id=self.request.id, loglevel=const.VLAB_ONEFS_LOG_LEVEL.upper()) resp = {'content': {}, 'error': None, 'params': {}} logger.info('Task starting') try: resp['content'] = vmware.create_onefs(username, machine_name, image, front_end, back_end, ram, cpu_count, logger) except ValueError as doh: logger.error('Task failed: {}'.format(doh)) resp['error'] = '{}'.format(doh) logger.info('Task complete') return resp
def test_create_onefs(self, fake_vCenter, fake_deploy_from_ova, fake_get_info, fake_Ova, make_network_map, fake_consume_task, fake_set_meta, fake_adjust_ram, fake_adjust_cpu): """``create_onefs`` returns the new onefs's info when everything works""" fake_logger = MagicMock() fake_Ova.return_value.networks = ['vLabNetwork'] fake_get_info.return_value = {'worked': True} fake_deploy_from_ova.return_value.name = 'isi01' output = vmware.create_onefs(username='******', machine_name='isi01', image='8.0.0.4', front_end='externalNetwork', back_end='internalNetwork', ram=4, cpu_count=2, logger=fake_logger) expected = {'isi01': {'worked': True}} self.assertEqual(output, expected)