octavia 13.0.0__py3-none-any.whl → 13.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. octavia/amphorae/backends/agent/api_server/keepalivedlvs.py +9 -0
  2. octavia/amphorae/backends/agent/api_server/osutils.py +1 -2
  3. octavia/amphorae/backends/agent/api_server/util.py +35 -2
  4. octavia/amphorae/backends/utils/interface.py +4 -5
  5. octavia/amphorae/drivers/driver_base.py +16 -0
  6. octavia/amphorae/drivers/haproxy/rest_api_driver.py +13 -8
  7. octavia/amphorae/drivers/keepalived/jinja/jinja_cfg.py +0 -1
  8. octavia/amphorae/drivers/keepalived/jinja/templates/keepalived_base.template +0 -1
  9. octavia/amphorae/drivers/keepalived/vrrp_rest_driver.py +2 -1
  10. octavia/amphorae/drivers/noop_driver/driver.py +3 -0
  11. octavia/api/common/pagination.py +1 -1
  12. octavia/api/v2/controllers/health_monitor.py +3 -2
  13. octavia/api/v2/controllers/l7policy.py +0 -1
  14. octavia/api/v2/controllers/l7rule.py +0 -1
  15. octavia/api/v2/controllers/listener.py +0 -1
  16. octavia/api/v2/controllers/load_balancer.py +13 -7
  17. octavia/api/v2/controllers/member.py +18 -5
  18. octavia/api/v2/controllers/pool.py +6 -7
  19. octavia/api/v2/types/pool.py +1 -1
  20. octavia/certificates/common/pkcs12.py +9 -9
  21. octavia/certificates/manager/barbican.py +24 -16
  22. octavia/certificates/manager/castellan_mgr.py +12 -7
  23. octavia/certificates/manager/noop.py +106 -0
  24. octavia/common/clients.py +22 -4
  25. octavia/common/config.py +21 -5
  26. octavia/common/constants.py +4 -0
  27. octavia/common/exceptions.py +6 -0
  28. octavia/common/jinja/haproxy/combined_listeners/templates/macros.j2 +7 -5
  29. octavia/common/keystone.py +7 -7
  30. octavia/common/tls_utils/cert_parser.py +23 -9
  31. octavia/controller/worker/task_utils.py +28 -6
  32. octavia/controller/worker/v2/controller_worker.py +2 -2
  33. octavia/controller/worker/v2/flows/amphora_flows.py +41 -10
  34. octavia/controller/worker/v2/flows/flow_utils.py +6 -4
  35. octavia/controller/worker/v2/flows/load_balancer_flows.py +17 -3
  36. octavia/controller/worker/v2/tasks/amphora_driver_tasks.py +114 -23
  37. octavia/controller/worker/v2/tasks/database_tasks.py +36 -47
  38. octavia/controller/worker/v2/tasks/lifecycle_tasks.py +96 -40
  39. octavia/controller/worker/v2/tasks/network_tasks.py +12 -13
  40. octavia/db/base_models.py +16 -4
  41. octavia/db/repositories.py +34 -33
  42. octavia/network/drivers/neutron/allowed_address_pairs.py +10 -8
  43. octavia/network/drivers/noop_driver/driver.py +1 -2
  44. octavia/tests/common/sample_certs.py +115 -0
  45. octavia/tests/functional/api/v2/base.py +1 -1
  46. octavia/tests/functional/api/v2/test_health_monitor.py +18 -0
  47. octavia/tests/functional/api/v2/test_listener.py +45 -0
  48. octavia/tests/functional/api/v2/test_member.py +32 -0
  49. octavia/tests/functional/db/base.py +9 -0
  50. octavia/tests/functional/db/test_repositories.py +45 -98
  51. octavia/tests/unit/amphorae/backends/agent/api_server/test_util.py +89 -1
  52. octavia/tests/unit/amphorae/backends/utils/test_interface.py +3 -1
  53. octavia/tests/unit/amphorae/drivers/haproxy/test_rest_api_driver.py +3 -3
  54. octavia/tests/unit/amphorae/drivers/keepalived/jinja/test_jinja_cfg.py +0 -4
  55. octavia/tests/unit/amphorae/drivers/keepalived/test_vrrp_rest_driver.py +17 -0
  56. octavia/tests/unit/api/common/test_pagination.py +78 -1
  57. octavia/tests/unit/api/v2/types/test_pool.py +71 -0
  58. octavia/tests/unit/certificates/manager/test_barbican.py +3 -3
  59. octavia/tests/unit/certificates/manager/test_noop.py +53 -0
  60. octavia/tests/unit/cmd/test_prometheus_proxy.py +8 -1
  61. octavia/tests/unit/common/jinja/haproxy/combined_listeners/test_jinja_cfg.py +16 -17
  62. octavia/tests/unit/common/test_config.py +35 -0
  63. octavia/tests/unit/common/test_keystone.py +32 -0
  64. octavia/tests/unit/controller/worker/test_task_utils.py +58 -2
  65. octavia/tests/unit/controller/worker/v2/flows/test_amphora_flows.py +28 -5
  66. octavia/tests/unit/controller/worker/v2/flows/test_load_balancer_flows.py +10 -5
  67. octavia/tests/unit/controller/worker/v2/tasks/test_amphora_driver_tasks.py +234 -17
  68. octavia/tests/unit/controller/worker/v2/tasks/test_database_tasks.py +28 -6
  69. octavia/tests/unit/controller/worker/v2/tasks/test_database_tasks_quota.py +19 -19
  70. octavia/tests/unit/controller/worker/v2/tasks/test_network_tasks.py +57 -2
  71. octavia/tests/unit/controller/worker/v2/test_controller_worker.py +56 -1
  72. octavia/tests/unit/network/drivers/neutron/test_allowed_address_pairs.py +24 -1
  73. {octavia-13.0.0.dist-info → octavia-13.0.1.dist-info}/AUTHORS +8 -0
  74. octavia-13.0.1.dist-info/METADATA +155 -0
  75. {octavia-13.0.0.dist-info → octavia-13.0.1.dist-info}/RECORD +90 -88
  76. {octavia-13.0.0.dist-info → octavia-13.0.1.dist-info}/WHEEL +1 -1
  77. {octavia-13.0.0.dist-info → octavia-13.0.1.dist-info}/entry_points.txt +1 -1
  78. octavia-13.0.1.dist-info/pbr.json +1 -0
  79. octavia-13.0.0.dist-info/METADATA +0 -158
  80. octavia-13.0.0.dist-info/pbr.json +0 -1
  81. {octavia-13.0.0.data → octavia-13.0.1.data}/data/share/octavia/LICENSE +0 -0
  82. {octavia-13.0.0.data → octavia-13.0.1.data}/data/share/octavia/README.rst +0 -0
  83. {octavia-13.0.0.data → octavia-13.0.1.data}/data/share/octavia/diskimage-create/README.rst +0 -0
  84. {octavia-13.0.0.data → octavia-13.0.1.data}/data/share/octavia/diskimage-create/diskimage-create.sh +0 -0
  85. {octavia-13.0.0.data → octavia-13.0.1.data}/data/share/octavia/diskimage-create/image-tests.sh +0 -0
  86. {octavia-13.0.0.data → octavia-13.0.1.data}/data/share/octavia/diskimage-create/requirements.txt +0 -0
  87. {octavia-13.0.0.data → octavia-13.0.1.data}/data/share/octavia/diskimage-create/test-requirements.txt +0 -0
  88. {octavia-13.0.0.data → octavia-13.0.1.data}/data/share/octavia/diskimage-create/tox.ini +0 -0
  89. {octavia-13.0.0.data → octavia-13.0.1.data}/data/share/octavia/diskimage-create/version.txt +0 -0
  90. {octavia-13.0.0.data → octavia-13.0.1.data}/scripts/octavia-wsgi +0 -0
  91. {octavia-13.0.0.dist-info → octavia-13.0.1.dist-info}/LICENSE +0 -0
  92. {octavia-13.0.0.dist-info → octavia-13.0.1.dist-info}/top_level.txt +0 -0
