dply 0.1.6 → 0.1.7
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 +4 -4
- data/bin/drake +2 -0
- data/lib/dply/archive.rb +1 -1
- data/lib/dply/build.rb +4 -17
- data/lib/dply/release.rb +42 -24
- data/lib/dply/rpm.rb +10 -6
- data/lib/dply/strategy/archive.rb +13 -20
- data/lib/dply/strategy/git.rb +5 -19
- data/lib/dply/tasks.rb +9 -0
- data/lib/dply/version.rb +1 -1
- data/lib/dplyr/remote_task.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78868f8ab27e27eeae74bbf55c79def56dc5005f
|
4
|
+
data.tar.gz: d84a93dba3ecfcd349233515cbb39593870c4ea6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c6cb63cda32f77e803c2cd6ec737711c7899c95eecbb48edeee64ebd597a7abf6a3fbb8bb8b35195dd03219deef179013c0606646439b35e72f0946fde0ce6f
|
7
|
+
data.tar.gz: 8af1d7824138f70013f1bdcda916cc8a83e22cc01c6d815fb43981801bd99daca4b0a29cdc7b96f20e8382a611d8e8e4993a51b125963ebd1f1af51315f7c285
|
data/bin/drake
CHANGED
data/lib/dply/archive.rb
CHANGED
data/lib/dply/build.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'dply/helper'
|
2
2
|
require 'dply/setup'
|
3
|
-
require 'dply/linker'
|
4
3
|
require 'dply/config_downloader'
|
5
4
|
require 'dply/yum'
|
6
5
|
require 'dply/tasks'
|
@@ -28,8 +27,7 @@ module Dply
|
|
28
27
|
Dir.chdir repo_dir do
|
29
28
|
git_step
|
30
29
|
git.clean
|
31
|
-
|
32
|
-
link_config
|
30
|
+
link_all
|
33
31
|
install_pkgs
|
34
32
|
clean_build_dir
|
35
33
|
link_build_dir
|
@@ -61,20 +59,9 @@ module Dply
|
|
61
59
|
end
|
62
60
|
end
|
63
61
|
|
64
|
-
def
|
65
|
-
link "#{config.dir}/shared", dir_map
|
66
|
-
|
67
|
-
|
68
|
-
def link_config
|
69
|
-
link "#{config.dir}/config", config_map
|
70
|
-
end
|
71
|
-
|
72
|
-
def link(source, map)
|
73
|
-
return if not map
|
74
|
-
logger.bullet "symlinking #{source}"
|
75
|
-
dest = repo_dir
|
76
|
-
linker = Linker.new(source, dest, map: map)
|
77
|
-
linker.create_symlinks
|
62
|
+
def link_all
|
63
|
+
tasks.link "#{config.dir}/shared", dir_map
|
64
|
+
tasks.link "#{config.dir}/config", config_map
|
78
65
|
end
|
79
66
|
|
80
67
|
def install_pkgs
|
data/lib/dply/release.rb
CHANGED
@@ -8,7 +8,22 @@ module Dply
|
|
8
8
|
include Helper
|
9
9
|
|
10
10
|
attr_accessor :url, :verify_checksum
|
11
|
-
|
11
|
+
attr_writer :name
|
12
|
+
|
13
|
+
def self.find_or_create(revision, **kwargs)
|
14
|
+
release = new(revision, **kwargs)
|
15
|
+
name = find_installed_name(revision, **kwargs)
|
16
|
+
release.name = name if name
|
17
|
+
return release
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.find_installed_name(revision, **kwargs)
|
21
|
+
branch = kwargs.fetch(:branch).to_s.gsub(/-/, "_")
|
22
|
+
app_name = kwargs.fetch(:app_name).to_s.gsub(/-/, "_")
|
23
|
+
name_without_ts = "#{revision}-#{app_name}-#{branch}-"
|
24
|
+
latest = Dir["releases/#{name_without_ts}*"].sort_by { |x, y| File.mtime(x) }.first
|
25
|
+
latest ? File.basename(latest) : nil
|
26
|
+
end
|
12
27
|
|
13
28
|
def initialize(revision, app_name: nil, branch: nil, url: nil)
|
14
29
|
@revision = revision
|
@@ -18,25 +33,43 @@ module Dply
|
|
18
33
|
end
|
19
34
|
|
20
35
|
def make_current
|
21
|
-
|
22
|
-
|
36
|
+
error "cannot make not installed release current" if not installed?
|
37
|
+
error "release path #{path} doesn't exist" if not File.directory? path
|
23
38
|
symlink path, "current"
|
24
39
|
end
|
25
40
|
|
41
|
+
def name
|
42
|
+
@name ||= "#{@revision}-#{replace_dashes(@app_name)}-#{replace_dashes(@branch)}-#{timestamp}"
|
43
|
+
end
|
44
|
+
|
26
45
|
def install
|
27
|
-
|
28
|
-
|
46
|
+
if installed?
|
47
|
+
logger.debug "release #{name} already installed"
|
48
|
+
return
|
49
|
+
end
|
29
50
|
Dir.mktmpdir "tmp" do |d|
|
30
51
|
path = "#{d}/#{name}"
|
31
52
|
archive.extract_to path
|
32
|
-
FileUtils.mv path, "releases"
|
53
|
+
FileUtils.mv path, "releases/"
|
33
54
|
end
|
34
|
-
@installed = true
|
35
55
|
archive.clean
|
36
56
|
end
|
37
57
|
|
38
58
|
def path
|
39
|
-
@path ||= "releases/#{
|
59
|
+
@path ||= "releases/#{name}"
|
60
|
+
end
|
61
|
+
|
62
|
+
def record_deployment
|
63
|
+
FileUtils.touch "#{path}/.deployed"
|
64
|
+
end
|
65
|
+
|
66
|
+
def already_deployed?
|
67
|
+
File.exist? "#{path}/.deployed"
|
68
|
+
end
|
69
|
+
|
70
|
+
def current?
|
71
|
+
return false if not File.symlink? "current"
|
72
|
+
File.basename(File.readlink "current") == name
|
40
73
|
end
|
41
74
|
|
42
75
|
private
|
@@ -53,23 +86,8 @@ module Dply
|
|
53
86
|
Time.now.strftime "%Y%m%d%H%M%S"
|
54
87
|
end
|
55
88
|
|
56
|
-
def load_status
|
57
|
-
name = name_without_ts
|
58
|
-
latest = Dir["releases/#{name}*"].sort_by { |x, y| File.mtime(x) }.first
|
59
|
-
if latest
|
60
|
-
@installed = true
|
61
|
-
@name = File.basename latest
|
62
|
-
end
|
63
|
-
@status_loaded = true
|
64
|
-
end
|
65
|
-
|
66
89
|
def installed?
|
67
|
-
|
68
|
-
@installed
|
69
|
-
end
|
70
|
-
|
71
|
-
def name_without_ts
|
72
|
-
@name_without_ts ||= "#{@revision}-#{replace_dashes(@app_name)}-#{replace_dashes(@branch)}-"
|
90
|
+
File.exist? path
|
73
91
|
end
|
74
92
|
|
75
93
|
end
|
data/lib/dply/rpm.rb
CHANGED
@@ -7,12 +7,7 @@ module Dply
|
|
7
7
|
def libs_to_packages(libs)
|
8
8
|
packages = Set.new
|
9
9
|
libs.each do |l|
|
10
|
-
|
11
|
-
command = %(rpm --queryformat "%{NAME} " -q --whatprovides "#{lib}")
|
12
|
-
logger.debug command
|
13
|
-
output = `#{command}`
|
14
|
-
error "running command #{command}" if not $?.exitstatus == 0
|
15
|
-
list = output.strip.split.select {|pkg| not filtered? pkg }
|
10
|
+
list = whatprovides(l)
|
16
11
|
packages << list if not list.empty?
|
17
12
|
end
|
18
13
|
return packages
|
@@ -23,5 +18,14 @@ module Dply
|
|
23
18
|
@filtered.include? pkg.strip
|
24
19
|
end
|
25
20
|
|
21
|
+
def whatprovides(lib)
|
22
|
+
lib = "#{lib}()(64bit)"
|
23
|
+
command = %(rpm --queryformat "%{NAME} " -q --whatprovides "#{lib}")
|
24
|
+
logger.debug command
|
25
|
+
output = `#{command}`
|
26
|
+
error "running command #{command}" if not $?.exitstatus == 0
|
27
|
+
list = output.strip.split.select {|pkg| not filtered? pkg }
|
28
|
+
end
|
29
|
+
|
26
30
|
end
|
27
31
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'dply/helper'
|
2
2
|
require 'dply/tasks'
|
3
3
|
require 'dply/setup'
|
4
|
-
require 'dply/linker'
|
5
4
|
require 'dply/config_downloader'
|
6
5
|
require 'dply/yum'
|
7
6
|
require 'dply/release'
|
@@ -27,6 +26,12 @@ module Dply
|
|
27
26
|
|
28
27
|
def deploy
|
29
28
|
setup.archive
|
29
|
+
if release.already_deployed? && release.current?
|
30
|
+
logger.info "revision #{revision} is currently deployed"
|
31
|
+
current_version = previous_version = get_release
|
32
|
+
tasks.report_changes(current_version, previous_version)
|
33
|
+
return
|
34
|
+
end
|
30
35
|
download_configs if config_download_url
|
31
36
|
install_release
|
32
37
|
previous_version = get_release
|
@@ -34,6 +39,7 @@ module Dply
|
|
34
39
|
Dir.chdir current_dir do
|
35
40
|
tasks.deploy target
|
36
41
|
end
|
42
|
+
release.record_deployment
|
37
43
|
current_version = get_release
|
38
44
|
tasks.report_changes(previous_version, current_version)
|
39
45
|
end
|
@@ -41,8 +47,7 @@ module Dply
|
|
41
47
|
def reload
|
42
48
|
download_configs if config_download_url
|
43
49
|
Dir.chdir current_dir do
|
44
|
-
|
45
|
-
link_config
|
50
|
+
link_all
|
46
51
|
tasks.reload target
|
47
52
|
end
|
48
53
|
end
|
@@ -74,7 +79,7 @@ module Dply
|
|
74
79
|
end
|
75
80
|
|
76
81
|
def release
|
77
|
-
@release ||= Release.
|
82
|
+
@release ||= Release.find_or_create(
|
78
83
|
revision, branch: branch,
|
79
84
|
app_name: config.name,
|
80
85
|
url: config.build_url
|
@@ -85,8 +90,7 @@ module Dply
|
|
85
90
|
release.verify_checksum = config.verify_checksum
|
86
91
|
release.install
|
87
92
|
Dir.chdir release.path do
|
88
|
-
|
89
|
-
link_config
|
93
|
+
link_all
|
90
94
|
tasks.install_pkgs(use_yum: options[:use_yum])
|
91
95
|
end
|
92
96
|
end
|
@@ -100,12 +104,9 @@ module Dply
|
|
100
104
|
end
|
101
105
|
end
|
102
106
|
|
103
|
-
def
|
104
|
-
link "#{config.dir}/shared", dir_map
|
105
|
-
|
106
|
-
|
107
|
-
def link_config
|
108
|
-
link "#{config.dir}/config", config_map
|
107
|
+
def link_all
|
108
|
+
tasks.link "#{config.dir}/shared", dir_map
|
109
|
+
tasks.link "#{config.dir}/config", config_map
|
109
110
|
end
|
110
111
|
|
111
112
|
def setup
|
@@ -116,14 +117,6 @@ module Dply
|
|
116
117
|
@tasks ||= Tasks.new(deployment: true)
|
117
118
|
end
|
118
119
|
|
119
|
-
def link(source, map)
|
120
|
-
return if not map
|
121
|
-
logger.bullet "symlinking #{source}"
|
122
|
-
dest = Dir.pwd
|
123
|
-
linker = Linker.new(source, dest, map: map)
|
124
|
-
linker.create_symlinks
|
125
|
-
end
|
126
|
-
|
127
120
|
end
|
128
121
|
end
|
129
122
|
end
|
data/lib/dply/strategy/git.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'dply/helper'
|
2
2
|
require 'dply/setup'
|
3
|
-
require 'dply/linker'
|
4
3
|
require 'dply/config_downloader'
|
5
4
|
require 'dply/yum'
|
6
5
|
require 'dply/tasks'
|
@@ -31,8 +30,7 @@ module Dply
|
|
31
30
|
previous_version = git.commit_id
|
32
31
|
git_step
|
33
32
|
current_version = git.commit_id
|
34
|
-
|
35
|
-
link_config
|
33
|
+
link_all
|
36
34
|
install_pkgs
|
37
35
|
tasks.deploy target
|
38
36
|
tasks.report_changes(previous_version, current_version)
|
@@ -42,8 +40,7 @@ module Dply
|
|
42
40
|
def reload
|
43
41
|
download_configs if config_download_url
|
44
42
|
Dir.chdir current_dir do
|
45
|
-
|
46
|
-
link_config
|
43
|
+
link_all
|
47
44
|
tasks.reload target
|
48
45
|
end
|
49
46
|
end
|
@@ -78,12 +75,9 @@ module Dply
|
|
78
75
|
end
|
79
76
|
end
|
80
77
|
|
81
|
-
def
|
82
|
-
link "#{config.dir}/shared", dir_map
|
83
|
-
|
84
|
-
|
85
|
-
def link_config
|
86
|
-
link "#{config.dir}/config", config_map
|
78
|
+
def link_all
|
79
|
+
tasks.link "#{config.dir}/shared", dir_map
|
80
|
+
tasks.link "#{config.dir}/config", config_map
|
87
81
|
end
|
88
82
|
|
89
83
|
def install_pkgs
|
@@ -98,14 +92,6 @@ module Dply
|
|
98
92
|
@tasks ||= Tasks.new(deployment: true)
|
99
93
|
end
|
100
94
|
|
101
|
-
def link(source, map)
|
102
|
-
return if not map
|
103
|
-
logger.bullet "symlinking #{source}"
|
104
|
-
dest = current_dir
|
105
|
-
linker = Linker.new(source, dest, map: map)
|
106
|
-
linker.create_symlinks
|
107
|
-
end
|
108
|
-
|
109
95
|
end
|
110
96
|
end
|
111
97
|
end
|
data/lib/dply/tasks.rb
CHANGED
@@ -2,6 +2,7 @@ require 'json'
|
|
2
2
|
require 'dply/shell'
|
3
3
|
require 'dply/bundle'
|
4
4
|
require 'dply/yum'
|
5
|
+
require 'dply/linker'
|
5
6
|
require 'dply/pkgs_config'
|
6
7
|
|
7
8
|
module Dply
|
@@ -54,6 +55,14 @@ module Dply
|
|
54
55
|
end
|
55
56
|
end
|
56
57
|
|
58
|
+
def link(source, map)
|
59
|
+
return if not map
|
60
|
+
logger.bullet "symlinking #{source}"
|
61
|
+
dest = Dir.pwd
|
62
|
+
linker = Linker.new(source, dest, map: map)
|
63
|
+
linker.create_symlinks
|
64
|
+
end
|
65
|
+
|
57
66
|
private
|
58
67
|
|
59
68
|
def bundle
|
data/lib/dply/version.rb
CHANGED
data/lib/dplyr/remote_task.rb
CHANGED
@@ -80,9 +80,9 @@ module Dplyr
|
|
80
80
|
host = host_info[:host]
|
81
81
|
dir = host_info[:dir]
|
82
82
|
if logger.debug?
|
83
|
-
%(ssh -tt -oBatchMode=yes -l #{user} #{host}
|
83
|
+
%(ssh -tt -oBatchMode=yes -l #{user} #{host} '#{env} drake --remote --debug -d #{dir} #{task} 2>&1')
|
84
84
|
else
|
85
|
-
%(ssh -tt -oBatchMode=yes -l #{user} #{host}
|
85
|
+
%(ssh -tt -oBatchMode=yes -l #{user} #{host} '#{env} drake --remote -d #{dir} #{task} 2>&1' 2>/dev/null)
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dply
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Neeraj
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-elf
|