right_chimp 2.0.1 → 2.0.2

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.
data/Gemfile.lock CHANGED
@@ -1,18 +1,34 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- right_chimp (2.0)
4
+ right_chimp (2.0.2)
5
5
  nokogiri (~> 1.5.9)
6
6
  progressbar (~> 0.11.0)
7
7
  rake (~> 0.9.2.2)
8
+ right_api_client (> 1.5)
8
9
 
9
10
  GEM
10
11
  remote: https://rubygems.org/
11
12
  specs:
12
13
  diff-lcs (1.1.3)
14
+ domain_name (0.5.24)
15
+ unf (>= 0.0.5, < 1.0.0)
16
+ http-cookie (1.0.2)
17
+ domain_name (~> 0.5)
18
+ json (1.8.2)
19
+ mime-types (1.25.1)
20
+ netrc (0.10.3)
13
21
  nokogiri (1.5.11)
14
22
  progressbar (0.11.0)
15
23
  rake (0.9.2.2)
24
+ rest-client (1.8.0)
25
+ http-cookie (>= 1.0.2, < 2.0)
26
+ mime-types (>= 1.16, < 3.0)
27
+ netrc (~> 0.7)
28
+ right_api_client (1.5.26)
29
+ json (~> 1.0)
30
+ mime-types (~> 1.0)
31
+ rest-client (~> 1.6)
16
32
  rspec (2.6.0)
17
33
  rspec-core (~> 2.6.0)
18
34
  rspec-expectations (~> 2.6.0)
@@ -21,6 +37,9 @@ GEM
21
37
  rspec-expectations (2.6.0)
22
38
  diff-lcs (~> 1.1.2)
23
39
  rspec-mocks (2.6.0)
40
+ unf (0.1.4)
41
+ unf_ext
42
+ unf_ext (0.0.7.1)
24
43
 
25
44
  PLATFORMS
26
45
  ruby
data/chimp.gemspec CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |s|
23
23
  s.add_dependency "rake", "~> 0.9.2.2"
24
24
  s.add_dependency "nokogiri", "~> 1.5.9"
25
25
  s.add_dependency "progressbar", "~> 0.11.0"
26
+ s.add_dependency "right_api_client", "> 1.5"
26
27
 
27
28
  s.add_development_dependency "rspec", "~> 2.6.0"
28
29
  end
@@ -1,5 +1,4 @@
1
- #
2
- # The Chimp class encapsulates the command-line program logic
1
+ #The Chimp class encapsulates the command-line program logic
3
2
  #
4
3
  module Chimp
5
4
  class Chimp
@@ -18,6 +17,7 @@ module Chimp
18
17
  # Set up reasonable defaults
19
18
  #
20
19
  def initialize
20
+
21
21
  #
22
22
  # General configuration options
23
23
  #
@@ -166,9 +166,9 @@ module Chimp
166
166
  if Chimp.failure
167
167
  #This is the failure point when executing standalone
168
168
  Log.error "##################################################"
169
- Log.error " API CALL FAILED FOR:"
170
- Log.error " chimp #{@cli_args} "
171
- Log.error " Run manually!"
169
+ Log.error "[#{Chimp.get_job_uuid}] API CALL FAILED FOR:"
170
+ Log.error "[#{Chimp.get_job_uuid}] chimp #{@cli_args} "
171
+ Log.error "[#{Chimp.get_job_uuid}] Run manually!"
172
172
  Log.error "##################################################"
173
173
  exit 1
174
174
  end
@@ -215,13 +215,16 @@ module Chimp
215
215
  # Then we filter on all the instances by this href
216
216
  all_instances = Connection.all_instances() unless arrays_hrefs.empty?
217
217
  if all_instances.nil?
218
- Log.debug "No results from API query"
218
+ Log.debug "[#{Chimp.get_job_uuid}] No results from API query"
219
219
  else
220
220
  arrays_hrefs.each { |href|
221
221
  @servers += all_instances.select {|s|
222
222
  s['links']['incarnator']['href'] == href
223
223
  }
224
224
  }
225
+
226
+ Log.debug "[#{Chimp.get_job_uuid}] Found #{@servers.count} servers for that array query"
227
+
225
228
  end
226
229
  # The result will be stored (not returned) into @servers
227
230
  end
