示例#1
0
    def __init__(self, parent=None):
        super(VagrantWidget, self).__init__(parent)

        self.get_ui().progress_bar.setValue(0)
        self.get_ui().progress_bar.setMaximum(100)

        self.connect(self.get_ui().button_up, QtCore.SIGNAL("clicked()"), self.up)
        self.connect(self.get_ui().button_suspend, QtCore.SIGNAL("clicked()"), self.suspend)
        self.connect(self.get_ui().button_resume, QtCore.SIGNAL("clicked()"), self.resume)
        self.connect(self.get_ui().button_status, QtCore.SIGNAL("clicked()"), self.status)
        self.connect(self.get_ui().button_destroy, QtCore.SIGNAL("clicked()"), self.destroy)

        self.thread = VagrantThread()
        self.connect(self.thread, QtCore.SIGNAL("started()"), self.on_async_start)
        self.connect(self.thread, QtCore.SIGNAL("finished()"), self.on_async_stop)
        self.connect(self.thread, QtCore.SIGNAL("terminated()"), self.on_async_stop)
        self.connect(self.thread, QtCore.SIGNAL("complete(QString)"), self.on_async_complete)
示例#2
0
class VagrantWidget(UIWidget):
    def __init__(self, parent=None):
        super(VagrantWidget, self).__init__(parent)

        self.get_ui().progress_bar.setValue(0)
        self.get_ui().progress_bar.setMaximum(100)

        self.connect(self.get_ui().button_up, QtCore.SIGNAL("clicked()"), self.up)
        self.connect(self.get_ui().button_suspend, QtCore.SIGNAL("clicked()"), self.suspend)
        self.connect(self.get_ui().button_resume, QtCore.SIGNAL("clicked()"), self.resume)
        self.connect(self.get_ui().button_status, QtCore.SIGNAL("clicked()"), self.status)
        self.connect(self.get_ui().button_destroy, QtCore.SIGNAL("clicked()"), self.destroy)

        self.thread = VagrantThread()
        self.connect(self.thread, QtCore.SIGNAL("started()"), self.on_async_start)
        self.connect(self.thread, QtCore.SIGNAL("finished()"), self.on_async_stop)
        self.connect(self.thread, QtCore.SIGNAL("terminated()"), self.on_async_stop)
        self.connect(self.thread, QtCore.SIGNAL("complete(QString)"), self.on_async_complete)

    def up(self):
        self.thread.do_action('up', self.get_root())

    def suspend(self):
        self.thread.do_action('suspend', self.get_root())

    def resume(self):
        self.thread.do_action('resume', self.get_root())

    def destroy(self):
        self.thread.do_action('destroy', self.get_root())

    def status(self):
        self.thread.do_action('status', self.get_root())

    def get_root(self):
        root = str(self.get_ui().text_root.text())
        return root

    def set_root(self, root):
        self.get_ui().text_root.setText(root)

    def get_vagrant(self):
        return Vagrant(self.get_root())

    def set_status(self, msg, length=5000):
        self.emit(QtCore.SIGNAL("vagrant_status(QString)"), msg)
        print msg
        self.get_ui().label_status.setText(msg)
        self.log(msg)

    def log(self, msg):
        self.emit(QtCore.SIGNAL("log(QString)"), msg)
        datetime_format = str(datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
        self.get_ui().detail_log.insertPlainText(datetime_format +": "+msg)
        self.get_ui().detail_log.insertPlainText(os.linesep)

    def on_async_start(self):
        print 'ASYNC: start'
        self._enable_buttons(False)
        self.get_ui().progress_bar.setValue(-1)
        self.get_ui().progress_bar.setMaximum(0)

    def on_async_stop(self):
        print 'ASYNC: stop'
        self._enable_buttons(True)
        self.get_ui().progress_bar.setValue(0)
        self.get_ui().progress_bar.setMaximum(100)

    def on_async_complete(self, msg):
        if Vagrant.RUNNING == msg:
            self.set_status("Vagrant root %s is Running" % self.get_root())
        elif Vagrant.NOT_CREATED:
            self.set_status("Vagrant root %s is Not Created" % self.get_root())
        elif Vagrant.POWEROFF:
            self.set_status("Vagrant root %s is Powered Off" % self.get_root())

    def _enable_buttons(self, enabled=True):
        for button in [self.get_ui().button_up, self.get_ui().button_suspend, self.get_ui().button_resume, self.get_ui().button_destroy, self.get_ui().button_status]:
            button.setEnabled(enabled)