54 lines
1.3 KiB
Python
54 lines
1.3 KiB
Python
|
#!/usr/bin/env python
|
||
|
from sugar import profile
|
||
|
from xmlrpclib import ServerProxy, Error
|
||
|
import sys
|
||
|
import os
|
||
|
|
||
|
REGISTER_URL = 'http://schoolserver:8080/'
|
||
|
|
||
|
def register_laptop(url=REGISTER_URL):
|
||
|
if not have_ofw_tree():
|
||
|
return False
|
||
|
|
||
|
sn = read_ofw('mfg-data/SN')
|
||
|
uuid = read_ofw('mfg-data/U#')
|
||
|
sn = sn or 'SHF00000000'
|
||
|
uuid = uuid or '00000000-0000-0000-0000-000000000000'
|
||
|
|
||
|
nick = profile.get_nick_name()
|
||
|
pubkey = profile.get_pubkey()
|
||
|
|
||
|
try:
|
||
|
server = ServerProxy(url)
|
||
|
data = server.register(sn, nick, uuid, pubkey)
|
||
|
if data['success'] != 'OK':
|
||
|
print >> sys.stderr, "Error registering laptop: " + data['error']
|
||
|
return False
|
||
|
backupurl = data['backupurl']
|
||
|
jserver = data['jabberserver']
|
||
|
profile.set_server(jserver)
|
||
|
profile.set_trial2_backup(backupurl)
|
||
|
except Error, e:
|
||
|
print >> sys.stderr, "Error registering laptop: " + str(e)
|
||
|
return False
|
||
|
|
||
|
return True
|
||
|
|
||
|
def have_ofw_tree():
|
||
|
return os.path.exists('/ofw')
|
||
|
|
||
|
def read_ofw(path):
|
||
|
path = os.path.join('/ofw', path)
|
||
|
if not os.path.exists(path):
|
||
|
return None
|
||
|
fh = open(path, 'r')
|
||
|
data = fh.read().rstrip('\0\n')
|
||
|
fh.close()
|
||
|
return data
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
url = REGISTER_URL
|
||
|
if len(sys.argv) > 1:
|
||
|
url = sys.argv[1]
|
||
|
register_laptop(url)
|