conan_deploy 0.0.7 → 0.0.8

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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OGY4ZWNhNGU2MmRmZGY1YmY0OWI0ZDNhZjBmZTBjYzMyMzQ0MTJmNA==
4
+ ZmVlYmE0YzJmYjFhZjUyNWIxNDM0MWM5MWJhMzgzMWZiNGUzNDQzZg==
5
5
  data.tar.gz: !binary |-
6
- ZDBmNzgzNzc3YzYzZDc3YzY2ZjMzMjdkZDlkZjI1MDE4ZTM5NDEzNQ==
6
+ ZmFmNWIzNDA0NDM5NTQ3NDE3OWM1ZmQ3MWZkOWQzZjA5Yzk5MDg3Mg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZjAwZWU1MjdkMjJiMjBhNjMxODZjNzU1OTFhZWEyYmI3N2RiYWI5ZjUzZmNm
10
- ODc2YTViZGE4ZjA5ZjVjMGFlNzkwYjIwOTQzNDQ4NmUyMmVhYWEyNDMyZTE1
11
- NGUzNGJkNTlkNTU0MTE3Y2ZhZmJkNTU4NTMyMWU2ZWIxNThkODI=
9
+ NGU2OWU4OWI0MDIxOGUwZTdhY2U3YzE1MGUyZTNjM2EyZjAwMWNiNjc5ODY3
10
+ ZGFiYzA2MjAwZTE5YTFlYTIxODFhMmU3YjA3MGVjNzE1ZmY3NWUwNTkwYzY2
11
+ ZGNlYTlhZmYzM2Y5MTdmMGRiMTRmNGU0YTc3ZmM1NWViY2RhMTA=
12
12
  data.tar.gz: !binary |-
13
- MDVmN2I4ZjViMTQ1MjIwODZlYjNiMWJkOTc0YjhiMDQzODQ0MWI0YWE2ZGNm
14
- ZDJmNWQwZDliMjlhMmE4ZTdkMGJiOTc0MzI2NjNlYTJiNWUzNGM2MDQ4NGYy
15
- ZGNhNjlhOTU5OGJhNTU2ZTBhM2Y1NDliZWI2NWIxNjM0ZDhhMGQ=
13
+ NjBiMDBkZWYwMDc1NDJlMTI1YTI0ZTM1Y2UzNmE0YjliN2UzOThjNWVlMGE2
14
+ MTQ4YjcxYTNlNzRlY2RhNTliZDgxMjgwNWY2ZjZhODQ0YTcyZWI1YTcyOWI2
15
+ YjA3OTUxMzk4NzgwNDQ5ZWFiOWE5MmFjODY1MzExNGYwNzA0ZGM=
@@ -159,14 +159,14 @@ class Pipeline
159
159
  @options = options
160
160
  end
161
161
 
162
- def app(app_id, project_name, platform_type)
162
+ def app(app_id, project_name, platform_type, url_segment=nil)
163
163
  if (@options[:'deploy-app-name'].nil?) || (@options[:'deploy-app-name'] == app_id.to_s)
164
164
  puts "No app specified, or we matched the specified app: #{@options[:'deploy-app-name']}"
165
165
  @apps[app_id] = case platform_type
166
166
  when :jvm
167
- JvmApp.new(app_id, project_name, @artifact_repo)
167
+ JvmApp.new(app_id, project_name, @artifact_repo, url_segment)
168
168
  when :rails_zip
169
- RailsZipApp.new(app_id, project_name, @artifact_repo)
169
+ RailsZipApp.new(app_id, project_name, @artifact_repo, url_segment)
170
170
  else
171
171
  raise "unknown platform type: #{platform_type}"
172
172
  end
@@ -223,14 +223,14 @@ class Pipeline
223
223
  if (force)
224
224
  paas.deploy(work_dir, app, deploy, true)
225
225
  else
226
- paas.deploy(work_dir, app, deploy) unless app.isDeployedAt(deploy.manifest_url(app.id))
226
+ paas.deploy(work_dir, app, deploy) unless app.isDeployedAt(deploy.manifest_url(app))
227
227
  end
228
228
  }
229
229
  end
230
230
 
231
231
  def bg_deploy(environment, paas, force=false)
232
232
  eachAppDeployment(environment) { |app, deploy|
233
- if (force or !app.isDeployedAt(deploy.manifest_url(app.id)))
233
+ if (force or !app.isDeployedAt(deploy.manifest_url(app)))
234
234
  paas.bg_deploy(@output.workingDir(app), app, deploy)
235
235
  end
236
236
  }
@@ -238,7 +238,7 @@ class Pipeline
238
238
 
239
239
  def is_inactive_node_healthy?(environment, paas)
