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)
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())
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)
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)
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)
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)
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())
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
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'))
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)
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)
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)
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 })