marathon_deploy 0.1.47 → 0.1.48

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZmViZWY5NWM5N2YzM2E3ZTQ5MDgyMWRmNzNiMGFhY2EwYTQ1MjI0Yw==
4
+ OGJjNGVjMmZjN2M3MDU5ZTY4MWYxOWEyN2M3MDk2NGM2NDIyYjMzOQ==
5
5
  data.tar.gz: !binary |-
6
- ZWY1YWVjMzcwNzJiN2I5YmRhZDZlYzM1OGRlMDFiZTEwNWU0YjAwMA==
6
+ NDliMzdkMWNiY2ZhZTk4ZTcwOTc2NjY3NTZiYzZiMWZkMTA3ZTQ5MA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NDJlYTJmZTczNWYxMmQxZTA3MTQ1YTkwYTJhOWFkN2UwODU2OThmZDNjOWI5
10
- NGQwZjMyYTQ0M2M3YTVlNDAyZDRhMjRmOGJhNDZmMzhhNDM5OTA3YjI4NzM5
11
- MGUyODQyNjc3OThmYWNhNmYyZWM0NGIyOTc0NzIxNDkxNDM4ZjE=
9
+ NGI2ZDY3ZDhiNGQ5MGYyM2U4ZGJkODc2MDhiN2MwMWI4YTkwMThhOGJkZmZm
10
+ NDNkYWEwZTEzZGMyODA2OWY4ZjA0MTIzNzkwOGJhYTdkZTNlMGMwZDY5NTgw
11
+ NTJkNzYwZmUwN2U0NmFlOTQzMjVmYjNmZTMwYTRhNTU4ZjRiMzA=
12
12
  data.tar.gz: !binary |-
13
- MTFkZTNhZWQ2NWNhNWZiNzkyZDc3OWUyNWY1MzkxOGE5MDBmYjhjNDU3YWVm
14
- MDA4YWMwYWYzNTZmZDM4YTgwYjI1M2QyMDI2YzdhOTM4YjNkMzQzMjEwMzRj
15
- ZGIxMDMzYTAyZWE1ZTc5YzQ3OGVhYjYxMDRkODI5NDk5NTMzYjI=
13
+ N2YzNTlhZTA0YjhmMDc3ZmMyN2E0ODRjNDBkMzNmOTllMGVhYTYxZTk3NjAx
14
+ ODllZjk1OWQ5YzA3YWNmYzZjMGY0ZmZkYjM5OWIxMmY2ZmU5MzAyNzUzYzhl
15
+ NDUxYmJmYjE1YmUxODcyODdiYmIzOTRmYTk5YTQ0NTViMmVlM2U=
data/bin/marathon_deploy CHANGED
@@ -21,6 +21,8 @@ options[:logfile] = MarathonDeploy::MarathonDefaults::DEFAULT_LOGFILE
21
21
  options[:force] = MarathonDeploy::MarathonDefaults::DEFAULT_FORCE_DEPLOY
22
22
  options[:noop] = MarathonDeploy::MarathonDefaults::DEFAULT_NOOP
23
23
  options[:remove_elements] = MarathonDeploy::MarathonDefaults::DEFAULT_REMOVE_ELEMENTS
24
+ options[:marathon_username] = nil
25
+ options[:marathon_password] = nil
24
26
 
25
27
 
26
28
  OptionParser.new do |opts|
@@ -30,6 +32,14 @@ OptionParser.new do |opts|
30
32
  opts.on("-u","--url MARATHON_URL(S)", Array, "Default: #{options[:marathon_endpoints]}") do |u|
31
33
  options[:marathon_endpoints] = u
32
34
  end
35
+
36
+ opts.on("-U","--username USERNAME", "Marathon authentication username") do |u|
37
+ options[:marathon_username] = u
38
+ end
39
+
40
+ opts.on("-p","--password PASSWORD", "Marathon authentication password") do |p|
41
+ options[:marathon_password] = p
42
+ end
33
43
 
34
44
  opts.on("-l", "--logfile LOGFILE", "Default: STDOUT") do |l|
35
45
  options[:logfile] = l
@@ -90,6 +100,11 @@ else
90
100
  abort("No deploy file argument provided and default \'#{DEFAULT_DEPLOYFILE}\' does not exist in current directory \'#{Dir.pwd}\'")
91
101
  end
92
102
 
103
+ if options[:marathon_username] and options[:marathon_password]
104
+ MarathonDeploy::MarathonDefaults::marathon_username = options[:marathon_username]
105
+ MarathonDeploy::MarathonDefaults::marathon_password = options[:marathon_password]
106
+ end
107
+
93
108
  $LOG = options[:logfile] ? Logger.new(options[:logfile]) : Logger.new(STDOUT)
94
109
  $LOG.level = options[:debug]
95
110
 
@@ -10,39 +10,41 @@ module MarathonDeploy
10
10
  @@og_timeout = 60.0
11
11
  @@rg_timeout = 60.0
12
12
 
13
- def self.put(url,payload)
13
+ def self.req(method, url, payload=nil, errors_are_fatal=false)
14
14
  uri = construct_uri url
