dpl 1.7.20.travis.951.4 → 1.7.20.travis.952.4

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
- YzcyY2JjZDdjODU0MjRmMDc4OWQ0YjAxZTdlZjZmYjY4NGM3NjJkMQ==
4
+ YmY2YmUyZTkxZTM5ZjY0ZjlmZjhiMTE5MGZkYzc3YjRhNThmMzg5NQ==
5
5
  data.tar.gz: !binary |-
6
- MzY4NTYzMDAwMmU2OWU1MTA5Y2FmNWY5MDUwNmQyMjhlMTNkNGYyOQ==
6
+ ZDk3N2M3YTZiZGExZTM5NTJhZGEwNTIyNzVhNjA4OWJlZmIzM2Q5NQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- N2ExYWQ1M2JkYmIyMzgyYjE2NDhlMmM0ODM2YWZiYzQxNDFmMGMwNDVhNTI4
10
- Mjc5MGQ2YzVhNjIzMmU4YTdmMDM1YzE1NTk1YzNmYTQzZDMxMDUwOWRlMDA5
11
- Y2M0MTE2YmZiMTFiZjRjZTk3OGNhZDVmNzY4NjdjNzJjM2NmNTQ=
9
+ YjdjMWQxNmEzMDdiM2UwYTNhOTc0YjllOTUzYjBmZTA4ZGMwMTRjYzEwOWQ1
10
+ MTE2NDJiY2ZiYzIxMjJkNTQ2NjUwZmRmZWE4Yzc3MTYxM2RiZTM4OTg3MDAz
11
+ ZTllNmMwZTU2OWY2Nzk2YjJmNDhjZjcwZTA5MTBiOGJmMzdiODI=
12
12
  data.tar.gz: !binary |-
13
- MGU5ODQyZmU4YWU5NDY4NjJlM2JhNjVmZDlmNmQzOGYwZDZmYTNlNWVkMDdm
14
- NTFhZjEwNDA2YzIwNWJlYWE4ODI4NWI0NGFjNTNkMDQyMTEyNGE1ZWM5ZWY4
15
- NDM5Njk3NDA0Zjc2NWRjM2VjYmI4ZTYwNTUzYzFmM2NjMjY5NTY=
13
+ MWQzNmI1NWE0YWQ0YjEzNmU2NDIzNTVmNmUwMWRkYjUwN2QyYjZkY2FhZDVh
14
+ ZDM3MDgzNmQ5MmI0N2NhMTU5MTE4ODBkYWU1NjY3NjU2OWJmZjllNDIzOWE2
15
+ YTgyYTk0MDJkNmQ2Nzc0ZWFlOTQ4MDllODI0M2E3YjA0Y2NkNGI=
@@ -196,7 +196,7 @@ module DPL
196
196
 
197
197
  File.open(path, 'w') do |file|
198
198
  file.write "#!/bin/sh\n"
199
- file.write "exec ssh -o StrictHostKeychecking=no -o CheckHostIP=no -o UserKnownHostsFile=/dev/null -i #{key_path} -- \"$@\"\n"
199
+ file.write "exec ssh -o StrictHostKeychecking=no -o CheckHostIP=no -o UserKnownHostsFile=/dev/null -i #{key_path} \"$@\"\n"
200
200
  end
201
201
 
202
202
  chmod(0740, path)
@@ -1,10 +1,8 @@
1
1
  module DPL
2
2
  class Provider
3
3
  class Deis < Provider
4
- experimental 'Deis'
5
-
6
4
  def install_deploy_dependencies
7
- self.class.pip 'deis', 'deis', options[:cli_version]
5
+ context.shell "curl -sSL http://deis.io/deis-cli/install.sh | sh -s #{option(:client_version)}"
8
6
  end
9
7
 
10
8
  def needs_key?
@@ -12,7 +10,7 @@ module DPL
12
10
  end
13
11
 
14
12
  def check_auth
15
- unless context.shell "deis login #{controller_url}" \
13
+ unless context.shell "./deis login #{option(:controller)}" \
16
14
  " --username=#{option(:username)}" \
17
15
  " --password=#{option(:password)}"
18
16
  error 'Login failed.'
