Skip to content

Instantly share code, notes, and snippets.

@sheagcraig
Last active August 29, 2015 14:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sheagcraig/e746d78a3ba6bbe6b7ba to your computer and use it in GitHub Desktop.
Save sheagcraig/e746d78a3ba6bbe6b7ba to your computer and use it in GitHub Desktop.
Der Flounder Test
#!/usr/bin/python
import ssl
import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.poolmanager import PoolManager
from requests.packages.urllib3.contrib import pyopenssl
#import jss
URL = "https://yourcasperserver.org:8443"
USER = "api username"
PASSWORD = "api password"
class TLSAdapter(HTTPAdapter):
"""Transport adapter that uses TLS vs. default of SSLv23."""
def init_poolmanager(self, connections, maxsize, block=False):
self.poolmanager = PoolManager(num_pools=connections, maxsize=maxsize,
block=block,
ssl_version=ssl.PROTOCOL_TLSv1)
pyopenssl.DEFAULT_SSL_CIPHER_LIST = "ECDHE-RSA-AES128-SHA"
class JSSSession(object):
def __init__(self):
self.session = requests.Session()
self.session.auth = (USER, PASSWORD)
self.ssl_verify = False
headers = {"content-type": 'text/xml', 'Accept': 'application/xml'}
self.session.headers.update(headers)
self.session.mount(URL, TLSAdapter())
def get(self, endpoint):
url = "%s/JSSResource/%s" % (URL, endpoint)
response = self.session.get(url)
print "Transport Adapter: %s" % self.session.get_adapter(URL)
print "Status: %s, %s" % (response.status_code,
requests.status_codes._codes[
response.status_code])
print "URL: %s" % response.url
print "History: %s" % response.history
print "Sent Header: %s" % response.request.headers
print "Received Header: %s" % response.headers
print
print "Content: %s" % response.text.encode("utf-8")
print dir(response)
print dir(response.request)
return response
j = JSSSession()
response = j.get("packages")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment