From a76127fd2a9bad77e1f9d0ce8154a9109754db0e Mon Sep 17 00:00:00 2001 From: Javier San Juan Cervera Date: Wed, 2 Oct 2019 16:52:08 +0200 Subject: [PATCH 1/2] Added default filters to TCRs. --- connect/resources/tier_config_automation.py | 25 +++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/connect/resources/tier_config_automation.py b/connect/resources/tier_config_automation.py index d382f2d..23c18a7 100644 --- a/connect/resources/tier_config_automation.py +++ b/connect/resources/tier_config_automation.py @@ -36,6 +36,31 @@ class TierConfigAutomation(AutomationEngine): resource = 'tier/config-requests' model_class = TierConfigRequest + def filters(self, status='pending', **kwargs): + """ Returns the default set of filters for Tier Config request, plus any others that you + might specify. The allowed filters are: + + - type + - status + - id + - configuration__id + - configuration__tier_level + - configuration__account__id + - configuration__product__id + - assignee__id + - unassigned (bool) + - configuration__account__external_uid + + :param str status: Status of the requests. Default: ``'pending'``. + :param dict[str,Any] kwargs: Additional filters to add to the default ones. + :return: The set of filters for this resource. + :rtype: dict[str,Any] + """ + filters = super(TierConfigAutomation, self).filters(status=status, **kwargs) + if self.config.products: + filters['asset.product.id__in'] = ','.join(self.config.products) + return filters + @function_log def dispatch(self, request): # type: (TierConfigRequest) -> str From 2791728be6ec95e1d2c30afded21675a29826802 Mon Sep 17 00:00:00 2001 From: Javier San Juan Cervera Date: Wed, 2 Oct 2019 17:43:24 +0200 Subject: [PATCH 2/2] Fixed default filters, made tier2 optional. --- connect/models/schemas.py | 2 +- connect/models/tier_accounts.py | 6 ++++-- connect/resources/tier_config_automation.py | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/connect/models/schemas.py b/connect/models/schemas.py index af2d59c..3d20f55 100644 --- a/connect/models/schemas.py +++ b/connect/models/schemas.py @@ -502,7 +502,7 @@ def make_object(self, data): class TierAccountsSchema(Schema): customer = fields.Nested(TierAccountSchema) tier1 = fields.Nested(TierAccountSchema) - tier2 = fields.Nested(TierAccountSchema) + tier2 = fields.Nested(TierAccountSchema, allow_none=True) @post_load def make_object(self, data): diff --git a/connect/models/tier_accounts.py b/connect/models/tier_accounts.py index bca21e6..5a8486a 100644 --- a/connect/models/tier_accounts.py +++ b/connect/models/tier_accounts.py @@ -3,6 +3,8 @@ # This file is part of the Ingram Micro Cloud Blue Connect SDK. # Copyright (c) 2019 Ingram Micro. All Rights Reserved. +from typing import Optional + from .base import BaseModel from .tier_account import TierAccount from .schemas import TierAccountsSchema @@ -19,5 +21,5 @@ class TierAccounts(BaseModel): tier1 = None # type: TierAccount """ (:py:class:`.TierAccount`) Level 1 TierAccount Object. """ - tier2 = None # type: TierAccount - """ (:py:class:`.TierAccount`) Level 2 TierAccount Object. """ + tier2 = None # type: Optional[TierAccount] + """ (:py:class:`.TierAccount` | None) Level 2 TierAccount Object. """ diff --git a/connect/resources/tier_config_automation.py b/connect/resources/tier_config_automation.py index 23c18a7..9e26a4c 100644 --- a/connect/resources/tier_config_automation.py +++ b/connect/resources/tier_config_automation.py @@ -58,7 +58,7 @@ def filters(self, status='pending', **kwargs): """ filters = super(TierConfigAutomation, self).filters(status=status, **kwargs) if self.config.products: - filters['asset.product.id__in'] = ','.join(self.config.products) + filters['configuration__product__id'] = ','.join(self.config.products) return filters @function_log