예제 #1
0
    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)
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
파일: tasks.py 프로젝트: willnx/vlab_onefs
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
예제 #6
0
    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)