cloudmunda 0.1.1 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,47 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:zeebe="http://camunda.org/schema/zeebe/1.0" xmlns:modeler="http://camunda.org/schema/modeler/1.0" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0rbumvm" targetNamespace="http://bpmn.io/schema/bpmn" modeler:executionPlatform="Camunda Cloud" modeler:executionPlatformVersion="1.2.0">
3
+ <bpmn:process id="cloudmunda-demo" name="cloudmunda-demo" isExecutable="true">
4
+ <bpmn:startEvent id="StartEvent_1" name="Webhook received">
5
+ <bpmn:outgoing>Flow_0easrsr</bpmn:outgoing>
6
+ </bpmn:startEvent>
7
+ <bpmn:sequenceFlow id="Flow_0easrsr" sourceRef="StartEvent_1" targetRef="Activity_0le34m7" />
8
+ <bpmn:endEvent id="Event_0a948ov" name="Webhook processed">
9
+ <bpmn:incoming>Flow_1g4bjdg</bpmn:incoming>
10
+ </bpmn:endEvent>
11
+ <bpmn:sequenceFlow id="Flow_1g4bjdg" sourceRef="Activity_0le34m7" targetRef="Event_0a948ov" />
12
+ <bpmn:serviceTask id="Activity_0le34m7" name="Send slack message to announce">
13
+ <bpmn:extensionElements>
14
+ <zeebe:taskDefinition type="webhook-slack-announce" />
15
+ </bpmn:extensionElements>
16
+ <bpmn:incoming>Flow_0easrsr</bpmn:incoming>
17
+ <bpmn:outgoing>Flow_1g4bjdg</bpmn:outgoing>
18
+ </bpmn:serviceTask>
19
+ </bpmn:process>
20
+ <bpmndi:BPMNDiagram id="BPMNDiagram_1">
21
+ <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="cloudmunda-demo">
22
+ <bpmndi:BPMNEdge id="Flow_0easrsr_di" bpmnElement="Flow_0easrsr">
23
+ <di:waypoint x="215" y="97" />
24
+ <di:waypoint x="270" y="97" />
25
+ </bpmndi:BPMNEdge>
26
+ <bpmndi:BPMNEdge id="Flow_1g4bjdg_di" bpmnElement="Flow_1g4bjdg">
27
+ <di:waypoint x="370" y="97" />
28
+ <di:waypoint x="432" y="97" />
29
+ </bpmndi:BPMNEdge>
30
+ <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
31
+ <dc:Bounds x="179" y="79" width="36" height="36" />
32
+ <bpmndi:BPMNLabel>
33
+ <dc:Bounds x="174" y="122" width="47" height="27" />
34
+ </bpmndi:BPMNLabel>
35
+ </bpmndi:BPMNShape>
36
+ <bpmndi:BPMNShape id="Event_0a948ov_di" bpmnElement="Event_0a948ov">
37
+ <dc:Bounds x="432" y="79" width="36" height="36" />
38
+ <bpmndi:BPMNLabel>
39
+ <dc:Bounds x="425" y="122" width="51" height="27" />
40
+ </bpmndi:BPMNLabel>
41
+ </bpmndi:BPMNShape>
42
+ <bpmndi:BPMNShape id="Activity_1qerp1u_di" bpmnElement="Activity_0le34m7">
43
+ <dc:Bounds x="270" y="57" width="100" height="80" />
44
+ </bpmndi:BPMNShape>
45
+ </bpmndi:BPMNPlane>
46
+ </bpmndi:BPMNDiagram>
47
+ </bpmn:definitions>
data/exe/cloudmunda CHANGED
@@ -1,14 +1,17 @@
1
1
  #!/usr/bin/env ruby
2
- require "bundler/setup"
3
- require "cloudmunda/cli"
2
+ # frozen_string_literal: true
3
+
4
+ require 'bundler/setup'
5
+ require 'cloudmunda/cli'
4
6
 
5
7
  begin
6
8
  cli = ::Cloudmunda::CLI.instance
7
9
  cli.parse
8
10
  cli.run
9
- rescue => e
11
+ rescue StandardError => e
10
12
  raise e if $DEBUG
11
- STDERR.puts e.message
12
- STDERR.puts e.backtrace.join("\n")
13
+
14
+ warn e.message
15
+ warn e.backtrace.join("\n")
13
16
  exit 1
14
17
  end
@@ -6,10 +6,10 @@ module Cloudmunda
6
6
  def self.create(audience_url: Cloudmunda.audience)
