diff options
author | Ariel Calzada <ariel@activitycentral.com> | 2012-01-25 01:09:21 (GMT) |
---|---|---|
committer | Ariel Calzada <ariel@activitycentral.com> | 2012-01-25 01:09:21 (GMT) |
commit | 28fc6a1aa1d0202c58b71efcaf692cbc601dc6f6 (patch) | |
tree | 88e98c143db0b5f63b880a6b2985d81a70547159 | |
parent | c7a6da9b619e350ee0462d5387a8dff38557f92e (diff) |
Dynamic IP choose
-rw-r--r-- | classroomkit.py | 14 | ||||
-rw-r--r-- | utilities.py | 17 | ||||
-rw-r--r-- | viewer.py | 13 |
3 files changed, 32 insertions, 12 deletions
diff --git a/classroomkit.py b/classroomkit.py index 4f2f289..e8c7e0d 100644 --- a/classroomkit.py +++ b/classroomkit.py @@ -19,6 +19,7 @@ from sugar.presence import presenceservice from broadcast import Broadcast from viewer import Viewer +from utilities import Utilities # Telepathy service setup SERVICE = 'org.sugarlabs.ClassroomKit' @@ -38,6 +39,9 @@ class ClassroomKitActivity(activity.Activity): # UI _toolbar = None + # Utilities + _utilities = None + def __init__(self, handle): """Constructor """ @@ -50,6 +54,9 @@ class ClassroomKitActivity(activity.Activity): # UI self.loadUI() + # Utilities + self._utilities = Utilities() + # Broadcast if not self._shared_activity: self._broadcast = Broadcast(self) @@ -67,25 +74,26 @@ class ClassroomKitActivity(activity.Activity): self._broadcast.startBroadcast() self._broadcast.showStatus() else: - self._viewer.startViewer("192.168.1.69") - self._viewer.showStatus() + self._viewer.startViewer(self._utilities.getNetworkDict()) + #self._viewer.showStatus() def loadUI(self): """Create and show UI """ # Toolbar + # Broadcast if not self._shared_activity: toolbox = ActivityToolbox(self) self._toolbar = toolbox.get_activity_toolbar() self.set_toolbox(toolbox) + # Viewer else: # we do not have collaboration features # make the share option insensitive self.max_participants = 1 - # Toolbar toolbox = ActivityToolbox(self) self._toolbar = toolbox.get_activity_toolbar() diff --git a/utilities.py b/utilities.py index ef79ee3..bc44124 100644 --- a/utilities.py +++ b/utilities.py @@ -98,6 +98,19 @@ class Utilities(): return info + def getNetworkDict(self): + """Get server network map {IFACE:IP} + """ + info = {} + + interfaces = self.getNetworkInterfaces() + ips = self.getNetworkIPs(interfaces) + + for interface, ip in ips.iteritems(): + info [ interface ] = ip + + return info + def endProgram(self, programName): status = self.checkProgramStatus(programName) @@ -117,10 +130,6 @@ class Utilities(): for arg in args: cmd.append(arg) - f = open("/tmp/ariel.txt", "a") - f.write(str(cmd) + "\n" ) - f.close() - subprocess.call(cmd, shell=False) def getNetworkProcessInfo(self,programName): @@ -38,10 +38,13 @@ class ViewerProcess(): def getProcessInfo(self): return self._utilities.getNetworkProcessInfo(self._programName) - def startProcess(self, ip): + def startProcess(self, networkDict): if not self.getStatus(): - self._args = [ ip ] - self._utilities.startProgram(self._programName,self._args) + for interface, ip in networkDict.iteritems(): + if interface != "lo" and ip != "": + self._args = [ ip ] + self._utilities.startProgram(self._programName,self._args) + break class ViewerUI(): """Viewer UI component for Classroom Kit Activity @@ -153,5 +156,5 @@ class Viewer(): """ self._ui.showStatus() - def startViewer(self, ip): - self._process.startProcess(ip) + def startViewer(self, networkDict): + self._process.startProcess(networkDict) |