def next_page(self, load_page_callback):
        if not serverconf.json_is_cached() or (serverconf.json_is_cached() and self.ui.chkAutoconf.get_active()):
            url = self.ui.txtGCC.get_text()
            if url != "" and url != None:
                try:
                    json = serverconf.get_json_autoconf(url)
                    #                   content = serverconf.get_json_content()
                    self.serverconf = serverconf.get_server_conf(json)

                except Exception as e:
                    self.set_status(1, str(e))
                    return

        load_page_callback(firstboot.pages.dateSync)
示例#2
0
    def load_page(self, params=None):
        self.emit('status-changed', 'dateSync', not __REQUIRED__)


        if serverconf.json_is_cached():
            self.serverconf = serverconf.get_server_conf(None)
            self.ui.txtHost.set_text(self.serverconf.get_ntp_conf().get_host())
示例#3
0
    def next_page(self, load_page_callback):
        if not serverconf.json_is_cached() or (
                serverconf.json_is_cached()
                and self.ui.chkAutoconf.get_active()):
            url = self.ui.txtGCC.get_text()
            if url != '' and url != None:
                try:
                    json = serverconf.get_json_autoconf(url)
                    #                   content = serverconf.get_json_content()
                    self.serverconf = serverconf.get_server_conf(json)

                except Exception as e:
                    self.set_status(1, str(e))
                    return

        load_page_callback(firstboot.pages.dateSync)
示例#4
0
    def finish_initializing(self):
        self.chef_is_configured = serverconf.chef_is_configured()
        self.json_cached = serverconf.json_is_cached()
        self.show_status()

        self.ui.chkUnlinkChef.set_visible(self.chef_is_configured)
        self.ui.chkLinkChef.set_visible(not self.chef_is_configured)
    def finish_initializing(self):

        self.show_status()

        self.json_cached = serverconf.json_is_cached()
        self.unlink_ldap = False
        self.unlink_ad = False

        self.ldap_is_configured = serverconf.ldap_is_configured()
        self.ad_is_configured = serverconf.ad_is_configured()
        is_configured = self.ldap_is_configured or self.ad_is_configured
        server_conf = serverconf.get_server_conf(None)
        auth_type = server_conf.get_auth_conf().get_auth_type()

        self.ui.radioNone.set_active(True)
        self.ui.boxUnlinkOptions.set_visible(is_configured)
        self.ui.boxAuthSection.set_visible(not is_configured)
        self.main_window.btnNext.set_sensitive(True)

        self.ui.chkUnlinkLDAP.set_visible(self.ldap_is_configured)
        self.ui.chkUnlinkAD.set_visible(False)

        if not is_configured and auth_type != '':
            if auth_type == 'ad':
                self.ui.radioAD.set_active(True)
            else:
                self.ui.radioLDAP.set_active(True)
示例#6
0
    def finish_initializing(self):

        self.show_status()

        self.json_cached = serverconf.json_is_cached()
        self.unlink_ldap = False
        self.unlink_ad = False

        self.ldap_is_configured = serverconf.ldap_is_configured()
        self.ad_is_configured = serverconf.ad_is_configured()
        is_configured = self.ldap_is_configured or self.ad_is_configured

        self.ui.boxOptionsSection.set_visible(not self.json_cached)
        self.ui.boxUnlinkOptions.set_visible(is_configured)
        self.ui.boxLinkOptions.set_visible(not is_configured)
        self.ui.boxAuthSection.set_visible(not is_configured)
        self.main_window.btnNext.set_sensitive(True)

        self.ui.chkUnlinkLDAP.set_visible(self.ldap_is_configured)
        self.ui.chkUnlinkAD.set_visible(self.ad_is_configured)

        url_config = self.fbe.get_url()
        url = self.cmd_options.url

        if url == None or len(url) == 0:
            url = url_config

        if url == None or len(url) == 0:
            url = ''

        self.ui.txtUrl.set_text(url)
示例#7
0
    def load_page(self, params=None):
        self.emit('status-changed', 'autoConfig', not __REQUIRED__)
        

        self.ui.chkAutoconf.set_visible(False)
        if serverconf.json_is_cached():
            self.ui.boxCheckAutoconf.set_visible(True)
            self.ui.chkAutoconf.set_visible(True)
            self.ui.txtAutoconf.set_sensitive(False)
            self.serverconf = serverconf.get_server_conf(None)
示例#8
0
    def load_page(self, params=None):
        self.emit('status-changed', 'dateSync', not __REQUIRED__)

        self.ui.chkAutoconf.set_active(False)
        self.ui.txtAutoconf.set_sensitive(False)

        if serverconf.json_is_cached():
            self.ui.boxCheckAutoconf.set_visible(False)
            self.serverconf = serverconf.get_server_conf(None)
            self.ui.txtHost.set_text(self.serverconf.get_ntp_conf().get_host())
