|
723 | 723 | query_params=dict(required=False, type="list", elements="str"), |
724 | 724 | validate_certs=dict(type="raw", default=True), |
725 | 725 | cert=dict(type="raw", required=False), |
| 726 | + headers=dict(type="dict", required=False), |
726 | 727 | ) |
727 | 728 |
|
728 | 729 |
|
@@ -751,10 +752,11 @@ def __init__(self, module, endpoint, nb_client=None): |
751 | 752 | token = self.module.params["netbox_token"] |
752 | 753 | ssl_verify = self.module.params["validate_certs"] |
753 | 754 | cert = self.module.params["cert"] |
| 755 | + headers = self.module.params["headers"] |
754 | 756 |
|
755 | 757 | # Attempt to initiate connection to NetBox |
756 | 758 | if nb_client is None: |
757 | | - self.nb = self._connect_netbox_api(url, token, ssl_verify, cert) |
| 759 | + self.nb = self._connect_netbox_api(url, token, ssl_verify, cert, headers) |
758 | 760 | else: |
759 | 761 | self.nb = nb_client |
760 | 762 | try: |
@@ -804,10 +806,14 @@ def _version_check_greater(self, greater, lesser, greater_or_equal=False): |
804 | 806 |
|
805 | 807 | return False |
806 | 808 |
|
807 | | - def _connect_netbox_api(self, url, token, ssl_verify, cert): |
| 809 | + def _connect_netbox_api(self, url, token, ssl_verify, cert, headers=None): |
808 | 810 | try: |
809 | 811 | session = requests.Session() |
810 | 812 | session.verify = ssl_verify |
| 813 | + if isinstance(headers, str): |
| 814 | + headers = json.load(headers) |
| 815 | + if isinstance(headers, dict): |
| 816 | + session.headers.update(headers) |
811 | 817 | if cert: |
812 | 818 | session.cert = tuple(i for i in cert) |
813 | 819 | nb = pynetbox.api(url, token=token) |
|
0 commit comments