7
7
  uri = Cloudmunda.auth_url
8
8
  payload = {
9
- "grant_type":"client_credentials",
10
- "audience": audience_url,
11
- "client_id": Cloudmunda.client_id,
12
- "client_secret": Cloudmunda.client_secret
9
+ grant_type: 'client_credentials',
10
+ audience: audience_url,
11
+ client_id: Cloudmunda.client_id,
12
+ client_secret: Cloudmunda.client_secret
13
13
  }
14
14
 
15
15
  create_by_uri(uri: uri, payload: payload)
@@ -15,7 +15,7 @@ module Cloudmunda
15
15
 
16
16
  def self.headers
17
17
  {
18
- authorization: "Basic " + Base64.strict_encode64("#{Cloudmunda.client_id}:#{Cloudmunda.client_secret}"),
18
+ authorization: "Basic #{Base64.strict_encode64("#{Cloudmunda.client_id}:#{Cloudmunda.client_secret}")}"
19
19
  }
20
20
  end
21
21
 
@@ -26,4 +26,4 @@ module Cloudmunda
26
26
  end
27
27
  end
28
28
  end
29
- end
29
+ end
@@ -7,13 +7,9 @@ module Cloudmunda
7
7
  class OAuthResource < OpenStruct
8
8
  def self.create_by_uri(uri:, payload:)
9
9
  raw_item = Cloudmunda::API::Client.post(uri, payload)
10
- raw_item = {} if raw_item == ""
10
+ raw_item = {} if raw_item == ''
11
11
  new(raw_item)
12
12
  end
13
-
14
- def initialize(raw)
15
- super(raw)
16
- end
17
13
  end
18
14
  end
19
15
  end
@@ -1,4 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'api/o_auth_resource'
2
4
  require_relative 'api/access_token'
3
5
  require_relative 'api/client'
4
-
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'supervisor'
2
4
 
3
5
  module Cloudmunda
4
6
  class Launcher
5
-
6
7
  attr_reader :supervisor
7
8
 
8
9
  def initialize
@@ -1,9 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Cloudmunda
2
4
  class Processor
3
-
4
5
  attr_reader :client, :worker_class, :busy_count, :timer
5
6
 
6
- def initialize(client: ::Cloudmunda.client, worker_class:)
7
+ def initialize(worker_class:, client: ::Cloudmunda.client)
7
8
  @client = client
8
9
  @worker_class = worker_class
9
10
  @busy_count = ::Concurrent::AtomicFixnum.new(0)
@@ -54,11 +55,11 @@ module Cloudmunda
54
55
  worker.complete_job(job)
55
56
 
56
57
  logger.info "class=#{worker_class} jid=#{job.key} Done processing #{job.type}"
57
- rescue => exception
58
- logger.info "class=#{worker_class} jid=#{job.key} Failed processing #{job.type}: #{exception.message}"
58
+ rescue StandardError => e
59
+ logger.info "class=#{worker_class} jid=#{job.key} Failed processing #{job.type}: #{e.message}"
59
60
 
60
- worker.fail_job(job, reason: exception.message)
61
- raise exception
61
+ worker.fail_job(job, reason: e.message)
62
+ raise e
62
63
  ensure
63
64
  busy_count.decrement
64
65
  end
@@ -70,7 +71,7 @@ module Cloudmunda
70
71
  worker: worker_name,
71
72
  timeout: worker_timeout * 1000,
72
73
  maxJobsToActivate: max_jobs_to_activate,
73
- fetchVariable: worker_variables_to_fetch,
74
+ fetchVariable: worker_variables_to_fetch
74
75
  )
75
76
  end
76
77
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'processor'
2
4
 
3
5
  module Cloudmunda
@@ -7,14 +9,20 @@ module Cloudmunda
7
9
  end
8
10
 
9
11
  def start
10
- @processors = workers.map do |worker_class|
12
+ workers.each do |worker_class|
13
+ if ::Cloudmunda.env == 'development' && !worker_class.get_runs_in_development
14
+ logger.info "Not starting a processor for worker #{worker_class.get_type} as it doesn't run in development."
15
+ next
16
+ end
17
+
18
+ logger.info "Starting a processor for worker #{worker_class.get_type}"
11
19
  processor = ::Cloudmunda::Processor.new(worker_class: worker_class)
12
- processor.start
20
+ @processors << processor.start
13
21
  end
14
22
  end
15
23
 
16
24
  def quiet