@@ -269,8 +272,12 @@ module Chimp
269
272
  s=Executable.new
270
273
  s.params['right_script']['href']="right_script_href=/api/right_scripts/"+script_number
271
274
  #Make an 1.5 call to extract name, by loading resource.
272
- Log.debug "Making API 1.5 call : client.resource(#{s.params['right_script']['href'].scan(/=(.*)/).last.last})"
273
- the_name = Connection.client.resource(s.params['right_script']['href'].scan(/=(.*)/).last.last).name
275
+ Log.debug "[#{Chimp.get_job_uuid}] Making API 1.5 call : client.resource(#{s.params['right_script']['href'].scan(/=(.*)/).last.last})"
276
+ begin
277
+ the_name = Connection.client.resource(s.params['right_script']['href'].scan(/=(.*)/).last.last).name
278
+ rescue
279
+ Log.error "[#{Chimp.get_job_uuid}] Failed to make 1.5 call for rightscript href"
280
+ end
274
281
  s.params['right_script']['name'] = the_name
275
282
  @executable=s
276
283
  else
@@ -493,15 +500,15 @@ module Chimp
493
500
 
494
501
  if servers.nil?
495
502
  if @ignore_errors
496
- Log.warn "[#{Chimp.get_job_uuid}]Tag query returned no results: #{tags.join(" ")}"
503
+ Log.warn "[#{Chimp.get_job_uuid}] Tag query returned no results: #{tags.join(" ")}"
497
504
  else
498
- raise "[#{Chimp.get_job_uuid}]Tag query returned no results: #{tags.join(" ")}\n"
505
+ raise "[#{Chimp.get_job_uuid}] Tag query returned no results: #{tags.join(" ")}\n"
499
506
  end
500
507
  elsif servers.empty?
501
508
  if @ignore_errors
502
- Log.warn "[#{Chimp.get_job_uuid}]Tag query returned no results: #{tags.join(" ")}"
509
+ Log.warn "[#{Chimp.get_job_uuid}] Tag query returned no results: #{tags.join(" ")}"
503
510
  else
504
- raise "[#{Chimp.get_job_uuid}]Tag query returned no results: #{tags.join(" ")}\n"
511
+ raise "[#{Chimp.get_job_uuid}] Tag query returned no results: #{tags.join(" ")}\n"
505
512
  end
506
513
  end
507
514
 
@@ -532,6 +539,8 @@ module Chimp
532
539
  Log.error "[#{Chimp.get_job_uuid}] #{servers.size - matching_servers.size} instances didnt match tag selection."
533
540
  Log.error "[#{Chimp.get_job_uuid}] #{tags.join(" ")}"
534
541
  Chimp.set_failure(true)
542
+ Log.error "[#{Chimp.get_job_uuid}] Set failure to true because of discrepancy"
543
+
535
544
  servers = []
536
545
  else
537
546
  raise "[#{Chimp.get_job_uuid}] #{servers.size - matching_servers.size} instances didnt match tag selection"
@@ -564,7 +573,7 @@ module Chimp
564
573
  names.each do |array_name|
565
574
  # Find if arrays exist, if not raise warning.
566
575
  # One API call per array
567
- Log.debug "Making API 1.5 call: client.server_arrays.index(:filter => [#{array_name}])"
576
+ Log.debug "[#{Chimp.get_job_uuid}] Making API 1.5 call: client.server_arrays.index(:filter => [#{array_name}])"
568
577
  result = Connection.client.server_arrays.index(:filter => ["name==#{array_name}"])
569
578
  # Result is an array with all the server arrays
570
579
  if result.size != 0
@@ -591,7 +600,7 @@ module Chimp
591
600
  #
592
601
  def detect_server_template(servers)
593
602
 
594
- Log.debug "Looking for server template"
603
+ Log.debug "[#{Chimp.get_job_uuid}] Looking for server template"
595
604
  st = []
596
605
  if servers[0].nil?
597
606
  return (st)
@@ -605,7 +614,7 @@ module Chimp
605
614
  # We return an array of server_template resources
606
615
  # of the type [ st_href, st object ]
607
616
  #
608
- Log.debug "Found server templates"
617
+ Log.debug "[#{Chimp.get_job_uuid}] Found server templates"
609
618
 
