46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
from sugar.profile import get_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'
|
|
|
|
profile = get_profile()
|
|
|
|
try:
|
|
server = ServerProxy(url)
|
|
data = server.register(sn, profile.nick_name, uuid, profile.pubkey)
|
|
if data['success'] != 'OK':
|
|
print >> sys.stderr, "Error registering laptop: " + data['error']
|
|
return False
|
|
|
|
profile.jabber_server = data['jabberserver']
|
|
profile.backup1 = data['backupurl']
|
|
profile.save()
|
|
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
|