Module: Xolo::Server

Extended by:
CommandLine, ObjectLocks
Includes:
Constants, Log
Defined in:
lib/xolo/server.rb,
lib/xolo/server/app.rb,
lib/xolo/server/log.rb,
lib/xolo/server/title.rb,
lib/xolo/server/routes.rb,
lib/xolo/server/version.rb,
lib/xolo/server/constants.rb,
lib/xolo/server/helpers/log.rb,
lib/xolo/server/routes/auth.rb,
lib/xolo/server/command_line.rb,
lib/xolo/server/helpers/auth.rb,
lib/xolo/server/object_locks.rb,
lib/xolo/server/routes/maint.rb,
lib/xolo/server/configuration.rb,
lib/xolo/server/routes/titles.rb,
lib/xolo/server/helpers/titles.rb,
lib/xolo/server/routes/uploads.rb,
lib/xolo/server/routes/jamf_pro.rb,
lib/xolo/server/routes/versions.rb,
lib/xolo/server/helpers/jamf_pro.rb,
lib/xolo/server/helpers/versions.rb,
lib/xolo/server/mixins/changelog.rb,
lib/xolo/server/helpers/client_data.rb,
lib/xolo/server/helpers/maintenance.rb,
lib/xolo/server/helpers/pkg_signing.rb,
lib/xolo/server/routes/title_editor.rb,
lib/xolo/server/helpers/notification.rb,
lib/xolo/server/helpers/title_editor.rb,
lib/xolo/server/helpers/file_transfers.rb,
lib/xolo/server/mixins/title_ted_access.rb,
lib/xolo/server/mixins/title_jamf_access.rb,
lib/xolo/server/mixins/version_ted_access.rb,
lib/xolo/server/helpers/progress_streaming.rb,
lib/xolo/server/mixins/version_jamf_access.rb

Overview

Server Module

Defined Under Namespace

Modules: CommandLine, Constants, Helpers, Log, Mixins, ObjectLocks, Routes Classes: App, Configuration, Title, Version

Constant Summary collapse

JAMF_XOLO_CATEGORY =

everything xolo-related in Jamf is in this category (this is never used as a SSvc category - that should be set per title)

'xolo'

Constants included from CommandLine

CommandLine::CLI_OPTIONS, CommandLine::CONFIG_CMD, CommandLine::SUBCOMMANDS

Constants included from ObjectLocks

ObjectLocks::OBJECT_LOCK_LIMIT

Constants included from Log

Log::BZIP2, Log::BZIPPED_EXTNAME, Log::DATETIME_FORMAT, Log::DFT_LOG_COMPRESS_AFTER_DAYS, Log::DFT_LOG_DAYS_TO_KEEP, Log::LAST_ROTATION_FILE, Log::LEVELS, Log::LOG_DIR, Log::LOG_FILE, Log::LOG_FILE_NAME, Log::LOG_FORMATTER, Log::TEMP_LOG_FILE

Constants included from Constants

Constants::APP_ENV_DEV, Constants::APP_ENV_PROD, Constants::APP_ENV_TEST, Constants::BACKUPS_DIR, Constants::DATA_DIR, Constants::EXECUTABLE_FILENAME, Constants::JAMF_OBJECT_NAME_PFX, Constants::MAX_JAMF_WAIT_FOR_PKG_DELETION, Constants::MAX_JAMF_WAIT_FOR_TITLE_EDITOR, Constants::PROGRESS_COMPLETE, Constants::SESSION_EXPIRE_AFTER

Class Method Summary collapse

Methods included from CommandLine

cli_opts, config_opts, extended, included, parse_cli, parse_config_opts, parse_global_opts, usage

Methods included from ObjectLocks

extended, included, object_locks, remove_expired_object_locks, rw_lock

Methods included from Log

compress_log, included, log_rotation_timer_task, rotate_live_log, rotate_logs, rotate_logs_now?, rotation_mutex

Methods included from Constants

included

Class Method Details

.app_envObject



116
117
118
# File 'lib/xolo/server.rb', line 116

def self.app_env
  @app_env
end

.app_env=(e) ⇒ Object



121
122
123
124
# File 'lib/xolo/server.rb', line 121

def self.app_env=(e)
  ENV['APP_ENV'] = e.to_s
  @app_env = e
end

.configObject



137
138
139
# File 'lib/xolo/server.rb', line 137

def self.config
  Xolo::Server::Configuration.instance
end

.debug=(bool) ⇒ Object



127
128
129
# File 'lib/xolo/server.rb', line 127

def self.debug=(bool)
  @debug = bool ? true : false
end

.debug?Boolean

Returns:

  • (Boolean)


132
133
134
# File 'lib/xolo/server.rb', line 132

def self.debug?
  @debug
end

.loggerObject

Wrapper for Xolo::Server::Log.logger, also available as Xolo::Server.logger from anywhere. Within Sinatra routes and views, its available via the #logger instance method.



268
269
270
# File 'lib/xolo/server/log.rb', line 268

def self.logger
  Log.logger
end

.set_log_level(level, admin:) ⇒ Object

set the log level of the server logger

Raises:

  • (ArgumentError)


274
275
276
277
278
279
280
281
282
# File 'lib/xolo/server/log.rb', line 274

def self.set_log_level(level, admin:)
  # make sure the level is valid
  raise ArgumentError, "Unknown log level '#{level}'" unless Log::LEVELS.include? level.to_s.upcase

  # unknonwn always gets logged
  logger.unknown "Setting log level to #{level} by #{admin}"

  logger.level = level
end

.shutting_down=(bool) ⇒ Object



147
148
149
# File 'lib/xolo/server.rb', line 147

def self.shutting_down=(bool)
  @shutting_down = bool ? true : false
end

.shutting_down?Boolean

Returns:

  • (Boolean)


142
143
144
# File 'lib/xolo/server.rb', line 142

def self.shutting_down?
  @shutting_down
end

.start_timeObject



106
107
108
# File 'lib/xolo/server.rb', line 106

def self.start_time
  @start_time
end

.start_time=(t) ⇒ Object



111
112
113
# File 'lib/xolo/server.rb', line 111

def self.start_time=(t)
  @start_time = t
end

.thread_infoObject

threads for reporting



153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# File 'lib/xolo/server.rb', line 153

def self.thread_info
  info = {}
  Thread.list.each do |thr|
    name =
      if thr.name
        thr.name
      elsif Thread.main == thr
        'Main'
      elsif thr.to_s.include? 'eventmachine'
        "eventmachine-#{thr.object_id}"
      else
        thr.to_s
      end
    info[name] = thr.status
  end

  info
end