Beispiel #1
0
    def OnOpenExperiment(self, cmdEvent):
	project = self.ProjectName.GetLineText(0)
	experiment = self.ExperimentName.GetLineText(0)
	root = self.ExperimentRoot.GetLineText(0)

	if project == "" or experiment == "":
	    msg = "Enter a project name and experiment."
	else:
	    msg = 'Getting experiment %s/%s.' % (project, experiment)
	    pass
	print msg
	self.ExperimentMsg.SetLabel(msg)
	self.Refresh()
	self.Update()
	if project == "" or experiment == "":
	    return
	
	hypfile = exptToHv.getExperiment(project, experiment, root)
	if type(hypfile) is types.ListType:
	    exptError = '%s %s\n%s' % tuple(hypfile[1:4])
	    print exptError
	    self.ExperimentMsg.SetLabel(exptError)

	elif self.app.frame.ReadTopFile("wxHyperViewer", hypfile):
	    self.Hide();		# Success.
	    self.ExperimentMsg.SetLabel(" ")
	else:
	    fileError = "Could not open " + hypfile
	    print fileError
	    self.ExperimentMsg.SetLabel(fileError)
	    pass
	pass
Beispiel #2
0
    def OnOpenExperiment(self, cmdEvent):
        project = self.ProjectName.GetLineText(0)
        experiment = self.ExperimentName.GetLineText(0)
        root = self.ExperimentRoot.GetLineText(0)

        if project == "" or experiment == "":
            msg = "Enter a project name and experiment."
        else:
            msg = 'Getting experiment %s/%s.' % (project, experiment)
            pass
        print msg
        self.ExperimentMsg.SetLabel(msg)
        self.Refresh()
        self.Update()
        if project == "" or experiment == "":
            return

        hypfile = exptToHv.getExperiment(project, experiment, root)
        if type(hypfile) is types.ListType:
            exptError = '%s %s\n%s' % tuple(hypfile[1:4])
            print exptError
            self.ExperimentMsg.SetLabel(exptError)

        elif self.app.frame.ReadTopFile("wxHyperViewer", hypfile):
            self.Hide()
            # Success.
            self.ExperimentMsg.SetLabel(" ")
        else:
            fileError = "Could not open " + hypfile
            print fileError
            self.ExperimentMsg.SetLabel(fileError)
            pass
        pass
Beispiel #3
0
    def OnInit(self):
	
	filename = filearg = default_project = project = experiment = root = None
	if os.environ.has_key("EMULAB_PROJECT"):    # Default project name to use.
	    default_project = project = os.environ["EMULAB_PROJECT"]

	# Any dash argument prints a usage message and exits.
	if len(sys.argv) == 2 and sys.argv[1][0] == '-': 
	    print '''Hyperviewer usage:
  No args - Starts up the GUI.	Use the File/Open menu item to read a topology.
  One arg - A .hyp file name.  Read it in and start the GUI, e.g.:
      ./hypview BigLan.hyp
  Two args - Project and experiment names in the database.
      Get the topology from XMLRPC, make a .hyp file, start as above.
      ./hypview testbed BigLan
  Three args - Project and experiment names, plus an optional root node name.
      ./hypview testbed BigLan clan'''
	    sys.exit()
	    pass
	
	# Given command-line argument(s), attempt to read in a topology.
	# One command-line argument: read from a .hyp file.
	# (File/experiment input is also in the OnOpenFile and OnOpenExperiment methods.)
	elif len(sys.argv) == 2:
	    filename = filearg = sys.argv[1]
	    print "Reading file:", filename
	    pass
	
	# Two args: read an experiment from the DB via XML-RPC, and make a .hyp file.
	elif len(sys.argv) == 3:
	    project = sys.argv[1]
	    if project == "":
		project = default_project
	    experiment = sys.argv[2]
	    print "Getting project:", project + ", experiment:", experiment
	    filename = exptToHv.getExperiment(project, experiment)
	    pass

	# Three args: experiment from database, with optional graph root node.
	elif len(sys.argv) == 4:
	    project = sys.argv[1]
	    if project == "":
		project = default_project
	    experiment = sys.argv[2]
	    root = sys.argv[3]
	    print "Getting project:", project + ", experiment:", experiment \
		  + ", root node:", root
	    filename = exptToHv.getExperiment(project, experiment, root)
	    pass

	self.frame = hvFrame(None, -1, "wxHyperViewer", (100,0), (750,750))
	self.frame.app = self	# A back-reference here from the frame.
	self.openDialog = hvOpen(None, -1, "Open HyperViewer Data")
	self.openDialog.app = self
	self.usageDialog = UsageDialogUI(None, -1, "HyperViewer Usage")
	

	# Initialize the text fields in the File/Open dialog.
	if filearg:
	    self.openDialog.FileToOpen.SetValue(filearg) 
        self.openDialog.LoginName.SetValue(exptToHv.login_id)
	if project:
	    self.openDialog.ProjectName.SetValue(project)
	elif default_project:
	    self.openDialog.ProjectName.SetValue(default_project)
	if experiment:
	    self.openDialog.ExperimentName.SetValue(experiment)
	    self.openDialog.ExperimentName.SetFocus()
	if root:
	    self.openDialog.ExperimentRoot.SetValue(root)
	
	# Make the top-level window visible.
	self.frame.Show()
	self.SetTopWindow(self.frame)

	if filename:
	    if type(filename) is types.ListType:
		print "Failed to read experiment from database."
		exptError = '%s %s\n%s' % tuple(filename[1:4])
		print exptError
		self.frame.shutdown()
	    else:
		if not self.frame.ReadTopFile("wxHyperViewer", filename):
		    #print "Could not open ", filename # Already printed error in C++.
		    self.frame.shutdown() 
		pass
	    pass

	return True			# OnInit success.