@@ -12,6 +12,7 @@
12
12
  # License for the specific language governing permissions and limitations
13
13
  # under the License.
14
14
 
15
+ from concurrent.futures import ThreadPoolExecutor
15
16
  import datetime
16
17
  import random
17
18
  from unittest import mock
@@ -509,6 +510,47 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
509
510
  project_id=project_id).all()
510
511
  self.assertEqual(1, len(lbs)) # After rollback: 1 (broken!)
511
512
 
513
+ def test_check_quota_met_check_deadlock(self):
514
+ # This test doesn't work with sqlite, using another backend is not
515
+ # straighforward, we need to update the connection_string passed to the
516
+ # __init__ func and also change some calls in the constructor (don't
517
+ # create the DB objects if we use a DB that was deployed for Octavia)
518
+ if 'sqlite://' in self.connection_string:
519
+ self.skipTest("The test for checking potential deadlocks "
520
+ "doesn't work with the sqlite backend")
521
+
522
+ conf = self.useFixture(oslo_fixture.Config(cfg.CONF))
523
+ conf.config(group='api_settings', auth_strategy=constants.TESTING)
524
+ conf.config(group='quotas', default_load_balancer_quota=-1)
525
+
526
+ # Calling check_quota_met concurrently from many threads may
527
+ # have triggered a deadlock in the DB
528
+ # (Note: we run the test 8 times because it's not 100% reproducible)
529
+ # https://bugs.launchpad.net/octavia/+bug/2038798
530
+ for _ in range(8):
531
+ number_of_projects = 8
532
+ project_ids = (
533
+ uuidutils.generate_uuid()
534
+ for _ in range(number_of_projects))
535
+
536
+ with ThreadPoolExecutor(
537
+ max_workers=number_of_projects) as executor:
538
+ def _test_check_quota_met(project_id):
539
+ session = self.get_session()
540
+ session.begin()
541
+ self.assertFalse(self.repos.check_quota_met(
542
+ session, data_models.LoadBalancer,
543
+ project_id))
544
+ session.commit()
545
+
546
+ futs = []
547
+ for project_id in project_ids:
548
+ future = executor.submit(_test_check_quota_met, project_id)
549
+ futs.append(future)
550
+
551
+ for fut in futs:
552
+ fut.result()
553
+
512
554
  def test_check_quota_met(self):
513
555
 
514
556
  project_id = uuidutils.generate_uuid()
@@ -517,7 +559,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
517
559
  conf = self.useFixture(oslo_fixture.Config(cfg.CONF))
518
560
  conf.config(group='api_settings', auth_strategy=constants.NOAUTH)
519
561
  self.assertFalse(self.repos.check_quota_met(self.session,
520
- self.session,
521
562
  data_models.LoadBalancer,
522
563
  project_id))