17
- logger.info "Terminating workers"
25
+ logger.info 'Terminating workers'
18
26
  @processors.each(&:stop)
19
27
  end
20
28
 
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
 
3
5
  module Cloudmunda
4
6
  module Worker
5
- attr_accessor :client, :type, :max_jobs_to_activate, :poll_interval, :timeout, :variables
7
+ attr_accessor :client, :type, :max_jobs_to_activate, :poll_interval, :timeout, :variables, :runs_in_development
6
8
 
7
9
  def self.included(base)
8
10
  base.extend(ClassMethods)
@@ -17,18 +19,18 @@ module Cloudmunda
17
19
  logger.info "Completed processing job #{job.type} #{job.key}"
18
20
  client.complete_job(
19
21
  jobKey: job.key,
20
- variables: Hash(variables).to_json,
22
+ variables: Hash(variables).to_json
21
23
  )
22
24
  end
23
25
 
24
- def fail_job(job, reason: "")
26
+ def fail_job(job, reason: '')
25
27
  logger.error "Failed processing job #{job.type} #{job.key}: #{reason}"
26
28
  client.fail_job(
27
29
  jobKey: job.key,
28
30
  retries: job.retries - 1,
29
- errorMessage: reason,
31
+ errorMessage: reason
30
32
  )
31
- rescue => e
33
+ rescue StandardError => e
32
34
  logger.error e.message
33
35
  end
34
36
 
@@ -55,7 +57,7 @@ module Cloudmunda
55
57
  #
56
58
  # @return [String]
57
59
  def get_type
58
- @type
60
+ get_runs_in_development ? "#{@type}-dev" : @type
59
61
  end
60
62
 
61
63
  # Sets the maximum number of jobs to send to the worker for processing at once.
@@ -150,12 +152,33 @@ module Cloudmunda
150
152
  @variables.to_a
151
153
  end
152
154
 
155
+ # Sets if this service task runs in development mode or not.
156
+ #
157
+ # @example
158
+ # class MyWorker
159
+ # include ::Cloudmunda::Worker
160
+ # runs_in_development true
161
+ # end
162
+ #
163
+ # @param [Boolean] runs_in_development
164
+ # @return [Boolean]
165
+ def runs_in_development(runs_in_development)
166
+ @runs_in_development = runs_in_development
167
+ end
168
+
169
+ # Returns if this service task should run in development mode.
170
+ #
171
+ # @return [Boolean]
172
+ def get_runs_in_development
173
+ @runs_in_development || false
174
+ end
175
+
153
176
  # Returns the worker's name.
154
177
  #
155
178
  # @return [String]
156
179
  def get_name
157
180
  name = self.name.gsub(/::/, ':')
158
- name.gsub!(/([^A-Z:])([A-Z])/) { "#{$1}_#{$2}" }
181
+ name.gsub!(/([^A-Z:])([A-Z])/) { "#{Regexp.last_match(1)}_#{Regexp.last_match(2)}" }
159
182
  name.downcase
160
183
  end
161
184
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'singleton'
2
4
  require 'optparse'
3
5
  require 'fileutils'
@@ -40,46 +42,47 @@ module Cloudmunda
40
42
 
41
43
  def option_parser
42
44
  OptionParser.new.tap do |p|
43
- p.on "-e", "--env ENV", "Application environment" do |arg|
45
+ p.on '-e', '--env ENV', 'Application environment' do |arg|
44
46
  config.env = arg
45
47
  end
46
48
 
47
- p.on "-i", "--client-id CLIENT_ID", "Client ID" do |arg|
49
+ p.on '-i', '--client-id CLIENT_ID', 'Client ID' do |arg|
48
50
  config.client_id = arg
49
51
  end
50
52
 
51
- p.on "-r", "--require [PATH|DIR]", "Location of Rails application with workers or file to require" do |arg|
53
+ p.on '-r', '--require [PATH|DIR]', 'Location of Rails application with workers or file to require' do |arg|
52
54
  if !File.exist?(arg) ||
53
- (File.directory?(arg) && !File.exist?("#{arg}/config/application.rb"))
55
+ (File.directory?(arg) && !File.exist?("#{arg}/config/application.rb"))
54
56
  raise ArgumentError, "#{arg} is not a ruby file nor a rails application"
55
57
  else
56
58
  config.require = arg
57
59
  end
58
60
  end
59
61
 
60
- p.on "-s", "--client-secret CLIENT_SECRET", "Client Secret" do |arg|
62
+ p.on '-s', '--client-secret CLIENT_SECRET', 'Client Secret' do |arg|
61
63
  config.client_secret = arg
