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
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/souls/cli/gcloud/scheduler/index.rb', line 15
def sync_schedules
require("./app")
Souls::Gcloud.new.config_set
project_id = Souls.configuration.project_id
schedules_list = current_schedules
worker_name = FileUtils.pwd.split("/").last
Queries::BaseQuery.all_schedules.each do |k, v|
worker_name = FileUtils.pwd.split("/").last
job_name = "souls_#{worker_name}_#{k.to_s.underscore}".to_sym
topic = "souls_#{worker_name}_#{k.to_s.underscore}"
message_body = "query { #{k.to_s.camelize(:lower)} { response }}"
if schedules_list.include?(job_name)
schedule = schedules_list[job_name]
schedules_list.delete(job_name)
next if schedule == v
system(
" gcloud scheduler jobs update pubsub \#{job_name} --project=\#{project_id} --quiet --schedule=\"\#{v}\" --topic=\"\#{topic}\" --message-body=\"\#{message_body}\" --time-zone=\"\#{options[:timezone]}\"\n COMMAND\n else\n system(\n <<~COMMAND)\n gcloud scheduler jobs create pubsub \#{job_name} --project=\#{project_id} --quiet --schedule=\"\#{v}\" --topic=\"\#{topic}\" --attributes=\"\" --message-body=\"\#{message_body}\" --time-zone=\"\#{options[:timezone]}\"\n COMMAND\n end\n end\n\n schedules_list.each do |k, _|\n next unless k.match?(/^souls_\#{worker_name}/)\n\n system(\"gcloud scheduler jobs delete \#{k} -q >/dev/null 2>&1\")\n end\nend\n")
|