Module: Rbeapi::Client
- Defined in:
- lib/rbeapi/client.rb
Overview
Rbeapi::Client
Defined Under Namespace
Constant Summary collapse
- DEFAULT_TRANSPORT =
'https'.freeze
- TRANSPORTS =
{ 'http' => 'Rbeapi::Eapilib::HttpEapiConnection', 'https' => 'Rbeapi::Eapilib::HttpsEapiConnection', 'http_local' => 'Rbeapi::Eapilib::HttpLocalEapiConenction', 'socket' => 'Rbeapi::Eapilib::SocketEapiConnection' } .freeze
Class Method Summary collapse
-
.config ⇒ Config
Returns the currently loaded config object.
-
.config_for(name) ⇒ Hash?
Returns the configuration options for the named connection from the loaded configuration.
-
.connect(opts = {}) ⇒ Rbeapi::Connection
Builds a connection object to a remote node using the specified options and return an instance of Rbeapi::Connection.
-
.connect_to(name) ⇒ Rbeapi::Node?
Retrieves the node config from the loaded configuration file and returns a Rbeapi::Node instance for working with the remote node.
-
.load_config(conf) ⇒ Object
load_config overrides the default conf file loaded in the config instances using the supplied conf argument as the conf file.
-
.make_connection(transport, opts = {}) ⇒ Rbeapi::EapiConnection
Creates a connection instance that can either be used directly or passed to a Node instance.
Class Method Details
.config ⇒ Config
Returns the currently loaded config object. This function will create a new instance of the config object if one doesn’t already exist.
60 61 62 63 64 |
# File 'lib/rbeapi/client.rb', line 60 def config return @config if @config @config = Config.new @config end |
.config_for(name) ⇒ Hash?
Returns the configuration options for the named connection from the loaded configuration. The configuration name is specified as the string right of the colon in the section name.
89 90 91 |
# File 'lib/rbeapi/client.rb', line 89 def config_for(name) config.get_connection(name) end |
.connect(opts = {}) ⇒ Rbeapi::Connection
Builds a connection object to a remote node using the specified options and return an instance of Rbeapi::Connection. All configuration options can be passed via the :opts param.
144 145 146 147 |
# File 'lib/rbeapi/client.rb', line 144 def connect(opts = {}) transport = opts.fetch(:transport, DEFAULT_TRANSPORT) make_connection(transport, opts) end |
.connect_to(name) ⇒ Rbeapi::Node?
Retrieves the node config from the loaded configuration file and returns a Rbeapi::Node instance for working with the remote node.
102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/rbeapi/client.rb', line 102 def connect_to(name) config_entry = config_for(name) return nil unless config_entry config = config_entry.dup config['host'] = name if config['host'] == '*' config = Rbeapi::Utils.transform_keys_to_symbols(config) connection = connect config Node.new(connection) node = Node.new(connection) enablepwd = config.fetch(:enablepwd, nil) node.enable_authentication(enablepwd) if enablepwd node end |
.load_config(conf) ⇒ Object
load_config overrides the default conf file loaded in the config instances using the supplied conf argument as the conf file. This method will clear out an previously loaded configuration and replace all entries with the contents of the supplied file.
74 75 76 |
# File 'lib/rbeapi/client.rb', line 74 def load_config(conf) config.read(conf) end |
.make_connection(transport, opts = {}) ⇒ Rbeapi::EapiConnection
Creates a connection instance that can either be used directly or passed to a Node instance.
158 159 160 161 162 |
# File 'lib/rbeapi/client.rb', line 158 def make_connection(transport, opts = {}) klass = TRANSPORTS.fetch(transport) cls = Rbeapi::Utils.class_from_string(klass) cls.new(opts) end |