#!/usr/bin/python # Created by zack -at- wallcity.org # Grabs the systems hostname and updates the record in DeployStudios database. import sys # The exits string import plistlib # The property list library import urllib,urllib2,base64 # Our URL handlers from uuid import getnode as get_mac from socket import gethostname # Get our Mac Address mac = get_mac() username = "deploystudioadmin" # The Deploy Studio username password = "f00b4rb4z" # The Deploy Studio password server = "some.server.com" # The DP instance to communicate with port = "60443" # The DP server progID = "https://" # The start of the URL mac = "%X" % get_mac() # Convert DecHex and produce "001f6bf8de5e" mac = mac.lower() # Ensure lower #macCol = [mac[i:i+2] for i in range(0,len(mac),2)] #macCol = ':'.join(mac) request = urllib2.Request(progID + server + ":" + port + "/computers/get/entry?id=" + mac ) base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '') request.add_header("Authorization", "Basic %s" % base64string) httpResult = urllib2.urlopen(request) deployStudioXML = httpResult.read() print "Found Mac Address: " + mac print "Found HostName: " + gethostname() plist = plistlib.readPlistFromString(deployStudioXML) # Set the values for key in plist: plist[key]['cn'] = gethostname() plist[key]['dstudio-hostname'] = gethostname() rootXMLPlist = plistlib.writePlistToString(plist[key]) print rootXMLPlist submitRequest = urllib2.Request(progID + server + ":" + port + "/computers/set/entry?id=" + mac, rootXMLPlist, {'Content-type': 'text/xml'}) base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '') submitRequest.add_header("Authorization", "Basic %s" % base64string) submitResult = urllib2.urlopen(submitRequest) submitResultXML = submitResult.read() sys.exit(0)