conan_deploy_stackato3 0.1.9 → 0.1.10

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
- NWE1MDQ4MmEwNzU2Y2I5YWJkMTQ1MDViODUzZTYxMDQyZDk4YjI4ZQ==
4
+ NjA4NTkxYmQ5YzQ5ZWViNTc3NDdiYjNjNWVjOTFmOTBlZGZjMzEyMA==
5
5
  data.tar.gz: !binary |-
6
- NzJlN2UxYTk0NjUyOTJlNDQ3ZWUwZWY5MDAzN2FjNTZiMzNjYzhiYQ==
6
+ OTg2Y2VjMjM4NmRjNDg0YWFhZmUwZmMwZjk0YzRmNjQzZTc3NjAzZg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NWY2Y2QxM2QxNjVjYjQxOGQ4OTY4ZTAwZjI5N2YxZjRiZmVmZmZhMDEwZDli
10
- YzRlZGZiOWRhODIxNjZjNWEzNTFiZjM4MzVmYzgzMTZjYjAwMmRkZDdmZjIx
11
- OWZkM2MzOTJlYTkxNTQ5OGZkZmRhODMzYjQxOGZmYTY0MzlkYWI=
9
+ ZjY2YmVjOWU2OWIyMWViMzgwOTdmZWY4Y2IzMDNjZjhmYTY1ZWM5MjNjNDBh
10
+ Mjk3ZTE2Mjk2MDYxNTNiZDc1MzAxOGM4N2NjZDI3MTVmNDgzMDJlYjkxMTUw
11
+ ODdkY2ZjY2EwMThlNjIyNWZjMzllNmQzYzg1NGRhZjIzM2VhNmU=
12
12
  data.tar.gz: !binary |-
13
- NDVmNmRiODFlZTE5MzYxMGFhZDIxMDI0ZTY3YjAxNTRhYWZiZTc2Njk1ZDUz
14
- Y2ZhMTUxZDAwNGMzMzVjMTNkNGEzMjM5M2ZhNjUwNzE3YzNhN2Q2NjYyMTEw
15
- OTUyOWNkZDYwZWJkYmU1YmZiNWNlNTk4MmIyNzM4MWQ1NWI1NjE=
13
+ Y2M1YjU3M2JhNmIwYmUzZWZmMDQyMjM4NTYzNzhmZDZjNzliYTQxMTVhMGQx
14
+ MDE4ZmYxNDY5OThiZWU4ZDk4NTBhODlmODJjYWNhODQ5YjUwMDc3NDQ0NWVl
15
+ NmZlNTcwZDJkMDZlN2JmYzFlNWMxZjFlMzY3YTQwMmIxYzU0NzA=
data/bin/conan-stackato3 CHANGED
@@ -50,9 +50,9 @@ optparse = OptionParser.new do |o|
50
50
  end
51
51
  end
52
52
 
53
- o.on('-a','--action [ACTION]', [:provision,:configure,:deploy,:bg_configure,:bg_deploy,:all,:bg_all],
53
+ o.on('-a','--action [ACTION]', [:provision,:configure,:deploy,:bg_deploy,:all,:bg_all],
54
54
  'The action(s) to perform. Either "provision" (default), "configure","deploy" or "all".',
55
- ' Support for blue/green deployments use actions: "provision", "bg_configure", "bg_deploy",',
55
+ ' Support for blue/green deployments use actions: "provision", "configure", "bg_deploy",',
56
56
  ' or "bg_all".') do |action|
57
57
  if (action)
58
58
  options[:action] = action
data/lib/conan/deploy.rb CHANGED
@@ -20,8 +20,6 @@ module Conan
20
20
  manifest.configure
21
21
  when :deploy
22
22
  manifest.deploy
23
- when :bg_configure
24
- manifest.bg_configure
25
23
  when :bg_deploy
26
24
  manifest.bg_deploy
27
25
  when :all
@@ -30,7 +28,7 @@ module Conan
30
28
  manifest.deploy
31
29
  when :bg_all
32
30
  manifest.provision
33
- manifest.bg_configure
31
+ manifest.configure
34
32
  manifest.bg_deploy
35
33
 
36
34
  else
@@ -64,7 +64,7 @@ class Deployment < HasOptions
64
64
  end
65
65
 
66
66
  def inactive_urls(app)
67
- active_urls(app).map{ |url| "x.#{url}" }
67
+ active_urls(app).map{ |url| "x-#{url}" }
68
68
  end
69
69
 
70
70
  def manifest_url(app)
@@ -50,12 +50,6 @@ class Manifest
50
50
  @current_pipeline.configure(@current_environment)
51
51
  end
52
52
 
53
- def bg_configure
54
- validateThatEnvironmentIsSelected
55
- puts "Blue/green configure #{@current_environment.id} manifest files for #{@current_pipeline.id} pipeline"
56
- @current_pipeline.configure(@current_environment, true)
57
- end
58
-
59
53
  def paas
60
54
  paas_user = @options[:'paas-user'] || ENV['PAAS_USER']
61
55
  paas_pwd = @options[:'paas-password'] || ENV['PAAS_PASSWORD']
data/lib/conan/output.rb CHANGED
@@ -77,7 +77,7 @@ class StackatoOutThingy < OutThingy
77
77
  end
78
78
  end
79
79
 
80
- def writeConfiguration(app, deploy, bg=false)
80
+ def writeConfiguration(app, deploy)
81
81
  if (deploy.enabled?)
82
82
  target_dir = workingDir(app)
83
83
  templates_dir = File.join(target_dir, "deploy-templates")
@@ -98,8 +98,8 @@ class StackatoOutThingy < OutThingy
98
98
  # short-cuts
99
99
  :app_id => app.id,
100
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),
101
+ :deploy_name => deploy.name(app),
102
+ :deploy_urls => deploy.active_urls(app),
103
103
  :env => deploy.environment.id,
