Merge "make PowerVM capabilities explicit"

This commit is contained in:
Zuul 2018-03-24 00:33:13 +00:00 committed by Gerrit Code Review
commit 1303d7a2d1
2 changed files with 35 additions and 2 deletions

View File

@ -1,4 +1,4 @@
# Copyright 2016, 2017 IBM Corp.
# Copyright 2016, 2018 IBM Corp.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
@ -26,6 +26,7 @@ from pypowervm.wrappers import virtual_io_server as pvm_vios
from nova import exception
from nova import test
from nova.tests.unit.virt import powervm
from nova.virt.driver import ComputeDriver
from nova.virt import hardware
from nova.virt.powervm.disk import ssp
from nova.virt.powervm import driver
@ -50,6 +51,25 @@ class TestPowerVMDriver(test.NoDBTestCase):
# Create an instance to test with
self.inst = powervm.TEST_INSTANCE
def test_driver_capabilities(self):
"""Test the driver capabilities."""
# check that the driver reports all capabilities
self.assertEqual(set(ComputeDriver.capabilities),
set(self.drv.capabilities))
# check the values for each capability
self.assertFalse(self.drv.capabilities['has_imagecache'])
self.assertFalse(self.drv.capabilities['supports_recreate'])
self.assertFalse(
self.drv.capabilities['supports_migrate_to_same_host'])
self.assertFalse(self.drv.capabilities['supports_attach_interface'])
self.assertFalse(self.drv.capabilities['supports_device_tagging'])
self.assertFalse(
self.drv.capabilities['supports_tagged_attach_interface'])
self.assertFalse(
self.drv.capabilities['supports_tagged_attach_volume'])
self.assertFalse(self.drv.capabilities['supports_extend_volume'])
self.assertFalse(self.drv.capabilities['supports_multiattach'])
@mock.patch('nova.image.API')
@mock.patch('pypowervm.tasks.storage.ComprehensiveScrub', autospec=True)
@mock.patch('nova.virt.powervm.disk.ssp.SSPDiskAdapter')

View File

@ -1,4 +1,4 @@
# Copyright 2014, 2017 IBM Corp.
# Copyright 2014, 2018 IBM Corp.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
@ -52,6 +52,19 @@ class PowerVMDriver(driver.ComputeDriver):
"""
def __init__(self, virtapi):
# NOTE(edmondsw) some of these will be dynamic in future, so putting
# capabilities on the instance rather than on the class.
self.capabilities = {
'has_imagecache': False,
'supports_recreate': False,
'supports_migrate_to_same_host': False,
'supports_attach_interface': False,
'supports_device_tagging': False,
'supports_tagged_attach_interface': False,
'supports_tagged_attach_volume': False,
'supports_extend_volume': False,
'supports_multiattach': False,
}
super(PowerVMDriver, self).__init__(virtapi)
def init_host(self, host):