14
14
15
15
import copy
16
16
import logging
17
+ import unittest
17
18
18
19
from keystoneauth1 import adapter
19
20
import mock
@@ -813,12 +814,18 @@ def setUp(self):
813
814
'os_compute_api:servers:show' : '@' ,
814
815
'os_compute_api:os-attach-interfaces' : '@' ,
815
816
'os_compute_api:os-attach-interfaces:create' : '@' ,
817
+ 'os_compute_api:os-attach-interfaces:show' : '@' ,
816
818
'os_compute_api:os-shelve:shelve' : '@' ,
817
819
'os_compute_api:os-shelve:unshelve' : '@' ,
818
820
'os_compute_api:os-migrate-server:migrate_live' : '@' ,
819
821
'os_compute_api:os-evacuate' : '@' ,
820
822
})
821
823
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
+
822
829
823
830
class PortResourceRequestBasedSchedulingTest (
824
831
PortResourceRequestBasedSchedulingTestBase ):
@@ -1497,6 +1504,37 @@ def test_sriov_macvtap_port_with_resource_request(self):
1497
1504
port_binding ['pci_slot' ])
1498
1505
1499
1506
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
+
1500
1538
class ExtendedPortResourceRequestBasedSchedulingTestBase (
1501
1539
PortResourceRequestBasedSchedulingTestBase ):
1502
1540
"""A base class for tests with neutron extended resource request."""
@@ -1617,6 +1655,37 @@ def setUp(self):
1617
1655
MultiGroupResourceRequestNeutronFixture (self ))
1618
1656
1619
1657
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
+
1620
1689
class ServerMoveWithPortResourceRequestTest (
1621
1690
PortResourceRequestBasedSchedulingTestBase ):
1622
1691
@@ -2548,6 +2617,57 @@ def test_unshelve_offloaded_server_with_qos_port_fails_due_to_neutron(
2548
2617
server , qos_normal_port , qos_sriov_port )
2549
2618
2550
2619
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
+
2551
2671
class ServerMoveWithMultiGroupResourceRequestBasedSchedulingTest (
2552
2672
ExtendedPortResourceRequestBasedSchedulingTestBase ,
2553
2673
ServerMoveWithPortResourceRequestTest ,
@@ -2564,6 +2684,57 @@ def setUp(self):
2564
2684
MultiGroupResourceRequestNeutronFixture (self ))
2565
2685
2566
2686
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
+
2567
2738
class LiveMigrateAbortWithPortResourceRequestTest (
2568
2739
PortResourceRequestBasedSchedulingTestBase ):
2569
2740
@@ -2955,3 +3126,35 @@ def test_interface_attach(self, mock_get_service):
2955
3126
'services to Xena (24.0.0) or later.' ,
2956
3127
str (ex )
2957
3128
)
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