523
564
  conf.config(group='api_settings', auth_strategy=constants.TESTING)
@@ -525,7 +566,7 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
525
566
  # Test check for missing project_id
526
567
  self.assertRaises(exceptions.MissingProjectID,
527
568
  self.repos.check_quota_met,
528
- self.session, self.session,
569
+ self.session,
529
570
  data_models.LoadBalancer, None)
530
571
  self.session.commit()
531
572
 
@@ -533,7 +574,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
533
574
  project_id = uuidutils.generate_uuid()
534
575
  self.assertFalse(
535
576
  self.repos.check_quota_met(self.session,
536
- self.session,
537
577
  data_models.SessionPersistence,
538
578
  project_id))
539
579
  self.session.commit()
@@ -545,7 +585,7 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
545
585
  side_effect=db_exception.DBDeadlock)
546
586
  self.assertRaises(exceptions.ProjectBusyException,
547
587
  self.repos.check_quota_met,
548
- self.session, mock_session,
588
+ mock_session,
549
589
  data_models.LoadBalancer, project_id)
550
590
  self.session.commit()
551
591
 
@@ -554,7 +594,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
554
594
  project_id = uuidutils.generate_uuid()
555
595
  conf.config(group='quotas', default_load_balancer_quota=0)
556
596
  self.assertTrue(self.repos.check_quota_met(self.session,
557
- self.session,
558
597
  data_models.LoadBalancer,
559
598
  project_id))
560
599
  self.session.commit()
@@ -565,7 +604,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
565
604
  project_id = uuidutils.generate_uuid()
566
605
  conf.config(group='quotas', default_load_balancer_quota=1)
567
606
  self.assertFalse(self.repos.check_quota_met(self.session,
568
- self.session,
569
607
  data_models.LoadBalancer,
570
608
  project_id))
571
609
  self.session.commit()
@@ -573,7 +611,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
573
611
  self.session, project_id=project_id).in_use_load_balancer)
574
612
  # Test above project is now at quota
575
613
  self.assertTrue(self.repos.check_quota_met(self.session,
576
- self.session,
577
614
  data_models.LoadBalancer,
578
615
  project_id))
579
616
  self.session.commit()
@@ -585,7 +622,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
585
622
  conf.config(group='quotas',
586
623
  default_load_balancer_quota=constants.QUOTA_UNLIMITED)
587
624
  self.assertFalse(self.repos.check_quota_met(self.session,
588
- self.session,
589
625
  data_models.LoadBalancer,
590
626
  project_id))
591
627
  self.session.commit()
@@ -593,7 +629,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
593
629
  self.session, project_id=project_id).in_use_load_balancer)
594
630
  # Test above project adding another load balancer
595
631
  self.assertFalse(self.repos.check_quota_met(self.session,
596
- self.session,
597
632
  data_models.LoadBalancer,
598
633
  project_id))
599
634
  self.assertEqual(2, self.repos.quotas.get(
@@ -611,7 +646,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
611
646
  enabled=True)
612
647
  self.session.commit()
613
648
  self.assertTrue(self.repos.check_quota_met(self.session,
614
- self.session,
615
649
  data_models.LoadBalancer,
616
650
  project_id))
617
651
  self.session.commit()
@@ -628,7 +662,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
628
662
  enabled=True)
629
663
  self.session.commit()
630
664
  self.assertFalse(self.repos.check_quota_met(self.session,
631
- self.session,
632
665
  data_models.LoadBalancer,
633
666
  project_id))
634
667
  self.session.commit()
@@ -642,7 +675,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
642
675
  self.repos.quotas.update(self.session, project_id, quota=quota)
643
676
  self.session.commit()
644
677
  self.assertTrue(self.repos.check_quota_met(self.session,
645
- self.session,
646
678
  data_models.LoadBalancer,
647
679
  project_id))
648
680
  self.session.commit()
@@ -654,7 +686,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
654
686
  self.repos.quotas.update(self.session, project_id, quota=quota)
655
687
  self.session.commit()
656
688
  self.assertFalse(self.repos.check_quota_met(self.session,
657
- self.session,
658
689
  data_models.LoadBalancer,
659
690
  project_id))
660
691
  self.session.commit()
@@ -662,7 +693,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
662
693
  self.session, project_id=project_id).in_use_load_balancer)
663
694
  # Test above project is now at quota
664
695
  self.assertTrue(self.repos.check_quota_met(self.session,
665
- self.session,
666
696
  data_models.LoadBalancer,
667
697
  project_id))
668
698
  self.session.commit()
@@ -676,7 +706,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
676
706
  self.repos.quotas.update(self.session, project_id, quota=quota)
677
707
  self.session.commit()
678
708
  self.assertFalse(self.repos.check_quota_met(self.session,
679
- self.session,
680
709
  data_models.LoadBalancer,
681
710
  project_id))
682
711
  self.session.commit()
@@ -684,7 +713,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
684
713
  self.session, project_id=project_id).in_use_load_balancer)
685
714
  # Test above project adding another load balancer
686
715
  self.assertFalse(self.repos.check_quota_met(self.session,
687
- self.session,
688
716
  data_models.LoadBalancer,
689
717
  project_id))
690
718
  self.session.commit()
@@ -696,7 +724,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
696
724
  project_id = uuidutils.generate_uuid()
697
725
  conf.config(group='quotas', default_listener_quota=0)
