예제 #1
0
 def get_details_page(self, screen):
     if not self.__configured:
         self.__hypervisor = snack.RadioBar(
             screen, ((HYPERVISORS[HYPERVISOR_XEN], HYPERVISOR_XEN, True),
                      (HYPERVISORS[HYPERVISOR_KVM], HYPERVISOR_KVM, False)))
         self.__connection = snack.RadioBar(
             screen,
             ((CONNECTIONS[CONNECTION_LOCAL], CONNECTION_LOCAL, True),
              (CONNECTIONS[CONNECTION_KERBEROS], CONNECTION_KERBEROS,
               False), (CONNECTIONS[CONNECTION_SSL], CONNECTION_SSL, False),
              (CONNECTIONS[CONNECTION_SSH], CONNECTION_SSH, False)))
         self.__hostname = snack.Entry(50, "")
         self.__autoconnect = snack.Checkbox("Autoconnect on Startup")
         self.__configured = True
     grid = snack.Grid(2, 4)
     grid.setField(snack.Label("Hypervisor:"),
                   0,
                   0,
                   anchorRight=1,
                   anchorTop=1)
     grid.setField(self.__hypervisor, 1, 0, anchorLeft=1)
     grid.setField(snack.Label("Connection:"),
                   0,
                   1,
                   anchorRight=1,
                   anchorTop=1)
     grid.setField(self.__connection, 1, 1, anchorLeft=1)
     grid.setField(snack.Label("Hostname:"), 0, 2, anchorRight=1)
     grid.setField(self.__hostname, 1, 2, anchorLeft=1)
     grid.setField(snack.Label(""), 0, 3, anchorRight=1)
     grid.setField(self.__autoconnect, 1, 3, anchorLeft=1)
     return [snack.Label("Add Connection"), grid]
예제 #2
0
 def get_confirm_remove_page(self, screen):
     ignore = screen
     self.__confirm = snack.Checkbox(
         "Remove this connection: %s" % self.get_selected_connection(), 0)
     grid = snack.Grid(1, 1)
     grid.setField(self.__confirm, 0, 0)
     return [snack.Label("Remove Host Connection"), grid]
 def get_confirm_page(self, screen):
     ignore = screen
     self.__confirm_remove = snack.Checkbox(
         "Check here to confirm undefining %s." %
         self.get_selected_domain().get_name(), 0)
     grid = snack.Grid(1, 1)
     grid.setField(self.__confirm_remove, 0, 0)
     return [grid]
 def get_confirm_page(self, screen):
     ignore = screen
     self.__confirm = snack.Checkbox(
         "Check here to confirm deleting volume: %s" %
         self.get_selected_volume())
     grid = snack.Grid(1, 1)
     grid.setField(self.__confirm, 0, 0)
     return [snack.Label("Remove Selected Storage Volume"), grid]
예제 #5
0
파일: tui.py 프로젝트: xkollar/spacewalk
    def __init__(self, screen, tui):
        self.name = "PackagesWindow"
        self.screen = screen
        self.tui = tui
        size = snack._snack.size()
        toplevel = snack.GridForm(screen, PACKAGES_WINDOW.encode('utf-8'), 1,
                                  5)
        self.g = toplevel

        text = snack.TextboxReflowed(size[0] - 10,
                                     PACKAGES_WINDOW_DESC1.encode('utf-8'))

        toplevel.add(text, 0, 0, anchorLeft=1)

        self.packagesButton = snack.Checkbox(
            PACKAGES_WINDOW_DESC2.encode('utf-8'), 1)
        toplevel.add(self.packagesButton,
                     0,
                     1,
                     padding=(0, 1, 0, 1),
                     anchorLeft=1)

        label = snack.Label(PACKAGES_WINDOW_UNCHECK.encode('utf-8'))
        toplevel.add(label, 0, 2, anchorLeft=1)

        #self.packageList = snack.Listbox(size[1]-18, 1, width = size[0]-10)
        self.packageList = snack.CheckboxTree(size[1] - 18, 1)
        toplevel.add(self.packageList, 0, 3)

        # do we need to read the packages from disk?
        if tui.packageList == []:
            self.pwin = snack.GridForm(screen,
                                       PACKAGES_WINDOW_PKGLIST.encode('utf-8'),
                                       1, 1)

            self.scale = snack.Scale(40, 100)
            self.pwin.add(self.scale, 0, 0)
            self.pwin.draw()
            self.screen.refresh()
            getArch = 0
            if rhnreg.cfg['supportsExtendedPackageProfile']:
                getArch = 1
            tui.packageList = pkgUtils.getInstalledPackageList(getArch=getArch)
            self.screen.popWindow()

        for package in tui.packageList:
            self.packageList.append(
                "%s-%s-%s" %
                (package['name'], package['version'], package['release']),
                item=package['name'],
                selected=1)

        # BUTTON BAR
        self.bb = snack.ButtonBar(screen, [(NEXT.encode('utf-8'), "next"),
                                           (BACK.encode('utf-8'), "back"),
                                           (CANCEL.encode('utf-8'), "cancel")])
        toplevel.add(self.bb, 0, 4, padding=(0, 1, 0, 0), growx=1)