610
619
  return(st)
611
620
  end
@@ -615,7 +624,7 @@ module Chimp
615
624
  # the desired script against all server templates or the script URL
616
625
  #
617
626
  def detect_right_script(st, script)
618
- Log.debug "Looking for rightscript"
627
+ Log.debug "[#{Chimp.get_job_uuid}] Looking for rightscript"
619
628
  executable = nil
620
629
  # In the event that chimpd find @op_scripts as nil, set it as an array.
621
630
  if @op_scripts.nil?
@@ -652,7 +661,7 @@ module Chimp
652
661
  s.params['right_script']['name'] = script_name
653
662
  @script_to_run = s
654
663
 
655
- Log.debug "Found rightscript"
664
+ Log.debug "[#{Chimp.get_job_uuid}] Found rightscript"
656
665
  return @script_to_run
657
666
  end
658
667
  end
@@ -690,12 +699,16 @@ module Chimp
690
699
  def search_for_script_in_sts(script, st)
691
700
  # Loop and look inside every st
692
701
  st.each do |s|
693
- Log.debug "Making API 1.5 call: client.resource(#{s[1]['href']})"
694
- temp=Connection.client.resource(s[1]['href'])
702
+ Log.debug "[#{Chimp.get_job_uuid}] Making API 1.5 call: client.resource(#{s[1]['href']})"
703
+ begin
704
+ temp=Connection.client.resource(s[1]['href'])
705
+ rescue
706
+ Log.error "[#{Chimp.get_job_uuid}] Failed to load href for ST"
707
+ end
695
708
  temp.runnable_bindings.index.each do |x|
696
709
  # Look for first match
697
710
  if x.raw['right_script']['name'].downcase.include?(script.downcase)
698
- Log.debug "Found requested righscript: #{script}"
711
+ Log.debug "[#{Chimp.get_job_uuid}] Found requested righscript: #{script}"
699
712
  # Provide the name + href
700
713
  s = Executable.new
701
714
  s.params['right_script']['href'] = x.raw['links'].find{|i| i['rel'] == 'right_script'}['href']
@@ -769,14 +782,20 @@ module Chimp
769
782
  # "kind"=>"cm#server_template",
770
783
  # "version"=>5,
771
784
  # "href"=>"/api/server_templates/351930003"} ]
772
- Log.debug "Making API 1.5 call: client.resource"
773
- temp=Connection.client.resource(s[1]['href'])
774
- temp.runnable_bindings.index.each do |x|
775
- # only add the operational ones
776
- if x.sequence == "operational"
777
- name = x.raw['right_script']['name']
778
- op_scripts.push([name, x])
785
+ Log.debug "[#{Chimp.get_job_uuid}] Making API 1.5 call: client.resource (ST)"
786
+ begin
787
+ temp=Connection.client.resource(s[1]['href'])
788
+ Log.debug "[#{Chimp.get_job_uuid}] API 1.5 call client.resource (ST) complete"
789
+ temp.runnable_bindings.index.each do |x|
790
+ # only add the operational ones
791
+ if x.sequence == "operational"
792
+ name = x.raw['right_script']['name']
793
+ op_scripts.push([name, x])
794
+ end
779
795
  end
796
+ rescue Exception => e
797
+ Log.error "[#{Chimp.get_job_uuid}] API 1.5 call client.resource (ST) failed"
798
+ Log.error "[#{Chimp.get_job_uuid}] #{e.message}"
780
799
  end
781
800
  end
782
801
 
@@ -796,7 +815,7 @@ module Chimp
796
815
  def generate_jobs(queue_servers, queue_template, queue_executable)
797
816
  counter = 0
798
817
  tasks = []
799
- Log.debug "Loading queue..."
818
+ Log.debug "[#{Chimp.get_job_uuid}] Loading queue..."
800
819
  #
801
820
  # Configure group
802
821
  #
@@ -807,7 +826,7 @@ module Chimp
807
826
  #
808
827
  # Process Server selection
809
828
  #
810
- Log.debug("Processing server selection")
829
+ Log.debug("[#{Chimp.get_job_uuid}] Processing server selection for task creation")
811
830
 
812
831
  queue_servers.sort! { |a,b| a['name'] <=> b['name'] }
813
832
  queue_servers.each do |server|