@@ -20,89 +18,42 @@ module DPL
20
18
  end
21
19
 
22
20
  def check_app
23
- unless context.shell "deis apps:info --app=#{option(:app)}"
21
+ unless context.shell "./deis apps:info --app=#{option(:app)}"
24
22
  error 'Application could not be verified.'
25
23
  end
26
24
  end
27
25
 
28
26
  def setup_key(file)
29
- unless context.shell "deis keys:add #{file}"
27
+ unless context.shell "./deis keys:add #{file}"
30
28
  error 'Adding keys failed.'
31
29
  end
32
30
  end
33
31
 
34
32
  def setup_git_ssh(path, key_path)
35
33
  super(path, key_path)
36
- # Deis uses a non-standard port, so we need to create a
37
- # ssh config shortcut
38
- key_path = File.expand_path(key_path)
39
- add_ssh_config_entry(key_path)
40
- # A git remote is required for running commands
41
- # https://github.com/deis/deis/issues/1086
42
- add_git_remote
34
+
35
+ unless context.shell "./deis git:remote --app=#{option(:app)}"
36
+ error 'Adding git remote failed.'
37
+ end
43
38
  end
44
39
 
45
40
  def remove_key
46
- unless context.shell "deis keys:remove #{option(:key_name)}"
41
+ unless context.shell "./deis keys:remove #{option(:key_name)}"
47
42
  error 'Removing keys failed.'
48
43
  end
49
44
  end
50
45
 
51
46
  def push_app
52
- wait_until_key_is_set
53
- unless context.shell "git push #{git_push_url} HEAD:refs/heads/master -f"
47
+ unless context.shell "git push deis HEAD:refs/heads/master -f"
54
48
  error 'Deploying application failed.'
55
49
  end
56
50
  end
57
51
 
58
52
  def run(command)
59
- unless context.shell "deis apps:run #{command}"
53
+ unless context.shell "deis run -- #{command}"
60
54
  error 'Running command failed.'
61
55
  end
62
56
  end
63
-
64
- private
65
-
66
- def wait_until_key_is_set
67
- sleep 5
68
- end
69
-
70
- def ssh_config_entry(key_file)
71
- "\nHost deis-repo\n" \
72
- " Hostname #{option(:controller)}\n" \
73
- " Port 2222\n" \
74
- " User git\n" \
75
- " IdentityFile #{key_file}\n"
76
- end
77
-
78
- def add_ssh_config_entry(key_file)
79
- FileUtils.mkdir_p(ssh_config_dir)
80
- File.open(ssh_config, 'a') { |f| f.write(ssh_config_entry(key_file)) }
81
- end
82
-
83
- def ssh_config
84
- File.join(ssh_config_dir, 'config')
85
- end
86
-
87
- def ssh_config_dir
88
- File.join(Dir.home, '.ssh')
89
- end
90
-
91
- def add_git_remote
92
- context.shell "git remote add deis #{git_remote_url}"
93
- end
94
-
95
- def git_push_url
96
- "deis-repo:#{option(:app)}.git"
97
- end
98
-
99
- def git_remote_url
100
- "ssh://git@#{option(:controller)}:2222/#{option(:app)}.git"
101
- end
102
-
103
- def controller_url
104
- "http://#{option(:controller)}"
105
- end
106
57
  end
107
58
  end
108
59
  end
@@ -6,9 +6,10 @@ describe DPL::Provider::Deis do
6
6
  {
7
7
  :app => 'example',
8
8
  :key_name => 'key',
9
- :controller => 'deis.deisapps.com',
9
+ :controller => 'https://deis.deisapps.com',
10
10
  :username => 'travis',
11
- :password => 'secret'
11
+ :password => 'secret',
12
+ :client_version => '1.0'
12
13
  }
13
14
  end
14
15
 
@@ -17,14 +18,10 @@ describe DPL::Provider::Deis do
17
18
  end
18
19
 
19
20
  describe "#install_deploy_dependencies" do
