Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAriel Calzada <ariel@activitycentral.com>2012-01-25 01:09:21 (GMT)
committer Ariel Calzada <ariel@activitycentral.com>2012-01-25 01:09:21 (GMT)
commit28fc6a1aa1d0202c58b71efcaf692cbc601dc6f6 (patch)
tree88e98c143db0b5f63b880a6b2985d81a70547159
parentc7a6da9b619e350ee0462d5387a8dff38557f92e (diff)
Dynamic IP choose
-rw-r--r--classroomkit.py14
-rw-r--r--utilities.py17
-rw-r--r--viewer.py13
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):
diff --git a/viewer.py b/viewer.py
index bca8200..2bc89eb 100644
--- a/viewer.py
+++ b/viewer.py
@@ -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)