示例#9
0
    def load_page(self, params=None):
        if serverconf.json_is_cached() and not self.chef_is_configured:
            self.json_cached = True
            server_conf = serverconf.get_server_conf(None)
            self.emit('page-changed', LinkToChefConfEditorPage, {
                    'server_conf': server_conf,
                    'chef_is_configured': self.chef_is_configured,
                    'unlink_from_chef': False
            })

        else:
            self.json_cached = False
示例#10
0
    def translate(self):
        desc = _(
            'Parameters can be filled automatically if an autoconfiguration file is available in your GECOS Control Center'
        )
        if serverconf.json_is_cached():
            self.ui.chkAutoconf.set_label(
                _('Default parameters are cached, download again?'))
        else:
            self.ui.chkAutoconf.set_label(
                _('Download a file with default configuration parameters.'))

        self.ui.lblDescription.set_text(desc)
        self.ui.lblGCC.set_label(_('Control Center URL'))
示例#11
0
    def finish_initializing(self):

        self.show_status()

        self.json_cached = serverconf.json_is_cached()
        self.unlink_ldap = False
        self.unlink_ad = False

        self.ldap_is_configured = serverconf.ldap_is_configured()
        self.ad_is_configured = serverconf.ad_is_configured()
        is_configured = self.ldap_is_configured or self.ad_is_configured


        self.ui.boxUnlinkOptions.set_visible(is_configured)
        self.ui.boxAuthSection.set_visible(not is_configured)
        self.main_window.btnNext.set_sensitive(True)

        self.ui.chkUnlinkLDAP.set_visible(self.ldap_is_configured)
        self.ui.chkUnlinkAD.set_visible(self.ad_is_configured)
示例#12
0
    def finish_initializing(self):

        self.show_status()

        self.json_cached = serverconf.json_is_cached()
        self.unlink_ldap = False
        self.unlink_ad = False

        self.ldap_is_configured = serverconf.ldap_is_configured()
        self.ad_is_configured = serverconf.ad_is_configured()
        is_configured = self.ldap_is_configured or self.ad_is_configured

        self.ui.radioNone.set_active(True)
        self.ui.boxUnlinkOptions.set_visible(is_configured)
        self.ui.boxAuthSection.set_visible(not is_configured)
        self.main_window.btnNext.set_sensitive(True)

        self.ui.chkUnlinkLDAP.set_visible(self.ldap_is_configured)
        self.ui.chkUnlinkAD.set_visible(False)
    def load_page(self, params=None):
        self.emit("status-changed", "autoConfig", not __REQUIRED__)

        self.ui.chkAutoconf.set_visible(False)
        url_config = self.fbe.get_url()
        url = self.cmd_options.url

        if url == None or len(url) == 0:
            url = url_config

        if url == None or len(url) == 0:
            url = ""

        self.ui.txtGCC.set_text(url)
        if serverconf.json_is_cached():
            self.ui.boxCheckAutoconf.set_visible(True)
            self.ui.chkAutoconf.set_visible(True)
            self.ui.txtGCC.set_sensitive(False)
            #            content = serverconf.get_json_content()
            self.serverconf = serverconf.get_server_conf(None)
示例#14
0
    def load_page(self, params=None):
        self.emit('status-changed', 'autoConfig', not __REQUIRED__)

        self.ui.chkAutoconf.set_visible(False)
        url_config = self.fbe.get_url()
        url = self.cmd_options.url

        if url == None or len(url) == 0:
            url = url_config

        if url == None or len(url) == 0:
            url = ''

        self.ui.txtGCC.set_text(url)
        self.ui.boxCheckAutoconf.set_visible(True)
        self.ui.chkAutoconf.set_visible(True)
        self.ui.txtGCC.set_sensitive(False)
        #            content = serverconf.get_json_content()
        if serverconf.json_is_cached():
            self.serverconf = serverconf.get_server_conf(None)
