Add the olpc-register code
This commit is contained in:
		
							parent
							
								
									fb758f8506
								
							
						
					
					
						commit
						ab7cd66374
					
				| @ -2,9 +2,10 @@ sugardir = $(pkgdatadir)/shell/hardware | ||||
| sugar_PYTHON =				\
 | ||||
| 	__init__.py			\
 | ||||
| 	hardwaremanager.py		\
 | ||||
| 	keydialog.py			\
 | ||||
| 	nmclient.py			\
 | ||||
| 	nminfo.py			\
 | ||||
| 	keydialog.py | ||||
| 	schoolserver.py | ||||
| 
 | ||||
| dbusservicedir = $(sysconfdir)/dbus-1/system.d/ | ||||
| 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
	 Marco Pesenti Gritti
						Marco Pesenti Gritti