698
726
  self.assertTrue(self.repos.check_quota_met(self.session,
699
- self.session,
700
727
  data_models.Listener,
701
728
  project_id))
702
729
  self.session.commit()
@@ -707,7 +734,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
707
734
  project_id = uuidutils.generate_uuid()
708
735
  conf.config(group='quotas', default_listener_quota=1)
709
736
  self.assertFalse(self.repos.check_quota_met(self.session,
710
- self.session,
711
737
  data_models.Listener,
712
738
  project_id))
713
739
  self.session.commit()
@@ -715,7 +741,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
715
741
  self.session, project_id=project_id).in_use_listener)
716
742
  # Test above project is now at quota
717
743
  self.assertTrue(self.repos.check_quota_met(self.session,
718
- self.session,
719
744
  data_models.Listener,
720
745
  project_id))
721
746
  self.session.commit()
@@ -727,7 +752,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
727
752
  conf.config(group='quotas',
728
753
  default_listener_quota=constants.QUOTA_UNLIMITED)
729
754
  self.assertFalse(self.repos.check_quota_met(self.session,
730
- self.session,
731
755
  data_models.Listener,
732
756
  project_id))
733
757
  self.session.commit()
@@ -735,7 +759,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
735
759
  self.session, project_id=project_id).in_use_listener)
736
760
  # Test above project adding another listener
737
761
  self.assertFalse(self.repos.check_quota_met(self.session,
738
- self.session,
739
762
  data_models.Listener,
740
763
  project_id))
741
764
  self.session.commit()
@@ -761,7 +784,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
761
784
  load_balancer_id=lb.id)
762
785
  self.session.commit()
763
786
  self.assertTrue(self.repos.check_quota_met(self.session,
764
- self.session,
765
787
  data_models.Listener,
766
788
  project_id))
767
789
  self.session.commit()
@@ -785,7 +807,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
785
807
  load_balancer_id=lb.id)
786
808
  self.session.commit()
787
809
  self.assertFalse(self.repos.check_quota_met(self.session,
788
- self.session,
789
810
  data_models.Listener,
790
811
  project_id))
791
812
  self.session.commit()
@@ -799,7 +820,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
799
820
  self.repos.quotas.update(self.session, project_id, quota=quota)
800
821
  self.session.commit()
801
822
  self.assertTrue(self.repos.check_quota_met(self.session,
802
- self.session,
803
823
  data_models.Listener,
804
824
  project_id))
805
825
  self.session.commit()
@@ -811,7 +831,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
811
831
  self.repos.quotas.update(self.session, project_id, quota=quota)
812
832
  self.session.commit()
813
833
  self.assertFalse(self.repos.check_quota_met(self.session,
814
- self.session,
815
834
  data_models.Listener,
816
835
  project_id))
817
836
  self.session.commit()
@@ -819,7 +838,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
819
838
  self.session, project_id=project_id).in_use_listener)
820
839
  # Test above project is now at quota
821
840
  self.assertTrue(self.repos.check_quota_met(self.session,
822
- self.session,
823
841
  data_models.Listener,
824
842
  project_id))
825
843
  self.session.commit()
@@ -833,7 +851,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
833
851
  self.repos.quotas.update(self.session, project_id, quota=quota)
834
852
  self.session.commit()
835
853
  self.assertFalse(self.repos.check_quota_met(self.session,
836
- self.session,
837
854
  data_models.Listener,
838
855
  project_id))
839
856
  self.session.commit()
@@ -841,7 +858,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
841
858
  self.session, project_id=project_id).in_use_listener)
842
859
  # Test above project adding another listener
843
860
  self.assertFalse(self.repos.check_quota_met(self.session,
844
- self.session,
845
861
  data_models.Listener,
846
862
  project_id))
847
863
  self.session.commit()
@@ -853,7 +869,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
853
869
  project_id = uuidutils.generate_uuid()
854
870
  conf.config(group='quotas', default_pool_quota=0)
855
871
  self.assertTrue(self.repos.check_quota_met(self.session,
856
- self.session,
857
872
  data_models.Pool,
858
873
  project_id))
859
874
  self.session.commit()
@@ -864,7 +879,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
864
879
  project_id = uuidutils.generate_uuid()
865
880
  conf.config(group='quotas', default_pool_quota=1)
866
881
  self.assertFalse(self.repos.check_quota_met(self.session,
867
- self.session,
868
882
  data_models.Pool,
869
883
  project_id))
870
884
  self.session.commit()
@@ -872,7 +886,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
872
886
  self.session, project_id=project_id).in_use_pool)
873
887
  # Test above project is now at quota
874
888
  self.assertTrue(self.repos.check_quota_met(self.session,
875
- self.session,
876
889
  data_models.Pool,
877
890
  project_id))
878
891
  self.session.commit()
@@ -884,7 +897,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
884
897
  conf.config(group='quotas',
885
898
  default_pool_quota=constants.QUOTA_UNLIMITED)
886
899
  self.assertFalse(self.repos.check_quota_met(self.session,
887
- self.session,
888
900
  data_models.Pool,
889
901
  project_id))
890
902
  self.session.commit()
@@ -892,7 +904,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
892
904
  self.session, project_id=project_id).in_use_pool)
893
905
  # Test above project adding another pool
894
906
  self.assertFalse(self.repos.check_quota_met(self.session,
895
- self.session,
896
907
  data_models.Pool,
897
908
  project_id))
