Class: Y2Remote::Remote
- Inherits:
-
Object
- Object
- Y2Remote::Remote
- Includes:
- Singleton, Yast::I18n, Yast::Logger
- Defined in:
- src/lib/y2remote/remote.rb
Constant Summary collapse
- GRAPHICAL_TARGET =
"graphical".freeze
- FIREWALL_SERVICES =
["tigervnc", "tigervnc-https"].freeze
Instance Attribute Summary collapse
-
#modes ⇒ Object
readonly
List of Y2Remote::Modes::Base subclasses that are the enabled VNC running modes.
-
#proposed ⇒ Object
(also: #proposed?)
[Boolean] whether the configuration has been proposed or not.
Instance Method Summary collapse
-
#configure_display_manager ⇒ Boolean
Updates the VNC and xdm configuration.
-
#disable! ⇒ Array<Y2Remote::Mode>
Removes all the running modes.
-
#disabled? ⇒ Boolean
Checks if remote administration is currently disallowed.
- #display_manager ⇒ Object
-
#enable! ⇒ Object
Enables the Y2Remote::Modes::VNC mode.
-
#enable_manager! ⇒ Object
Enables the Y2Remote::Modes::Manager mode.
-
#enable_web! ⇒ Object
Enables the Y2Remote::Modes::Web mode.
-
#enabled? ⇒ Boolean
Checks if remote administration is currently allowed.
-
#initialize ⇒ Remote
constructor
Constructor.
-
#propose! ⇒ Boolean
Propose the vnc configuration if it has not been proposed yet.
-
#read ⇒ Boolean
Read the current status of vnc and the enabled modes.
-
#reset! ⇒ Object
Reset the proposal configuration enabling vnc if it was enabled by linuxrc.
-
#restart_services ⇒ Object
Restarts services, reporting errors to the user.
-
#summary ⇒ String
Return a summary of the current remote configuration.
-
#web_enabled? ⇒ Boolean
Whether some of the VNC running modes is Web or not.
-
#with_manager? ⇒ Boolean
Whether the vnc manager mode is enabled or not.
-
#write ⇒ Boolean
Update the SCR according to vnc settings.
Constructor Details
#initialize ⇒ Remote
Constructor
44 45 46 47 48 49 50 51 |
# File 'src/lib/y2remote/remote.rb', line 44 def initialize import_modules textdomain "network" @modes = [] @proposed = false end |
Instance Attribute Details
#modes ⇒ Object (readonly)
List of Y2Remote::Modes::Base subclasses that are the enabled VNC running modes
36 37 38 |
# File 'src/lib/y2remote/remote.rb', line 36 def modes @modes end |
#proposed ⇒ Object Also known as: proposed?
[Boolean] whether the configuration has been proposed or not
39 40 41 |
# File 'src/lib/y2remote/remote.rb', line 39 def proposed @proposed end |
Instance Method Details
#configure_display_manager ⇒ Boolean
Updates the VNC and xdm configuration
Called from #write. Ensures that required packages are installed, enables vnc services and xdm and writes the configuration files, reporting any error in the process.
158 159 160 161 162 163 164 165 |
# File 'src/lib/y2remote/remote.rb', line 158 def configure_display_manager if enabled? && !Yast::Package.InstallAll(required_packages) log.error "Installing of required packages failed" return false end Y2Remote::Modes.update_status(modes) display_manager.write_remote_access(enabled?) end |
#disable! ⇒ Array<Y2Remote::Mode>
Removes all the running modes
81 82 83 |
# File 'src/lib/y2remote/remote.rb', line 81 def disable! @modes = [] end |
#disabled? ⇒ Boolean
Checks if remote administration is currently disallowed
74 75 76 |
# File 'src/lib/y2remote/remote.rb', line 74 def disabled? modes.empty? end |
#display_manager ⇒ Object
99 100 101 |
# File 'src/lib/y2remote/remote.rb', line 99 def display_manager @display_manager ||= Y2Remote::DisplayManager.instance end |
#enable! ⇒ Object
Enables the Y2Remote::Modes::VNC mode
59 60 61 |
# File 'src/lib/y2remote/remote.rb', line 59 def enable! enable_mode!(Y2Remote::Modes::VNC.instance) end |
#enable_manager! ⇒ Object
Enables the Y2Remote::Modes::Manager mode
64 65 66 |
# File 'src/lib/y2remote/remote.rb', line 64 def enable_manager! enable_mode!(Y2Remote::Modes::Manager.instance) end |
#enable_web! ⇒ Object
Enables the Y2Remote::Modes::Web mode
69 70 71 |
# File 'src/lib/y2remote/remote.rb', line 69 def enable_web! enable_mode!(Y2Remote::Modes::Web.instance) end |
#enabled? ⇒ Boolean
Checks if remote administration is currently allowed
54 55 56 |
# File 'src/lib/y2remote/remote.rb', line 54 def enabled? !disabled? end |
#propose! ⇒ Boolean
Propose the vnc configuration if it has not been proposed yet
143 144 145 146 147 148 149 |
# File 'src/lib/y2remote/remote.rb', line 143 def propose! return false if proposed? Yast::Linuxrc.vnc ? enable_vnc! : disable! log.info("Remote Administration was proposed as: #{modes.inspect}") @proposed = true end |
#read ⇒ Boolean
Read the current status of vnc and the enabled modes
106 107 108 109 110 111 112 |
# File 'src/lib/y2remote/remote.rb', line 106 def read return true unless display_manager.remote_access? @modes = Y2Remote::Modes.running_modes true end |
#reset! ⇒ Object
Reset the proposal configuration enabling vnc if it was enabled by linuxrc
134 135 136 137 138 |
# File 'src/lib/y2remote/remote.rb', line 134 def reset! @proposed = false propose! end |
#restart_services ⇒ Object
Restarts services, reporting errors to the user
168 169 170 171 172 173 |
# File 'src/lib/y2remote/remote.rb', line 168 def restart_services Yast2::Systemd::Target.set_default(GRAPHICAL_TARGET) if enabled? Y2Remote::Modes.restart_modes(modes) display_manager.restart if enabled? end |
#summary ⇒ String
Return a summary of the current remote configuration
178 179 180 181 182 |
# File 'src/lib/y2remote/remote.rb', line 178 def summary return _("Remote administration is enabled.") if enabled? _("Remote administration is disabled.") end |
#web_enabled? ⇒ Boolean
Whether some of the VNC running modes is Web or not
88 89 90 |
# File 'src/lib/y2remote/remote.rb', line 88 def web_enabled? modes.include?(Y2Remote::Modes::Web.instance) end |
#with_manager? ⇒ Boolean
Whether the vnc manager mode is enabled or not
95 96 97 |
# File 'src/lib/y2remote/remote.rb', line 95 def with_manager? modes.include?(Y2Remote::Modes::Manager.instance) end |
#write ⇒ Boolean
Update the SCR according to vnc settings
117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'src/lib/y2remote/remote.rb', line 117 def write configure_write_steps next_stage(_("Configuring display manager...")) return false unless configure_display_manager if Yast::Mode.normal next_stage(_("Restarting the service...")) restart_services next_stage end true end |