62
64
  end
63
65
 
64
- p.on "-u", "--zeebe-url ZEEBE_URL", "Zeebe URL" do |arg|
66
+ p.on '-u', '--zeebe-url ZEEBE_URL', 'Zeebe URL' do |arg|
65
67
  config.zeebe_url = arg
66
68
  end
67
69
 
68
- p.on "-U", "--zeebe-auth-url ZEEBE_AUTH_URL", "Zeebe Authorization Server URL" do |arg|
70
+ p.on '-U', '--zeebe-auth-url ZEEBE_AUTH_URL', 'Zeebe Authorization Server URL' do |arg|
69
71
  config.auth_url = arg
70
72
  end
71
73
 
72
- p.on "-a", "--audience URL", "Zeebe Audience" do |arg|
74
+ p.on '-a', '--audience URL', 'Zeebe Audience' do |arg|
73
75
  config.audience = arg
74
76
  end
75
77
 
76
- p.on "-T", "--use-access-token STRING", "Zeebe Audience" do |arg|
78
+ p.on '-T', '--use-access-token STRING', 'Zeebe Audience' do |arg|
77
79
  config.use_access_token = arg.to_s.downcase == 'true'
78
80
  end
79
81
 
80
- p.on "-t", "--timeout NUM", "Shutdown timeout" do |arg|
82
+ p.on '-t', '--timeout NUM', 'Shutdown timeout' do |arg|
81
83
  timeout = Integer(arg)
82
- raise ArgumentError, "timeout must be a positive integer" if timeout <= 0
84
+ raise ArgumentError, 'timeout must be a positive integer' if timeout <= 0
85
+
83
86
  config.timeout = timeout
84
87
  end
85
88
 
@@ -87,13 +90,13 @@ module Cloudmunda
87
90
  # ::Cloudmuna.logger.level = ::Logger::DEBUG
88
91
  # end
89
92
 
90
- p.on "-V", "--version", "Print version and exit" do |arg|
93
+ p.on '-V', '--version', 'Print version and exit' do |_arg|
91
94
  puts "Cloudmunda #{::Cloudmunda::VERSION}"
92
95
  exit(0)
93
96
  end
94
97
 
95
- p.banner = "Usage: cloudmunda [options]"
96
- p.on_tail "-h", "--help", "Show help" do
98
+ p.banner = 'Usage: cloudmunda [options]'
99
+ p.on_tail '-h', '--help', 'Show help' do
97
100
  puts p
98
101
 
99
102
  exit(1)
@@ -102,18 +105,16 @@ module Cloudmunda
102
105
  end
103
106
 
104
107
  def boot
105
- ENV["RACK_ENV"] = ENV["RAILS_ENV"] = config.env
108
+ ENV['RACK_ENV'] = ENV['RAILS_ENV'] = config.env
106
109
 
107
110
  if File.directory?(config.require)
108
111
  require 'rails'
109
- if ::Rails::VERSION::MAJOR < 6
110
- raise "Cloudmunda does not supports this version of Rails"
111
- else
112
- require File.expand_path("#{config.require}/config/environment.rb")
113
- Dir[Rails.root.join('app/jobs/**/*.rb')].each { |f| require f }
112
+ raise 'Cloudmunda does not supports this version of Rails' if ::Rails::VERSION::MAJOR < 6
114
113
 
115
- logger.info "Booted Rails #{::Rails.version} application in #{config.env} environment"
116
- end
114
+ require File.expand_path("#{config.require}/config/environment.rb")
115
+ Dir[Rails.root.join('app/jobs/**/*.rb')].sort.each { |f| require f }
116
+
117
+ logger.info "Booted Rails #{::Rails.version} application in #{config.env} environment"
117
118
  else
118
119
  require config.require
119
120
  end
@@ -122,21 +123,19 @@ module Cloudmunda
122
123
  def launch(self_read)
123
124
  @launcher = ::Cloudmunda::Launcher.new
124
125
 
125
- if config.env == "development" && $stdout.tty?
126
- logger.info "Starting processing, hit Ctrl-C to stop"
127
- end
126
+ logger.info 'Starting processing, hit Ctrl-C to stop' if config.env == 'development' && $stdout.tty?
128
127
 
129
128
  begin
130
129
  launcher.start
131
130
 
132
- while readable_io = IO.select([self_read])
131
+ while (readable_io = IO.select([self_read]))
133
132
  signal = readable_io.first[0].gets.strip