898
909
  self.session.commit()
@@ -920,7 +931,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
920
931
  enabled=True, load_balancer_id=lb.id)
921
932
  self.session.commit()
922
933
  self.assertTrue(self.repos.check_quota_met(self.session,
923
- self.session,
924
934
  data_models.Pool,
925
935
  project_id))
926
936
  self.session.commit()
@@ -946,7 +956,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
946
956
  enabled=True, load_balancer_id=lb.id)
947
957
  self.session.commit()
948
958
  self.assertFalse(self.repos.check_quota_met(self.session,
949
- self.session,
950
959
  data_models.Pool,
951
960
  project_id))
952
961
  self.session.commit()
@@ -959,7 +968,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
959
968
  quota = {'pool': 0}
960
969
  self.repos.quotas.update(self.session, project_id, quota=quota)
961
970
  self.assertTrue(self.repos.check_quota_met(self.session,
962
- self.session,
963
971
  data_models.Pool,
964
972
  project_id))
965
973
  self.session.commit()
@@ -970,7 +978,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
970
978
  quota = {'pool': 1}
971
979
  self.repos.quotas.update(self.session, project_id, quota=quota)
972
980
  self.assertFalse(self.repos.check_quota_met(self.session,
973
- self.session,
974
981
  data_models.Pool,
975
982
  project_id))
976
983
  self.session.commit()
@@ -978,7 +985,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
978
985
  self.session, project_id=project_id).in_use_pool)
979
986
  # Test above project is now at quota
980
987
  self.assertTrue(self.repos.check_quota_met(self.session,
981
- self.session,
982
988
  data_models.Pool,
983
989
  project_id))
984
990
  self.session.commit()
@@ -992,7 +998,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
992
998
  self.repos.quotas.update(self.session, project_id, quota=quota)
993
999
  self.session.commit()
994
1000
  self.assertFalse(self.repos.check_quota_met(self.session,
995
- self.session,
996
1001
  data_models.Pool,
997
1002
  project_id))
998
1003
  self.session.commit()
@@ -1000,7 +1005,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1000
1005
  self.session, project_id=project_id).in_use_pool)
1001
1006
  # Test above project adding another pool
1002
1007
  self.assertFalse(self.repos.check_quota_met(self.session,
1003
- self.session,
1004
1008
  data_models.Pool,
1005
1009
  project_id))
1006
1010
  self.session.commit()
@@ -1012,7 +1016,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1012
1016
  project_id = uuidutils.generate_uuid()
1013
1017
  conf.config(group='quotas', default_health_monitor_quota=0)
1014
1018
  self.assertTrue(self.repos.check_quota_met(self.session,
1015
- self.session,
1016
1019
  data_models.HealthMonitor,
1017
1020
  project_id))
1018
1021
  self.session.commit()
@@ -1023,7 +1026,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1023
1026
  project_id = uuidutils.generate_uuid()
1024
1027
  conf.config(group='quotas', default_health_monitor_quota=1)
1025
1028
  self.assertFalse(self.repos.check_quota_met(self.session,
1026
- self.session,
1027
1029
  data_models.HealthMonitor,
1028
1030
  project_id))
1029
1031
  self.session.commit()
@@ -1031,7 +1033,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1031
1033
  self.session, project_id=project_id).in_use_health_monitor)
1032
1034
  # Test above project is now at quota
1033
1035
  self.assertTrue(self.repos.check_quota_met(self.session,
1034
- self.session,
1035
1036
  data_models.HealthMonitor,
1036
1037
  project_id))
1037
1038
  self.session.commit()
@@ -1043,7 +1044,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1043
1044
  conf.config(group='quotas',
1044
1045
  default_health_monitor_quota=constants.QUOTA_UNLIMITED)
1045
1046
  self.assertFalse(self.repos.check_quota_met(self.session,
1046
- self.session,
1047
1047
  data_models.HealthMonitor,
1048
1048
  project_id))
1049
1049
  self.session.commit()
@@ -1051,7 +1051,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1051
1051
  self.session, project_id=project_id).in_use_health_monitor)
1052
1052
  # Test above project adding another health monitor
1053
1053
  self.assertFalse(self.repos.check_quota_met(self.session,
1054
- self.session,
1055
1054
  data_models.HealthMonitor,
1056
1055
  project_id))
1057
1056
  self.session.commit()
@@ -1087,7 +1086,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1087
1086
  enabled=True, pool_id=pool.id)
1088
1087
  self.session.commit()
1089
1088
  self.assertTrue(self.repos.check_quota_met(self.session,
1090
- self.session,
1091
1089
  data_models.HealthMonitor,
1092
1090
  project_id))
1093
1091
  self.session.commit()
@@ -1121,7 +1119,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1121
1119
  enabled=True, pool_id=pool.id)
1122
1120
  self.session.commit()
1123
1121
  self.assertFalse(self.repos.check_quota_met(self.session,
1124
- self.session,
1125
1122
  data_models.HealthMonitor,
1126
1123
  project_id))
1127
1124
  self.session.commit()
@@ -1135,7 +1132,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1135
1132
  self.repos.quotas.update(self.session, project_id, quota=quota)
1136
1133
  self.session.commit()
1137
1134
  self.assertTrue(self.repos.check_quota_met(self.session,
1138
- self.session,
1139
1135
  data_models.HealthMonitor,
1140
1136
  project_id))
1141
1137
  self.session.commit()
@@ -1146,7 +1142,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1146
1142
  quota = {'health_monitor': 1}
1147
1143
  self.repos.quotas.update(self.session, project_id, quota=quota)
1148
1144
  self.assertFalse(self.repos.check_quota_met(self.session,
1149
- self.session,
1150
1145
  data_models.HealthMonitor,
1151
1146
  project_id))
1152
1147
  self.session.commit()
@@ -1154,7 +1149,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1154
1149
  self.session, project_id=project_id).in_use_health_monitor)
1155
1150
  # Test above project is now at quota
1156
1151
  self.assertTrue(self.repos.check_quota_met(self.session,
1157
- self.session,
1158
1152
  data_models.HealthMonitor,
1159
1153
  project_id))
1160
1154
  self.session.commit()
@@ -1168,7 +1162,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1168
1162
  self.repos.quotas.update(self.session, project_id, quota=quota)
1169
1163
  self.session.commit()
1170
1164
  self.assertFalse(self.repos.check_quota_met(self.session,
1171
- self.session,
1172
1165
  data_models.HealthMonitor,
1173
1166
  project_id))
1174
1167
  self.session.commit()
@@ -1176,7 +1169,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1176
1169
  self.session, project_id=project_id).in_use_health_monitor)
1177
1170
  # Test above project adding another health monitor
1178
1171
  self.assertFalse(self.repos.check_quota_met(self.session,
1179
- self.session,
1180
1172
  data_models.HealthMonitor,
1181
1173
  project_id))
1182
1174
  self.session.commit()
@@ -1188,7 +1180,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1188
1180
  project_id = uuidutils.generate_uuid()
1189
1181
  conf.config(group='quotas', default_member_quota=0)
1190
1182
  self.assertTrue(self.repos.check_quota_met(self.session,
1191
- self.session,
1192
1183
  data_models.Member,
1193
1184
  project_id))
1194
1185
  self.session.commit()
@@ -1199,7 +1190,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1199
1190
  project_id = uuidutils.generate_uuid()
1200
1191
  conf.config(group='quotas', default_member_quota=1)
1201
1192
  self.assertFalse(self.repos.check_quota_met(self.session,
1202
- self.session,
1203
1193
  data_models.Member,
1204
1194
  project_id))
1205
1195
  self.session.commit()
@@ -1207,7 +1197,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1207
1197
  self.session, project_id=project_id).in_use_member)
1208
1198
  # Test above project is now at quota
1209
1199
  self.assertTrue(self.repos.check_quota_met(self.session,
1210
- self.session,
1211
1200
  data_models.Member,
1212
1201
  project_id))
1213
1202
  self.session.commit()
@@ -1219,7 +1208,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1219
1208
  conf.config(group='quotas',
1220
1209
  default_member_quota=constants.QUOTA_UNLIMITED)
1221
1210
  self.assertFalse(self.repos.check_quota_met(self.session,
1222
- self.session,
1223
1211
  data_models.Member,
1224
1212
  project_id))
1225
1213
  self.session.commit()
@@ -1227,7 +1215,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1227
1215
  self.session, project_id=project_id).in_use_member)
1228
1216
  # Test above project adding another member
1229
1217
  self.assertFalse(self.repos.check_quota_met(self.session,
1230
- self.session,
1231
1218
  data_models.Member,
1232
1219
  project_id))
1233
1220
  self.session.commit()
@@ -1263,7 +1250,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1263
1250
  enabled=True, pool_id=pool.id, backup=False)
1264
1251
  self.session.commit()
1265
1252
  self.assertTrue(self.repos.check_quota_met(self.session,
1266
- self.session,
1267
1253
  data_models.Member,
1268
1254
  project_id))
1269
1255
  self.session.commit()
@@ -1297,7 +1283,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1297
1283
  enabled=True, pool_id=pool.id, backup=False)
1298
1284
  self.session.commit()
1299
1285
  self.assertFalse(self.repos.check_quota_met(self.session,
1300
- self.session,
1301
1286
  data_models.Member,
1302
1287
  project_id))
1303
1288
  self.session.commit()
@@ -1311,7 +1296,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1311
1296
  self.repos.quotas.update(self.session, project_id, quota=quota)
1312
1297
  self.session.commit()
1313
1298
  self.assertTrue(self.repos.check_quota_met(self.session,
1314
- self.session,
1315
1299
  data_models.Member,
1316
1300
  project_id))
1317
1301
  self.session.commit()
@@ -1323,7 +1307,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1323
1307
  self.repos.quotas.update(self.session, project_id, quota=quota)
1324
1308
  self.session.commit()
1325
1309
  self.assertFalse(self.repos.check_quota_met(self.session,
1326
- self.session,
1327
1310
  data_models.Member,
1328
1311
  project_id))
1329
1312
  self.session.commit()
@@ -1331,7 +1314,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1331
1314
  self.session, project_id=project_id).in_use_member)
1332
1315
  # Test above project is now at quota
1333
1316
  self.assertTrue(self.repos.check_quota_met(self.session,
1334
- self.session,
1335
1317
  data_models.Member,
1336
1318
  project_id))
1337
1319
  self.session.commit()
@@ -1345,7 +1327,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1345
1327
  self.repos.quotas.update(self.session, project_id, quota=quota)
1346
1328
  self.session.commit()
1347
1329
  self.assertFalse(self.repos.check_quota_met(self.session,
1348
- self.session,
1349
1330
  data_models.Member,
1350
1331
  project_id))
