Class: Y2Network::Wicked::ConfigReader

Inherits:
ConfigReader show all
Includes:
Yast::Logger
Defined in:
src/lib/y2network/wicked/config_reader.rb

Overview

This class reads the current configuration from /etc/sysconfig files

Direct Known Subclasses

None::ConfigReader

Constant Summary collapse

SECTIONS =
[
  :interfaces, :connections, :drivers, :routing, :dns, :hostname
].freeze

Instance Method Summary collapse

Methods inherited from ConfigReader

for, #initialize

Constructor Details

This class inherits a constructor from Y2Network::ConfigReader

Instance Method Details

#readIssuesResult

Returns Network configuration.

Returns:



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'src/lib/y2network/wicked/config_reader.rb', line 47

def read
  # NOTE: This code might be moved outside of the Sysconfig namespace, as it is generic.
  # NOTE: /etc/hosts cache - nothing to do with /etc/hostname
  Yast::Host.Read

  initial_config = Config.new(source: :wicked)
  issues_list = Y2Issues::List.new

  network_config = SECTIONS.reduce(initial_config) do |current_config, section|
    send("read_#{section}", current_config, issues_list)
  end

  log.info "Sysconfig reader result: #{network_config.inspect}"
  IssuesResult.new(network_config, issues_list)
end

#read_connections(config, issues_list) ⇒ Y2Network::Config (protected)

Reads the connections

Parameters:

  • config (Y2Network::Config)

    Initial configuration object

  • issues_list (Y2Issues::List)

    Issues list. Used to register issues when reading.

Returns:



82
83
84
85
86
87
88
89
90
91
92
# File 'src/lib/y2network/wicked/config_reader.rb', line 82

def read_connections(config, issues_list)
  connection_configs_reader = ConnectionConfigsReader.new(issues_list)
  connections = connection_configs_reader.connections(config.interfaces)
  missing_interfaces = find_missing_interfaces(
    connections, config.interfaces
  )
  config.update(
    interfaces:  config.interfaces + missing_interfaces,
    connections: connections
  )
end

#read_dns(config, _issues_list) ⇒ Y2Network::Config (protected)

Reads the DNS information

Parameters:

  • config (Y2Network::Config)

    Initial configuration object

  • _issues_list (Y2Issues::List)

    Issues list. Used to register issues when reading.

Returns:



123
124
125
# File 'src/lib/y2network/wicked/config_reader.rb', line 123

def read_dns(config, _issues_list)
  config.update(dns: Y2Network::Wicked::DNSReader.new.config)
end

#read_drivers(config, _issues_list) ⇒ Y2Network::Config (protected)

Reads the drivers

Parameters:

  • config (Y2Network::Config)

    Initial configuration object

  • _issues_list (Y2Issues::List)

    Issues list. Used to register issues when reading.

Returns:



99
100
101
# File 'src/lib/y2network/wicked/config_reader.rb', line 99

def read_drivers(config, _issues_list)
  config.update(drivers: interfaces_reader.drivers)
end

#read_hostname(config, _issues_list) ⇒ Y2Network::Config (protected)

Returns the Hostname configuration

Parameters:

  • config (Y2Network::Config)

    Initial configuration object

  • _issues_list (Y2Issues::List)

    Issues list. Used to register issues when reading.

Returns:

  • (Y2Network::Config)

    A new configuration object including the hostname information



132
133
134
# File 'src/lib/y2network/wicked/config_reader.rb', line 132

def read_hostname(config, _issues_list)
  config.update(hostname: Y2Network::Wicked::HostnameReader.new.config)
end

#read_interfaces(config, _issues_list) ⇒ Y2Network::Config (protected)

Reads the network interfaces

Parameters:

  • config (Y2Network::Config)

    Initial configuration object

  • _issues_list (Y2Issues::List)

    Issues list. Used to register issues when reading.

Returns:



70
71
72
73
74
75
# File 'src/lib/y2network/wicked/config_reader.rb', line 70

def read_interfaces(config, _issues_list)
  config.update(
    interfaces:   interfaces_reader.interfaces,
    s390_devices: interfaces_reader.s390_devices
  )
end

#read_routing(config, _issues_list) ⇒ Y2Network::Config (protected)

Reads the routing information

Parameters:

  • config (Y2Network::Config)

    Initial configuration object

  • _issues_list (Y2Issues::List)

    Issues list. Used to register issues when reading.

Returns:

  • (Y2Network::Config)

    A new configuration object including the routing information



108
109
110
111
112
113
114
115
116
# File 'src/lib/y2network/wicked/config_reader.rb', line 108

def read_routing(config, _issues_list)
  routing_tables = find_routing_tables(config.interfaces)
  routing = Routing.new(
    tables:       routing_tables,
    forward_ipv4: sysctl_config_file.forward_ipv4,
    forward_ipv6: sysctl_config_file.forward_ipv6
  )
  config.update(routing: routing)
end