blackstack_commons 1.1.5 → 1.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/functions.rb +39 -22
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5d3d5586fe40f7040a983c6cc93dc0b266011ac6
4
- data.tar.gz: 0670e5a9464457d7c9776e80eaf7a917c303b6b3
3
+ metadata.gz: 0337fd24c3ed0b509afa863125066dc36469a0cc
4
+ data.tar.gz: f353fcfd746176001369d25f16813e94de37018c
5
5
  SHA512:
6
- metadata.gz: b1a6531cd8d89ca8853454b86873230c4cf1aff1acfcc5d1f5695aee6c62200677ebf0b2a6a5428a0d21517ba5d8e7e526315d68d841c24c28e1eaf6f4c2cbbe
7
- data.tar.gz: 0ff56baefbcc5bddf47857ddd7f24a1e78aa97cc560203b49852a3765ff96c2d4771574b0615579f7f017645b4b14396a9b43b49521537cd7060da013f053d33
6
+ metadata.gz: dc5cb6341786d14379c5e7a62609b30506f3ad2601d5dd75cd2aae31792c647ea272c413b1cb7828a54ac53aeb861eca0f3e0475a84210824201cf081905dc44
7
+ data.tar.gz: fe8ba22903890286afb1618178bdadf41c1fe40e0ff17cfa80647dd836ab8882691d9385f014411cd908c54583ac25674ee3f93fee9bbbf9db73e1415578dd02
data/lib/functions.rb CHANGED
@@ -482,34 +482,51 @@ module BlackStack
482
482
  # ssl_verify_mode: you can disabele SSL verification here.
483
483
  # max_channels: this method use lockfiles to prevent an excesive number of API calls from each datacenter. There is not allowed more simultaneous calls than max_channels.
484
484
  # TODO: setup max_simultaneus_calls in the configurtion file.
485
- def self.call_post(url, params = {}, ssl_verify_mode=BlackStack::Netting::DEFAULT_SSL_VERIFY_MODE) #, max_channels=10)
485
+ def self.call_post(url, params = {}, ssl_verify_mode=BlackStack::Netting::DEFAULT_SSL_VERIFY_MODE, max_channels=10)
486
486
  # build the lockfile name
487
- #x = rand(max_channels.to_i)
488
- #lockfilename = "./apicall.channel_#{x.to_s}.lock"
489
- #lockfile = File.open(lockfilename, "w")
490
-
487
+ x = rand(max_channels.to_i)
488
+ lockfilename = "./apicall.channel_#{x.to_s}.lock"
489
+ lockfile = File.open(lockfilename, "w")
490
+
491
491
  # lock the file
492
- #lockfile.flock(File::LOCK_EX)
492
+ lockfile.flock(File::LOCK_EX)
493
493
 
494
- # do the call
495
- uri = URI(url)
496
- ret = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https', :verify_mode => ssl_verify_mode) do |http|
497
- req = Net::HTTP::Post.new(uri)
498
- req['Content-Type'] = 'application/json'
499
- req.set_form_data(params)
500
- #req.body = body if !body.nil?
501
- res = http.request req
502
- case res
503
- when Net::HTTPSuccess then res
504
- when Net::HTTPRedirection then BlackStack::Netting::call_post(URI(res['location']), params)
505
- else
506
- res.error!
494
+ begin
495
+
496
+ # do the call
497
+ uri = URI(url)
498
+ ret = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https', :verify_mode => ssl_verify_mode) do |http|
499
+ req = Net::HTTP::Post.new(uri)
500
+ req['Content-Type'] = 'application/json'
501
+ req.set_form_data(params)
502
+ #req.body = body if !body.nil?
503
+ res = http.request req
504
+ case res
505
+ when Net::HTTPSuccess then res
506
+ when Net::HTTPRedirection then BlackStack::Netting::call_post(URI(res['location']), params)
507
+ else
508
+ res.error!
509
+ end
507
510
  end
511
+
512
+ # release the file
513
+ lockfile.flock(File::LOCK_UN)
514
+ rescue => e
515
+ # release the file
516
+ lockfile.flock(File::LOCK_UN)
517
+
518
+ # elevo la excepcion
519
+ raise e
520
+ else
521
+ # release the file
522
+ lockfile.flock(File::LOCK_UN)
523
+ # elevo la excepcion
524
+ raise 'Unknown API call error.'
525
+ ensure
526
+ # release the file
527
+ lockfile.flock(File::LOCK_UN)
508
528
  end
509
529
 
510
- # release the file
511
- #lockfile.flock(File::LOCK_UN)
512
-
513
530
  # return
514
531
  ret
515
532
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blackstack_commons
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.5
4
+ version: 1.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leandro Daniel Sardi