예제 #6
0
 def get_local_storage_page(self, screen):
     ignore = screen
     self.__storage_size     = snack.Entry(6, str(self.__config.get_storage_size()))
     self.__allocate_storage = snack.Checkbox("Allocate entire disk now", self.__config.get_allocate_storage())
     grid = snack.Grid(2, 2)
     grid.setField(self.__allocate_storage, 0, 0, growx=1, anchorLeft=1)
     grid.setField(snack.Label("Storage size (GB):"), 0, 1, anchorLeft=1)
     grid.setField(self.__storage_size, 1, 1)
     return [snack.Label("Configure local storage"),
             grid]
예제 #7
0
 def get_enable_storage_page(self, screen):
     self.__enable_storage = snack.Checkbox("Enable storage for this virtual machine", self.__config.get_enable_storage())
     self.__storage_type     = snack.RadioBar(screen, ((["Create a disk image on the computer's hard disk",
                                                  DomainConfig.NEW_STORAGE,
                                                  self.__config.get_use_local_storage()]),
                                                (["Select managed or other existing storage",
                                                  DomainConfig.EXISTING_STORAGE,
                                                  self.__config.get_use_local_storage() is False])))
     grid = snack.Grid(1, 2)
     grid.setField(self.__enable_storage, 0, 0, anchorLeft=1)
     grid.setField(self.__storage_type, 0, 1, anchorLeft=1)
     return [snack.Label("Configure storage"),
             grid]
예제 #8
0
 def __init__(self, dev):
     """
     The constructor
     @screen A snack screen instance
     @devicelist A NCDeviceList
     @dev The devernet device. If none given, the first
          devernetdevice in devicelist will be used.
          If none are there, one will be added.
     """
     self.dev = dev
     self.name = snack.Entry(20, "")
     self.hwdev = snack.Entry(20, "")
     self.dynip = snack.Checkbox("")
     self.statip = snack.Entry(20, "")
     self.netmask = snack.Entry(20, "")
     self.dnsserver1 = snack.Entry(20, "")
     self.dnsserver2 = snack.Entry(20, "")
     self.gwy = snack.Entry(20, "")
     self.screen = None
예제 #9
0
    def get_details_page(self, screen):
        ignore = screen

        if self.__username is None:
            self.__username = snack.Entry(50, "")
            self.__password = snack.Entry(50, "", password=1)
            self.__confirm = snack.Entry(50, "", password=1)
            self.__adminuser = snack.Checkbox("This user is an administrator",
                                              False)
        grid = snack.Grid(2, 4)
        grid.setField(snack.Label("Username:"******"Password:"******"Confirm password:"******" "), 0, 3)
        grid.setField(self.__adminuser, 1, 3, anchorLeft=1)
        return [snack.Label("Enter The User Details"), grid]
예제 #10
0
    def __init__(self, dev=None):
        """
        The constructor
        @screen A snack screen instance
        """

        self.dev = dev
        self.name = snack.Entry(20, "")
        self.hwdev = snack.Entry(20, "")
        self.dynip = snack.Checkbox("")
        self.statip = snack.Entry(20, "")
        self.netmask = snack.Entry(20, "")
        self.gwy = snack.Entry(20, "")
        self.ioport = snack.Entry(20, "")
        self.ioport1 = snack.Entry(20, "")
        self.ioport2 = snack.Entry(20, "")
        self.options = snack.Entry(20, "")
        self.macaddr = snack.Entry(20, "")
        self.screen = None

        if dev:
            self.setState()
