right_chimp 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
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