conan_deploy_stackato3 0.1.9 → 0.1.10

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
- 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