class Adminix::Services::AppService

Attributes

service[R]

Public Class Methods

new(service) click to toggle source
# File lib/adminix/services/app_service.rb, line 6
def initialize(service)
  @service = service
end

Public Instance Methods

allow_sending_logs() click to toggle source
# File lib/adminix/services/app_service.rb, line 45
def allow_sending_logs
  @service.allow_sending_logs
end
allow_sending_system_load() click to toggle source
# File lib/adminix/services/app_service.rb, line 49
def allow_sending_system_load
  @service.allow_sending_system_load
end
download_source() click to toggle source
# File lib/adminix/services/app_service.rb, line 102
def download_source
  read_vars
  list = @service.variables
  repo_var = list.find { |v| v.key == 'git_repo' }
  branch_var = list.find { |v| v.key == 'git_branch' }

  if repo_var && repo_var.value && branch_var
    Helpers::Command.git_clone(repo_var.value, branch_var.value)
  else
    puts 'Please define your GIT repository and branch'
  end
end
read_local_vars() click to toggle source
# File lib/adminix/services/app_service.rb, line 121
def read_local_vars
  vars_file_path = Adminix.config.config_file('vars')
  return unless File.exist?(vars_file_path)

  vars = Helpers::Files.read_yaml_file(vars_file_path)
  vars.each do |k, v|
    @service.add_variable Entities::Variable.new(key: k, value: v)
  end
end
read_remote_vars() click to toggle source
# File lib/adminix/services/app_service.rb, line 131
def read_remote_vars
  Entities::Variable.all(@service).each { |v| @service.add_variable(v) }
end
read_vars() click to toggle source
# File lib/adminix/services/app_service.rb, line 115
def read_vars
  read_local_vars
  read_remote_vars
  write_local_vars
end
restart_process() click to toggle source
# File lib/adminix/services/app_service.rb, line 83
def restart_process
  Adminix.logger.info 'Restarting process'
  stop_process
  _, out = start_process

  [true, out]
end
run_jobs() click to toggle source
# File lib/adminix/services/app_service.rb, line 41
def run_jobs
  @service.new_jobs[0..1].each(&:perform)
end
start_process() click to toggle source
# File lib/adminix/services/app_service.rb, line 72
def start_process
  Adminix.logger.info 'Starting process'
  out = Helpers::Command.run_system_command(
    Adminix.config.scripts[:start_process]
  )
  service.define_performed_action(:process_stopped, false)
  service.define_performed_action(:process_started, true)

  [true, out]
end
stop_process() click to toggle source
# File lib/adminix/services/app_service.rb, line 91
def stop_process
  Adminix.logger.info 'Stopping process'
  out = Helpers::Command.run_system_command(
    Adminix.config.scripts[:stop_process]
  )
  service.define_performed_action(:process_started, false)
  service.define_performed_action(:process_stopped, true)

  [true, out]
end
sync() click to toggle source
# File lib/adminix/services/app_service.rb, line 10
def sync
  return if !Adminix.config.credentials_defined? || @service.locked?

  service.lock
  payload = service.sync_payload

  success, result = Helpers::NetHTTP.post(
    "services/#{service.id}/sync_device",
    payload
  )
  unless success
    service.unlock
    return
  end

  service.reset_performed_actions
  service.remove_completed_jobs
  service.clean_sent_logs
  service.clean_load_stamps
  service.add_new_jobs(result['jobs'])
  upgrade_watcher if result['upgrade_watcher'] == true
  start_process if result['start_process'] == true
  stop_process if result['stop_process'] == true
  restart_process if result['restart_process'] == true
  update_process if result['update_process'] == true

  service.unlock
# rescue => e
  # service.unclock
end
update_process() click to toggle source
# File lib/adminix/services/app_service.rb, line 62
def update_process
  Adminix.logger.info 'Updating process'
  out = Helpers::Command.run_system_command(
    Adminix.config.scripts[:update_process]
  )
  service.define_performed_action(:process_updated, true)

  [true, out]
end
upgrade_watcher() click to toggle source
# File lib/adminix/services/app_service.rb, line 53
def upgrade_watcher
  Adminix.logger.info 'Upgrading watcher'
  out = Helpers::Command.run_system_command(
    Adminix.config.scripts[:upgrade_watcher]
  )

  [true, out]
end
write_local_vars() click to toggle source
# File lib/adminix/services/app_service.rb, line 135
def write_local_vars
  vars_file_path = Adminix.config.config_file('vars')
  data = {}
  @service.variables.each { |v| data[v.key] = v.value }
  Helpers::Files.write_yaml_file(vars_file_path, data)
end