Beispiel #4
0
    def OnInit(self):

        filename = filearg = default_project = project = experiment = root = None
        if os.environ.has_key(
                "EMULAB_PROJECT"):  # Default project name to use.
            default_project = project = os.environ["EMULAB_PROJECT"]

        # Any dash argument prints a usage message and exits.
        if len(sys.argv) == 2 and sys.argv[1][0] == '-':
            print '''Hyperviewer usage:
  No args - Starts up the GUI.	Use the File/Open menu item to read a topology.
  One arg - A .hyp file name.  Read it in and start the GUI, e.g.:
      ./hypview BigLan.hyp
  Two args - Project and experiment names in the database.
      Get the topology from XMLRPC, make a .hyp file, start as above.
      ./hypview testbed BigLan
  Three args - Project and experiment names, plus an optional root node name.
      ./hypview testbed BigLan clan'''
            sys.exit()
            pass

        # Given command-line argument(s), attempt to read in a topology.
        # One command-line argument: read from a .hyp file.
        # (File/experiment input is also in the OnOpenFile and OnOpenExperiment methods.)
        elif len(sys.argv) == 2:
            filename = filearg = sys.argv[1]
            print "Reading file:", filename
            pass

        # Two args: read an experiment from the DB via XML-RPC, and make a .hyp file.
        elif len(sys.argv) == 3:
            project = sys.argv[1]
            if project == "":
                project = default_project
            experiment = sys.argv[2]
            print "Getting project:", project + ", experiment:", experiment
            filename = exptToHv.getExperiment(project, experiment)
            pass

        # Three args: experiment from database, with optional graph root node.
        elif len(sys.argv) == 4:
            project = sys.argv[1]
            if project == "":
                project = default_project
            experiment = sys.argv[2]
            root = sys.argv[3]
            print "Getting project:", project + ", experiment:", experiment \
           + ", root node:", root
            filename = exptToHv.getExperiment(project, experiment, root)
            pass

        self.frame = hvFrame(None, -1, "wxHyperViewer", (100, 0), (750, 750))
        self.frame.app = self  # A back-reference here from the frame.
        self.openDialog = hvOpen(None, -1, "Open HyperViewer Data")
        self.openDialog.app = self
        self.usageDialog = UsageDialogUI(None, -1, "HyperViewer Usage")

        # Initialize the text fields in the File/Open dialog.
        if filearg:
            self.openDialog.FileToOpen.SetValue(filearg)
        self.openDialog.LoginName.SetValue(exptToHv.login_id)
        if project:
            self.openDialog.ProjectName.SetValue(project)
        elif default_project:
            self.openDialog.ProjectName.SetValue(default_project)
        if experiment:
            self.openDialog.ExperimentName.SetValue(experiment)
            self.openDialog.ExperimentName.SetFocus()
        if root:
            self.openDialog.ExperimentRoot.SetValue(root)

        # Make the top-level window visible.
        self.frame.Show()
        self.SetTopWindow(self.frame)

        if filename:
            if type(filename) is types.ListType:
                print "Failed to read experiment from database."
                exptError = '%s %s\n%s' % tuple(filename[1:4])
                print exptError
                self.frame.shutdown()
            else:
                if not self.frame.ReadTopFile("wxHyperViewer", filename):
                    #print "Could not open ", filename # Already printed error in C++.
                    self.frame.shutdown()
                pass
            pass

        return True  # OnInit success.