Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Item::SimpOptionsDNSServers does not account for existing DNS servers properly

Aperta
#187 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
1/5
Tempo stimato
Meno di un'ora
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Ferma
Stack tecnologico
ruby
Ambito
cli, networking

Direzione di ricerca

Inizia da lib/simp/cli/config/items/data/simp_options_dns_servers.rb intorno alla riga 33 e verifica come l'output di nmcli diventa il valore predefinito del server DNS. Verifica che i server delimitati da pipe vengano analizzati separatamente, che i valori duplicati o vuoti vengano gestiti e che il valore predefinito risultante superi la validazione; esegui la suite di test esistente pertinente, se disponibile.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

community needs-attention

One of my test systems I attempted to bootstrap with SIMP 6.6 ran into an issue with the DNS when going through the simp config questionnaire. When it came time to choose the DNS options I ran into some oddities:

cli::network::set_up_nic = true

=== cli::network::dhcp ===
Whether to use DHCP to retrieve your network settings ("dhcp") or to
use static network settings ("static").
----> Recommended value: "static"
cli::network::dhcp: |static| dhcp
cli::network::dhcp = "dhcp"
>> Applying: Configure a network interface...  Succeeded

=== cli::network::hostname ===
The Fully Qualified Domain Name (FQDN) of the system.

This *MUST* contain a domain. Simple hostnames are not allowed.
----> OS value:          "puppet.localhost.local"
----> Recommended value: "puppet.localhost.local"
cli::network::hostname: |puppet.localhost.local|
cli::network::hostname = "puppet.localhost.local"
>> Applying: Set hostname...  Succeeded

Internal error: Default, noninteractive value for simp_options::dns::servers is invalid: '["1.1.1.1 | 1.0.0.1"]'.


/usr/share/simp/ruby/gems/simp-cli-7.0.0/lib/simp/cli/config/items/item.rb:267:in `determine_value_from_default'
/usr/share/simp/ruby/gems/simp-cli-7.0.0/lib/simp/cli/config/items/item.rb:235:in `determine_value'
/usr/share/simp/ruby/gems/simp-cli-7.0.0/lib/simp/cli/config/questionnaire.rb:98:in `process_item'
/usr/share/simp/ruby/gems/simp-cli-7.0.0/lib/simp/cli/config/questionnaire.rb:38:in `process_pass1'
/usr/share/simp/ruby/gems/simp-cli-7.0.0/lib/simp/cli/config/questionnaire.rb:49:in `process_pass1'
/usr/share/simp/ruby/gems/simp-cli-7.0.0/lib/simp/cli/config/questionnaire.rb:49:in `process_pass1'
/usr/share/simp/ruby/gems/simp-cli-7.0.0/lib/simp/cli/config/questionnaire.rb:49:in `process_pass1'
/usr/share/simp/ruby/gems/simp-cli-7.0.0/lib/simp/cli/config/questionnaire.rb:49:in `process_pass1'
/usr/share/simp/ruby/gems/simp-cli-7.0.0/lib/simp/cli/config/questionnaire.rb:49:in `process_pass1'
/usr/share/simp/ruby/gems/simp-cli-7.0.0/lib/simp/cli/config/questionnaire.rb:49:in `process_pass1'

Upon looking into this I found the bug is right here: https://github.com/simp/rubygem-simp-cli/blob/master/lib/simp/cli/config/items/data/simp_options_dns_servers.rb#L33

Turns out that nmcli will return multiple DNS servers with a pipe delimiter. But, good news, this is an easy fix, and we can even simplify the block. We can change line 33 like so:

nameservers = result[:stdout].strip.split("\n").map { |ips| ips.split(/\s*\|\s*/) }.flatten.uniq

One bonus to this approach is that flattening the array will also remove empty values so we don't need the delete_if on the following lines.

Lingua principale
Ruby
Stelle
2
Fork
12
Merge medio
2g 21h
PR unite (30g)
4

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di simp/rubygem-simp-cli

Tutte le issue di simp/rubygem-simp-cli

Issue simili

Altre issue su Ruby

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.