240
240
  eachAppDeployment(environment) { |app, deploy|
241
- response = ApiHelper.healthcheck(deploy.inactive_healthcheck_url(app.id), 60)
241
+ response = ApiHelper.healthcheck(deploy.inactive_healthcheck_url(app), 60)
242
242
 
243
243
  if(response.code != 200)
244
244
  puts "Healthcheck failed for inactive (Blue) node. Here is the entire response: #{response.inspect}"
@@ -271,11 +271,12 @@ end
271
271
 
272
272
  class Application
273
273
 
274
- attr_accessor :id, :platform_type, :group_id, :artifact_id, :version, :extension, :sha1, :artifact_meta_data
274
+ attr_accessor :id, :platform_type, :group_id, :artifact_id, :version, :extension, :sha1, :artifact_meta_data, :url_segment
275
275
 
276
- def initialize(id, project_name, platform_type)
276
+ def initialize(id, project_name, platform_type, url_segment=nil)
277
277
  @id = id
278
- @platform_type = platform_type
278
+ @platform_type = platform_type
279
+ @url_segment = url_segment || id
279
280
  mvn_id = project_name.split(':')
280
281
  @group_id = mvn_id[0]
281
282
  @artifact_id = mvn_id[1]
@@ -380,8 +381,8 @@ end
380
381
  class JvmApp < Application
381
382
  attr_accessor :sha1, :artifact_repo
382
383
 
383
- def initialize(id, project_name, artifact_repo)
384
- super(id, project_name, :jvm)
384
+ def initialize(id, project_name, artifact_repo, url_segment=nil)
385
+ super(id, project_name, :jvm, url_segment)
385
386
  @sha1 = nil
386
387
  @artifact_repo = artifact_repo
387
388
  end
@@ -396,8 +397,8 @@ end
396
397
  class RailsZipApp < Application
397
398
  attr_accessor :sha1, :artifact_repo
398
399
 
399
- def initialize(id, project_name, artifact_repo)
400
- super(id, project_name, :rails_zip)
400
+ def initialize(id, project_name, artifact_repo, url_segment=nil)
401
+ super(id, project_name, :rails_zip, url_segment)
401
402
  @sha1 = nil
402
403
  @artifact_repo = artifact_repo
403
404
  end
@@ -449,7 +450,7 @@ class Deployment < HasOptions
449
450
 
450
451
  @@paas_domain = 'mtnsatcloud.com'
451
452
 
452
- attr_accessor :environment, :org, :ship, :shipcloud, :app_ids, :facility_id
453
+ attr_accessor :environment, :org, :ship, :shipcloud, :app_ids, :facility_id, :additional_mappings
453
454
 
454
455
  def initialize(environment, org, ship)
455
456
  # inherit options from the environment
@@ -460,6 +461,7 @@ class Deployment < HasOptions
460
461
  @ship = ship
461
462
  @shipcloud = "#{org}-#{ship}"
462
463
  @app_ids = []
464
+ @additional_mappings = []
463
465
  @facility_id = nil
464
466
  @enabled = true
465
467
  @randomid = SecureRandom.hex(3)
@@ -472,6 +474,12 @@ class Deployment < HasOptions
472
474
  def facility(facility_id)
473
475
  @facility_id = facility_id
474
476
  end
477
+
478
+ def hostnames(*hostnames)
479
+ hostnames.each do |hostname|
480
+ @additional_mappings.push(hostname) unless hostname.empty?
481
+ end
482
+ end
475
483
 
476
484
  def enabled(b)
477
485
  @enabled = b
@@ -481,41 +489,40 @@ class Deployment < HasOptions
481
489
  @enabled
482
490
  end
483
491
 
484
- def name(app_id)
485
- "#{app_id}-#{@environment.id}-#{@ship}"
492
+ def name(app)
493
+ "#{app.id}-#{@environment.id}-#{@ship}"
486
494
  end
487
495
 
488
- def unique_name(app_id)
489
- "#{name(app_id)}-#{@randomid}"
496
+ def unique_name(app)
497
+ "#{name(app)}-#{@randomid}"
490
498
  end
491
499
 
492
- def dns_name(app_id)
493
- "#{@environment.id}.#{app_id}.#{@ship}.#{@org}.#{@@paas_domain}"
500
+ def dns_name(app)
501
+ "#{@environment.id}.#{app.url_segment}.#{@ship}.#{@org}.#{@@paas_domain}"
494
502
  end
495
503
 
496
- def agnostic_dns_name(app_id)
497
- "#{@environment.id}.#{app_id}.#{@@paas_domain}"
504
+ def agnostic_dns_name(app)
505
+ "#{@environment.id}.#{app.url_segment}.#{@@paas_domain}"
498
506
  end
499
507
 
500
-
501
- def active_urls(app_id)
502
- [ dns_name(app_id), agnostic_dns_name(app_id) ]
508
+ def active_urls(app)
509
+ [ dns_name(app), agnostic_dns_name(app) ] + @additional_mappings
503
510
  end
504
511
 
505
- def inactive_urls(app_id)
506
- ["inactive.#{dns_name(app_id)}"]
512
+ def inactive_urls(app)
513
+ active_urls(app).map{ |url| "inactive.#{url}" }
507
514
  end
508
515
 
509
- def manifest_url(app_id)
510
- "http://#{dns_name(app_id)}/status/manifest"
516
+ def manifest_url(app)
517
+ "http://#{dns_name(app)}/status/manifest"
511
518
  end
512
519
 
513
- def active_healthcheck_url(app_id)
514
- "http://#{dns_name(app_id)}/status/healthcheck"
520
+ def active_healthcheck_url(app)
521
+ "http://#{dns_name(app)}/status/healthcheck"
515
522
  end
516
523
 
517
- def inactive_healthcheck_url(app_id)
518
- "http://inactive.#{dns_name(app_id)}/status/healthcheck"
524
+ def inactive_healthcheck_url(app)
525
+ "http://inactive.#{dns_name(app)}/status/healthcheck"
519
526
  end
520
527
 
521
528
  def paas_target
data/lib/conan/output.rb CHANGED
@@ -97,9 +97,9 @@ class StackatoOutThingy < OutThingy
97
97
 
98
98
  # short-cuts
99
99
  :app_id => app.id,
100
- :deploy_base_name => deploy.name(app.id),
101
- :deploy_name => bg ? deploy.unique_name(app.id) : deploy.name(app.id),
102
- :deploy_urls => bg ? deploy.inactive_urls(app.id) : deploy.active_urls(app.id),
100
+ :deploy_base_name => deploy.name(app),
101
+ :deploy_name => bg ? deploy.unique_name(app) : deploy.name(app),
102
+ :deploy_urls => bg ? deploy.inactive_urls(app) : deploy.active_urls(app),
103
103
  :env => deploy.environment.id,
104
104
  :org => deploy.org,
105
105
  :ship => deploy.ship,
@@ -29,7 +29,7 @@ class Stackato
29
29
  Dir.chdir(work_dir){
30
30
  login(deployment.paas_target)
31
31
 
32
- paas_app_name = deployment.name(app.id)
32
+ paas_app_name = deployment.name(app)
33
33
  appCreate = ->(cmd) {
34
34
  c = "#{@doit} #{@paas_cmd} --manifest #{@paas_manifest} --no-prompt #{cmd} --no-start"
35
35
  system(c) or raise "Stackato #{cmd} failed: #{c}"
@@ -84,7 +84,7 @@ class Stackato
84
84
  app_info = application_info(app, deployment)
85
85
  raise "Please remove inactive app '#{app_info.inactive_app_name}' before proceeding." unless app_info.inactive_app_name.nil?
86
86
 
87
- puts "Deploying inactive app #{deployment.name(app.id)}"
87
+ puts "Deploying inactive app #{deployment.name(app)}"
88
88
  c = "#{@doit} #{@paas_cmd} --manifest #{@paas_manifest} --no-prompt push"
89
89
  system(c) or raise "Stackato push failed: #{c}"
90
90
  }
@@ -100,8 +100,8 @@ class Stackato
100
100
  return
101
101
  end
102
102
 
103
- active_urls = deployment.active_urls(app.id)
104
- inactive_urls = deployment.inactive_urls(app.id)
103
+ active_urls = deployment.active_urls(app)
104
+ inactive_urls = deployment.inactive_urls(app)
105
105
 
106
106
  appUrlOp = ->(cmd, paas_app_name, url) {
107
107
  c = "#{@doit} #{@paas_cmd} #{cmd} #{paas_app_name} #{url}"
@@ -140,9 +140,9 @@ class Stackato
140
140
  list_json = `#{@paas_cmd} list --json`
141
141
  raise "Stackato list failed" if !$?.success?
142
142
 
143
- base_name = deployment.name(app.id)
144
- active_urls = deployment.active_urls(app.id)
145
- inactive_urls = deployment.inactive_urls(app.id)
143
+ base_name = deployment.name(app)
144
+ active_urls = deployment.active_urls(app)
145
+ inactive_urls = deployment.inactive_urls(app)
146
146
 
147
147
  StackatoApplicationInfo.new(list_json, base_name, active_urls, inactive_urls)
148
148
  end
data/lib/conan/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Conan
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: conan_deploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Reardon
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-04-28 00:00:00.000000000 Z
12
+ date: 2014-05-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: daphne_util