XddlZddlmZddlZGddeZGddZdS)N)deepcopyceZdZdS)FeatureManagerApiExceptionN)__name__ __module__ __qualname__*py/cl_website_collector/feature_manager.pyrr sDr rc@eZdZdZdZedefdZdZdZ dS)FeatureManagerz_ Communicates with FeatureManager API to get feature settings based on server metadata cL|dz|_||_dS)Nz!/feature_manager/feature_settings)base_urlapi_url app_logger)selfrs r __init__zFeatureManager.__init__s"}})LL $r returncLd}tjdrd}|S)Nz#https://x-ray-advice.cloudlinux.comz/opt/cloudlinux/staging_modez$https://x-ray-staging.cloudlinux.com)ospathexists)rs r rzFeatureManager.base_urls(8 7>>8 9 9 >=Hr ctj|j|d}|jd|jd|d|j|jdkrt d|j|S)N)jsontimeoutzFeatureManager request to z with payload z returned zFeatureManager API returned )requestsgetrrinfo status_coderr)rpayloadresponses r requestzFeatureManager.request"s< 7BGGG A$,AA.5AA*2*>AA B B B  3 & &,-bHL`-b-bcc c}}r cTt|}||d<||S)Nreason)rr$)rserver_metadatar&r"s r get_decisionzFeatureManager.get_decision+s+?++"||G$$$r N) rrr__doc__r staticmethodstrrr$r(r r r r r sr%%%c\%%%%%r r )rcopyrr Exceptionrr r r r r.s         %%%%%%%%%%r