Add the olpc-register code
This commit is contained in:
parent
fb758f8506
commit
ab7cd66374
@ -2,9 +2,10 @@ sugardir = $(pkgdatadir)/shell/hardware
|
|||||||
sugar_PYTHON = \
|
sugar_PYTHON = \
|
||||||
__init__.py \
|
__init__.py \
|
||||||
hardwaremanager.py \
|
hardwaremanager.py \
|
||||||
|
keydialog.py \
|
||||||
nmclient.py \
|
nmclient.py \
|
||||||
nminfo.py \
|
nminfo.py \
|
||||||
keydialog.py
|
schoolserver.py
|
||||||
|
|
||||||
dbusservicedir = $(sysconfdir)/dbus-1/system.d/
|
dbusservicedir = $(sysconfdir)/dbus-1/system.d/
|
||||||
dbusservice_DATA = NetworkManagerInfo.conf
|
dbusservice_DATA = NetworkManagerInfo.conf
|
||||||
|
53
shell/hardware/schoolserver.py
Normal file
53
shell/hardware/schoolserver.py
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
#!/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)
|
Loading…
Reference in New Issue
Block a user