Class: Adminix::Services::AppService

Inherits:
Object
  • Object
show all
Defined in:
lib/adminix/services/app_service.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(service) ⇒ AppService

Returns a new instance of AppService.



6
7
8
# File 'lib/adminix/services/app_service.rb', line 6

def initialize(service)
  @service = service
end

Instance Attribute Details

#serviceObject (readonly)

Returns the value of attribute service.



4
5
6
# File 'lib/adminix/services/app_service.rb', line 4

def service
  @service
end

Instance Method Details

#allow_sending_logsObject



45
46
47
# File 'lib/adminix/services/app_service.rb', line 45

def allow_sending_logs
  @service.allow_sending_logs
end

#allow_sending_system_loadObject



49
50
51
# File 'lib/adminix/services/app_service.rb', line 49

def allow_sending_system_load
  @service.allow_sending_system_load
end

#download_sourceObject



102
103
104
105
106
107
108
109
110
111
112
113
# 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_varsObject



121
122
123
124
125
126
127
128
129
# 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_varsObject



131
132
133
# 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_varsObject



115
116
117
118
119
# File 'lib/adminix/services/app_service.rb', line 115

def read_vars
  read_local_vars
  read_remote_vars
  write_local_vars
end

#restart_processObject



83
84
85
86
87
88
89
# 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_jobsObject



41
42
43
# File 'lib/adminix/services/app_service.rb', line 41

def run_jobs
  @service.new_jobs[0..1].each(&:perform)
end

#start_processObject



72
73
74
75
76
77
78
79
80
81
# 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_processObject



91
92
93
94
95
96
97
98
99
100
# 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

#syncObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 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_processObject



62
63
64
65
66
67
68
69
70
# 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_watcherObject



53
54
55
56
57
58
59
60
# 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_varsObject



135
136
137
138
139
140
# 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