@@ -853,8 +872,13 @@ module Chimp
853
872
  s.params['datacenter'] = server['links']['datacenter']['name']
854
873
 
855
874
  # This will be useful for later on when we need to run scripts
856
- Log.debug "Making API 1.5 call: client.resource"
857
- s.object = Connection.client.resource(server['href'])
875
+ Log.debug "[#{Chimp.get_job_uuid}] Making API 1.5 call: client.resource (SERVER) for task creation"
876
+ begin
877
+ s.object = Connection.client.resource(server['href'])
878
+ Log.debug "[#{Chimp.get_job_uuid}] Making API 1.5 call: client.resource (SERVER) for task creation COMPLETE"
879
+ rescue
880
+ Log.error "[#{Chimp.get_job_uuid}] Failed to load server href via API1.5 for task creation"
881
+ end
858
882
 
859
883
  e = nil
860
884
 
@@ -892,6 +916,7 @@ module Chimp
892
916
  e.quiet = @@quiet
893
917
  e.status = Executor::STATUS_HOLDING if @hold
894
918
 
919
+ Log.debug "[#{Chimp.get_job_uuid}] Pushing task (end of control)"
895
920
  tasks.push(e)
896
921
  end
897
922
  end
@@ -1028,17 +1053,6 @@ module Chimp
1028
1053
  puts "chimp run complete"
1029
1054
  end
1030
1055
 
1031
- #
1032
- # Allow the set/retrieval of job_uuid from outside
1033
- #
1034
- def self.get_job_uuid
1035
- @job_uuid
1036
- end
1037
-
1038
- def self.set_job_uuid(value)
1039
- @job_uuid = value
1040
- end
1041
-
1042
1056
  #
1043
1057
  # Completely process a non-interactive chimp object command
1044
1058
  # This is used by chimpd, when processing a task.
@@ -1049,12 +1063,20 @@ module Chimp
1049
1063
 
1050
1064
  Log.debug "[#{Chimp.get_job_uuid}] Processing task"
1051
1065
 
1066
+ Log.debug "[#{Chimp.get_job_uuid}] Trying to get array_info" unless Chimp.failure
1052
1067
  get_array_info unless Chimp.failure
1068
+
1069
+ Log.debug "[#{Chimp.get_job_uuid}] Trying to get server_info" unless Chimp.failure
1053
1070
  get_server_info unless Chimp.failure
1071
+
1072
+ Log.debug "[#{Chimp.get_job_uuid}] Trying to get template_info" unless Chimp.failure
1054
1073
  get_template_info unless Chimp.failure
1074
+
1075
+ Log.debug "[#{Chimp.get_job_uuid}] Trying to get executable_info" unless Chimp.failure
1055
1076
  get_executable_info unless Chimp.failure
1056
1077
 
1057
1078
  if Chimp.failure
1079
+
1058
1080
  Log.error "##################################################"
1059
1081
  Log.error "["+self.job_uuid+"] API CALL FAILED FOR:"
1060
1082
  Log.error "["+self.job_uuid+"] chimp #{@cli_args} "
@@ -1063,9 +1085,10 @@ module Chimp
1063
1085
  return []
1064
1086
  else
1065
1087
  if @servers.first.nil? or @executable.nil?
1066
- Log.warn "["+self.job_uuid+"] Nothing to do for \"chimp #{@cli_args}\"."
1088
+ Log.warn "[#{Chimp.get_job_uuid}] Nothing to do for \"chimp #{@cli_args}\"."
1067
1089
  return []
1068
1090
  else
1091
+ Log.debug "[#{Chimp.get_job_uuid}] Generating job..."
1069
1092
  return generate_jobs(@servers, @server_template, @executable)
1070
1093
  end
1071
1094
  end
@@ -1167,18 +1190,26 @@ module Chimp
1167
1190
  return 0
1168
1191
  end
1169
1192
 
1170
- def self.get_job_uuid
1171
- @job_uuid
1193
+ def self.set_job_uuid(value)
1194
+ #This is a current thread variable to avoid cross-talk between threads
1195
+ Thread.current[:job_uuid] = value
1172
1196
  end
1173
1197
 
1174
- def self.failure
1175
- return @failure
1198
+ def self.get_job_uuid
1199
+ return Thread.current[:job_uuid]
1176
1200
  end
