Skip to content

Instantly share code, notes, and snippets.

@chilcote
Created February 2, 2018 20:54
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save chilcote/fb670103b8e90aaea67dee0ffc6cc983 to your computer and use it in GitHub Desktop.
Save chilcote/fb670103b8e90aaea67dee0ffc6cc983 to your computer and use it in GitHub Desktop.
jss api cheatsheet
#!/usr/bin/python
import sys, os
import urllib, urllib2
import base64
import json
import requests
import xml.etree.ElementTree as ET
def requests_xml(jss_user, jss_pass, jss_url, category):
'''return xml data from jss'''
try:
r = requests.get(jss_url + category,
auth=(jss_user,jss_pass))
return r.status_code, r.text
except TypeError as err:
print 'Cannot connect to JSS.'
print err
exit(1)
def requests_json(jss_user, jss_pass, jss_url, category):
'''return json data from jss'''
try:
r = requests.get(jss_url + category,
headers={'Accept': 'application/json'},
auth=(jss_user,jss_pass))
return r.status_code, r.json()
except TypeError as err:
print 'Cannot connect to JSS.'
print err
exit(1)
def urllib_xml(jss_user, jss_pass, jss_url, category):
request = urllib2.Request('%s' % (jss_url + category))
request.add_header('Authorization', 'Basic ' + base64.b64encode(jss_user + ':' + jss_pass))
try:
response = urllib2.urlopen(request)
return response.code, response.read()
except urllib2.HTTPError, e:
print e
exit(1)
def urllib_json(jss_user, jss_pass, jss_url, category):
request = urllib2.Request('%s' % (jss_url + category))
request.add_header('Authorization', 'Basic ' + base64.b64encode(jss_user + ':' + jss_pass))
request.add_header('Accept', 'application/json')
try:
response = urllib2.urlopen(request)
return response.code, response.read()
except urllib2.HTTPError, e:
print e
exit(1)
def main():
'''
Using Advanced Computer Searches
There are four examples here:
1. xml data returned via requests
2. json data returned via requests
3. xml data returned via urllib
4. json data returned via urllib
'''
jss_user = "jss_user"
jss_pass = "jss_pass"
jss_url = "jss_url"
api_category = '/advancedcomputersearches'
# requests xml data
r_code, r_text = requests_xml(jss_user, jss_pass, jss_url, api_category)
print r_code
root = ET.fromstring(r_text)
for search in root.findall('advanced_computer_search'):
print '%s\t%s' % (search.find('id').text, search.find('name').text)
# requests json data
r_code, d = requests_json(jss_user, jss_pass, jss_url, api_category)
print r_code
for i in d['advanced_computer_searches']:
print '%s\t%s' % (str(i.values()[0]), i.values()[1])
# urllib xml data
r_code, r_text = urllib_xml(jss_user, jss_pass, jss_url, api_category)
print r_code
root = ET.fromstring(r_text)
for search in root.findall('advanced_computer_search'):
print '%s\t%s' % (search.find('id').text, search.find('name').text)
# urllib json data
r_code, r_text = urllib_json(jss_user, jss_pass, jss_url, api_category)
print r_code
l = json.loads(r_text)['advanced_computer_searches']
for i in l:
print '%s\t%s' % (str(i.values()[0]), i.values()[1])
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment