def __init__( self, url, token=None, private_key=None, private_key_file=None, ssl_verify=True, threading=False, ): if private_key and private_key_file: raise ValueError( '"private_key" and "private_key_file" cannot be used together.' ) base_url = "{}/api".format(url if url[-1] != "/" else url[:-1]) self.token = token self.private_key = private_key self.private_key_file = private_key_file self.base_url = base_url self.ssl_verify = ssl_verify self.session_key = None self.http_session = requests.Session() if threading and sys.version_info.major == 2: raise NotImplementedError("Threaded pynetbox calls not supported \ in Python 2") self.threading = threading if self.private_key_file: with open(self.private_key_file, "r") as kf: private_key = kf.read() self.private_key = private_key req = Request(base=base_url, token=token, private_key=private_key, ssl_verify=ssl_verify, http_session=self.http_session) if self.token and self.private_key: self.session_key = req.get_session_key() self.dcim = App(self, "dcim") self.ipam = App(self, "ipam") self.circuits = App(self, "circuits") self.secrets = App(self, "secrets") self.tenancy = App(self, "tenancy") self.extras = App(self, "extras") self.virtualization = App(self, "virtualization")
def __init__( self, url, token=None, private_key=None, private_key_file=None, ssl_verify=True, ): if private_key and private_key_file: raise ValueError( '"private_key" and "private_key_file" cannot be used together.' ) base_url = "{}/api".format(url if url[-1] != "/" else url[:-1]) self.token = token self.private_key = private_key self.private_key_file = private_key_file self.base_url = base_url self.ssl_verify = ssl_verify self.session_key = None if self.private_key_file: with open(self.private_key_file, "r") as kf: private_key = kf.read() self.private_key = private_key req = Request( base=base_url, token=token, private_key=private_key, ssl_verify=ssl_verify, ) if self.token and self.private_key: self.session_key = req.get_session_key() self.dcim = App(self, "dcim") self.ipam = App(self, "ipam") self.circuits = App(self, "circuits") self.secrets = App(self, "secrets") self.tenancy = App(self, "tenancy") self.extras = App(self, "extras") self.virtualization = App(self, "virtualization")