API-āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻļāĻā§āĻ¤āĻŋ āĻ¯āĻāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ¸āĻžāĻĨā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻāĻ¨ āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¯āĻāĻ¨ API āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¤āĻŋāĻļā§āĻ˛āĻāĻžāĻŦā§ API āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻāĻŦāĻ āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻšāĻ¯āĻŧāĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻāĻŋ āĻāĻāĻ¨āĻ āĻ
āĻ˛āĻā§āĻˇāĻŋāĻ¤ āĻĨā§āĻā§ āĻ¯āĻžāĻ¯āĻŧ āĻĒāĻžāĻāĻĨāĻ¨ āĻ¸āĻĢāĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻ āĻāĻŋāĻ (āĻāĻ° āĻĒāĻ°ā§ āĻĒāĻžāĻāĻĨāĻ¨ SDK āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§) āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ API āĻā§āĻ āĻāĻ°ā§āĻ¨, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¨āĻŋāĻ°āĻ°ā§āĻĨāĻ. āĻāĻāĻŋ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§ āĻāĻŦāĻ āĻ
āĻā§āĻŽā§āĻļāĻ¨ āĻāĻ¤ā§āĻ¸āĻžāĻšā§āĻĻā§āĻ° āĻā§āĻŦāĻ¨āĻā§ āĻ¸āĻšāĻ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤ āĻĒāĻžāĻāĻĨāĻ¨ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ āĻĒā§āĻ°āĻā§āĻ° āĻāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧāĻ¤āĻž āĻ
āĻ°ā§āĻāĻ¨ āĻāĻ°ā§āĻā§ āĻāĻŦāĻ āĻāĻŽāĻŋ āĻļā§āĻ¨ā§āĻ¯āĻ¸ā§āĻĨāĻžāĻ¨ āĻĒā§āĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻāĻŦāĻ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋāĨ¤
āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ API āĻŦāĻŋāĻāĻžāĻļ āĻāĻ°āĻā§ āĻāĻŦāĻ āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ API āĻā§āĻ āĻāĻ°ā§āĻ¨ (āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 1.6) â API āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§āĻ¨ (āĻāĻŦāĻ āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŋāĻ¤ āĻā§āĻāĻāĻ¯āĻŧā§āĻ¤ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻā§āĻˇāĻŽāĻ¤āĻž)āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ GAIA API (āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 1.4) - āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻā§āĻāĻāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§āĻ¨āĻšā§āĻŽāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§āĻ§ API 1.0 â āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻā§āĻ˛āĻžāĻāĻĄā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŦāĻā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻĒāĻ°āĻŋāĻāĻ¯āĻŧ āĻ¸āĻā§āĻ¤āĻ¨āĻ¤āĻž API â āĻā§āĻāĻāĻ¯āĻŧā§āĻ¤ā§ āĻāĻāĻĄā§āĻ¨ā§āĻāĻŋāĻāĻŋ āĻ ā§āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ°āĻ¨ā§āĻ¸ āĻŦā§āĻ˛ā§āĻĄ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻĒā§āĻ°ā§āĻāĻžāĻ˛ API - āĻāĻ¸āĻāĻŽāĻŦāĻŋ āĻā§āĻāĻāĻ¯āĻŧā§ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻĒā§āĻ°ā§āĻāĻžāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§āĻ¨ (SMB āĻā§āĻāĻāĻ¯āĻŧā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ )IoT API - āĻāĻāĻāĻāĻŋ āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛āĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžCloudGuard Connect API - āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§āĻā§āĻ˛āĻžāĻāĻĄāĻāĻžāĻ°ā§āĻĄ āĻāĻžāĻ¨ā§āĻā§āĻ (SD-WAN āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨)Dome9 API - āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§āĻāĻŽā§āĻŦā§āĻ9
Python SDK āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻāĻĒāĻŋāĻāĻ āĻāĻŦāĻ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§ Gaia API. āĻāĻŽāĻ°āĻž āĻāĻ āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻā§āĻ˛āĻžāĻ¸, āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻŦāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻĻā§āĻāĻŦāĨ¤
āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻŽāĻĄāĻŋāĻāĻ˛ cpapi āĻĨā§āĻā§ āĻĻā§āĻ°ā§āĻ¤ āĻāĻŦāĻ āĻ¸āĻšāĻā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§
āĻā§āĻāĻŋāĻ āĻ¸ā§āĻāĻžāĻ°ā§āĻā§āĻĄ
cpapi āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻžāĻĻā§āĻ° āĻŽāĻĄāĻŋāĻāĻ˛ āĻĨā§āĻā§ āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ cpapi āĻāĻŽāĻĒāĻā§āĻˇā§ āĻĻā§āĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻā§āĻ˛āĻžāĻ¸:
APIClient и APIClientArgs
from cpapi import APIClient, APIClientArgs
ĐĐģĐ°ŅŅ APIClientArgs API āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻāĻŦāĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§ APIClient API āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§āĨ¤
āĻ¸āĻāĻ¯ā§āĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ
API āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ APIClientArgs. āĻ¨ā§āĻ¤āĻŋāĻāĻ¤āĻāĻžāĻŦā§, āĻāĻ° āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻĒā§āĻ°ā§āĻŦāĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻāĻŦāĻ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¤āĻžāĻĻā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻāĨ¤
client_args = APIClientArgs()
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻĒāĻā§āĻˇā§āĻ° āĻšā§āĻ¸ā§āĻā§ āĻāĻ˛āĻžāĻāĻžāĻ˛ā§āĻ¨, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻŽāĻĒāĻā§āĻˇā§ IP āĻ āĻŋāĻāĻžāĻ¨āĻž āĻŦāĻž API āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻšā§āĻ¸ā§āĻ āĻ¨āĻžāĻŽ (āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¨āĻžāĻŽā§āĻ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤) āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¨ā§āĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻŽāĻ°āĻž āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¸āĻāĻ¯ā§āĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° IP āĻ āĻŋāĻāĻžāĻ¨āĻž āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻŋāĨ¤
client_args = APIClientArgs(server='192.168.47.241')
āĻāĻĒāĻŋāĻāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŽāĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĻā§āĻā§āĻ¨:
APIClientArgs āĻā§āĻ˛āĻžāĻ¸ā§āĻ° __init__ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ
class APIClientArgs:
"""
This class provides arguments for APIClient configuration.
All the arguments are configured with their default values.
"""
# port is set to None by default, but it gets replaced with 443 if not specified
# context possible values - web_api (default) or gaia_api
def __init__(self, port=None, fingerprint=None, sid=None, server="127.0.0.1", http_debug_level=0,
api_calls=None, debug_file="", proxy_host=None, proxy_port=8080,
api_version=None, unsafe=False, unsafe_auto_accept=False, context="web_api"):
self.port = port
# management server fingerprint
self.fingerprint = fingerprint
# session-id.
self.sid = sid
# management server name or IP-address
self.server = server
# debug level
self.http_debug_level = http_debug_level
# an array with all the api calls (for debug purposes)
self.api_calls = api_calls if api_calls else []
# name of debug file. If left empty, debug data will not be saved to disk.
self.debug_file = debug_file
# HTTP proxy server address (without "http://")
self.proxy_host = proxy_host
# HTTP proxy port
self.proxy_port = proxy_port
# Management server's API version
self.api_version = api_version
# Indicates that the client should not check the server's certificate
self.unsafe = unsafe
# Indicates that the client should automatically accept and save the server's certificate
self.unsafe_auto_accept = unsafe_auto_accept
# The context of using the client - defaults to web_api
self.context = context
āĻāĻŽāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻāĻ°āĻŋ āĻ¯ā§ APIClientArgs āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŽāĻ¨ āĻ¯ā§āĻā§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨āĻŋāĻ¸ā§āĻā§āĻ°ā§āĻāĻ°āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻŦāĻā§āĻāĻžāĻ¤ āĻāĻŦāĻ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻā§ˇ
APIClient āĻāĻŦāĻ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻā§āĻā§
ĐĐģĐ°ŅŅ APIClient āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§āĨ¤ APIClient āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻ¯āĻž āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻž āĻšāĻ˛ āĻ¸āĻāĻ¯ā§āĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¯āĻž āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ§āĻžāĻĒā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
with APIClient(client_args) as client:
āĻāĻ¨āĻā§āĻā§āĻ¸āĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻžāĻ° āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ API āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻ˛āĻāĻāĻ¨ āĻāĻ˛ āĻāĻ°āĻŦā§ āĻ¨āĻž, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻĨā§āĻā§ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ˛āĻāĻāĻāĻ āĻāĻ˛ āĻāĻ°āĻŦā§āĨ¤ āĻ¯āĻĻāĻŋ āĻā§āĻ¨ā§ āĻāĻžāĻ°āĻŖā§ API āĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻļā§āĻˇ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻ˛āĻāĻāĻāĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻž āĻāĻ°ā§āĻ āĻāĻžāĻ āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
client = APIClient(clieng_args)
āĻ¸āĻāĻ¯ā§āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻ¸āĻāĻ¯ā§āĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻĒā§āĻ°āĻŖ āĻāĻ°ā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻšāĻ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻā§āĻ_āĻāĻā§āĻā§āĻ˛ā§āĻ° āĻāĻžāĻĒ. āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° API āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ°ā§āĻ° āĻāĻā§āĻā§āĻ˛ā§āĻ° āĻāĻžāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ sha1 āĻšā§āĻ¯āĻžāĻļ āĻ¸āĻŽāĻˇā§āĻāĻŋāĻ° āĻ¯āĻžāĻāĻžāĻāĻāĻ°āĻŖ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ˛ā§ (āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§ āĻŽāĻŋāĻĨā§āĻ¯āĻž), āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¸āĻāĻ¯ā§āĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻāĻžāĻ°āĻŖā§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋāĻ° āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ (āĻŦāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻ¸āĻāĻ¯ā§āĻ āĻĄā§āĻāĻž āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻžāĻ° āĻ¸ā§āĻ¯ā§āĻ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°āĻŋ):
if client.check_fingerprint() is False:
print("Could not get the server's fingerprint - Check connectivity with the server.")
exit(1)
āĻĻāĻ¯āĻŧāĻž āĻāĻ°ā§ āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§ āĻā§āĻ˛āĻžāĻ¸ APIClient āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ API āĻāĻ˛ āĻā§āĻ āĻāĻ°āĻŦā§ (āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻĒāĻŋāĻāĻ_āĻāĻ˛ и api_query, āĻāĻŽāĻ°āĻž āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻāĻŋāĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻŦ) API āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ sha1 āĻĢāĻŋāĻā§āĻāĻžāĻ°āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ°āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¯āĻĻāĻŋ, API āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻā§āĻ° sha1 āĻĢāĻŋāĻā§āĻāĻžāĻ°āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻā§āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ (āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ°āĻāĻŋ āĻ āĻāĻžāĻ¨āĻž āĻŦāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§), āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻā§āĻ_āĻāĻā§āĻā§āĻ˛ā§āĻ° āĻāĻžāĻĒ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻ¯ā§āĻ/āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻ¸ā§āĻ¯ā§āĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŦā§āĨ¤ āĻāĻ āĻā§āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ (āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¤āĻāĻ¨āĻ āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻā§āĻ˛āĻŋ API āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ, āĻ¯āĻāĻ¨ 127.0.0.1-āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ), APIClientArgs āĻ¯ā§āĻā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ - unsafe_auto_accept (APIClientArgs āĻ¸āĻŽā§āĻŦāĻ¨ā§āĻ§ā§ āĻāĻ°āĻ āĻĻā§āĻā§āĻ¨ āĻāĻā§ "āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž" āĻ)āĨ¤
client_args = APIClientArgs(unsafe_auto_accept=True)
API āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ˛āĻāĻāĻ¨ āĻāĻ°ā§āĻ¨
ĐŖ APIClient API āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ˛āĻ āĻāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ 3āĻāĻŋāĻ° āĻŽāĻ¤ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻāĻāĻŋ āĻ āĻ°ā§āĻĨ āĻŦā§āĻā§ āĻ¸āĻŋāĻĻ(āĻ¸ā§āĻļāĻ¨-āĻāĻāĻĄāĻŋ), āĻ¯āĻž āĻšā§āĻĄāĻžāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ API āĻāĻ˛ā§ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ (āĻāĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻšā§āĻĄāĻžāĻ°ā§ āĻ¨āĻžāĻŽ X-chkp-sid), āĻ¤āĻžāĻ āĻāĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĻāĻŋ āĻāĻ°āĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻžāĻ° āĻĻāĻ°āĻāĻžāĻ° āĻ¨ā§āĻāĨ¤
āĻ˛āĻāĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
āĻ˛āĻāĻāĻ¨ āĻāĻŦāĻ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŦāĻŋāĻāĻ˛ā§āĻĒ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽ āĻ ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨ āĻāĻŦāĻ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ 1q2w3e āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨āĻāĻ¤ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§):
login = client.login('admin', '1q2w3e')
āĻ˛āĻāĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻāĻā§āĻāĻŋāĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ; āĻāĻāĻžāĻ¨ā§ āĻ¤āĻžāĻĻā§āĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§:
continue_last_session=False, domain=None, read_only=False, payload=None
āĻŽā§āĻĨāĻĄ āĻ˛āĻāĻāĻ¨_with_api_key
āĻāĻāĻāĻŋ api āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒ (āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ R80.40/Management API v1.6 āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤, "3TsbPJ8ZKjaJGvFyoFqHFA==" āĻāĻāĻŋ API āĻā§ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¸āĻš āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻāĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ API āĻā§ āĻŽāĻžāĻ¨:
login = client.login_with_api_key('3TsbPJ8ZKjaJGvFyoFqHFA==')
āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ api_key āĻĻāĻŋāĻ¯āĻŧā§ āĻ˛āĻāĻāĻ¨ āĻāĻ°ā§āĻ¨ āĻāĻāĻ āĻāĻā§āĻāĻŋāĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ˛āĻāĻāĻ¨.
login_as_root āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
āĻāĻāĻāĻŋ API āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻ˛āĻāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒ:
login = client.login_as_root()
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĻā§āĻāĻŋ āĻāĻā§āĻāĻŋāĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻā§:
domain=None, payload=None
āĻāĻŦāĻ āĻ āĻŦāĻļā§āĻˇā§ API āĻ¨āĻŋāĻā§āĻĻā§āĻ° āĻāĻ˛
āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ API āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻĻā§āĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻĒāĻŋāĻāĻ_āĻāĻ˛ и api_query. āĻāĻ¸ā§āĻ¨ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻāĻŋ āĻ¤āĻž āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤
āĻāĻĒāĻŋāĻāĻ_āĻāĻ˛
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯ā§āĻā§āĻ¨ā§ āĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¯āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĒāĻŋāĻāĻ āĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻˇ āĻ āĻāĻļāĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§ āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻŦāĻĄāĻŋāĻ¤ā§ āĻĒā§āĻ˛ā§āĻĄ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¯āĻĻāĻŋ āĻĒā§āĻ˛ā§āĻĄ āĻāĻžāĻ˛āĻŋ āĻĨāĻžāĻā§, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻŽā§āĻā§āĻ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻž āĻ¯āĻžāĻŦā§ āĻ¨āĻž:
api_versions = client.api_call('show-api-versions')
āĻāĻžāĻāĻž āĻ¨ā§āĻā§ āĻāĻ āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻĒā§āĻ:
In [23]: api_versions
Out[23]:
APIResponse({
"data": {
"current-version": "1.6",
"supported-versions": [
"1",
"1.1",
"1.2",
"1.3",
"1.4",
"1.5",
"1.6"
]
},
"res_obj": {
"data": {
"current-version": "1.6",
"supported-versions": [
"1",
"1.1",
"1.2",
"1.3",
"1.4",
"1.5",
"1.6"
]
},
"status_code": 200
},
"status_code": 200,
"success": true
})
show_host = client.api_call('show-host', {'name' : 'h_8.8.8.8'})
āĻāĻžāĻāĻž āĻ¨ā§āĻā§ āĻāĻ āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻĒā§āĻ:
In [25]: show_host
Out[25]:
APIResponse({
"data": {
"color": "black",
"comments": "",
"domain": {
"domain-type": "domain",
"name": "SMC User",
"uid": "41e821a0-3720-11e3-aa6e-0800200c9fde"
},
"groups": [],
"icon": "Objects/host",
"interfaces": [],
"ipv4-address": "8.8.8.8",
"meta-info": {
"creation-time": {
"iso-8601": "2020-05-01T21:49+0300",
"posix": 1588358973517
},
"creator": "admin",
"last-modifier": "admin",
"last-modify-time": {
"iso-8601": "2020-05-01T21:49+0300",
"posix": 1588358973517
},
"lock": "unlocked",
"validation-state": "ok"
},
"name": "h_8.8.8.8",
"nat-settings": {
"auto-rule": false
},
"read-only": false,
"tags": [],
"type": "host",
"uid": "c210af07-1939-49d3-a351-953a9c471d9e"
},
"res_obj": {
"data": {
"color": "black",
"comments": "",
"domain": {
"domain-type": "domain",
"name": "SMC User",
"uid": "41e821a0-3720-11e3-aa6e-0800200c9fde"
},
"groups": [],
"icon": "Objects/host",
"interfaces": [],
"ipv4-address": "8.8.8.8",
"meta-info": {
"creation-time": {
"iso-8601": "2020-05-01T21:49+0300",
"posix": 1588358973517
},
"creator": "admin",
"last-modifier": "admin",
"last-modify-time": {
"iso-8601": "2020-05-01T21:49+0300",
"posix": 1588358973517
},
"lock": "unlocked",
"validation-state": "ok"
},
"name": "h_8.8.8.8",
"nat-settings": {
"auto-rule": false
},
"read-only": false,
"tags": [],
"type": "host",
"uid": "c210af07-1939-49d3-a351-953a9c471d9e"
},
"status_code": 200
},
"status_code": 200,
"success": true
})
api_query
āĻāĻŽāĻžāĻā§ āĻāĻāĻ¨āĻ āĻāĻāĻāĻŋ āĻ°āĻŋāĻāĻžāĻ°ā§āĻā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ āĻĻāĻŋāĻ¨ āĻ¯ā§ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻ āĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¯ āĻ¯āĻžāĻ° āĻāĻāĻāĻĒā§āĻ āĻ āĻĢāĻ¸ā§āĻ āĻāĻĄāĻŧāĻŋāĻ¤āĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻā§ āĻ¯āĻāĻ¨ āĻāĻ¤ā§ āĻĒā§āĻ°āĻā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻ¤āĻĨā§āĻ¯ āĻĨāĻžāĻā§ āĻŦāĻž āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¤ā§āĻ°āĻŋ āĻšā§āĻ¸ā§āĻ āĻ āĻŦāĻā§āĻā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻāĻ¨ā§āĻ¯, API āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ 50āĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ (āĻāĻĒāĻ¨āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ¤ā§ 500 āĻ āĻŦāĻā§āĻā§āĻā§ āĻ¸ā§āĻŽāĻž āĻŦāĻžāĻĄāĻŧāĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨)āĨ¤ āĻāĻŦāĻ API āĻ āĻ¨ā§āĻ°ā§āĻ§ā§ āĻ āĻĢāĻ¸ā§āĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§ āĻāĻāĻžāĻ§āĻŋāĻāĻŦāĻžāĻ° āĻ¤āĻĨā§āĻ¯ āĻāĻžāĻ¨ āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻāĻŋ api_query āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻ˛ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨: āĻļā§-āĻ¸ā§āĻļāĻ¨, āĻļā§-āĻšā§āĻ¸ā§āĻ, āĻļā§-āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ, āĻļā§-āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ, āĻļā§-āĻā§āĻ°ā§āĻĒ, āĻļā§-āĻ ā§āĻ¯āĻžāĻĄā§āĻ°ā§āĻ¸-āĻ°ā§āĻā§āĻ, āĻļā§-āĻ¸āĻŋāĻŽā§āĻĒāĻ˛-āĻā§āĻāĻāĻ¯āĻŧā§, āĻļā§-āĻ¸āĻŋāĻŽā§āĻĒāĻ˛-āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°, āĻļā§-āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸-āĻ°ā§āĻ˛āĻ¸, āĻļā§-āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤-āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ, āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨-āĻĒā§āĻ¯āĻžāĻā§āĻ. āĻāĻ¸āĻ˛ā§, āĻāĻŽāĻ°āĻž āĻāĻ API āĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻ¨āĻžāĻŽā§ āĻŦāĻšā§āĻŦāĻāĻ¨ āĻļāĻŦā§āĻĻ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ, āĻ¤āĻžāĻ āĻāĻ āĻāĻ˛āĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻ¸āĻšāĻ āĻšāĻŦā§ api_query
show_hosts = client.api_query('show-hosts')
āĻāĻžāĻāĻž āĻ¨ā§āĻā§ āĻāĻ āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻĒā§āĻ:
In [21]: show_hosts
Out[21]:
APIResponse({
"data": [
{
"domain": {
"domain-type": "domain",
"name": "SMC User",
"uid": "41e821a0-3720-11e3-aa6e-0800200c9fde"
},
"ipv4-address": "192.168.47.1",
"name": "h_192.168.47.1",
"type": "host",
"uid": "5d7d7086-d70b-4995-971a-0583b15a2bfc"
},
{
"domain": {
"domain-type": "domain",
"name": "SMC User",
"uid": "41e821a0-3720-11e3-aa6e-0800200c9fde"
},
"ipv4-address": "8.8.8.8",
"name": "h_8.8.8.8",
"type": "host",
"uid": "c210af07-1939-49d3-a351-953a9c471d9e"
}
],
"res_obj": {
"data": {
"from": 1,
"objects": [
{
"domain": {
"domain-type": "domain",
"name": "SMC User",
"uid": "41e821a0-3720-11e3-aa6e-0800200c9fde"
},
"ipv4-address": "192.168.47.1",
"name": "h_192.168.47.1",
"type": "host",
"uid": "5d7d7086-d70b-4995-971a-0583b15a2bfc"
},
{
"domain": {
"domain-type": "domain",
"name": "SMC User",
"uid": "41e821a0-3720-11e3-aa6e-0800200c9fde"
},
"ipv4-address": "8.8.8.8",
"name": "h_8.8.8.8",
"type": "host",
"uid": "c210af07-1939-49d3-a351-953a9c471d9e"
}
],
"to": 2,
"total": 2
},
"status_code": 200
},
"status_code": 200,
"success": true
})
API āĻāĻ˛ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻ° āĻĒāĻ°ā§ āĻāĻĒāĻ¨āĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻāĻŦāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ API āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž(āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻā§āĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻāĻŦāĻ āĻŦāĻžāĻāĻ°ā§ āĻāĻāĻ¯āĻŧāĻ)āĨ¤ āĻā§āĻ˛āĻžāĻ¸ā§ API āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž 4āĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻŦāĻ 5āĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻĒā§āĻ°ā§āĻŦāĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤; āĻāĻŽāĻ°āĻž āĻāĻ°āĻ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤āĻāĻžāĻŦā§ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖāĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ° āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻŦāĨ¤
āĻ¸āĻžāĻĢāĻ˛ā§āĻ¯
āĻļā§āĻ°ā§āĻ¤ā§, API āĻāĻ˛āĻāĻŋ āĻ¸āĻĢāĻ˛ āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§ āĻĻāĻŋāĻ¯āĻŧā§āĻā§ āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻ§āĻžāĻ°āĻŖāĻž āĻšāĻŦā§āĨ¤ āĻāĻ āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻā§ āĻ¸āĻžāĻĢāĻ˛ā§āĻ¯:
In [49]: api_versions.success
Out[49]: True
API āĻāĻ˛ āĻ¸āĻĢāĻ˛ āĻšāĻ˛ā§ āĻ¸āĻ¤ā§āĻ¯ (āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻā§āĻĄ - 200) āĻāĻŦāĻ āĻ¸āĻĢāĻ˛ āĻ¨āĻž āĻšāĻ˛ā§ āĻŽāĻŋāĻĨā§āĻ¯āĻž (āĻ āĻ¨ā§āĻ¯ āĻ¯ā§āĻā§āĻ¨ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻā§āĻĄ) āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻā§āĻĄā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ API āĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻāĨ¤
if api_ver.success:
print(api_versions.data)
else:
print(api_versions.err_message)
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻžāĻ¸āĻā§āĻĄ
āĻāĻāĻāĻŋ API āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻā§āĻĄ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
In [62]: api_versions.status_code
Out[62]: 400
āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻā§āĻĄ: 200,400,401,403,404,409,500,501.
set_success_status
āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¸āĻžāĻĢāĻ˛ā§āĻ¯ā§āĻ° āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻ¤āĻāĻžāĻŦā§, āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻŋāĻā§ āĻ°āĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻŽāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻ˛ āĻāĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĻāĻŋāĻā§ False-āĻ āĻ°āĻŋāĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻŋāĻā§ āĻļāĻ°ā§āĻ¤ā§āĻ° āĻ āĻ§ā§āĻ¨ā§āĨ¤ āĻ¨ā§āĻā§, āĻ¯āĻāĻ¨ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻāĻžāĻāĻā§āĻ˛āĻŋ āĻāĻ˛āĻŽāĻžāĻ¨ āĻĨāĻžāĻā§ āĻ¤āĻāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻĻāĻŋāĻā§ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻāĻŋāĻ¨, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻ āĻ āĻ¨ā§āĻ°ā§āĻ§āĻāĻŋāĻā§ āĻ āĻ¸āĻĢāĻ˛ āĻŦāĻ˛ā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻŦ (āĻāĻŽāĻ°āĻž āĻ¸āĻĢāĻ˛āĻ¤āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻ¸ā§āĻ āĻāĻ°āĻŦ āĻŽāĻŋāĻĨā§āĻ¯āĻž, āĻāĻĒāĻŋāĻāĻ āĻāĻ˛ āĻ¸āĻĢāĻ˛ āĻšāĻāĻ¯āĻŧāĻž āĻ¸āĻ¤ā§āĻ¤ā§āĻŦā§āĻ āĻāĻŦāĻ āĻā§āĻĄ 200 āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§)āĨ¤
for task in task_result.data["tasks"]:
if task["status"] == "failed" or task["status"] == "partially succeeded":
task_result.set_success_status(False)
break
āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž()
āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻā§āĻĄ (āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ_āĻā§āĻĄ) āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦāĻĄāĻŋ (āĻŦāĻĄāĻŋ) āĻ¸āĻš āĻ āĻāĻŋāĻ§āĻžāĻ¨āĻāĻŋ āĻĻā§āĻāĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤
In [94]: api_versions.response()
Out[94]:
{'status_code': 200,
'data': {'current-version': '1.6',
'supported-versions': ['1', '1.1', '1.2', '1.3', '1.4', '1.5', '1.6']}}
āĻāĻĒāĻžāĻ¤ā§āĻ¤
āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¤āĻĨā§āĻ¯ āĻāĻžāĻĄāĻŧāĻžāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž (āĻļāĻ°ā§āĻ°) āĻĻā§āĻāĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤
In [93]: api_versions.data
Out[93]:
{'current-version': '1.6',
'supported-versions': ['1', '1.1', '1.2', '1.3', '1.4', '1.5', '1.6']}
āĻā§āĻ˛ āĻŦāĻžāĻ°ā§āĻ¤āĻž
āĻāĻ āĻ¤āĻĨā§āĻ¯āĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¤āĻāĻ¨āĻ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¯āĻāĻ¨ API āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻā§ (āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻā§āĻĄ āĻ¨āĻž 200)āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻāĻāĻĒā§āĻ
In [107]: api_versions.error_message
Out[107]: 'code: generic_err_invalid_parameter_namenmessage: Unrecognized parameter [1]n'
āĻĻāĻ°āĻāĻžāĻ°ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž API 1.6-āĻ āĻ¯ā§āĻ āĻāĻ°āĻž API āĻāĻ˛āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¨āĻŋāĻā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ˛āĨ¤
āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻ˛ā§āĻ¨ āĻĻā§āĻāĻŋ āĻāĻ˛ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ ā§āĻ¯āĻžāĻĄ-āĻšā§āĻ¸ā§āĻ и āĻ¯ā§āĻ-āĻ āĻŋāĻāĻžāĻ¨āĻž-āĻĒāĻ°āĻŋāĻ¸ā§āĻŽāĻž. āĻ§āĻ°āĻž āĻ¯āĻžāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻžāĻŦāĻ¨ā§āĻ 192.168.0.0/24-āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻāĻĒāĻŋ āĻ ā§āĻ¯āĻžāĻĄā§āĻ°ā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¯āĻžāĻ° āĻļā§āĻˇ āĻ āĻā§āĻā§āĻ āĻšāĻ˛ 5, āĻšā§āĻ¸ā§āĻ āĻāĻžāĻāĻĒā§āĻ° āĻ āĻŦāĻā§āĻā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻāĻĒāĻŋ āĻ ā§āĻ¯āĻžāĻĄā§āĻ°ā§āĻ¸āĻā§ āĻ ā§āĻ¯āĻžāĻĄā§āĻ°ā§āĻ¸ āĻ°ā§āĻā§āĻ āĻāĻžāĻāĻĒā§āĻ° āĻ āĻŦāĻā§āĻā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¸āĻžāĻŦāĻ¨ā§āĻ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻāĻŦāĻ āĻ¸āĻŽā§āĻĒā§āĻ°āĻāĻžāĻ° āĻ āĻŋāĻāĻžāĻ¨āĻž āĻŦāĻžāĻĻ āĻĻāĻŋāĻ¨āĨ¤
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻ¨ā§āĻā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻšā§āĻ¸ā§āĻ āĻāĻžāĻāĻĒā§āĻ° 50āĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻĄā§āĻ°ā§āĻ¸ āĻ°ā§āĻā§āĻ āĻāĻžāĻāĻĒā§āĻ° 51āĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, 101āĻāĻŋ API āĻāĻ˛ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ (āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ˛ āĻāĻŖāĻ¨āĻž āĻ¨āĻž)āĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ, timeit āĻŽāĻĄāĻŋāĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻāĻŽāĻ°āĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻāĻžāĻļ āĻ¨āĻž āĻšāĻāĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻ¤ā§ āĻ¯ā§ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻžāĻā§ āĻ¤āĻž āĻāĻŖāĻ¨āĻž āĻāĻ°āĻŋāĨ¤
āĻ ā§āĻ¯āĻžāĻĄ-āĻšā§āĻ¸ā§āĻ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻĄ-āĻ ā§āĻ¯āĻžāĻĄā§āĻ°ā§āĻ¸-āĻ°ā§āĻā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ
import timeit
from cpapi import APIClient, APIClientArgs
start = timeit.default_timer()
first_ip = 1
last_ip = 4
client_args = APIClientArgs(server="192.168.47.240")
with APIClient(client_args) as client:
login = client.login_with_api_key('3TsbPJ8ZKjaJGvFyoFqHFA==')
for ip in range(5,255,5):
add_host = client.api_call("add-host", {"name" : f"h_192.168.0.{ip}", "ip-address": f'192.168.0.{ip}'})
while last_ip < 255:
add_range = client.api_call("add-address-range", {"name": f"r_192.168.0.{first_ip}-{last_ip}", "ip-address-first": f"192.168.0.{first_ip}", "ip-address-last": f"192.168.0.{last_ip}"})
first_ip+=5
last_ip+=5
stop = timeit.default_timer()
publish = client.api_call("publish")
print(f'Time to execute batch request: {stop - start} seconds')
āĻāĻŽāĻžāĻ° āĻ˛ā§āĻ¯āĻžāĻŦ āĻĒāĻ°āĻŋāĻŦā§āĻļā§, āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ˛ā§āĻĄā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻ¤ā§ 30 āĻĨā§āĻā§ 50 āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻ¯āĻŧāĨ¤
āĻāĻāĻ¨ āĻĻā§āĻāĻž āĻ¯āĻžāĻ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ API āĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¯ā§āĻ-āĻ āĻŦāĻā§āĻā§āĻ-āĻŦā§āĻ¯āĻžāĻ, āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ API āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 1.6 āĻ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ āĻāĻ˛āĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ API āĻ āĻ¨ā§āĻ°ā§āĻ§ā§ āĻāĻāĻ¸āĻžāĻĨā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻ¤āĻĻā§āĻĒāĻ°āĻŋ, āĻāĻā§āĻ˛āĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻšā§āĻ¸ā§āĻ, āĻ¸āĻžāĻŦāĻ¨ā§āĻ āĻāĻŦāĻ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻĒāĻ°āĻŋāĻ¸ā§āĻŽāĻž)āĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻāĻāĻŋ āĻāĻāĻāĻŋ API āĻāĻ˛ā§āĻ° āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ ā§āĻ¯āĻžāĻĄ-āĻ āĻŦāĻā§āĻā§āĻ-āĻŦā§āĻ¯āĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ
import timeit
from cpapi import APIClient, APIClientArgs
start = timeit.default_timer()
client_args = APIClientArgs(server="192.168.47.240")
objects_list_ip = []
objects_list_range = []
for ip in range(5,255,5):
data = {"name": f'h_192.168.0.{ip}', "ip-address": f'192.168.0.{ip}'}
objects_list_ip.append(data)
first_ip = 1
last_ip = 4
while last_ip < 255:
data = {"name": f"r_192.168.0.{first_ip}-{last_ip}", "ip-address-first": f"192.168.0.{first_ip}", "ip-address-last": f"192.168.0.{last_ip}"}
objects_list_range.append(data)
first_ip+=5
last_ip+=5
data_for_batch = {
"objects" : [ {
"type" : "host",
"list" : objects_list_ip
}, {
"type" : "address-range",
"list" : objects_list_range
}]
}
with APIClient(client_args) as client:
login = client.login_with_api_key('3TsbPJ8ZKjaJGvFyoFqHFA==')
add_objects_batch = client.api_call("add-objects-batch", data_for_batch)
stop = timeit.default_timer()
publish = client.api_call("publish")
print(f'Time to execute batch request: {stop - start} seconds')
āĻāĻŦāĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ˛ā§āĻĄā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻŽāĻžāĻ° āĻ˛ā§āĻ¯āĻžāĻŦ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¤ā§ 3 āĻĨā§āĻā§ 7 āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻžāĻā§āĨ¤ āĻ āĻ°ā§āĻĨāĻžā§, āĻāĻĄāĻŧā§, 101āĻāĻŋ API āĻ āĻŦāĻā§āĻā§āĻā§, āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻ āĻāĻžāĻāĻĒ āĻāĻ˛ 10 āĻā§āĻŖ āĻĻā§āĻ°ā§āĻ¤ āĻāĻ˛ā§āĨ¤ āĻŦā§āĻšāĻ¤ā§āĻ¤āĻ° āĻ¸āĻāĻā§āĻ¯āĻ āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯āĻāĻŋ āĻāĻ°āĻ āĻŦā§āĻļāĻŋ āĻāĻŋāĻ¤ā§āĻ¤āĻžāĻāĻ°ā§āĻˇāĻ āĻšāĻŦā§āĨ¤
āĻāĻāĻ¨ āĻĻā§āĻāĻž āĻ¯āĻžāĻ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¸ā§āĻ-āĻ āĻŦāĻā§āĻā§āĻ-āĻŦā§āĻ¯āĻžāĻ. āĻāĻ API āĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ¯ā§āĻā§āĻ¨ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻŦāĻžāĻ˛ā§āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻāĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĨā§āĻā§ āĻ ā§āĻ¯āĻžāĻĄā§āĻ°ā§āĻ¸ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ āĻ°ā§āĻ§ā§āĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ (.124 āĻšā§āĻ¸ā§āĻ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤, āĻāĻŦāĻ āĻ°ā§āĻā§āĻāĻ) āĻāĻžāĻ˛āĻžāĻ° āĻ¸āĻŋāĻ¯āĻŧā§āĻ¨āĻžāĻ¤ā§, āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻĄā§āĻ°ā§āĻ¸ā§āĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻžāĻ°ā§āĻ§ā§ āĻāĻžāĻ˛āĻžāĻ° āĻāĻžāĻāĻŋ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻŋāĨ¤
āĻāĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ°āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž
from cpapi import APIClient, APIClientArgs
client_args = APIClientArgs(server="192.168.47.240")
objects_list_ip_first = []
objects_list_range_first = []
objects_list_ip_second = []
objects_list_range_second = []
for ip in range(5,125,5):
data = {"name": f'h_192.168.0.{ip}', "color": "sienna"}
objects_list_ip_first.append(data)
for ip in range(125,255,5):
data = {"name": f'h_192.168.0.{ip}', "color": "khaki"}
objects_list_ip_second.append(data)
first_ip = 1
last_ip = 4
while last_ip < 125:
data = {"name": f"r_192.168.0.{first_ip}-{last_ip}", "color": "sienna"}
objects_list_range_first.append(data)
first_ip+=5
last_ip+=5
while last_ip < 255:
data = {"name": f"r_192.168.0.{first_ip}-{last_ip}", "color": "khaki"}
objects_list_range_second.append(data)
first_ip+=5
last_ip+=5
data_for_batch_first = {
"objects" : [ {
"type" : "host",
"list" : objects_list_ip_first
}, {
"type" : "address-range",
"list" : objects_list_range_first
}]
}
data_for_batch_second = {
"objects" : [ {
"type" : "host",
"list" : objects_list_ip_second
}, {
"type" : "address-range",
"list" : objects_list_range_second
}]
}
with APIClient(client_args) as client:
login = client.login_with_api_key('3TsbPJ8ZKjaJGvFyoFqHFA==')
set_objects_batch_first = client.api_call("set-objects-batch", data_for_batch_first)
set_objects_batch_second = client.api_call("set-objects-batch", data_for_batch_second)
publish = client.api_call("publish")
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ API āĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻŦāĻ¸ā§āĻ¤ā§ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻĄāĻŋāĻ˛āĻŋāĻ-āĻ āĻŦāĻā§āĻā§āĻ-āĻŦā§āĻ¯āĻžāĻ. āĻāĻāĻ¨ āĻāĻ¸ā§āĻ¨ āĻāĻāĻāĻŋ āĻā§āĻĄ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻāĻŋ āĻ¯āĻž āĻĒā§āĻ°ā§āĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻšā§āĻ¸ā§āĻ āĻŽā§āĻā§ āĻĻā§āĻ¯āĻŧ āĻ¯ā§āĻ-āĻ āĻŦāĻā§āĻā§āĻ-āĻŦā§āĻ¯āĻžāĻ.
āĻĄāĻŋāĻ˛āĻŋāĻ-āĻ āĻŦāĻā§āĻā§āĻ-āĻŦā§āĻ¯āĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŦāĻ¸ā§āĻ¤ā§ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž āĻšāĻā§āĻā§
from cpapi import APIClient, APIClientArgs
client_args = APIClientArgs(server="192.168.47.240")
objects_list_ip = []
objects_list_range = []
for ip in range(5,255,5):
data = {"name": f'h_192.168.0.{ip}'}
objects_list_ip.append(data)
first_ip = 1
last_ip = 4
while last_ip < 255:
data = {"name": f"r_192.168.0.{first_ip}-{last_ip}"}
objects_list_range.append(data)
first_ip+=5
last_ip+=5
data_for_batch = {
"objects" : [ {
"type" : "host",
"list" : objects_list_ip
}, {
"type" : "address-range",
"list" : objects_list_range
}]
}
with APIClient(client_args) as client:
login = client.login_with_api_key('3TsbPJ8ZKjaJGvFyoFqHFA==')
delete_objects_batch = client.api_call("delete-objects-batch", data_for_batch)
publish = client.api_call("publish")
print(delete_objects_batch.data)
āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ°āĻŋāĻ˛āĻŋāĻā§ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ API āĻāĻ˛āĻā§āĻ˛āĻŋ āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻāĻāĻžāĻŦā§, R80.40-āĻ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ āĻā§ āĻ°āĻŋāĻāĻŋāĻļāĻ¨ āĻāĻŦāĻ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻāĻžāĻ¸ā§āĻā§āĻ° āĻŽāĻ¤ā§ "āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ" āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻāĻŦāĻ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ API āĻāĻ˛āĻā§āĻ˛āĻŋ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻ āĻ§āĻŋāĻāĻ¨ā§āĻ¤ā§, āĻ˛āĻŋāĻā§āĻ¯āĻžāĻ¸āĻŋ āĻāĻ¨āĻ¸ā§āĻ˛ āĻĨā§āĻā§ āĻāĻāĻ¨āĻŋāĻĢāĻžāĻāĻĄ āĻĒāĻ˛āĻŋāĻ¸āĻŋ āĻŽā§āĻĄā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻžāĻ API āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ R80.40-āĻāĻ° āĻĻā§āĻ°ā§āĻ-āĻĒā§āĻ°āĻ¤ā§āĻā§āĻˇāĻŋāĻ¤ āĻāĻĒāĻĄā§āĻāĻāĻŋ āĻšāĻ˛ āĻ˛āĻŋāĻā§āĻ¯āĻžāĻ¸āĻŋ āĻŽā§āĻĄ āĻĨā§āĻā§ āĻāĻāĻ¨āĻŋāĻĢāĻžāĻāĻĄ āĻĒāĻ˛āĻŋāĻ¸āĻŋ āĻŽā§āĻĄā§ HTTPS āĻĒāĻ°āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻ¨ā§āĻ¤āĻŋāĻ° āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°, āĻāĻŦāĻ āĻāĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ API āĻāĻ˛āĻā§āĻ˛āĻŋ āĻĒā§āĻ¯āĻŧā§āĻā§ā§ˇ āĻāĻāĻžāĻ¨ā§ āĻā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž HTTPS āĻĒāĻ°āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻ¨ā§āĻ¤āĻŋāĻ° āĻļā§āĻ°ā§āĻˇ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§ āĻ¯āĻž āĻĒāĻ°āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻĨā§āĻā§ 3āĻāĻŋ āĻŦāĻŋāĻāĻžāĻ āĻŦāĻžāĻĻ āĻĻā§āĻ¯āĻŧ (āĻ¸ā§āĻŦāĻžāĻ¸ā§āĻĨā§āĻ¯, āĻ āĻ°ā§āĻĨ, āĻ¸āĻ°āĻāĻžāĻ°ā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž), āĻ¯āĻž āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻĻā§āĻļā§ āĻāĻāĻ¨ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻĒāĻ°āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻĨā§āĻā§ āĻ¨āĻŋāĻˇāĻŋāĻĻā§āĻ§āĨ¤
HTTPS āĻĒāĻ°āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻ¨ā§āĻ¤āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨
from cpapi import APIClient, APIClientArgs
client_args = APIClientArgs(server="192.168.47.240")
data = {
"layer" : "Default Layer",
"position" : "top",
"name" : "Legal Requirements",
"action": "bypass",
"site-category": ["Health", "Government / Military", "Financial Services"]
}
with APIClient(client_args) as client:
login = client.login_with_api_key('3TsbPJ8ZKjaJGvFyoFqHFA==')
add_https_rule = client.api_call("add-https-rule", data)
publish = client.api_call("publish")
āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻĒāĻžāĻāĻĨāĻ¨ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻā§āĻā§
āĻ¸āĻŦāĻ āĻāĻāĻ°āĻāĻŽ
āĻ¸āĻŋāĻāĻŋāĻāĻ°āĻŋāĻāĻŋ āĻā§āĻāĻāĻĒā§āĻ° āĻĻā§āĻ°ā§āĻ¤ āĻ¸ā§āĻāĻāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ
from __future__ import print_function
import getpass
import sys, os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from cpapi import APIClient, APIClientArgs
def main():
with APIClient() as client:
# if client.check_fingerprint() is False:
# print("Could not get the server's fingerprint - Check connectivity with the server.")
# exit(1)
login_res = client.login_as_root()
if login_res.success is False:
print("Login failed:n{}".format(login_res.error_message))
exit(1)
gw_name = raw_input("Enter the gateway name:")
gw_ip = raw_input("Enter the gateway IP address:")
if sys.stdin.isatty():
sic = getpass.getpass("Enter one-time password for the gateway(SIC): ")
else:
print("Attention! Your password will be shown on the screen!")
sic = raw_input("Enter one-time password for the gateway(SIC): ")
version = raw_input("Enter the gateway version(like RXX.YY):")
add_gw = client.api_call("add-simple-gateway", {'name' : gw_name, 'ipv4-address' : gw_ip, 'one-time-password' : sic, 'version': version.capitalize(), 'application-control' : 'true', 'url-filtering' : 'true', 'ips' : 'true', 'anti-bot' : 'true', 'anti-virus' : 'true', 'threat-emulation' : 'true'})
if add_gw.success and add_gw.data['sic-state'] != "communicating":
print("Secure connection with the gateway hasn't established!")
exit(1)
elif add_gw.success:
print("The gateway was added successfully.")
gw_uid = add_gw.data['uid']
gw_name = add_gw.data['name']
else:
print("Failed to add the gateway - {}".format(add_gw.error_message))
exit(1)
change_policy = client.api_call("set-access-layer", {"name" : "Network", "applications-and-url-filtering": "true", "content-awareness": "true"})
if change_policy.success:
print("The policy has been changed successfully")
else:
print("Failed to change the policy- {}".format(change_policy.error_message))
change_rule = client.api_call("set-access-rule", {"name" : "Cleanup rule", "layer" : "Network", "action": "Accept", "track": {"type": "Detailed Log", "accounting": "true"}})
if change_rule.success:
print("The cleanup rule has been changed successfully")
else:
print("Failed to change the cleanup rule- {}".format(change_rule.error_message))
# publish the result
publish_res = client.api_call("publish", {})
if publish_res.success:
print("The changes were published successfully.")
else:
print("Failed to publish the changes - {}".format(install_tp_policy.error_message))
install_access_policy = client.api_call("install-policy", {"policy-package" : "Standard", "access" : 'true', "threat-prevention" : 'false', "targets" : gw_uid})
if install_access_policy.success:
print("The access policy has been installed")
else:
print("Failed to install access policy - {}".format(install_tp_policy.error_message))
install_tp_policy = client.api_call("install-policy", {"policy-package" : "Standard", "access" : 'false', "threat-prevention" : 'true', "targets" : gw_uid})
if install_tp_policy.success:
print("The threat prevention policy has been installed")
else:
print("Failed to install threat prevention policy - {}".format(install_tp_policy.error_message))
# add passwords and passphrases to dictionary
with open('additional_pass.conf') as f:
line_num = 0
for line in f:
line_num += 1
add_password_dictionary = client.api_call("run-script", {"script-name" : "Add passwords and passphrases", "script" : "printf "{}" >> $FWDIR/conf/additional_pass.conf".format(line), "targets" : gw_name})
if add_password_dictionary.success:
print("The password dictionary line {} was added successfully".format(line_num))
else:
print("Failed to add the dictionary - {}".format(add_password_dictionary.error_message))
main()
āĻāĻāĻāĻŋ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ
āĻāĻŋāĻ§āĻžāĻ¨ āĻ
āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤_pass.conf āĻ¸āĻš āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĢāĻžāĻāĻ˛
{
"passwords" : ["malware","malicious","infected","Infected"],
"phrases" : ["password","Password","Pass","pass","codigo","key","pwd","ĐŋĐ°ŅĐžĐģŅ","ĐĐ°ŅĐžĐģŅ","ĐĐģŅŅ","ĐēĐģŅŅ","ŅиŅŅ","ШиŅŅ"]
}
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻžāĻā§āĻ° āĻŽā§āĻ˛āĻŋāĻ āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻžāĻā§āĻ˛āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§ āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻ¸āĻĄāĻŋāĻā§ āĻāĻŦāĻ āĻŽāĻĄāĻŋāĻāĻ˛ cpapi(āĻ¯ā§āĻŽāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻ
āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°ā§āĻā§āĻ¨, āĻāĻā§āĻ˛āĻŋ āĻāĻ¸āĻ˛ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻļāĻŦā§āĻĻ), āĻāĻŦāĻ āĻāĻ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻā§āĻĄ āĻ
āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ āĻāĻ°ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ°āĻ āĻŦā§āĻļāĻŋ āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻž āĻā§āĻāĻā§ āĻĒāĻžāĻŦā§āĻ¨āĨ¤ āĻāĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋāĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻā§āĻ˛āĻžāĻ¸, āĻĢāĻžāĻāĻļāĻ¨, āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻŦāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĻŦā§āĻ¨āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻ āĻļā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻŦāĻŋāĻāĻžāĻā§ āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻļā§āĻ āĻā§āĻĄāĻŋāĻ āĻāĻŦāĻ āĻļā§āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒāĻĄāĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ!
āĻāĻ¤ā§āĻ¸: www.habr.com