Posted on 09-25-2019 08:11 AM
Hi all.
I am still struggling so hard with API and bash syntax, due to lack of training. :-/
As I have a time-sensitive and crucial task to fulfill that does not leave so much time left for trial and error, could someone hint me how to get a site name (and define it as variable $site) via the Mac's UDID through API?
What would the curl call (and the formatting) need to look like?
Thanks a million! :-)
Chris
Posted on 09-25-2019 09:17 AM
This work for you?
curl -sku "apiUser:password" https://your.jamfcloud.com/JSSResource/computers/udid/<UDID here>/subset/general -X GET -H "Accept: application/xml" | xpath "string(//site/name)"
Posted on 09-27-2019 04:43 AM
Sorry, with that, I get:
Query didn't return a nodeset .
Posted on 09-27-2019 08:02 AM
And it didn't return the site? You can silence that message as follows:
curl -sku "apiUser:password" https://your.jamfcloud.com/JSSResource/computers/udid/<UDID here>/subset/general -X GET -H "Accept: application/xml" | xpath "string(//site/name)" 2>/dev/null
Posted on 09-27-2019 08:43 AM
Try it this way. If there is a Site assigned to the Mac or not, it should return something. Even if one is not assigned it returns a string of "None"
curl -sku "apiUser:password" https://your.jamfcloud.com/JSSResource/computers/udid/<UDID here>/subset/general -X GET -H "Accept: application/xml" | xpath '/computer/general/site/name/text()'
Posted on 10-09-2019 11:30 AM
These require that the device is checking in, correct? If a device has not checked in or updated inventory since this is in place, is it pulling from information currently in the DB or only after it has responded regularly?