1351
1332
  self.session.commit()
@@ -1353,7 +1334,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1353
1334
  self.session, project_id=project_id).in_use_member)
1354
1335
  # Test above project adding another member
1355
1336
  self.assertFalse(self.repos.check_quota_met(self.session,
1356
- self.session,
1357
1337
  data_models.Member,
1358
1338
  project_id))
1359
1339
  self.session.commit()
@@ -1365,7 +1345,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1365
1345
  project_id = uuidutils.generate_uuid()
1366
1346
  conf.config(group='quotas', default_l7policy_quota=0)
1367
1347
  self.assertTrue(self.repos.check_quota_met(self.session,
1368
- self.session,
1369
1348
  data_models.L7Policy,
1370
1349
  project_id))
1371
1350
  self.session.commit()
@@ -1376,7 +1355,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1376
1355
  project_id = uuidutils.generate_uuid()
1377
1356
  conf.config(group='quotas', default_l7policy_quota=1)
1378
1357
  self.assertFalse(self.repos.check_quota_met(self.session,
1379
- self.session,
1380
1358
  data_models.L7Policy,
1381
1359
  project_id))
1382
1360
  self.session.commit()
@@ -1384,7 +1362,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1384
1362
  self.session, project_id=project_id).in_use_l7policy)
1385
1363
  # Test above project is now at quota
1386
1364
  self.assertTrue(self.repos.check_quota_met(self.session,
1387
- self.session,
1388
1365
  data_models.L7Policy,
1389
1366
  project_id))
1390
1367
  self.session.commit()
@@ -1396,7 +1373,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1396
1373
  conf.config(group='quotas',
1397
1374
  default_l7policy_quota=constants.QUOTA_UNLIMITED)
1398
1375
  self.assertFalse(self.repos.check_quota_met(self.session,
1399
- self.session,
1400
1376
  data_models.L7Policy,
1401
1377
  project_id))
1402
1378
  self.session.commit()
@@ -1404,7 +1380,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1404
1380
  self.session, project_id=project_id).in_use_l7policy)
1405
1381
  # Test above project adding another l7policy
1406
1382
  self.assertFalse(self.repos.check_quota_met(self.session,
1407
- self.session,
1408
1383
  data_models.L7Policy,
1409
1384
  project_id))
1410
1385
  self.session.commit()
@@ -1437,7 +1412,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1437
1412
  id=uuidutils.generate_uuid())
1438
1413
  self.session.commit()
1439
1414
  self.assertTrue(self.repos.check_quota_met(self.session,
1440
- self.session,
1441
1415
  data_models.L7Policy,
1442
1416
  project_id))
1443
1417
  self.session.commit()
@@ -1468,7 +1442,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1468
1442
  id=uuidutils.generate_uuid())
1469
1443
  self.session.commit()
1470
1444
  self.assertFalse(self.repos.check_quota_met(self.session,
1471
- self.session,
1472
1445
  data_models.L7Policy,
1473
1446
  project_id))
1474
1447
  self.session.commit()
@@ -1482,7 +1455,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1482
1455
  self.repos.quotas.update(self.session, project_id, quota=quota)
1483
1456
  self.session.commit()
1484
1457
  self.assertTrue(self.repos.check_quota_met(self.session,
1485
- self.session,
1486
1458
  data_models.L7Policy,
1487
1459
  project_id))
1488
1460
  self.session.commit()
@@ -1494,7 +1466,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1494
1466
  self.repos.quotas.update(self.session, project_id, quota=quota)
1495
1467
  self.session.commit()
1496
1468
  self.assertFalse(self.repos.check_quota_met(self.session,
1497
- self.session,
1498
1469
  data_models.L7Policy,
1499
1470
  project_id))
1500
1471
  self.session.commit()
@@ -1502,7 +1473,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1502
1473
  self.session, project_id=project_id).in_use_l7policy)
1503
1474
  # Test above project is now at quota
1504
1475
  self.assertTrue(self.repos.check_quota_met(self.session,
1505
- self.session,
1506
1476
  data_models.L7Policy,
1507
1477
  project_id))
1508
1478
  self.session.commit()
@@ -1516,7 +1486,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1516
1486
  self.repos.quotas.update(self.session, project_id, quota=quota)
1517
1487
  self.session.commit()
1518
1488
  self.assertFalse(self.repos.check_quota_met(self.session,
1519
- self.session,
1520
1489
  data_models.L7Policy,
1521
1490
  project_id))
1522
1491
  self.session.commit()
@@ -1524,7 +1493,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1524
1493
  self.session, project_id=project_id).in_use_l7policy)
1525
1494
  # Test above project adding another l7policy
1526
1495
  self.assertFalse(self.repos.check_quota_met(self.session,
1527
- self.session,
1528
1496
  data_models.L7Policy,
1529
1497
  project_id))
1530
1498
  self.session.commit()
@@ -1536,7 +1504,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1536
1504
  project_id = uuidutils.generate_uuid()
1537
1505
  conf.config(group='quotas', default_l7rule_quota=0)
1538
1506
  self.assertTrue(self.repos.check_quota_met(self.session,
1539
- self.session,
1540
1507
  data_models.L7Rule,
1541
1508
  project_id))
1542
1509
  self.session.commit()
@@ -1547,7 +1514,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1547
1514
  project_id = uuidutils.generate_uuid()
1548
1515
  conf.config(group='quotas', default_l7rule_quota=1)
