44# Copyright (c) 2019 Ingram Micro. All Rights Reserved.
55
66from abc import ABCMeta
7+ import logging
78
89from deprecation import deprecated
910from typing import Optional
1011
1112from connect .exceptions import FailRequest , InquireRequest , SkipRequest
12- from connect .logger import logger , function_log
13+ from connect .logger import function_log
1314from connect .models .activation_template_response import ActivationTemplateResponse
1415from connect .models .activation_tile_response import ActivationTileResponse
1516from connect .models .param import Param
@@ -40,6 +41,7 @@ class FulfillmentAutomation(AutomationEngine):
4041 __metaclass__ = ABCMeta
4142 resource = 'requests'
4243 model_class = Fulfillment
44+ logger = logging .getLogger ('Fullfilment.logger' )
4345
4446 def filters (self , status = 'pending' , ** kwargs ):
4547 """ Returns the default set of filters for Fulfillment request, plus any others that you
@@ -72,9 +74,10 @@ def filters(self, status='pending', **kwargs):
7274 filters ['asset.product.id__in' ] = ',' .join (self .config .products )
7375 return filters
7476
75- @function_log
77+ @function_log ( custom_logger = logger )
7678 def dispatch (self , request ):
7779 # type: (Fulfillment) -> str
80+ self ._set_custom_logger (request .asset .id , request .id )
7881
7982 conversation = request .get_conversation (self .config )
8083
@@ -83,11 +86,11 @@ def dispatch(self, request):
8386 and request .asset .product .id not in self .config .products :
8487 return 'Invalid product'
8588
86- logger .info ('Start request process / ID request - {}' .format (request .id ))
89+ self . logger .info ('Start request process / ID request - {}' .format (request .id ))
8790 process_result = self .process_request (request )
8891
8992 if not process_result :
90- logger .info ('Method `process_request` did not return result' )
93+ self . logger .info ('Method `process_request` did not return result' )
9194 return ''
9295
9396 if isinstance (process_result , ActivationTileResponse ):
@@ -125,8 +128,8 @@ def dispatch(self, request):
125128 raise
126129
127130 except Exception as ex :
128- logger .warning ('Skipping request {} because an exception was raised: {}'
129- .format (request .id , ex ))
131+ self . logger .warning ('Skipping request {} because an exception was raised: {}'
132+ .format (request .id , ex ))
130133 return ''
131134
132135 def create_request (self , request ):
@@ -167,7 +170,7 @@ def get_tier_config(self, tier_id, product_id):
167170 else :
168171 return None
169172
170- @function_log
173+ @function_log ( custom_logger = logger )
171174 def update_parameters (self , pk , params ):
172175 """ Sends a list of Param objects to Connect for updating.
173176
@@ -179,18 +182,16 @@ def update_parameters(self, pk, params):
179182 list_dict = []
180183 for _ in params :
181184 list_dict .append (_ .__dict__ if isinstance (_ , Param ) else _ )
182-
183185 return self ._api .put (
184186 path = pk ,
185187 json = {'asset' : {'params' : list_dict }},
186188 )[0 ]
187189
188- @staticmethod
189- def _update_conversation_if_exists (conversation , request_id , obj ):
190+ def _update_conversation_if_exists (self , conversation , request_id , obj ):
190191 # type: (Optional[Conversation], str, object) -> None
191192 if conversation :
192193 try :
193194 conversation .add_message (str (obj ))
194195 except TypeError as ex :
195- logger .error ('Error updating conversation for request {}: {}'
196- .format (request_id , ex ))
196+ self . logger .error ('Error updating conversation for request {}: {}'
197+ .format (request_id , ex ))
0 commit comments