Class: Y2Network::ConnectionConfigsCollection

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
CanBeCopied, Yast2::Equatable, Yast::Logger
Defined in:
src/lib/y2network/connection_configs_collection.rb

Overview

A container for connection configurations objects.

Examples:

Create a new collection

eth0 = Y2Network::ConnectionConfig::Ethernet.new
collection = Y2Network::ConnectionConfigsCollection.new([eth0])

Find a connection config using its name

config = collection.by_name("eth0") #=> #<Y2Network::ConnectionConfig::Ethernet:0x...>

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from CanBeCopied

#copy

Constructor Details

#initialize(connection_configs = []) ⇒ ConnectionConfigsCollection

Constructor

Parameters:

  • connection_configs (Array<ConnectionConfig>) (defaults to: [])

    List of connection configurations



51
52
53
# File 'src/lib/y2network/connection_configs_collection.rb', line 51

def initialize(connection_configs = [])
  @connection_configs = connection_configs
end

Instance Attribute Details

#connection_configsObject (readonly) Also known as: to_a

Returns the value of attribute connection_configs.



40
41
42
# File 'src/lib/y2network/connection_configs_collection.rb', line 40

def connection_configs
  @connection_configs
end

Instance Method Details

#add_or_update(connection_config) ⇒ Object

Note:

It uses the name to do the matching.

Adds or updates a connection configuration

Parameters:



100
101
102
103
104
105
106
107
# File 'src/lib/y2network/connection_configs_collection.rb', line 100

def add_or_update(connection_config)
  idx = connection_configs.find_index { |c| c.name == connection_config.name }
  if idx
    connection_configs[idx] = connection_config
  else
    connection_configs << connection_config
  end
end

#by_bootproto(*bootprotos) ⇒ Array<ConnectionConfig::Base>

Returns connections with a given bootproto

Parameters:

Returns:



91
92
93
# File 'src/lib/y2network/connection_configs_collection.rb', line 91

def by_bootproto(*bootprotos)
  select { |c| bootprotos.include?(c.bootproto) }
end

#by_ids(*ids) ⇒ Array<ConnectionConfig::Base>

Returns connections with any of the given internal IDs

Parameters:

  • ids (Array<Integer>)

    Internal IDs

Returns:



83
84
85
# File 'src/lib/y2network/connection_configs_collection.rb', line 83

def by_ids(*ids)
  select { |c| ids.include?(c.id) }
end

#by_interface(interface_name) ⇒ Array<ConnectionConfig::Base>

Returns connection configurations which are associated to the given interface

Parameters:

  • interface_name (String)

    Interface name

Returns:



75
76
77
# File 'src/lib/y2network/connection_configs_collection.rb', line 75

def by_interface(interface_name)
  connection_configs.select { |c| c.interface == interface_name }
end

#by_name(name) ⇒ ConnectionConfig::Base?

Returns a connection configuration with the given name if present

Parameters:

  • name (String)

    Connection name

Returns:



67
68
69
# File 'src/lib/y2network/connection_configs_collection.rb', line 67

def by_name(name)
  connection_configs.find { |c| c.name == name }
end

#eql_hashObject



55
56
57
58
59
60
61
# File 'src/lib/y2network/connection_configs_collection.rb', line 55

def eql_hash
  h = super
  if h.keys.include?(:connection_configs)
    h[:connection_configs] = h[:connection_configs].sort_by(&:hash)
  end
  h
end

#remove(connection_config) ⇒ Object

Note:

It uses the name to do the matching.

Removes a connection configuration

Parameters:



115
116
117
118
# File 'src/lib/y2network/connection_configs_collection.rb', line 115

def remove(connection_config)
  name = connection_config.respond_to?(:name) ? connection_config.name : connection_config
  connection_configs.reject! { |c| c.name == name }
end

#select(&block) ⇒ ConnectionConfigsCollection

Selects connections which satisfy the given +block+

Parameters:

  • block (Proc)

Returns:



124
125
126
# File 'src/lib/y2network/connection_configs_collection.rb', line 124

def select(&block)
  self.class.new(to_a.select(&block))
end