1549
1516
  self.assertFalse(self.repos.check_quota_met(self.session,
1550
- self.session,
1551
1517
  data_models.L7Rule,
1552
1518
  project_id))
1553
1519
  self.session.commit()
@@ -1555,7 +1521,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1555
1521
  self.session, project_id=project_id).in_use_l7rule)
1556
1522
  # Test above project is now at quota
1557
1523
  self.assertTrue(self.repos.check_quota_met(self.session,
1558
- self.session,
1559
1524
  data_models.L7Rule,
1560
1525
  project_id))
1561
1526
  self.session.commit()
@@ -1567,7 +1532,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1567
1532
  conf.config(group='quotas',
1568
1533
  default_l7rule_quota=constants.QUOTA_UNLIMITED)
1569
1534
  self.assertFalse(self.repos.check_quota_met(self.session,
1570
- self.session,
1571
1535
  data_models.L7Rule,
1572
1536
  project_id))
1573
1537
  self.session.commit()
@@ -1575,7 +1539,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1575
1539
  self.session, project_id=project_id).in_use_l7rule)
1576
1540
  # Test above project adding another l7rule
1577
1541
  self.assertFalse(self.repos.check_quota_met(self.session,
1578
- self.session,
1579
1542
  data_models.L7Rule,
1580
1543
  project_id))
1581
1544
  self.session.commit()
@@ -1615,7 +1578,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1615
1578
  operating_status=constants.ONLINE, project_id=project_id)
1616
1579
  self.session.commit()
1617
1580
  self.assertTrue(self.repos.check_quota_met(self.session,
1618
- self.session,
1619
1581
  data_models.L7Rule,
1620
1582
  project_id))
1621
1583
  self.session.commit()
@@ -1653,7 +1615,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1653
1615
  operating_status=constants.ONLINE, project_id=project_id)
1654
1616
  self.session.commit()
1655
1617
  self.assertFalse(self.repos.check_quota_met(self.session,
1656
- self.session,
1657
1618
  data_models.L7Rule,
1658
1619
  project_id))
1659
1620
  self.session.commit()
@@ -1667,7 +1628,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1667
1628
  self.repos.quotas.update(self.session, project_id, quota=quota)
1668
1629
  self.session.commit()
1669
1630
  self.assertTrue(self.repos.check_quota_met(self.session,
1670
- self.session,
1671
1631
  data_models.L7Rule,
1672
1632
  project_id))
1673
1633
  self.session.commit()
@@ -1679,7 +1639,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1679
1639
  self.repos.quotas.update(self.session, project_id, quota=quota)
1680
1640
  self.session.commit()
1681
1641
  self.assertFalse(self.repos.check_quota_met(self.session,
1682
- self.session,
1683
1642
  data_models.L7Rule,
1684
1643
  project_id))
1685
1644
  self.session.commit()
@@ -1687,7 +1646,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1687
1646
  self.session, project_id=project_id).in_use_l7rule)
1688
1647
  # Test above project is now at quota
1689
1648
  self.assertTrue(self.repos.check_quota_met(self.session,
1690
- self.session,
1691
1649
  data_models.L7Rule,
1692
1650
  project_id))
1693
1651
  self.session.commit()
@@ -1701,7 +1659,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1701
1659
  self.repos.quotas.update(self.session, project_id, quota=quota)
1702
1660
  self.session.commit()
1703
1661
  self.assertFalse(self.repos.check_quota_met(self.session,
1704
- self.session,
1705
1662
  data_models.L7Rule,
1706
1663
  project_id))
1707
1664
  self.session.commit()
@@ -1709,7 +1666,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
1709
1666
  self.session, project_id=project_id).in_use_l7rule)
1710
1667
  # Test above project adding another l7rule
1711
1668
  self.assertFalse(self.repos.check_quota_met(self.session,
1712
- self.session,
1713
1669
  data_models.L7Rule,
1714
1670
  project_id))
1715
1671
  self.session.commit()
@@ -3721,21 +3677,12 @@ class AmphoraRepositoryTest(BaseRepositoryTest):
3721
3677
  self.assertIsInstance(new_amphora, data_models.Amphora)
3722
3678
 
3723
3679
  def test_get_lb_for_amphora(self):
3724
- # TODO(bzhao) this test will raise error as there are more than 64
3725
- # tables in a Join statement in sqlite env. This is a new issue when
3726
- # we introduce resources tags and client certificates, both of them
3727
- # are 1:1 relationship. But we can image that if we have many
3728
- # associated loadbalancer subresources, such as listeners, pools,
3729
- # members and l7 resources. Even though, we don't have tags and
3730
- # client certificates features, we will still hit this issue in
3731
- # sqlite env.
3732
- self.skipTest("No idea how this should work yet")
3733
3680
  amphora = self.create_amphora(self.FAKE_UUID_1)
3734
3681
  self.amphora_repo.associate(self.session, self.lb.id, amphora.id)
3735
3682
  self.session.commit()
3736
3683
  lb = self.amphora_repo.get_lb_for_amphora(self.session, amphora.id)
3737
3684
  self.assertIsNotNone(lb)
3738
- self.assertEqual(self.lb, lb)
3685
+ self.assertEqual(self.lb.id, lb.id)
3739
3686
 
3740
3687
  def test_get_all_deleted_expiring_amphora(self):
3741
3688
  exp_age = datetime.timedelta(seconds=self.FAKE_EXP_AGE)