From e15ce3036c57ffce83734d8f9912acff5ce2e82a Mon Sep 17 00:00:00 2001
From: Andy Bavier
Date: Tue, 22 Jun 2010 16:39:05 -0400
Subject: [PATCH] Dummy panels for OpenCirrus
---
HelpPanel.py | 13 +++++++++++++
InstancePanel.py | 23 +++++++++++++++++++++++
OpenCirrus.py | 39 +++++++++++++++++++++++++++++++++++++--
RequestPanel.py | 23 +++++++++++++++++++++++
SfaData.py | 16 ++++++++++++++--
5 files changed, 110 insertions(+), 4 deletions(-)
create mode 100644 InstancePanel.py
create mode 100644 RequestPanel.py
diff --git a/HelpPanel.py b/HelpPanel.py
index e99ee0b..59e183a 100644
--- a/HelpPanel.py
+++ b/HelpPanel.py
@@ -43,4 +43,17 @@ class VINIHelpPanel(HelpPanel):
m += "them.
"
self.add(HTML(m))
+class OCHelpPanel(HelpPanel):
+ def __init__(self):
+ HelpPanel.__init__(self)
+ m = "Steps to set up your slice:"
+ m += "
- Use the Request tab to request that some "
+ m += "VM instances be allocated to your slice."
+ m += "
- Use the Instances tab to get information on "
+ m += "running VM instances."
+ m += "
- Under the Submit tab, click the Apply button "
+ m += "to submit your changes, or the Reset button to discard "
+ m += "them.
"
+ self.add(HTML(m))
+
diff --git a/InstancePanel.py b/InstancePanel.py
new file mode 100644
index 0000000..5d50801
--- /dev/null
+++ b/InstancePanel.py
@@ -0,0 +1,23 @@
+from pyjamas.ui.VerticalPanel import VerticalPanel
+from pyjamas.ui.HorizontalPanel import HorizontalPanel
+from pyjamas.ui.Button import Button
+from pyjamas.ui.HTML import HTML
+from pyjamas.ui import HasAlignment
+
+class InstancePanel(VerticalPanel):
+ def __init__(self, sfadata):
+ VerticalPanel.__init__(self)
+ self.sfadata = sfadata
+ self.setStyleName("ks-layouts")
+
+ def refresh(self):
+ pass
+
+ def apply(self, sender):
+ self.sfadata.applyRSpec()
+
+ def reset(self, sender):
+ self.sfadata.refreshRSpec()
+
+
+
diff --git a/OpenCirrus.py b/OpenCirrus.py
index 537f20b..2b8ae79 100644
--- a/OpenCirrus.py
+++ b/OpenCirrus.py
@@ -1,13 +1,48 @@
from Sink import Sink, SinkInfo
+from pyjamas.ui.TabPanel import TabPanel
+from pyjamas.ui.VerticalPanel import VerticalPanel
+from pyjamas.ui.TextArea import TextArea
from pyjamas.ui.HTML import HTML
+from SfaData import OpenCirrusData
+from RequestPanel import RequestPanel
+from InstancePanel import InstancePanel
+from SubmitPanel import SubmitPanel
+from HelpPanel import OCHelpPanel
+
+class OCTabs(TabPanel):
+ def __init__(self, data):
+ TabPanel.__init__(self)
+
+ self.data = data
+ self.data.refreshRSpec()
+
+ requesttab = RequestPanel(self.data)
+ instancetab = InstancePanel(self.data)
+ submittab = SubmitPanel(self.data)
+ helptab = OCHelpPanel()
+
+ self.add(requesttab, "Request")
+ self.add(instancetab, "Instances")
+ self.add(submittab, "Submit")
+ self.add(HTML("force tabs to right"), None)
+ self.add(helptab, "Help")
+ self.selectTab(0)
+
+ def onTabSelected(self, sender, index):
+ tab = self.getWidget(index)
+ tab.refresh()
+ TabPanel.onTabSelected(self, sender, index)
class OpenCirrus(Sink):
def __init__(self):
Sink.__init__(self)
- text="Not implemented yet"
- self.initWidget(HTML(text, True))
+ self.tabs = OCTabs(OpenCirrusData())
+
+ self.tabs.setWidth("100%")
+ self.tabs.setHeight("100%")
+ self.initWidget(self.tabs)
def onShow(self):
pass
diff --git a/RequestPanel.py b/RequestPanel.py
new file mode 100644
index 0000000..b011899
--- /dev/null
+++ b/RequestPanel.py
@@ -0,0 +1,23 @@
+from pyjamas.ui.VerticalPanel import VerticalPanel
+from pyjamas.ui.HorizontalPanel import HorizontalPanel
+from pyjamas.ui.Button import Button
+from pyjamas.ui.HTML import HTML
+from pyjamas.ui import HasAlignment
+
+class RequestPanel(VerticalPanel):
+ def __init__(self, sfadata):
+ VerticalPanel.__init__(self)
+ self.sfadata = sfadata
+ self.setStyleName("ks-layouts")
+
+ def refresh(self):
+ pass
+
+ def apply(self, sender):
+ self.sfadata.applyRSpec()
+
+ def reset(self, sender):
+ self.sfadata.refreshRSpec()
+
+
+
diff --git a/SfaData.py b/SfaData.py
index 9100b3e..b6d7331 100644
--- a/SfaData.py
+++ b/SfaData.py
@@ -116,6 +116,18 @@ class GpENIData(PlanetLabData):
class OpenCirrusData(SfaData):
def __init__(self):
SfaData.__init__(self)
- self.registry = "http://www.planet-lab.org:12345"
- self.slicemgr = "http://www.planet-lab.org:12346"
+ self.registry = "http://198.55.37.29:12345"
+ self.slicemgr = "http://198.55.37.29:12346"
+
+ def refreshRSpec(self):
+ xml = SfaData.getRSpec(self)
+ self.rspec = xml
+ def getRSpec(self):
+ if self.rspec is None:
+ self.refreshRSpec()
+ return self.rspec
+
+ def applyRSpec(self):
+ xml = self.rspec
+ SfaData.applyRSpec(self, xml)
--
2.43.0