134
133
  handle_signal(signal)
135
134
  end
136
135
  rescue Interrupt
137
- logger.info "Shutting down"
136
+ logger.info 'Shutting down'
138
137
  launcher.stop
139
- logger.info "Bye!"
138
+ logger.info 'Bye!'
140
139
 
141
140
  exit(0)
142
141
  end
@@ -153,8 +152,8 @@ module Cloudmunda
153
152
 
154
153
  def signal_handlers
155
154
  {
156
- "INT" => ->(cli) { raise Interrupt },
157
- "TERM" => ->(cli) { raise Interrupt },
155
+ 'INT' => ->(_cli) { raise Interrupt },
156
+ 'TERM' => ->(_cli) { raise Interrupt }
158
157
  }
159
158
  end
160
159
 
@@ -1,6 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Cloudmunda
2
4
  module Configuration
3
- VALID_OPTIONS_KEYS = %i[env require logger timeout zeebe_url auth_url client_id client_secret audience graphql_url].freeze
5
+ VALID_OPTIONS_KEYS = %i[env require logger timeout zeebe_url auth_url client_id client_secret audience
6
+ graphql_url].freeze
4
7
  attr_accessor(*VALID_OPTIONS_KEYS)
5
8
 
6
9
  # Sets all configuration options to their default values when this module is extended.
@@ -20,10 +23,10 @@ module Cloudmunda
20
23
 
21
24
  # Resets all configuration options to the defaults.
22
25
  def reset
23
- @env = ENV["APP_ENV"] || ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development"
26
+ @env = ENV['APP_ENV'] || ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'development'
24
27
  @logger = Logger.new($stdout)
25
- @require = "."
26
- @timeout = 30
28
+ @require = '.'
29
+ @timeout = @env == 'development' ? 5 : 30
27
30
  @zeebe_url = ENV['ZEEBE_URL']
28
31
  @auth_url = ENV['ZEEBE_AUTHORIZATION_SERVER_URL']
29
32
  @client_id = ENV['ZEEBE_CLIENT_ID']
@@ -32,4 +35,4 @@ module Cloudmunda
32
35
  @graphql_url = ENV['GRAPHQL_URL']
33
36
  end
34
37
  end
35
- end
38
+ end
@@ -14,8 +14,9 @@ module Cloudmunda
14
14
  end
15
15
 
16
16
  def self.headers
17
+ access_token = Cloudmunda::API::AccessToken.create(audience_url: 'tasklist.camunda.io').access_token
17
18
  {
18
- authorization: "Bearer " + Cloudmunda::API::AccessToken.create(audience_url: 'tasklist.camunda.io').access_token
19
+ authorization: "Bearer #{access_token}"
19
20
  }
20
21
  end
21
22
 
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'graphql/client'
2
- require_relative 'graphql/user_tasks'
4
+ require_relative 'graphql/user_tasks'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Cloudmunda
2
4
  module Loggable
3
5
  def logger
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Cloudmunda
4
- VERSION = "0.1.1"
4
+ VERSION = '0.1.4'
5
5
  end
@@ -1,9 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'zeebe/client'
2
4
 
3
5
  module Cloudmunda
4
6
  module Zeebe
5
7
  class Client
6
-
7
8
  attr_reader :client
8
9
 
9
10
  def initialize(url: ::Cloudmunda.zeebe_url)
@@ -12,83 +13,71 @@ module Cloudmunda
12
13
 
13
14
  def activate_jobs(params = {})
14
15
  run(:activate_jobs,
15
- ::Zeebe::Client::GatewayProtocol::ActivateJobsRequest.new(params)
16
- )
16
+ ::Zeebe::Client::GatewayProtocol::ActivateJobsRequest.new(params))
17
17
  end
18
18
 
19
19
  def cancel_workflow_instance(params = {})
20
20
  run(:cancel_workflow_instance,
21
- ::Zeebe::Client::GatewayProtocol::CancelWorkflowInstanceRequest.new(params)
22
- )
21
+ ::Zeebe::Client::GatewayProtocol::CancelWorkflowInstanceRequest.new(params))
23
22
  end
24
23
 
25
24
  def complete_job(params = {})
26
25
  run(:complete_job,
27
- ::Zeebe::Client::GatewayProtocol::CompleteJobRequest.new(params)
28
- )
26
+ ::Zeebe::Client::GatewayProtocol::CompleteJobRequest.new(params))
29
27
  end
30
28
 
31
29
  def create_process_instance(params = {})