1177
1201
 
1178
1202
  def self.set_failure(status)
1179
- @failure = status
1203
+ #This is a current thread variable to avoid cross-talk between threads
1204
+ Thread.current[:failure] = status
1205
+ end
1206
+
1207
+ def self.failure
1208
+ return Thread.current[:failure]
1180
1209
  end
1181
1210
 
1211
+
1212
+
1182
1213
  ####################################################
1183
1214
  #private
1184
1215
  ####################################################
@@ -239,8 +239,11 @@ module Chimp
239
239
  (1..n).each do |n|
240
240
  @threads ||=[]
241
241
  @threads << Thread.new {
242
+
242
243
  while true
243
244
  begin
245
+
246
+
244
247
  queued_request = @chimp_queue.pop
245
248
  group = queued_request.group
246
249
  queued_request.interactive = false
@@ -51,7 +51,7 @@ module Chimp
51
51
 
52
52
  @client = RightApi::Client.new(:email => creds[:user], :password => creds[:pass],
53
53
  :account_id => creds[:account], :api_url => creds[:api_url],
54
- :timeout => nil)
54
+ :timeout => 60, :enable_retry => true)
55
55
  rescue
56
56
  puts "##############################################################################"
57
57
  puts "Error: "
@@ -76,24 +76,28 @@ module Chimp
76
76
  #
77
77
  def self.all_instances()
78
78
  begin
79
+ Log.debug "[#{Chimp.get_job_uuid}] Requesting all instances"
80
+
79
81
  filters_list = "state=operational"
80
82
  filters = CGI::escape(filters_list)
81
83
 
82
84
  query="/api/instances?view=full&filter="+filters
83
85
 
84
- @all_instances = Connection.api16_call(query)
86
+ all_instances = Connection.api16_call(query)
85
87
 
86
88
  rescue Exception => e
87
- puts e.message
89
+ Log.error "[#{Chimp.get_job_uuid}] self.all_instaces"
90
+ Log.error "[#{Chimp.get_job_uuid}] #{e.message}"
88
91
  end
89
92
 
90
- return @all_instances
93
+ return all_instances
91
94
  end
92
95
 
93
96
  #
94
97
  # Returns every single operational instance in the account, matching the filters passed.
95
98
  #
96
99
  def self.instances(extra_filters)
100
+ Log.debug "[#{Chimp.get_job_uuid}] Requesting some instances"
97
101
  begin
98
102
  filters_list = "state=operational&"+extra_filters
99
103
  filters = CGI::escape(filters_list)
@@ -103,7 +107,8 @@ module Chimp
103
107
  instances = Connection.api16_call(query)
104
108
 
105
109
  rescue Exception => e
106
- puts e.message
110
+ Log.error "[#{Chimp.get_job_uuid}] self.instances"
111
+ Log.error "[#{Chimp.get_job_uuid}] #{e.message}"
107
112
  end
108
113
 
109
114
  return instances
@@ -114,7 +119,7 @@ module Chimp
114
119
  #
115
120
  def Connection.api16_call(query)
116
121
 
117
- @retry = true
122
+ Thread.current[:retry] = true
118
123
  retries = 5
119
124
  attempts = 0
120
125
  sleep_for = 20
@@ -128,56 +133,78 @@ module Chimp
128
133
  http = Net::HTTP.new(@endpoint, 443)
129
134
  http.use_ssl = true
130
135
 
131
- Log.debug "Querying API for: #{query}"
132
-
136
+ Log.debug "[#{Chimp.get_job_uuid}] Querying API for: #{query}"
133
137
 
134
138
  while attempts < retries
135
- if @retry
139
+ Log.debug "[#{Chimp.get_job_uuid}] Attempt is: #{attempts.to_s}"
140
+ Log.debug "[#{Chimp.get_job_uuid}] Retry is: #{Thread.current[:retry].to_s}"
141
+ if Thread.current[:retry]
136
142
  if attempts > 0
137
- Log.debug "Retrying..."
143
+ Log.debug "[#{Chimp.get_job_uuid}] Retrying..."
138
144
  sleep_time = sleep_for * attempts
139
145
  # Add a random amount to avoid staggering calls
140
146
  sleep_time += rand(15)
141
147
 