104
104
  :org => deploy.org,
105
105
  :ship => deploy.ship,
@@ -65,8 +65,8 @@ class Pipeline
65
65
  eachAppDeployment(environment) { |app, deploy| @output.writeArtifactMetadata(app, deploy) }
66
66
  end
67
67
 
68
- def configure(environment, bg=false)
69
- eachAppDeployment(environment) { |app, deploy| @output.writeConfiguration(app, deploy, bg) }
68
+ def configure(environment)
69
+ eachAppDeployment(environment) { |app, deploy| @output.writeConfiguration(app, deploy) }
70
70
  end
71
71
 
72
72
  def deploy(environment, paas, force=false)
@@ -54,8 +54,14 @@ class Stackato
54
54
  shell_cmd("login", "--space #{space} --password '#{password}' #{username}")
55
55
  end
56
56
 
57
- def push(manifest)
58
- shell_cmd("push", "--manifest #{manifest} --no-prompt --reset --force-start --timeout 5m")
57
+ def push(manifest, name, urls=[])
58
+ args = "--manifest #{manifest} --no-prompt --reset --force-start --timeout 5m --as #{name}"
59
+
60
+ urls.each do |url|
61
+ args << " --url #{url}"
62
+ end
63
+
64
+ shell_cmd("push", args)
59
65
  puts(">> push complete")
60
66
  end
61
67
 
@@ -64,9 +70,17 @@ class Stackato
64
70
 
65
71
  end
66
72
 
73
+ def rename(old_app_name, new_app_name)
74
+ shell_cmd("rename", "#{old_app_name} #{new_app_name}")
75
+ end
76
+
67
77
  def map(app_name, url)
68
78
  shell_cmd("map", "#{app_name} #{url}")
69
79
  end
80
+
81
+ def unmap(app_name, url)
82
+ shell_cmd("unmap", "#{app_name} #{url}")
83
+ end
70
84
  end
71
85
 
72
86
  def initialize(paas_user, paas_password, paas_space, paas_manifest, dry_run=false)
@@ -113,11 +127,8 @@ class Stackato
113
127
  end
114
128
 
115
129
  puts "Pushing #{paas_app_name}"
116
- @commands.push(@paas_manifest)
130
+ @commands.push(@paas_manifest, paas_app_name, deployment.active_urls(app))
117
131
 
118
- deployment.active_urls(app).each do |url|
119
- @commands.map(paas_app_name, url)
120
- end
121
132
  puts "deploy complete"
122
133
  }
123
134
  end
@@ -125,18 +136,27 @@ class Stackato
125
136
  def bg_deploy(work_dir, app, deployment)
126
137
  puts ''
127
138
  Dir.chdir(work_dir){
128
- raise RuntimeError.new "Blue/green deployment is not implemented for the stackato v3 client yet"
129
-
130
- # login(deployment.paas_target)
131
-
132
- # push app
133
-
134
- #if app.is_inactive_node_operational?
135
- # switch (remap nodes)
136
- # clean (delete inactive nodes)
137
- #else
138
- # raise RuntimeError.new "#{app}'s inactive node is not operational. Skipping switch and clean."
139
- #end
139
+ login(deployment.paas_target)
140
+
141
+ active_app_name = deployment.name(app)
142
+ inactive_app_name = active_app_name + "-inactive"
143
+
144
+ puts "Pushing inactive app: #{inactive_app_name}"
145
+ @commands.push(@paas_manifest, inactive_app_name, deployment.inactive_urls(app))
146
+
147
+ puts "Mapping active urls"
148
+ deployment.active_urls(app).each do |url|
149
+ @commands.map(inactive_app_name, url)
150
+ end
151
+
152
+ puts "Unmapping inactive urls"
153
+ deployment.inactive_urls(app).each do |url|
154
+ @commands.unmap(inactive_app_name, url)
155
+ end
156
+
157
+ puts "Cleaning up"
158
+ @commands.delete(active_app_name)
159
+ @commands.rename(inactive_app_name, active_app_name)
140
160
  }
141
161
  end
142
162
  end
data/lib/conan/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Conan
2
- VERSION = "0.1.9"
2
+ VERSION = "0.1.10"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: conan_deploy_stackato3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
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-10-10 00:00:00.000000000 Z
12
+ date: 2014-10-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: daphne_util