Example #1
0
    def create_volume(self, volume):
        """Create a volume."""
        pool_info = self.restclient.find_pool_info()
        volume_name = huawei_utils.encode_name(volume['id'])
        volume_description = volume['name']
        volume_size = huawei_utils.get_volume_size(volume)

        LOG.info(_LI(
            'Create volume: %(volume)s, size: %(size)s.'),
            {'volume': volume_name,
             'size': volume_size})

        params = huawei_utils.get_lun_conf_params(self.xml_file_path)
        params['pool_id'] = pool_info['ID']
        params['volume_size'] = volume_size
        params['volume_description'] = volume_description

        # Prepare LUN parameters.
        lun_param = huawei_utils.init_lun_parameters(volume_name, params)

        # Create LUN on the array.
        lun_info = self.restclient.create_volume(lun_param)
        lun_id = lun_info['ID']

        return {'provider_location': lun_info['ID'],
                'ID': lun_id,
                'lun_info': lun_info}
Example #2
0
    def create_volume(self, volume):
        """Create a volume."""
        pool_name = volume_utils.extract_host(volume['host'],
                                              level='pool')
        pools = self.restclient.find_all_pools()
        pool_info = self.restclient.find_pool_info(pool_name, pools)
        if not pool_info:
            msg = (_('Error in getting pool information for the pool: %s.')
                   % pool_name)
            LOG.error(msg)
            raise exception.VolumeBackendAPIException(data=msg)
        volume_name = huawei_utils.encode_name(volume['id'])
        volume_description = volume['name']
        volume_size = huawei_utils.get_volume_size(volume)

        LOG.info(_LI(
            'Create volume: %(volume)s, size: %(size)s.'),
            {'volume': volume_name,
             'size': volume_size})

        params = huawei_utils.get_lun_conf_params(self.xml_file_path)
        params['pool_id'] = pool_info['ID']
        params['volume_size'] = volume_size
        params['volume_description'] = volume_description

        # Prepare LUN parameters.
        lun_param = huawei_utils.init_lun_parameters(volume_name, params)

        # Create LUN on the array.
        lun_info = self.restclient.create_volume(lun_param)
        lun_id = lun_info['ID']

        return {'provider_location': lun_info['ID'],
                'ID': lun_id,
                'lun_info': lun_info}
Example #3
0
 def test_get_lun_conf_params(self):
     self.driver.restclient.login()
     luninfo = huawei_utils.get_lun_conf_params(self.xml_file_path)
     luninfo["pool_id"] = "0"
     luninfo["volume_size"] = 2
     luninfo["volume_description"] = "test volume"
     luninfo = huawei_utils.init_lun_parameters("5mFHcBv4RkCcD+JyrWc0SA", luninfo)
     self.assertEqual("5mFHcBv4RkCcD+JyrWc0SA", luninfo["NAME"])
 def test_get_lun_conf_params(self):
     self.driver.restclient.login()
     luninfo = huawei_utils.get_lun_conf_params(self.xml_file_path)
     luninfo['pool_id'] = '0'
     luninfo['volume_size'] = 2
     luninfo['volume_description'] = 'test volume'
     luninfo = huawei_utils.init_lun_parameters('5mFHcBv4RkCcD+JyrWc0SA',
                                                luninfo)
     self.assertEqual('5mFHcBv4RkCcD+JyrWc0SA', luninfo['NAME'])
Example #5
0
 def test_get_lun_conf_params(self):
     self.driver.restclient.login()
     luninfo = huawei_utils.get_lun_conf_params(self.xml_file_path)
     luninfo['pool_id'] = '0'
     luninfo['volume_size'] = 2
     luninfo['volume_description'] = 'test volume'
     luninfo = huawei_utils.init_lun_parameters('5mFHcBv4RkCcD+JyrWc0SA',
                                                luninfo)
     self.assertEqual('5mFHcBv4RkCcD+JyrWc0SA', luninfo['NAME'])
Example #6
0
    def create_volume(self, volume):
        """Create a volume."""
        pool_name = volume_utils.extract_host(volume['host'], level='pool')
        pools = self.restclient.find_all_pools()
        pool_info = self.restclient.find_pool_info(pool_name, pools)
        if not pool_info:
            msg = (_('Error in getting pool information for the pool: %s.') %
                   pool_name)
            LOG.error(msg)
            raise exception.VolumeBackendAPIException(data=msg)
        volume_name = huawei_utils.encode_name(volume['id'])
        volume_description = volume['name']
        volume_size = huawei_utils.get_volume_size(volume)

        LOG.info(_LI('Create volume: %(volume)s, size: %(size)s.'), {
            'volume': volume_name,
            'size': volume_size
        })

        params = huawei_utils.get_lun_conf_params(self.xml_file_path)
        params['pool_id'] = pool_info['ID']
        params['volume_size'] = volume_size
        params['volume_description'] = volume_description

        # Prepare LUN parameters.
        lun_param = huawei_utils.init_lun_parameters(volume_name, params)

        # Create LUN on the array.
        lun_info = self.restclient.create_volume(lun_param)
        lun_id = lun_info['ID']

        return {
            'provider_location': lun_info['ID'],
            'ID': lun_id,
            'lun_info': lun_info
        }