48
48
from connect_ext_ppr .models .ppr import PPRVersion
49
49
from connect_ext_ppr .models .task import Task
50
50
from connect_ext_ppr .models .replicas import Product
51
+ from connect_ext_ppr .pagination import apply_pagination , PaginationParams
51
52
from connect_ext_ppr .service import (
52
53
add_deployments ,
53
54
add_new_deployment_request ,
@@ -182,6 +183,8 @@ def add_dep_request(
182
183
)
183
184
def list_deployment_requests (
184
185
self ,
186
+ pagination_params : PaginationParams = Depends (),
187
+ response : Response = None ,
185
188
client : ConnectClient = Depends (get_installation_client ),
186
189
db : VerboseBaseSession = Depends (get_db ),
187
190
installation : dict = Depends (get_installation ),
@@ -203,6 +206,7 @@ def list_deployment_requests(
203
206
).filter (
204
207
DeploymentRequest .deployment_id .in_ (deployments ),
205
208
)
209
+ deployment_requests = apply_pagination (deployment_requests , db , pagination_params , response )
206
210
207
211
response_list = []
208
212
for dr in deployment_requests :
@@ -272,6 +276,8 @@ def list_deployment_request_tasks(
272
276
def list_deployment_request_marketplaces (
273
277
self ,
274
278
depl_req_id : str ,
279
+ pagination_params : PaginationParams = Depends (),
280
+ response : Response = None ,
275
281
db : VerboseBaseSession = Depends (get_db ),
276
282
client : ConnectClient = Depends (get_installation_client ),
277
283
installation : dict = Depends (get_installation ),
@@ -282,6 +288,7 @@ def list_deployment_request_marketplaces(
282
288
marketplaces = db .query (MarketplaceConfiguration ).options (
283
289
selectinload (MarketplaceConfiguration .ppr ),
284
290
).filter_by (deployment_request = dr .id )
291
+ marketplaces = apply_pagination (marketplaces , db , pagination_params , response )
285
292
286
293
marketplaces_pprs = {m .marketplace : m .ppr for m in marketplaces }
287
294
marketplaces_data = get_marketplaces (client , list (marketplaces_pprs .keys ()))
@@ -369,6 +376,8 @@ def get_deployment(
369
376
def list_requests_for_deployment (
370
377
self ,
371
378
deployment_id : str ,
379
+ pagination_params : PaginationParams = Depends (),
380
+ response : Response = None ,
372
381
client : ConnectClient = Depends (get_installation_client ),
373
382
db : VerboseBaseSession = Depends (get_db ),
374
383
installation : dict = Depends (get_installation ),
@@ -384,7 +393,8 @@ def list_requests_for_deployment(
384
393
.filter_by (deployment_id = deployment_id )
385
394
.order_by (desc (DeploymentRequest .id ))
386
395
)
387
- for dr in qs :
396
+
397
+ for dr in apply_pagination (qs , db , pagination_params , response ):
388
398
response_list .append (get_deployment_request_schema (dr , hub ))
389
399
return response_list
390
400
@@ -396,12 +406,15 @@ def list_requests_for_deployment(
396
406
def get_deployments (
397
407
self ,
398
408
deployment_filter : DeploymentFilter = FilterDepends (DeploymentFilter ),
409
+ pagination_params : PaginationParams = Depends (),
410
+ response : Response = None ,
399
411
client : ConnectClient = Depends (get_installation_client ),
400
412
db : VerboseBaseSession = Depends (get_db ),
401
413
installation : dict = Depends (get_installation ),
402
414
):
403
415
deployments = db .query (Deployment ).filter_by (account_id = installation ['owner' ]['id' ])
404
416
deployments = deployment_filter .filter (deployments )
417
+ deployments = apply_pagination (deployments , db , pagination_params , response )
405
418
listings = get_all_listing_info (client )
406
419
vendors = [li ['vendor' ] for li in listings ]
407
420
hubs = [hub ['hub' ] for li in listings for hub in li ['contract' ]['marketplace' ]['hubs' ]]
@@ -422,17 +435,19 @@ def get_deployments(
422
435
def get_configurations (
423
436
self ,
424
437
deployment_id : str ,
438
+ pagination_params : PaginationParams = Depends (),
439
+ response : Response = None ,
425
440
db : VerboseBaseSession = Depends (get_db ),
426
441
installation : dict = Depends (get_installation ),
427
442
):
428
443
get_deployment_by_id (deployment_id , db , installation )
429
444
430
- conf_file_list = (
445
+ conf_file_qs = (
431
446
db .query (Configuration , File )
432
447
.filter_by (deployment = deployment_id )
433
448
.join (File , Configuration .file == File .id )
434
- .all ()
435
449
)
450
+ conf_file_list = apply_pagination (conf_file_qs , db , pagination_params , response )
436
451
response_list = []
437
452
for conf , file in conf_file_list :
438
453
response_list .append (
@@ -569,20 +584,21 @@ def remove_configuration(
569
584
def get_pprs (
570
585
self ,
571
586
deployment_id : str ,
587
+ pagination_params : PaginationParams = Depends (),
588
+ response : Response = None ,
572
589
db : VerboseBaseSession = Depends (get_db ),
573
590
installation : dict = Depends (get_installation ),
574
591
):
575
592
get_deployment_by_id (deployment_id , db , installation )
576
593
577
- ppr_file_conf_list = (
594
+ ppr_file_conf_qs = (
578
595
db .query (PPRVersion , File , Configuration )
579
596
.filter_by (deployment = deployment_id )
580
597
.join (File , PPRVersion .file == File .id )
581
598
.outerjoin (Configuration , PPRVersion .configuration == Configuration .id )
582
599
.order_by (desc (PPRVersion .version ))
583
- .all ()
584
600
)
585
-
601
+ ppr_file_conf_list = apply_pagination ( ppr_file_conf_qs , db , pagination_params , response )
586
602
response_list = []
587
603
for ppr , file , conf in ppr_file_conf_list :
588
604
response_list .append (
@@ -642,6 +658,8 @@ def add_ppr(
642
658
def get_marketplaces_by_deployment (
643
659
self ,
644
660
deployment_id : str ,
661
+ pagination_params : PaginationParams = Depends (),
662
+ response : Response = None ,
645
663
client : ConnectClient = Depends (get_installation_client ),
646
664
db : VerboseBaseSession = Depends (get_db ),
647
665
installation : dict = Depends (get_installation ),
@@ -651,6 +669,7 @@ def get_marketplaces_by_deployment(
651
669
mkplc_configs = db .query (MarketplaceConfiguration ).options (
652
670
selectinload (MarketplaceConfiguration .ppr ),
653
671
).filter_by (deployment_id = deployment_id , active = True )
672
+ mkplc_configs = apply_pagination (mkplc_configs , db , pagination_params , response )
654
673
655
674
mkplc_ids = [m .marketplace for m in mkplc_configs ]
656
675
@@ -668,19 +687,23 @@ def get_marketplaces_by_deployment(
668
687
)
669
688
def list_products (
670
689
self ,
690
+ pagination_params : PaginationParams = Depends (),
691
+ response : Response = None ,
671
692
db : VerboseBaseSession = Depends (get_db ),
672
693
installation : dict = Depends (get_installation ),
673
694
):
674
695
products_ids = db .query (Deployment .product_id ).filter_by (
675
696
account_id = installation ['owner' ]['id' ],
676
697
).distinct ()
677
-
678
- response_list = []
679
698
products = db .query (Product ).filter (Product .id .in_ (products_ids )).options (
680
699
selectinload (Product .owner ),
681
700
)
701
+ products = apply_pagination (products , db , pagination_params , response )
702
+
703
+ response_list = []
682
704
for product in products :
683
705
response_list .append (get_product_schema (product ))
706
+
684
707
return response_list
685
708
686
709
@router .get (
0 commit comments