1414
1515import copy
1616import logging
17+ import unittest
1718
1819from keystoneauth1 import adapter
1920import mock
@@ -813,12 +814,18 @@ def setUp(self):
813814 'os_compute_api:servers:show' : '@' ,
814815 'os_compute_api:os-attach-interfaces' : '@' ,
815816 'os_compute_api:os-attach-interfaces:create' : '@' ,
817+ 'os_compute_api:os-attach-interfaces:show' : '@' ,
816818 'os_compute_api:os-shelve:shelve' : '@' ,
817819 'os_compute_api:os-shelve:unshelve' : '@' ,
818820 'os_compute_api:os-migrate-server:migrate_live' : '@' ,
819821 'os_compute_api:os-evacuate' : '@' ,
820822 })
821823
824+ # this is bug 1945310
825+ @unittest .expectedFailure
826+ def test_interface_attach_with_resource_request_old_compute (self ):
827+ super ().test_interface_attach_with_resource_request_old_compute ()
828+
822829
823830class PortResourceRequestBasedSchedulingTest (
824831 PortResourceRequestBasedSchedulingTestBase ):
@@ -1497,6 +1504,37 @@ def test_sriov_macvtap_port_with_resource_request(self):
14971504 port_binding ['pci_slot' ])
14981505
14991506
1507+ class NonAdminPortResourceRequestTests (
1508+ PortResourceRequestBasedSchedulingTest
1509+ ):
1510+ def setUp (self ):
1511+ super ().setUp ()
1512+ # switch to non admin api
1513+ self .api = self .api_fixture .api
1514+ self .api .microversion = self .microversion
1515+
1516+ # allow non-admin to call the operations
1517+ self .policy .set_rules ({
1518+ 'os_compute_api:servers:create' : '@' ,
1519+ 'os_compute_api:servers:delete' : '@' ,
1520+ 'os_compute_api:servers:create:attach_network' : '@' ,
1521+ 'os_compute_api:servers:show' : '@' ,
1522+ 'os_compute_api:os-attach-interfaces' : '@' ,
1523+ 'os_compute_api:os-attach-interfaces:create' : '@' ,
1524+ 'os_compute_api:os-attach-interfaces:delete' : '@' ,
1525+ 'os_compute_api:os-attach-interfaces:show' : '@' ,
1526+ 'os_compute_api:os-server-external-events:create' : '@' ,
1527+ 'os_compute_api:os-hypervisors:list' : '@' ,
1528+ 'os_compute_api:os-migrations:index' : '@' ,
1529+ 'os_compute_api:os-services:list' : '@' ,
1530+ })
1531+
1532+ # this is bug 1945310
1533+ @unittest .expectedFailure
1534+ def test_interface_detach_with_port_with_bandwidth_request (self ):
1535+ super ().test_interface_detach_with_port_with_bandwidth_request ()
1536+
1537+
15001538class ExtendedPortResourceRequestBasedSchedulingTestBase (
15011539 PortResourceRequestBasedSchedulingTestBase ):
15021540 """A base class for tests with neutron extended resource request."""
@@ -1617,6 +1655,37 @@ def setUp(self):
16171655 MultiGroupResourceRequestNeutronFixture (self ))
16181656
16191657
1658+ class NonAdminMultiGroupResReqTests (
1659+ MultiGroupResourceRequestBasedSchedulingTest
1660+ ):
1661+ def setUp (self ):
1662+ super ().setUp ()
1663+ # switch to non admin api
1664+ self .api = self .api_fixture .api
1665+ self .api .microversion = self .microversion
1666+
1667+ # allow non-admin to call the operations
1668+ self .policy .set_rules ({
1669+ 'os_compute_api:servers:create' : '@' ,
1670+ 'os_compute_api:servers:delete' : '@' ,
1671+ 'os_compute_api:servers:create:attach_network' : '@' ,
1672+ 'os_compute_api:servers:show' : '@' ,
1673+ 'os_compute_api:os-attach-interfaces' : '@' ,
1674+ 'os_compute_api:os-attach-interfaces:create' : '@' ,
1675+ 'os_compute_api:os-attach-interfaces:delete' : '@' ,
1676+ 'os_compute_api:os-attach-interfaces:show' : '@' ,
1677+ 'os_compute_api:os-server-external-events:create' : '@' ,
1678+ 'os_compute_api:os-hypervisors:list' : '@' ,
1679+ 'os_compute_api:os-migrations:index' : '@' ,
1680+ 'os_compute_api:os-services:list' : '@' ,
1681+ })
1682+
1683+ # this is bug 1945310
1684+ @unittest .expectedFailure
1685+ def test_interface_detach_with_port_with_bandwidth_request (self ):
1686+ super ().test_interface_detach_with_port_with_bandwidth_request ()
1687+
1688+
16201689class ServerMoveWithPortResourceRequestTest (
16211690 PortResourceRequestBasedSchedulingTestBase ):
16221691
@@ -2548,6 +2617,57 @@ def test_unshelve_offloaded_server_with_qos_port_fails_due_to_neutron(
25482617 server , qos_normal_port , qos_sriov_port )
25492618
25502619
2620+ class NonAdminServerMoveWithPortResourceRequestTests (
2621+ ServerMoveWithPortResourceRequestTest
2622+ ):
2623+ def setUp (self ):
2624+ super ().setUp ()
2625+ # switch to non admin api
2626+ self .api = self .api_fixture .api
2627+ self .api .microversion = self .microversion
2628+
2629+ # allow non-admin to call the operations
2630+ self .policy .set_rules ({
2631+ 'os_compute_api:servers:create' : '@' ,
2632+ 'os_compute_api:servers:delete' : '@' ,
2633+ 'os_compute_api:os-services:update' : '@' ,
2634+ 'os_compute_api:servers:create:attach_network' : '@' ,
2635+ 'os_compute_api:servers:show' : '@' ,
2636+ 'os_compute_api:os-extended-server-attributes' : '@' ,
2637+ 'os_compute_api:os-shelve:shelve' : '@' ,
2638+ 'os_compute_api:os-shelve:unshelve' : '@' ,
2639+ 'os_compute_api:os-migrate-server:migrate' : '@' ,
2640+ 'os_compute_api:os-migrate-server:migrate_live' : '@' ,
2641+ 'os_compute_api:servers:resize' : '@' ,
2642+ 'os_compute_api:servers:confirm_resize' : '@' ,
2643+ 'os_compute_api:servers:revert_resize' : '@' ,
2644+ 'os_compute_api:os-evacuate' : '@' ,
2645+ 'os_compute_api:os-hypervisors:list' : '@' ,
2646+ 'os_compute_api:os-migrations:index' : '@' ,
2647+ 'os_compute_api:os-services:list' : '@' ,
2648+ 'compute:servers:create:requested_destination' : '@' ,
2649+ 'os_compute_api:os-instance-actions:show' : '@' ,
2650+ 'os_compute_api:os-instance-actions:list' : '@' ,
2651+ })
2652+
2653+ # this is bug 1945310
2654+ @unittest .expectedFailure
2655+ def test_live_migrate_with_qos_port (self , host = None ):
2656+ super ().test_live_migrate_with_qos_port ()
2657+
2658+ # this is bug 1945310
2659+ @unittest .expectedFailure
2660+ def test_live_migrate_with_qos_port_with_target_host (self ):
2661+ super (
2662+ ).test_live_migrate_with_qos_port_with_target_host ()
2663+
2664+ # this is bug 1945310
2665+ @unittest .expectedFailure
2666+ def test_live_migrate_with_qos_port_reschedule_success (self ):
2667+ super (
2668+ ).test_live_migrate_with_qos_port_reschedule_success ()
2669+
2670+
25512671class ServerMoveWithMultiGroupResourceRequestBasedSchedulingTest (
25522672 ExtendedPortResourceRequestBasedSchedulingTestBase ,
25532673 ServerMoveWithPortResourceRequestTest ,
@@ -2564,6 +2684,57 @@ def setUp(self):
25642684 MultiGroupResourceRequestNeutronFixture (self ))
25652685
25662686
2687+ class NonAdminServerMoveWithMultiGroupResReqTests (
2688+ ServerMoveWithMultiGroupResourceRequestBasedSchedulingTest
2689+ ):
2690+ def setUp (self ):
2691+ super ().setUp ()
2692+ # switch to non admin api
2693+ self .api = self .api_fixture .api
2694+ self .api .microversion = self .microversion
2695+
2696+ # allow non-admin to call the operations
2697+ self .policy .set_rules ({
2698+ 'os_compute_api:servers:create' : '@' ,
2699+ 'os_compute_api:servers:delete' : '@' ,
2700+ 'os_compute_api:os-services:update' : '@' ,
2701+ 'os_compute_api:servers:create:attach_network' : '@' ,
2702+ 'os_compute_api:servers:show' : '@' ,
2703+ 'os_compute_api:os-extended-server-attributes' : '@' ,
2704+ 'os_compute_api:os-shelve:shelve' : '@' ,
2705+ 'os_compute_api:os-shelve:unshelve' : '@' ,
2706+ 'os_compute_api:os-migrate-server:migrate' : '@' ,
2707+ 'os_compute_api:os-migrate-server:migrate_live' : '@' ,
2708+ 'os_compute_api:servers:resize' : '@' ,
2709+ 'os_compute_api:servers:confirm_resize' : '@' ,
2710+ 'os_compute_api:servers:revert_resize' : '@' ,
2711+ 'os_compute_api:os-evacuate' : '@' ,
2712+ 'os_compute_api:os-hypervisors:list' : '@' ,
2713+ 'os_compute_api:os-migrations:index' : '@' ,
2714+ 'os_compute_api:os-services:list' : '@' ,
2715+ 'compute:servers:create:requested_destination' : '@' ,
2716+ 'os_compute_api:os-instance-actions:show' : '@' ,
2717+ 'os_compute_api:os-instance-actions:list' : '@' ,
2718+ })
2719+
2720+ # this is bug 1945310
2721+ @unittest .expectedFailure
2722+ def test_live_migrate_with_qos_port (self , host = None ):
2723+ super ().test_live_migrate_with_qos_port ()
2724+
2725+ # this is bug 1945310
2726+ @unittest .expectedFailure
2727+ def test_live_migrate_with_qos_port_with_target_host (self ):
2728+ super (
2729+ ).test_live_migrate_with_qos_port_with_target_host ()
2730+
2731+ # this is bug 1945310
2732+ @unittest .expectedFailure
2733+ def test_live_migrate_with_qos_port_reschedule_success (self ):
2734+ super (
2735+ ).test_live_migrate_with_qos_port_reschedule_success ()
2736+
2737+
25672738class LiveMigrateAbortWithPortResourceRequestTest (
25682739 PortResourceRequestBasedSchedulingTestBase ):
25692740
@@ -2955,3 +3126,35 @@ def test_interface_attach(self, mock_get_service):
29553126 'services to Xena (24.0.0) or later.' ,
29563127 str (ex )
29573128 )
3129+
3130+
3131+ class NonAdminExtendedResourceRequestOldCompute (
3132+ ExtendedResourceRequestOldCompute
3133+ ):
3134+
3135+ def setUp (self ):
3136+ super ().setUp ()
3137+ # switch to non admin api
3138+ self .api = self .api_fixture .api
3139+ self .api .microversion = self .microversion
3140+
3141+ # allow non-admin to call the operations
3142+ self .policy .set_rules ({
3143+ 'os_compute_api:servers:create' : '@' ,
3144+ 'os_compute_api:servers:show' : '@' ,
3145+ 'os_compute_api:servers:create:attach_network' : '@' ,
3146+ 'os_compute_api:os-attach-interfaces' : '@' ,
3147+ 'os_compute_api:os-attach-interfaces:create' : '@' ,
3148+ 'os_compute_api:os-attach-interfaces:show' : '@' ,
3149+ 'os_compute_api:os-shelve:shelve' : '@' ,
3150+ 'os_compute_api:os-shelve:unshelve' : '@' ,
3151+ 'os_compute_api:os-migrate-server:migrate' : '@' ,
3152+ 'os_compute_api:os-migrate-server:migrate_live' : '@' ,
3153+ 'os_compute_api:servers:resize' : '@' ,
3154+ 'os_compute_api:os-evacuate' : '@' ,
3155+ })
3156+
3157+ # this is bug 1945310
3158+ @unittest .expectedFailure
3159+ def test_interface_attach (self , mock_get_service ):
3160+ super ().test_interface_attach ()
0 commit comments