fulmar 1.2.1 → 1.3.0
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/lib/fulmar/domain/service/configuration_service.rb +15 -2
- data/lib/fulmar/domain/service/file_sync_service.rb +3 -0
- data/lib/fulmar/domain/task/database_sync.rake +0 -2
- data/lib/fulmar/domain/task/versions.rake +15 -8
- data/lib/fulmar/infrastructure/service/composer_service.rb +2 -2
- data/lib/fulmar/infrastructure/service/transfer/tar.rb +62 -0
- data/lib/fulmar/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b677f5683a979d761f27915ec1181cf120f9e57
|
4
|
+
data.tar.gz: 4af0a8618226dd09f4deda014c8fa0151e1d4841
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2037bd7be61b50fea042250a59b639c8dc85876039dd9bb3ade4804f9d128ee7d4b5eedf774a4308184270af5972cbe053245d3c6eeeb2feb826e406478dbbde
|
7
|
+
data.tar.gz: aa06a04c726ae5f7588bc0b655639af26f78eac65afd74800167840483efd8b17d94396b114eaf66b8302cd1faea24a330dada3957e3fdc773718e7450b31a87
|
@@ -12,6 +12,13 @@ module Fulmar
|
|
12
12
|
FULMAR_CONFIGURATION_DIR = 'Fulmar'
|
13
13
|
DEPLOYMENT_CONFIG_FILE = 'deployment.yml'
|
14
14
|
|
15
|
+
BLANK_CONFIG = {
|
16
|
+
environments: {},
|
17
|
+
features: {},
|
18
|
+
hosts: {},
|
19
|
+
dependencies: { all: {} }
|
20
|
+
}
|
21
|
+
|
15
22
|
include Singleton
|
16
23
|
|
17
24
|
attr_reader :environment, :target
|
@@ -60,6 +67,10 @@ module Fulmar
|
|
60
67
|
@target = target ? target.to_sym : nil
|
61
68
|
end
|
62
69
|
|
70
|
+
def dependencies(env = nil)
|
71
|
+
env.nil? ? @config[:dependencies][:all] : @config[:dependencies][:all].deep_merge(@config[:dependencies][env])
|
72
|
+
end
|
73
|
+
|
63
74
|
def ready?
|
64
75
|
return false if @environment.nil? || @target.nil?
|
65
76
|
fail 'Environment is invalid' if configuration[:environments][@environment].nil?
|
@@ -104,7 +115,9 @@ module Fulmar
|
|
104
115
|
end
|
105
116
|
|
106
117
|
def config_files
|
107
|
-
Dir.glob(File.join(base_path, FULMAR_CONFIGURATION_DIR, '*.config.yml')).sort
|
118
|
+
files = Dir.glob(File.join(base_path, FULMAR_CONFIGURATION_DIR, '*.config.yml')).sort
|
119
|
+
files << "#{ENV['HOME']}/.fulmar.yml" if File.exist? "#{ENV['HOME']}/.fulmar.yml"
|
120
|
+
files
|
108
121
|
end
|
109
122
|
|
110
123
|
protected
|
@@ -139,7 +152,7 @@ module Fulmar
|
|
139
152
|
|
140
153
|
# Loads the configuration from the YAML file and populates all targets
|
141
154
|
def load_configuration
|
142
|
-
@config =
|
155
|
+
@config = BLANK_CONFIG
|
143
156
|
config_files.each do |config_file|
|
144
157
|
@config = @config.deep_merge((YAML.load_file(config_file) || {}).symbolize)
|
145
158
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
|
2
2
|
require 'fulmar/infrastructure/service/transfer/rsync'
|
3
3
|
require 'fulmar/infrastructure/service/transfer/rsync_with_versions'
|
4
|
+
require 'fulmar/infrastructure/service/transfer/tar'
|
4
5
|
|
5
6
|
module Fulmar
|
6
7
|
# Creates the required transfer model from the configuration
|
@@ -11,6 +12,8 @@ module Fulmar
|
|
11
12
|
transfer_model = Fulmar::Infrastructure::Service::Transfer::RsyncWithVersions.new(config)
|
12
13
|
when 'rsync'
|
13
14
|
transfer_model = Fulmar::Infrastructure::Service::Transfer::Rsync.new(config)
|
15
|
+
when 'tar'
|
16
|
+
transfer_model = Fulmar::Infrastructure::Service::Transfer::Tar.new(config)
|
14
17
|
else
|
15
18
|
help = config[:type] == '' ? 'Add a "type: " field to your deployment yaml file. ' : ''
|
16
19
|
transfer_model = nil
|
@@ -12,26 +12,33 @@ namespace :versions do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
unless @versioned_servers.empty?
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
15
|
+
|
16
|
+
@versioned_servers.each_key do |env|
|
17
|
+
target_count = @versioned_servers.keys.reduce(0) { |sum, target| sum + 1 if target.split(':').first == env.split(':').first }
|
18
|
+
namespace :list do
|
19
|
+
|
20
|
+
# Count of there are multiple targets within the environment
|
21
|
+
# if not, we can omit the target name in the task and shorten it a bit
|
22
|
+
# This should work in most cases.
|
23
|
+
|
24
|
+
desc "List available versions for environment/target \"#{env}\""
|
25
|
+
task (target_count > 1 ? env : env.split(':').first) do
|
19
26
|
configuration.environment = env.split(':').first
|
20
27
|
configuration.target = env.split(':').last
|
21
28
|
file_sync.list_releases(false).each { |item| puts item }
|
22
29
|
end
|
23
30
|
end
|
24
|
-
end
|
25
31
|
|
26
|
-
|
27
|
-
|
32
|
+
|
33
|
+
namespace :clean do
|
28
34
|
desc "Delete obsolete versions for target \"#{env}\""
|
29
|
-
task env do
|
35
|
+
task (target_count > 1 ? env : env.split(':').first) do
|
30
36
|
configuration.environment = env.split(':').first
|
31
37
|
configuration.target = env.split(':').last
|
32
38
|
file_sync.cleanup
|
33
39
|
end
|
34
40
|
end
|
35
41
|
end
|
42
|
+
|
36
43
|
end
|
37
44
|
end
|
@@ -8,8 +8,8 @@ module Fulmar
|
|
8
8
|
@path = custom_path
|
9
9
|
end
|
10
10
|
|
11
|
-
def execute(command, arguments =
|
12
|
-
@local_shell.run "#{@path} #{command} #{arguments.join(' ')}
|
11
|
+
def execute(command, arguments = %w(--no-dev -q))
|
12
|
+
@local_shell.run "#{@path} #{command} #{arguments.join(' ')}"
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
|
2
|
+
require 'fulmar/infrastructure/service/transfer/base'
|
3
|
+
|
4
|
+
module Fulmar
|
5
|
+
module Infrastructure
|
6
|
+
module Service
|
7
|
+
module Transfer
|
8
|
+
# Implements the rsync transfer
|
9
|
+
class Tar < Base
|
10
|
+
DEFAULT_CONFIG = {
|
11
|
+
tar: {
|
12
|
+
format: 'gz', # 'bz2'
|
13
|
+
file_base: nil,
|
14
|
+
# exclude: "*.bak",
|
15
|
+
# filename: "site.tar.gz"
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
def initialize(config)
|
20
|
+
@config = DEFAULT_CONFIG.deep_merge(config)
|
21
|
+
|
22
|
+
@config[:tar][:file_base] = File.basename(@config[:local_path]) if @config[:tar][:file_base].nil?
|
23
|
+
|
24
|
+
super(@config)
|
25
|
+
end
|
26
|
+
|
27
|
+
def transfer
|
28
|
+
prepare unless @prepared
|
29
|
+
@local_shell.run tar_command
|
30
|
+
filename
|
31
|
+
end
|
32
|
+
|
33
|
+
# Build the rsync command from the given options
|
34
|
+
def tar_command
|
35
|
+
"tar #{tar_command_options} '#{filename}' '#{config[:local_path]}'"
|
36
|
+
end
|
37
|
+
|
38
|
+
protected
|
39
|
+
|
40
|
+
def filename
|
41
|
+
return @config[:tar][:filename] unless @config[:tar][:filename].blank?
|
42
|
+
@config[:tar][:file_base] + '_' + Time.now.strftime('%Y-%m-%d') + extension
|
43
|
+
end
|
44
|
+
|
45
|
+
def extension
|
46
|
+
@config[:tar][:format].blank? ? '.tar' : '.tar.' + @config[:tar][:format]
|
47
|
+
end
|
48
|
+
|
49
|
+
# Assembles all rsync command line parameters from the configuration options
|
50
|
+
def tar_command_options
|
51
|
+
options = ['-c']
|
52
|
+
options << '-j' if @config[:tar][:format] == 'bz2'
|
53
|
+
options << '-z' if @config[:tar][:format] == 'gz'
|
54
|
+
options << "--exclude #{@config[:tar][:exclude]}" if @config[:tar][:exclude]
|
55
|
+
options << '-f'
|
56
|
+
options.join(' ')
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
data/lib/fulmar/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fulmar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonas Siegl
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-04-
|
12
|
+
date: 2015-04-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -155,6 +155,7 @@ files:
|
|
155
155
|
- lib/fulmar/infrastructure/service/transfer/base.rb
|
156
156
|
- lib/fulmar/infrastructure/service/transfer/rsync.rb
|
157
157
|
- lib/fulmar/infrastructure/service/transfer/rsync_with_versions.rb
|
158
|
+
- lib/fulmar/infrastructure/service/transfer/tar.rb
|
158
159
|
- lib/fulmar/infrastructure/service/tunnel_service.rb
|
159
160
|
- lib/fulmar/service/bootstrap_service.rb
|
160
161
|
- lib/fulmar/service/helper/common_helper.rb
|