15
15
  begin
16
16
  http = Net::HTTP.new(uri.host, uri.port)
17
+ http.use_ssl = uri.scheme == 'https'
17
18
  http.open_timeout = @@o_timeout
18
19
  http.read_timeout = @@r_timeout
19
- req = Net::HTTP::Put.new(uri.request_uri)
20
- req.body = payload.to_json
20
+ req = Net::HTTP.const_get(method).new(uri.request_uri)
21
+ if MarathonDeploy::MarathonDefaults::marathon_username and MarathonDeploy::MarathonDefaults::marathon_password
22
+ req.basic_auth(MarathonDeploy::MarathonDefaults::marathon_username, MarathonDeploy::MarathonDefaults::marathon_password)
23
+ end
24
+ if payload
25
+ req.body = payload.to_json
26
+ end
21
27
  req["Content-Type"] = "application/json"
22
28
  response = http.request(req)
23
29
  rescue Exception => e
24
- $LOG.error("Error calling marathon api: #{e.message}")
25
- exit!
30
+ if errors_are_fatal
31
+ $LOG.error("Error calling marathon api: #{e.message}")
32
+ exit!
33
+ else
34
+ message = "Error calling marathon api: #{e.message}"
35
+ $LOG.error(message)
36
+ raise Error::MarathonError, message, caller
37
+ end
26
38
  end
27
39
  return response
28
40
  end
41
+
42
+ def self.put(url,payload)
43
+ return self.req('Put', url, payload, true)
44
+ end
29
45
 
30
46
  def self.post(url, payload)
31
- uri = construct_uri url
32
- begin
33
- http = Net::HTTP.new(uri.host, uri.port)
34
- http.open_timeout = @@o_timeout
35
- http.read_timeout = @@r_timeout
36
- req = Net::HTTP::Post.new(uri.request_uri)
37
- req.body = payload.to_json
38
- req["Content-Type"] = "application/json"
39
- response = http.request(req)
40
- rescue Exception => e
41
- message = "Error calling marathon api: #{e.message}"
42
- $LOG.error(message)
43
- raise Error::MarathonError, message, caller
44
- end
45
- return response
47
+ return self.req('Post', url, payload, false)
46
48
  end
47
49
 
48
50
  def self.construct_uri(url)
@@ -51,19 +53,7 @@ module MarathonDeploy
51
53
  end
52
54
 
53
55
  def self.delete(url)
54
- uri = construct_uri url
55
- begin
56
- http = Net::HTTP.new(uri.host, uri.port)
57
- http.open_timeout = @@o_timeout
58
- http.read_timeout = @@r_timeout
59
- req = Net::HTTP::Delete.new(uri.request_uri)
60
- response = http.request(req)
61
- rescue Exception => e
62
- message = "Error calling marathon api: #{e.message}"
63
- $LOG.error(message)
64
- raise Error::MarathonError, message, caller
65
- end
66
- return response
56
+ return self.req('Delete', url, nil, false)
67
57
  end
68
58
 
69
59
  def self.clean_url(url)
@@ -71,21 +61,7 @@ module MarathonDeploy
71
61
  end
72
62
 
73
63
  def self.get(url)
74
- uri = construct_uri url
75
- begin
76
- http = Net::HTTP.new(uri.host, uri.port)
77
- http.open_timeout = @@og_timeout
78
- http.read_timeout = @@rg_timeout
79
- # http.set_debug_output($stdout)
80
- req = Net::HTTP::Get.new(uri.request_uri)
81
- req["Content-Type"] = "application/json"
82
- response = http.request(req)
83
- rescue Exception => e
84
- message = "Error calling marathon api: #{e.message}"
85
- $LOG.error(message)
86
- raise Error::MarathonError, message, caller
87
- end
88
- return response
64
+ return self.req('Get', url, nil, false)
89
65
  end
90
66
 
91
67
  def self.valid_url(url)
@@ -5,6 +5,10 @@ require 'logger'
5
5
  module MarathonDeploy
6
6
  module MarathonDefaults
7
7
 
8
+ class << self
9
+ attr_accessor :marathon_username, :marathon_password
10
+ end
11
+
8
12
  DEPLOYMENT_RECHECK_INTERVAL = 3
9
13
  DEPLOYMENT_TIMEOUT = 300
10
14
  HEALTHY_WAIT_TIMEOUT = 300
@@ -23,6 +27,8 @@ module MarathonDeploy
23
27
  DEFAULT_REMOVE_ELEMENTS = []
24
28
  DEFAULT_KEEP_ELEMENTS = [':id']
25
29
  ENVIRONMENT_VARIABLE_PREFIX = 'MARATHON_DEPLOY_'
30
+ marathon_username = nil
31
+ marathon_password = nil
26
32
 
27
33
  @@preproduction_override = {
28
34
  :instances => 5,
@@ -1,3 +1,3 @@
1
1
  module MarathonDeploy
2
- VERSION = "0.1.47"
2
+ VERSION = "0.1.48"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marathon_deploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.47
4
+ version: 0.1.48
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Colby
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-10 00:00:00.000000000 Z
11
+ date: 2016-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logger