32
30
  run(:create_process_instance,
33
- ::Zeebe::Client::GatewayProtocol::CreateProcessInstanceRequest.new(params)
34
- )
31
+ ::Zeebe::Client::GatewayProtocol::CreateProcessInstanceRequest.new(params))
35
32
  end
36
33
 
37
34
  def deploy_process(params = {})
38
35
  run(:deploy_process,
39
- ::Zeebe::Client::GatewayProtocol::DeployProcessRequest.new(params)
40
- )
36
+ ::Zeebe::Client::GatewayProtocol::DeployProcessRequest.new(params))
41
37
  end
42
38
 
43
39
  def fail_job(params = {})
44
40
  run(:fail_job,
45
- ::Zeebe::Client::GatewayProtocol::FailJobRequest.new(params)
46
- )
41
+ ::Zeebe::Client::GatewayProtocol::FailJobRequest.new(params))
47
42
  end
48
43
 
49
44
  def throw_error(params = {})
50
45
  run(:throw_error,
51
- ::Zeebe::Client::GatewayProtocol::ThrowErrorRequest.new(params)
52
- )
46
+ ::Zeebe::Client::GatewayProtocol::ThrowErrorRequest.new(params))
53
47
  end
54
48
 
55
49
  def publish_message(params = {})
56
50
  run(:publish_message,
57
- ::Zeebe::Client::GatewayProtocol::PublishMessageRequest.new(params)
58
- )
51
+ ::Zeebe::Client::GatewayProtocol::PublishMessageRequest.new(params))
59
52
  end
60
53
 
61
54
  def resolve_incident(params = {})
62
55
  run(:resolve_incident,
63
- ::Zeebe::Client::GatewayProtocol::ResolveIncidentRequest.new(params)
64
- )
56
+ ::Zeebe::Client::GatewayProtocol::ResolveIncidentRequest.new(params))
65
57
  end
66
58
 
67
59
  def set_variables(params = {})
68
60
  run(:set_variables,
69
- ::Zeebe::Client::GatewayProtocol::SetVariablesRequest.new(params)
70
- )
61
+ ::Zeebe::Client::GatewayProtocol::SetVariablesRequest.new(params))
71
62
  end
72
63
 
73
64
  def topology(params = {})
74
65
  run(:topology,
75
- ::Zeebe::Client::GatewayProtocol::TopologyRequest.new(params)
76
- )
66
+ ::Zeebe::Client::GatewayProtocol::TopologyRequest.new(params))
77
67
  end
78
68
 
79
69
  def update_job_retries(params = {})
80
70
  run(:update_job_retries,
81
- ::Zeebe::Client::GatewayProtocol::UpdateJobRetriesRequest.new(params)
82
- )
71
+ ::Zeebe::Client::GatewayProtocol::UpdateJobRetriesRequest.new(params))
83
72
  end
84
73
 
85
74
  private
86
75
 
87
76
  def run(method, params = {})
88
77
  client.public_send(method, params)
89
- rescue ::GRPC::Unavailable => exception
90
- logger.error exception.message
91
- raise exception
78
+ rescue ::GRPC::Unavailable => e
79
+ logger.error e.message
80
+ raise e
92
81
  end
93
82
 
94
83
  def logger
@@ -97,7 +86,7 @@ module Cloudmunda
97
86
 
98
87
  def authentication_headers
99
88
  token = Cloudmunda::API::AccessToken.create
100
- channel_creds = GRPC::Core::ChannelCredentials.new()
89
+ channel_creds = GRPC::Core::ChannelCredentials.new
101
90
  auth_proc = proc { { 'authorization' => "Bearer #{token.access_token}" } }
102
91
  call_creds = GRPC::Core::CallCredentials.new(auth_proc)
103
92
  channel_creds.compose(call_creds)
@@ -1 +1,3 @@
1
- require_relative 'zeebe/client'
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'zeebe/client'
data/lib/cloudmunda.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'concurrent'
4
4
 
5
- require_relative "cloudmunda/version"
5
+ require_relative 'cloudmunda/version'
6
6
  require_relative 'cloudmunda/loggable'
7
7
  require_relative 'cloudmunda/cli/worker'
8
8
  require_relative 'cloudmunda/configuration'
@@ -19,7 +19,7 @@ module Cloudmunda
19
19
  end
20
20
 
21
21
  def self.register_worker(worker)
22
- self.workers << worker
22
+ workers << worker
23
23
  end
24
24
 
25
25
  def self.workers