142
- Log.debug "Sleeping between retries for #{sleep_time}"
148
+ Log.debug "[#{Chimp.get_job_uuid}] Sleeping between retries for #{sleep_time}"
143
149
  sleep(sleep_time)
144
150
  end
145
151
 
146
- Log.debug "Attempt # #{attempts+1} at querying the API" unless attempts == 0
152
+ Log.debug "[#{Chimp.get_job_uuid}] Attempt # #{attempts+1} at querying the API" unless attempts == 0
147
153
 
148
154
  time = Benchmark.measure do
149
- @response = http.request(get)
150
- attempts += 1
155
+ begin
156
+ Log.debug "[#{Chimp.get_job_uuid}] HTTP Making http request"
157
+ Thread.current[:response] = http.request(get)
158
+ Log.debug "[#{Chimp.get_job_uuid}] HTTP Request complete"
159
+ attempts += 1
160
+ rescue Exception => e
161
+ Log.error "[#{Chimp.get_job_uuid}] Exception when making the HTTP request"
162
+ end
163
+
151
164
  end
152
165
 
153
- Log.debug "API Request time: #{time.real} seconds"
166
+ Log.debug "[#{Chimp.get_job_uuid}] API Request time: #{time.real} seconds"
154
167
  Log.debug "[#{Chimp.get_job_uuid}] API Query was: #{query}"
155
168
 
156
169
  # Validate API response
157
- instances = validate_response(@response, query)
170
+ Log.debug "[#{Chimp.get_job_uuid}] Validating..."
171
+ instances = validate_response(Thread.current[:response], query)
158
172
  else
159
173
  # We dont retry, exit the loop.
174
+ Log.debug "[#{Chimp.get_job_uuid}] Not retrying, exiting the loop."
175
+ Thread.current[:retry] = false
160
176
  break
161
177
  end
162
178
  end
163
179
 
164
180
  if attempts == retries
181
+
182
+ Log.error "[#{Chimp.get_job_uuid}] Api call failed more than #{retries} times."
183
+
165
184
  Chimp.set_failure(true)
185
+ Log.error "[#{Chimp.get_job_uuid}] Set failure to true because of max retries"
186
+
166
187
  instances = []
167
188
  raise "[#{Chimp.get_job_uuid}] Api call failed more than #{retries} times."
168
189
  end
169
190
 
170
191
  rescue Exception => e
171
- Log.debug "Catched exception on http request to the api"
172
- Log.debug "#{e.message}"
173
- Chimp.set_failure(true)
192
+ Log.error "[#{Chimp.get_job_uuid}] #{e.message}"
193
+ Log.error "[#{Chimp.get_job_uuid}] Catched exception on http request to the api, retrying"
194
+
195
+ # Failure to be set only on maximum retries
196
+ # Chimp.set_failure(true)
174
197
 
175
198
  instances = []
176
199
  attempts += 1
177
200
  retry
178
201
  end
179
202
 
180
- Log.debug "[#{Chimp.get_job_uuid}] #{instances.count} instances matching"
203
+ Log.debug "[#{Chimp.get_job_uuid}] API matched #{instances.count} instances" unless instances.nil?
204
+
205
+ if instances.nil?
206
+ Log.error "[#{Chimp.get_job_uuid}] instances is nil!"
207
+ end
181
208
 
182
209
  return instances
183
210
  end
@@ -187,8 +214,6 @@ module Chimp
187
214
  #
188
215
  def Connection.validate_response(response, query)
189
216
 
190
- #Log.debug "Validating API response"
191
-
192
217
  resp_code = response.code
193
218
  # handle response codes we want to work with (200 or 404) and verify json hash from github
194
219
  if resp_code == "200" || resp_code == "404"
@@ -199,48 +224,52 @@ module Chimp
199
224
  if result.is_a?(Array)
200
225
  # Operate on a 200 or 404 with valid JSON response, catch error messages from github in json hash
201
226
  if result.include? 'message'
202
- raise "[CONTENT] Error: Problem with API request: '#{resp_code} #{response.body}'" #we know this checkout will fail (branch input, repo name, etc. wrong)
227
+ Log.error "[#{Chimp.get_job_uuid}] [CONTENT] Errot: Problem with API request: '#{resp_code} #{response.body}'."
228
+ raise "[#{Chimp.get_job_uuid}] [CONTENT] Error: Problem with API request: '#{resp_code} #{response.body}'"
203
229
  end