20
- example 'without version specified' do
21
- expect(provider.class).to receive(:pip).with('deis', 'deis', nil)
22
- provider.install_deploy_dependencies
23
- end
24
-
25
- example 'with version specified' do
26
- options[:cli_version] = '1.0'
27
- expect(provider.class).to receive(:pip).with('deis', 'deis', '1.0')
21
+ example do
22
+ expect(provider.context).to receive(:shell).with(
23
+ 'curl -sSL http://deis.io/deis-cli/install.sh | sh -s 1.0'
24
+ ).and_return(true)
28
25
  provider.install_deploy_dependencies
29
26
  end
30
27
  end
@@ -38,7 +35,7 @@ describe DPL::Provider::Deis do
38
35
  describe "#check_auth" do
39
36
  example do
40
37
  expect(provider.context).to receive(:shell).with(
41
- 'deis login http://deis.deisapps.com --username=travis --password=secret'
38
+ './deis login https://deis.deisapps.com --username=travis --password=secret'
42
39
  ).and_return(true)
43
40
  provider.check_auth
44
41
  end
@@ -47,7 +44,7 @@ describe DPL::Provider::Deis do
47
44
  describe "#check_app" do
48
45
  example do
49
46
  expect(provider.context).to receive(:shell).with(
50
- 'deis apps:info --app=example'
47
+ './deis apps:info --app=example'
51
48
  ).and_return(true)
52
49
  provider.check_app
53
50
  end
@@ -59,31 +56,17 @@ describe DPL::Provider::Deis do
59
56
  let(:identity_file) { File.join(Dir.pwd, 'key_file') }
60
57
  example do
61
58
  expect(provider.context).to receive(:shell).with(
62
- 'deis keys:add key_file'
59
+ './deis keys:add key_file'
63
60
  ).and_return(true)
64
61
  provider.setup_key('key_file')
65
62
  end
66
63
  end
67
64
 
68
65
  describe "#setup_git_ssh" do
69
- let(:ssh_config_handle) { double 'ssh_config_handle' }
70
- let(:ssh_config) { File.join(Dir.home, '.ssh', 'config') }
71
- let(:identity_file) { File.join(Dir.pwd, 'key_file') }
72
- let(:git_ssh) { File.join(Dir.pwd, 'foo') }
73
- after { FileUtils.rm provider.context.env.delete('GIT_SSH') }
74
-
75
66
  example do
76
- expect(File).to receive(:open).with(git_ssh, 'w').and_call_original
77
- expect(File).to receive(:open).with(ssh_config, 'a')
78
- .and_yield(ssh_config_handle)
79
-
80
- expect(ssh_config_handle).to receive(:write).with(
81
- "\nHost deis-repo\n Hostname deis.deisapps.com\n Port 2222\n" \
82
- " User git\n IdentityFile #{identity_file}\n"
83
- )
84
67
  expect(provider.context).to receive(:shell).with(
85
- 'git remote add deis ssh://git@deis.deisapps.com:2222/example.git'
86
- )
68
+ './deis git:remote --app=example'
69
+ ).and_return(true)
87
70
  provider.setup_git_ssh('foo', 'key_file')
88
71
  end
89
72
  end
@@ -91,7 +74,7 @@ describe DPL::Provider::Deis do
91
74
  describe "#remove_key" do
92
75
  example do
93
76
  expect(provider.context).to receive(:shell).with(
94
- 'deis keys:remove key'
77
+ './deis keys:remove key'
95
78
  ).and_return(true)
96
79
  provider.remove_key
97
80
  end
@@ -100,7 +83,7 @@ describe DPL::Provider::Deis do
100
83
  describe "#push_app" do
101
84
  example do
102
85
  expect(provider.context).to receive(:shell).with(
103
- 'git push deis-repo:example.git HEAD:refs/heads/master -f'
86
+ 'git push deis HEAD:refs/heads/master -f'
104
87
  ).and_return(true)
105
88
  provider.push_app
106
89
  end
@@ -109,7 +92,7 @@ describe DPL::Provider::Deis do
109
92
  describe "#run" do
110
93
  example do
111
94
  expect(provider.context).to receive(:shell).with(
112
- 'deis apps:run shell command'
95
+ 'deis run -- shell command'
113
96
  ).and_return(true)
114
97
  provider.run('shell command')
115
98
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dpl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.20.travis.951.4
4
+ version: 1.7.20.travis.952.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Haase