示例#15
0
    def on_btnSync_clicked(self, widget):

        self.ui.btnSync.set_sensitive(False)
        if serverconf.json_is_cached():
            try:
                 self.serverconf = serverconf.get_server_conf(None)
                 self.ui.txtHost.set_text(self.serverconf.get_ntp_conf().get_host())

            except Exception as e:
                self.set_status(1, str(e))
                self.ui.btnSync.set_sensitive(True)
                return

        cmd = 'ntpdate -u %s' % (self.ui.txtHost.get_text(),)
        args = shlex.split(cmd)

        process = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        #exit_code = os.waitpid(process.pid, 0)
        exit_code = process.wait()
        output = process.communicate()
        output = "%s%s" % (output[0].strip(), output[1].strip())

        self.ui.btnSync.set_sensitive(True)
        self.set_status(exit_code, output)
    def next_page(self, load_page_callback):
        self.gcc_conf.set_uri_gcc(self.ui.txtUrlChef.get_text())
        self.gcc_conf.set_gcc_username(self.ui.txtUser.get_text())
        self.gcc_conf.set_gcc_pwd_user(self.ui.txtPassword.get_text())
        if not self.ui.chkLink.get_active():
            self.gcc_conf.set_gcc_link(True)
            self.gcc_conf.set_run(True)
            self.interfaces = interface.localifs()
            self.interfaces.reverse()
            #if len(self.gcc_conf.get_ou_username()) >= 2:
            result = serverconf.select_ou(
                _('Select OU'), _('Select the OU to link into GCC Ui'),
                self.ui.txtUrlChef.get_text(), self.ui.txtUser.get_text(),
                self.ui.txtPassword.get_text(
                ))  #, self.gcc_conf.get_ou_username())
            self.gcc_conf.set_selected_ou(result)
            #elif len(self.gcc_conf.get_ou_username()) == 1:
            #    self.gcc_conf.set_selected_ou(self.gcc_conf.get_ou_username()[0][0])
            for inter in self.interfaces:
                if not inter[1].startswith('127.0'):
                    break
            if not serverconf.json_is_cached():
                result = serverconf.url_chef(
                    _('Url Chef Certificate Required'),
                    _('You need to enter url with certificate file\n in protocol://domain/resource format'
                      ))
                try:
                    res = requests.get(result)
                    if not res.ok:
                        raise serverconf.LinkToChefException(
                            _("Can not download pem file"))
                    if hasattr(res, 'text'):
                        pem = res.text
                    else:
                        pem = res.content
                    self.chef_conf.set_pem(pem.encode('base64'))
                    self.chef_conf.set_url(self.gcc_conf.get_uri_gcc())
                    self.chef_conf.set_admin_name(
                        self.gcc_conf.get_gcc_username())

                    #result = serverconf.entry_ou(_('Select OU'),_('Enter the correct OU to link into GCC Ui'))
                    result = ''
                    #if result:
                    self.gcc_conf.set_selected_ou(result)
                    #else:
                    #    raise serverconf.LinkToChefException(_("You need enter a OU"))
                except Exception as e:
                    self.show_status(__STATUS_ERROR__, e)

            mac = interface.getHwAddr(inter[0])
            node_name = hashlib.md5(mac.encode()).hexdigest()
            self.gcc_conf.set_gcc_nodename(node_name)
            self.chef_conf.set_node_name(node_name)
            self.chef_conf.set_chef_link(True)
            self.chef_conf.set_chef_link_existing(False)
            result, messages = self.validate_conf()
            load_page_callback(LinkToChefResultsPage, {
                'result': result,
                'messages': messages
            })
        else:
            result = None
            try:
                hostnames = serverconf.get_hostnames(
                    self.gcc_conf.get_uri_gcc(),
                    self.gcc_conf.get_gcc_username(),
                    self.gcc_conf.get_gcc_pwd_user())
                result = serverconf.select_node(
                    _('Select Workstation'), _('Select a workstation to link'),
                    hostnames)
                if result == None:
                    raise serverconf.LinkToChefException(
                        _("You need selected a workstation"))
                self.gcc_conf.set_run(False)
                self.chef_conf.set_node_name(result)
                self.gcc_conf.set_gcc_nodename(result)
                self.chef_conf.set_chef_link_existing(True)
                self.chef_conf.set_chef_link(True)

                if not serverconf.json_is_cached():
                    result = serverconf.url_chef(
                        _('Url Chef Certificate Required'),
                        _('You need to enter url with certificate file\n in protocol://domain/resource format'
                          ))
                    try:
                        res = requests.get(result)
                        if not res.ok:
                            raise serverconf.LinkToChefException(
                                _("Can not download pem file"))
                        if hasattr(res, 'text'):
                            pem = res.text
                        else:
                            pem = res.content
                        self.chef_conf.set_pem(pem.encode('base64'))
                        self.chef_conf.set_url(self.gcc_conf.get_uri_gcc())
                        self.chef_conf.set_admin_name(
                            self.gcc_conf.get_gcc_username())

                        #result = serverconf.entry_ou(_('Select OU'),_('Enter the correct OU to link into GCC Ui'))
                        result = ''
                        #if result:
                        self.gcc_conf.set_selected_ou(result)
                        #else:
                        #    raise serverconf.LinkToChefException(_("You need enter a OU"))
                    except Exception as e:
                        self.show_status(__STATUS_ERROR__, e)

                result, messages = self.validate_conf()
                load_page_callback(LinkToChefResultsPage, {
                    'result': result,
                    'messages': messages
                })
            except Exception as e:
                self.show_status(__STATUS_ERROR__, e)
    def next_page(self, load_page_callback):
        self.gcc_conf.set_uri_gcc(self.ui.txtUrlChef.get_text())
        self.gcc_conf.set_gcc_username(self.ui.txtUser.get_text())
        self.gcc_conf.set_gcc_pwd_user(self.ui.txtPassword.get_text())
        if not self.ui.chkLink.get_active():
            self.gcc_conf.set_gcc_link(True)
            self.gcc_conf.set_run(True)
            self.interfaces = interface.localifs()
            self.interfaces.reverse()
            if len(self.gcc_conf.get_ou_username()) >= 2:
                result = serverconf.select_ou(_('Select OU'), _('Select the OU to link into GCC Ui'), self.gcc_conf.get_ou_username()) 
                self.gcc_conf.set_selected_ou(result)
            elif len(self.gcc_conf.get_ou_username()) == 1:
                self.gcc_conf.set_selected_ou(self.gcc_conf.get_ou_username()[0][0])
            for inter in self.interfaces:
                if not inter[1].startswith('127.0'):
                    break
            if not serverconf.json_is_cached():
                result = serverconf.url_chef(_('Url Chef Certificate Required'), _('You need to enter url with certificate file\n in protocol://domain/resource format'))
                try:
                    res = requests.get(result)
                    if not res.ok:
                        raise serverconf.LinkToChefException(_("Can not download pem file"))
                    if hasattr(res,'text'):
                        pem = res.text
                    else:
                        pem = res.content
                    self.chef_conf.set_pem(pem.encode('base64'))
                    self.chef_conf.set_url(self.gcc_conf.get_uri_gcc())
                    self.chef_conf.set_admin_name(self.gcc_conf.get_gcc_username())

                    #result = serverconf.entry_ou(_('Select OU'),_('Enter the correct OU to link into GCC Ui'))
                    result = ''
                    #if result:
                    self.gcc_conf.set_selected_ou(result)
                    #else:
                    #    raise serverconf.LinkToChefException(_("You need enter a OU"))
                except Exception as e:
                    self.show_status(__STATUS_ERROR__, e)

            mac = interface.getHwAddr(inter[0])
            node_name = hashlib.md5(mac.encode()).hexdigest()
            self.gcc_conf.set_gcc_nodename(node_name)
            self.chef_conf.set_node_name(node_name)
            self.chef_conf.set_chef_link(True)
            self.chef_conf.set_chef_link_existing(False)
            result, messages = self.validate_conf()
            load_page_callback(LinkToChefResultsPage, {
                'result': result,
                'messages': messages
             })
        else:
            result = None
            try:
                hostnames = serverconf.get_hostnames(self.gcc_conf.get_uri_gcc(), self.gcc_conf.get_gcc_username(), self.gcc_conf.get_gcc_pwd_user())
                result = serverconf.select_node(_('Select Workstation'), _('Select a workstation to link'), hostnames)
                if result == None:
                    raise serverconf.LinkToChefException(_("You need selected a workstation"))
            except Exception as e:
                self.show_status(__STATUS_ERROR__, e)
            self.gcc_conf.set_run(False)
            self.chef_conf.set_node_name(result)
            self.gcc_conf.set_gcc_nodename(result)
            self.chef_conf.set_chef_link_existing(True)
            self.chef_conf.set_chef_link(True)

            if not serverconf.json_is_cached():
                result = serverconf.url_chef(_('Url Chef Certificate Required'), _('You need to enter url with certificate file\n in protocol://domain/resource format'))
                try:
                    res = requests.get(result)
                    if not res.ok:
                        raise serverconf.LinkToChefException(_("Can not download pem file"))
                    if hasattr(res,'text'):
                        pem = res.text
                    else:
                        pem = res.content
                    self.chef_conf.set_pem(pem.encode('base64'))
                    self.chef_conf.set_url(self.gcc_conf.get_uri_gcc())
                    self.chef_conf.set_admin_name(self.gcc_conf.get_gcc_username())

                    #result = serverconf.entry_ou(_('Select OU'),_('Enter the correct OU to link into GCC Ui'))
                    result = ''
                    #if result:
                    self.gcc_conf.set_selected_ou(result)
                    #else:
                    #    raise serverconf.LinkToChefException(_("You need enter a OU"))
                except Exception as e:
                    self.show_status(__STATUS_ERROR__, e)

            result, messages = self.validate_conf()
            load_page_callback(LinkToChefResultsPage, {
                'result': result,
                'messages': messages
             })