204
230
  if result.include? 'Error'
205
- Log.error "[CONTENT] Warning BAD CONTENT: Response content: '#{response.body}'."
231
+ Log.error "[#{Chimp.get_job_uuid}] [CONTENT] Warning BAD CONTENT: Response content: '#{response.body}'."
206
232
  return {} # Return an empty json
207
233
  end
208
- # extract the most recent commit on designated branch from hash
234
+
209
235
  # Log.debug "We received a valid JSON response, therefore returning it."
210
- @retry = false
236
+
237
+ Thread.current[:retry] = false
238
+
239
+ Log.debug "[#{Chimp.get_job_uuid}] Validated and returning size of #{result.size} "
211
240
  return result
212
241
  end
213
242
  rescue JSON::ParserError
214
- Log.error "Warning: Expected JSON response but was unable to parse!"
243
+ Log.error "[#{Chimp.get_job_uuid}] Warning: Expected JSON response but was unable to parse!"
215
244
  #Log.error "Warning: #{response.body}!"
216
245
 
217
246
  return {} # Return an empty result
218
247
  end
219
248
 
220
249
  elsif resp_code == "502"
221
- Log.debug "Api returned code: 502"
222
- Log.debug "Query was: #{query}"
250
+ Log.debug "[#{Chimp.get_job_uuid}] Api returned code: 502"
251
+ Log.debug "[#{Chimp.get_job_uuid}] Query was: #{query}"
223
252
 
224
- @retry = true
253
+ Thread.current[:retry] = true
225
254
 
226
255
  elsif resp_code == "500"
227
- Log.debug "Api returned code: 500"
228
- Log.debug "Query was: #{query}"
256
+ Log.debug "[#{Chimp.get_job_uuid}] Api returned code: 500"
257
+ Log.debug "[#{Chimp.get_job_uuid}] Query was: #{query}"
229
258
 
230
- @retry = true
259
+ Thread.current[:retry] = true
231
260
 
232
261
  elsif resp_code == "504"
233
- Log.debug "Api returned code: 504"
234
- Log.debug "Query was: #{query}"
262
+ Log.debug "[#{Chimp.get_job_uuid}] Api returned code: 504"
263
+ Log.debug "[#{Chimp.get_job_uuid}] Query was: #{query}"
235
264
 
236
- @retry = true
265
+ Thread.current[:retry] = true
237
266
 
238
267
  else
239
268
  # We are here because response was not 200 or 404
240
269
  # Any http response code that is not 200 / 404 / 500 / 502 should error out.
241
- Log.error "ERROR: Got '#{resp_code} #{response.msg}' response from api! "
242
- Log.error "Query was: #{query}"
243
- raise "Couldnt contact the API"
270
+ Log.error "[#{Chimp.get_job_uuid}] ERROR: Got '#{resp_code} #{response.msg}' response from api! "
271
+ Log.error "[#{Chimp.get_job_uuid}] Query was: #{query}"
272
+ raise "[#{Chimp.get_job_uuid}] Couldnt contact the API"
244
273
  return {}
245
274
  end
246
275
  end
@@ -386,6 +415,7 @@ module Chimp
386
415
  params+="&ignore_lock=true"
387
416
  end
388
417
  # self is the actual Server object
418
+ Log.debug "[#{Chimp.get_job_uuid}] Running executable"
389
419
  task = self.object.run_executable(script_href + params)
390
420
  return task
391
421
  end
@@ -1,3 +1,3 @@
1
1
  module Chimp
2
- VERSION = "2.0.1"
2
+ VERSION = "2.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: right_chimp
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-04-30 00:00:00.000000000 Z
12
+ date: 2015-05-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -59,6 +59,22 @@ dependencies:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: 0.11.0
62
+ - !ruby/object:Gem::Dependency
63
+ name: right_api_client
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>'
68
+ - !ruby/object:Gem::Version
69
+ version: '1.5'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>'
76
+ - !ruby/object:Gem::Version
77
+ version: '1.5'
62
78
  - !ruby/object:Gem::Dependency
63
79
  name: rspec
64
80
  requirement: !ruby/object:Gem::Requirement