B `@sddlZddlZddlmZddlmZmZmZmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZddlmZddlmZddlmZdd lmZdd l m!Z!dd l"m#Z#dd l$m%Z%dd l&m'Z'ddl(m)Z)ddl*m+Z+ddl,Tddl-m.Z.GdddZ/dS)N)datetime)ACTION_BATCH_RETRY_WAIT_TIMEAIO_MAXIMUM_CONCURRENT_REQUESTSAPI_KEY_ENVIRONMENT_VARIABLE BE_GEO_IDCERTIFICATE_PATHDEFAULT_BASE_URLLOG_FILE_PREFIXLOG_PATHMAXIMUM_RETRIESMERAKI_PYTHON_SDK_CALLERNGINX_429_RETRY_WAIT_TIME OUTPUT_LOGPRINT_TO_CONSOLEREQUESTS_PROXYRETRY_4XX_ERRORRETRY_4XX_ERROR_WAIT_TIMESIMULATE_API_CALLSSINGLE_REQUEST_TIMEOUTSUPPRESS_LOGGINGWAIT_ON_RATE_LIMIT)AsyncAppliance) AsyncCamera)AsyncCellularGateway) AsyncDevices) AsyncInsight) AsyncNetworks)AsyncOrganizations)AsyncSm) AsyncSwitch) AsyncWireless)*)Batchc@sTeZdZdZdeeeeee e e e e eeeeeeeeedfddZddZdd ZdS) AsyncDashboardAPIa **Creates a persistent Meraki dashboard API session** - api_key (string): API key generated in dashboard; can also be set as an environment variable MERAKI_DASHBOARD_API_KEY - base_url (string): preceding all endpoint resources - single_request_timeout (integer): maximum number of seconds for each API call - certificate_path (string): path for TLS/SSL certificate verification if behind local proxy - requests_proxy (string): proxy server and port, if needed, for HTTPS - wait_on_rate_limit (boolean): retry if 429 rate limit error encountered? - nginx_429_retry_wait_time (integer): Nginx 429 retry wait time - action_batch_retry_wait_time (integer): action batch concurrency error retry wait time - retry_4xx_error (boolean): retry if encountering other 4XX error (besides 429)? - retry_4xx_error_wait_time (integer): other 4XX error retry wait time - maximum_retries (integer): retry up to this many times when encountering 429s or other server-side errors - output_log (boolean): create an output log file? - log_path (string): path to output log; by default, working directory of script if not specified - log_file_prefix (string): log file name appended with date and timestamp - print_console (boolean): print logging output to console? - suppress_logging (boolean): disable all logging? you're on your own then! - simulate (boolean): simulate POST/PUT/DELETE calls to prevent changes? - maximum_concurrent_requests (integer): number of concurrent API requests for asynchronous class - be_geo_id (string): optional partner identifier for API usage tracking; can also be set as an environment variable BE_GEO_ID - caller (string): optional identifier for API usage tracking; can also be set as an environment variable MERAKI_PYTHON_SDK_CALLER - use_iterator_for_get_pages (boolean): list* methods will return an iterator with each object instead of a complete list with all items NFcCs|ptjt}|st|p(tjd}|p8tjd}|s(tt|_|j tj tj ddd}t }| || r| r| ddkr| d7} | |dtd d |_tj|jd }| || r|js|j||r&| tj|j|n|r.|js.|j|nd|_t|j||||||||| | | |||||d |_t|j|_t|j|_t|j|_t|j|_t|j|_ t!|j|_"t#|j|_$t%|j|_&t'|j|_(t)|j|_*t+|_,dS) Nrr z4%(asctime)s %(name)12s: %(levelname)8s > %(message)sz%Y-%m-%d %H:%M:%S)fmtdatefmt/Z_log__z%Y-%m-%d_%H-%M-%Sz.log)filename)loggerapi_keybase_urlsingle_request_timeoutcertificate_pathrequests_proxywait_on_rate_limitnginx_429_retry_wait_timeaction_batch_retry_wait_timeretry_4xx_errorretry_4xx_error_wait_timemaximum_retriessimulatemaximum_concurrent_requests be_geo_idcalleruse_iterator_for_get_pages)-osenvirongetrZ APIKeyErrorlogging getLogger__name__Z_loggersetLevelDEBUG Formatter StreamHandler setFormatterrnowZ _log_file FileHandler hasHandlers addHandlerINFOZAsyncRestSession_sessionrZ organizationsrZnetworksrZdevicesrZ appliancerZcamerarZcellularGatewayrZinsightr!switchr smr"Zwirelessr$batch)selfr,r-r.r/r0r1r2r3r4r5r6Z output_logZlog_pathZlog_file_prefixZ print_consolesuppress_loggingr7r8r9r:r; formatterZhandler_consoleZ handler_logrSn/private/var/folders/7j/8686xlfs15q3tgljmghtvg0r0000gn/T/pip-target-isidps9b/lib/python/meraki/aio/__init__.py__init__Fsp                zAsyncDashboardAPI.__init__cs|S)NrS)rPrSrSrT __aenter__szAsyncDashboardAPI.__aenter__cs|jIdHdS)N)rLclose)rPexc_typeexctbrSrSrT __aexit__szAsyncDashboardAPI.__aexit__)rA __module__ __qualname____doc__r rrrrrrrrr rr r rrrrrr rUrVr[rSrSrSrTr%+s0 Nr%)0r?r<rconfigrrrrrr r r r r rrrrrrrrrrZ api.appliancerZ api.camerarZapi.cellularGatewayrZ api.devicesrZ api.insightrZ api.networksrZapi.organizationsrZapi.smr Z api.switchr!Z api.wirelessr"Z rest_sessionZ api.batchr$r%rSrSrSrTs  X