Class: Yast2::Systemd::Socket
- Defined in:
- library/systemd/src/lib/yast2/systemd/socket.rb
Overview
API to manage a systemd.socket unit
@example How to use it in other yast libraries
require 'yast' require 'yast2/systemd/socket'
## Get a socket unit by its name ## If the socket unit can't be found, you'll get a nil object
socket = Yast2::Systemd::Socket.find('iscsid') # socket unit object
## If you can't handle any nil at the place of calling, ## use the finder with exclamation mark; ## Systemd::SocketNotFound exception will be raised
socket = Yast2::Systemd::Socket.find!('IcanHasCheez') # Systemd::SocketNotFound: Socket unit 'IcanHasCheez' not found
## Get basic unit properties
socket.unit_name # 'iscsid'
socket.unit_type # 'socket'
socket.id # 'iscsid.socket'
socket.path # '/usr/lib/systemd/system/iscsid.socket' => unit file path
socket.loaded? # true if it's loaded, false otherwise
socket.listening? # true if it's listening, false otherwise
socket.enabled? # true if enabled, false otherwise
socket.disabled? # true if disabled, false otherwise
socket.status # the same string output you get with systemctl status iscsid.socket
socket.show # equivalent of calling systemctl show iscsid.socket
## Socket unit file commands
# Unit file commands do modifications on the socket unit. Calling them triggers # socket properties reloading. In case a command fails, the error messages are available # through the method #errors as a string.
socket.start # true if unit has been activated successfully socket.stop # true if unit has been deactivated successfully socket.enable # true if unit has been enabled successfully socket.disable # true if unit has been disabled successfully socket.errors # error string available if some of the actions above fails
## Extended socket properties
# In case you need more details about the socket unit than the default ones,
# you can extend the paramters when getting the socket. Those properties are
# then available under the #properties instance method. To get an overview of
# available socket properties, try e.g., systemctl show iscsid.socket
socket = Yast2::Systemd::Socket.find('iscsid', :can_start=>'CanStart', :triggers=>'Triggers') socket.properties.can_start # 'yes' socket.properties.triggers # 'iscsid.service'
Constant Summary collapse
- UNIT_SUFFIX =
".socket".freeze
Constants inherited from Unit
Instance Attribute Summary
Attributes inherited from Unit
#error, #name, #properties, #propmap, #unit_name, #unit_type
Class Method Summary collapse
- .all(propmap = {}) ⇒ Object
- .find(socket_name, propmap = {}) ⇒ Object
- .find!(socket_name, propmap = {}) ⇒ Object
-
.for_service(service_name) ⇒ Yast2::Systemd::Socket?
Returns the socket for a given service.
-
.reset ⇒ Object
Resets the cache for socket finder.
Instance Method Summary collapse
Methods inherited from Unit
#command, #disable, #enable, #initialize, #refresh!, #reload, #reload_or_restart, #reload_or_try_restart, #restart, #show, #start, #status, #stop, #try_restart
Constructor Details
This class inherits a constructor from Yast2::Systemd::Unit
Class Method Details
.all(propmap = {}) ⇒ Object
85 86 87 88 |
# File 'library/systemd/src/lib/yast2/systemd/socket.rb', line 85 def all(propmap = {}) sockets = Systemctl.socket_units.map { |s| new(s, propmap) } sockets.select { |s| s.properties.supported? } end |
.find(socket_name, propmap = {}) ⇒ Object
71 72 73 74 75 76 77 |
# File 'library/systemd/src/lib/yast2/systemd/socket.rb', line 71 def find(socket_name, propmap = {}) socket_name += UNIT_SUFFIX unless socket_name.end_with?(UNIT_SUFFIX) socket = new(socket_name, propmap) return nil if socket.properties.not_found? socket end |
.find!(socket_name, propmap = {}) ⇒ Object
80 81 82 |
# File 'library/systemd/src/lib/yast2/systemd/socket.rb', line 80 def find!(socket_name, propmap = {}) find(socket_name, propmap) || raise(Systemd::SocketNotFound, socket_name) end |
.for_service(service_name) ⇒ Yast2::Systemd::Socket?
Returns the socket for a given service
94 95 96 97 |
# File 'library/systemd/src/lib/yast2/systemd/socket.rb', line 94 def for_service(service_name) @socket_finder ||= Yast2::Systemd::SocketFinder.new @socket_finder.for_service(service_name) end |
.reset ⇒ Object
Resets the cache for socket finder
100 101 102 |
# File 'library/systemd/src/lib/yast2/systemd/socket.rb', line 100 def reset @socket_finder = nil end |
Instance Method Details
#listening? ⇒ Boolean
105 106 107 |
# File 'library/systemd/src/lib/yast2/systemd/socket.rb', line 105 def listening? properties.sub_state == "listening" end |