예제 #11
0
    def __init__(self, screen, tui):
        self.screen = screen
        self.tui = tui
        size = snack._snack.size()

        #get the virtualization uuid and set it to other.
        (virt_uuid, virt_type) = rhnreg.get_virt_info()
        if not virt_uuid is None:
            self.tui.other['virt_uuid'] = virt_uuid
            self.tui.other['virt_type'] = virt_type

        # read all hardware in
        tui.hardware = hardware.Hardware()

        toplevel = snack.GridForm(screen, HARDWARE_WINDOW.encode('utf-8'), 1,
                                  7)

        text = snack.TextboxReflowed(70, HARDWARE_WINDOW_DESC1.encode('utf-8'))

        toplevel.add(text, 0, 0, anchorLeft=1)

        grid = snack.Grid(2, 2)

        label = snack.Label(_("Profile name:").encode('utf-8'))
        grid.setField(label, 0, 0, padding=(0, 0, 1, 0), anchorRight=1)

        self.profileEntry = snack.Entry(40)
        grid.setField(self.profileEntry, 1, 0, anchorLeft=1)

        toplevel.add(grid, 0, 1, anchorLeft=1)

        if tui.includeHardware:
            self.hardwareButton = snack.Checkbox(
                HARDWARE_WINDOW_CHECKBOX.encode('utf-8'), isOn=1)
        else:
            self.hardwareButton = snack.Checkbox(
                HARDWARE_WINDOW_CHECKBOX.encode('utf-8'))

        toplevel.add(self.hardwareButton,
                     0,
                     2,
                     padding=(0, 1, 0, 0),
                     anchorLeft=1)

        label = snack.Label(DESELECT.encode('utf-8'))
        toplevel.add(label, 0, 3, anchorLeft=1, padding=(0, 0, 0, 1))

        grid = snack.Grid(4, 3)
        hardware_text = ''

        hardware_text += _("Version: ") + up2dateUtils.getVersion() + "  "
        self.versionLabel = snack.Label(_("Version: ").encode('utf-8'))
        grid.setField(self.versionLabel,
                      0,
                      0,
                      padding=(0, 0, 1, 0),
                      anchorLeft=1)

        self.versionLabel2 = snack.Label(up2dateUtils.getVersion())
        grid.setField(self.versionLabel2, 1, 0, anchorLeft=1)

        hardware_text += _("CPU model: ")

        for hw in tui.hardware:
            if hw['class'] == 'CPU':
                hardware_text += hw['model'] + "\n"

        hardware_text += _("Hostname: ")

        for hw in tui.hardware:
            if hw['class'] == 'NETINFO':
                unicode_hostname = idn_pune_to_unicode(hw['hostname'])
                hardware_text += unicode_hostname + "\n"

                if tui.profileName != "":
                    self.profileEntry.set(tui.profileName)
                else:
                    self.profileEntry.set(unicode_hostname.encode('utf-8'))

        hardware_text += _("CPU speed: ")

        for hw in tui.hardware:
            if hw['class'] == 'CPU':
                hardware_text += _("%d MHz") % hw['speed'] + "  "

        hardware_text += _("IP Address: ")

        for hw in tui.hardware:
            if hw['class'] == 'NETINFO':
                if hw['ipaddr']:
                    hardware_text += hw['ipaddr'] + "  "
                elif hw['ip6addr']:
                    hardware_text += hw['ip6addr'] + "  "

        hardware_text += _("Memory: ")

        for hw in tui.hardware:
            if hw['class'] == 'MEMORY':
                hardware_text += _("%s megabytes") % hw['ram']

        tb = snack.TextboxReflowed(80, hardware_text.encode('utf-8'))
        toplevel.add(tb, 0, 4)

        self.additionalHWLabel = snack.TextboxReflowed(
            size[0] - 10, HARDWARE_WINDOW_DESC2.encode('utf-8'))

        toplevel.add(self.additionalHWLabel,
                     0,
                     5,
                     padding=(0, 1, 0, 0),
                     anchorLeft=1)

        # BUTTON BAR
        self.bb = snack.ButtonBar(screen, [(NEXT.encode('utf-8'), "next"),
                                           (BACK.encode('utf-8'), "back"),
                                           (CANCEL.encode('utf-8'), "cancel")])
        toplevel.add(self.bb, 0, 6, padding=(0, 1, 0, 0), growx=1)

        self.g = toplevel
예제 #12
0
 def get_confirm_page(self, screen):
     ignore = screen
     self.__confirm = snack.Checkbox("Confirm migrating this virtual machine.")
     grid = snack.Grid(1, 1)
     grid.setField(self.__confirm, 0, 0)
     return [grid]