fulmar 1.10.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/.travis.yml +11 -4
- data/README.md +87 -102
- data/fulmar.gemspec +2 -2
- data/lib/fulmar/domain/{service/application_service.rb → model/application.rb} +16 -2
- data/lib/fulmar/domain/model/configuration.rb +185 -0
- data/lib/fulmar/domain/service/config_test_service.rb +32 -114
- data/lib/fulmar/domain/service/config_tests/hosts.rb +23 -0
- data/lib/fulmar/domain/service/config_tests/mariadb.rb +19 -0
- data/lib/fulmar/domain/service/config_tests/paths.rb +15 -0
- data/lib/fulmar/domain/service/config_tests/project.rb +5 -0
- data/lib/fulmar/domain/service/configuration_service.rb +13 -131
- data/lib/fulmar/domain/service/file_sync_service.rb +7 -7
- data/lib/fulmar/domain/service/helper/common_helper.rb +18 -32
- data/lib/fulmar/domain/service/plugin_service.rb +60 -0
- data/lib/fulmar/domain/service/{config_rendering_service.rb → template_rendering_service.rb} +3 -3
- data/lib/fulmar/domain/task/configuration.rake +9 -7
- data/lib/fulmar/domain/task/console.rake +3 -3
- data/lib/fulmar/domain/task/environment.rake +5 -12
- data/lib/fulmar/domain/task/initialization/base.rake +3 -9
- data/lib/fulmar/domain/task/versions.rake +8 -12
- data/lib/fulmar/infrastructure/default_files/Fulmar/project.config.yml +26 -0
- data/lib/fulmar/infrastructure/default_files/Fulmarfile +22 -0
- data/lib/fulmar/infrastructure/{service → model}/transfer/base.rb +4 -4
- data/lib/fulmar/infrastructure/{service → model}/transfer/rsync.rb +4 -2
- data/lib/fulmar/infrastructure/{service → model}/transfer/rsync_with_versions.rb +18 -20
- data/lib/fulmar/infrastructure/{service → model}/transfer/tar.rb +2 -2
- data/lib/fulmar/infrastructure/service/copy_service.rb +2 -2
- data/lib/fulmar/infrastructure/service/ssh_config_service.rb +8 -21
- data/lib/fulmar/service/bootstrap_service.rb +1 -5
- data/lib/fulmar/task_manager.rb +2 -8
- data/lib/fulmar/version.rb +1 -1
- data/spec/lib/fulmar/model/configuration_spec.rb +193 -0
- data/spec/lib/fulmar/service/plugin_service_spec.rb +29 -0
- metadata +29 -34
- data/lib/fulmar/domain/service/helper/database_helper.rb +0 -14
- data/lib/fulmar/domain/service/helper/flow_helper.rb +0 -16
- data/lib/fulmar/domain/service/helper/vhost_helper.rb +0 -21
- data/lib/fulmar/domain/task/database_sync.rake +0 -63
- data/lib/fulmar/infrastructure/service/composer_service.rb +0 -22
- data/lib/fulmar/infrastructure/service/database/database_service.rb +0 -118
- data/lib/fulmar/infrastructure/service/flow_service.rb +0 -47
- data/lib/fulmar/infrastructure/service/shell_service.rb +0 -10
- data/lib/fulmar/service/logger_service.rb +0 -7
- data/test/rsync_with_versions.rb +0 -20
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:
|
4
|
+
version: 2.0.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: 2017-
|
12
|
+
date: 2017-04-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -31,14 +31,14 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
34
|
+
version: '11'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
41
|
+
version: '11'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: fulmar-shell
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -60,39 +60,33 @@ dependencies:
|
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 1.7.0
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
63
|
+
name: colorize
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0
|
69
|
-
- - ">="
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
version: 0.1.1
|
68
|
+
version: '0'
|
72
69
|
type: :runtime
|
73
70
|
prerelease: false
|
74
71
|
version_requirements: !ruby/object:Gem::Requirement
|
75
72
|
requirements:
|
76
73
|
- - "~>"
|
77
74
|
- !ruby/object:Gem::Version
|
78
|
-
version: '0
|
79
|
-
- - ">="
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: 0.1.1
|
75
|
+
version: '0'
|
82
76
|
- !ruby/object:Gem::Dependency
|
83
|
-
name:
|
77
|
+
name: activesupport
|
84
78
|
requirement: !ruby/object:Gem::Requirement
|
85
79
|
requirements:
|
86
80
|
- - "~>"
|
87
81
|
- !ruby/object:Gem::Version
|
88
|
-
version: '0'
|
82
|
+
version: '5.0'
|
89
83
|
type: :runtime
|
90
84
|
prerelease: false
|
91
85
|
version_requirements: !ruby/object:Gem::Requirement
|
92
86
|
requirements:
|
93
87
|
- - "~>"
|
94
88
|
- !ruby/object:Gem::Version
|
95
|
-
version: '0'
|
89
|
+
version: '5.0'
|
96
90
|
description: Fulmar is a task manager for deployments.
|
97
91
|
email:
|
98
92
|
- j.siegl@core4.de
|
@@ -113,42 +107,42 @@ files:
|
|
113
107
|
- Rakefile
|
114
108
|
- bin/fulmar
|
115
109
|
- fulmar.gemspec
|
110
|
+
- lib/fulmar/domain/model/application.rb
|
111
|
+
- lib/fulmar/domain/model/configuration.rb
|
116
112
|
- lib/fulmar/domain/model/project.rb
|
117
|
-
- lib/fulmar/domain/service/application_service.rb
|
118
|
-
- lib/fulmar/domain/service/config_rendering_service.rb
|
119
113
|
- lib/fulmar/domain/service/config_test_service.rb
|
114
|
+
- lib/fulmar/domain/service/config_tests/hosts.rb
|
115
|
+
- lib/fulmar/domain/service/config_tests/mariadb.rb
|
116
|
+
- lib/fulmar/domain/service/config_tests/paths.rb
|
117
|
+
- lib/fulmar/domain/service/config_tests/project.rb
|
120
118
|
- lib/fulmar/domain/service/configuration_service.rb
|
121
119
|
- lib/fulmar/domain/service/file_sync_service.rb
|
122
120
|
- lib/fulmar/domain/service/helper/common_helper.rb
|
123
|
-
- lib/fulmar/domain/service/helper/database_helper.rb
|
124
|
-
- lib/fulmar/domain/service/helper/flow_helper.rb
|
125
|
-
- lib/fulmar/domain/service/helper/vhost_helper.rb
|
126
121
|
- lib/fulmar/domain/service/initialization_service.rb
|
122
|
+
- lib/fulmar/domain/service/plugin_service.rb
|
123
|
+
- lib/fulmar/domain/service/template_rendering_service.rb
|
127
124
|
- lib/fulmar/domain/task/configuration.rake
|
128
125
|
- lib/fulmar/domain/task/console.rake
|
129
|
-
- lib/fulmar/domain/task/database_sync.rake
|
130
126
|
- lib/fulmar/domain/task/environment.rake
|
131
127
|
- lib/fulmar/domain/task/initialization/base.rake
|
132
128
|
- lib/fulmar/domain/task/versions.rake
|
133
|
-
- lib/fulmar/infrastructure/
|
129
|
+
- lib/fulmar/infrastructure/default_files/Fulmar/project.config.yml
|
130
|
+
- lib/fulmar/infrastructure/default_files/Fulmarfile
|
131
|
+
- lib/fulmar/infrastructure/model/transfer/base.rb
|
132
|
+
- lib/fulmar/infrastructure/model/transfer/rsync.rb
|
133
|
+
- lib/fulmar/infrastructure/model/transfer/rsync_with_versions.rb
|
134
|
+
- lib/fulmar/infrastructure/model/transfer/tar.rb
|
134
135
|
- lib/fulmar/infrastructure/service/copy_service.rb
|
135
|
-
- lib/fulmar/infrastructure/service/database/database_service.rb
|
136
|
-
- lib/fulmar/infrastructure/service/flow_service.rb
|
137
|
-
- lib/fulmar/infrastructure/service/shell_service.rb
|
138
136
|
- lib/fulmar/infrastructure/service/ssh_config_service.rb
|
139
|
-
- lib/fulmar/infrastructure/service/transfer/base.rb
|
140
|
-
- lib/fulmar/infrastructure/service/transfer/rsync.rb
|
141
|
-
- lib/fulmar/infrastructure/service/transfer/rsync_with_versions.rb
|
142
|
-
- lib/fulmar/infrastructure/service/transfer/tar.rb
|
143
137
|
- lib/fulmar/infrastructure/service/tunnel_service.rb
|
144
138
|
- lib/fulmar/service/bootstrap_service.rb
|
145
139
|
- lib/fulmar/service/helper_service.rb
|
146
|
-
- lib/fulmar/service/logger_service.rb
|
147
140
|
- lib/fulmar/task_manager.rb
|
148
141
|
- lib/fulmar/version.rb
|
142
|
+
- spec/lib/fulmar/model/configuration_spec.rb
|
149
143
|
- spec/lib/fulmar/service/helper_service_spec.rb
|
144
|
+
- spec/lib/fulmar/service/plugin_service_spec.rb
|
150
145
|
- spec/spec_helper.rb
|
151
|
-
- test/rsync_with_versions.rb
|
152
146
|
homepage: https://github.com/CORE4/fulmar
|
153
147
|
licenses:
|
154
148
|
- MIT
|
@@ -169,11 +163,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
169
163
|
version: '0'
|
170
164
|
requirements: []
|
171
165
|
rubyforge_project:
|
172
|
-
rubygems_version: 2.6.
|
166
|
+
rubygems_version: 2.6.11
|
173
167
|
signing_key:
|
174
168
|
specification_version: 4
|
175
169
|
summary: A deployment task manager.
|
176
170
|
test_files:
|
171
|
+
- spec/lib/fulmar/model/configuration_spec.rb
|
177
172
|
- spec/lib/fulmar/service/helper_service_spec.rb
|
173
|
+
- spec/lib/fulmar/service/plugin_service_spec.rb
|
178
174
|
- spec/spec_helper.rb
|
179
|
-
- test/rsync_with_versions.rb
|
@@ -1,14 +0,0 @@
|
|
1
|
-
module Fulmar
|
2
|
-
module Domain
|
3
|
-
module Service
|
4
|
-
module Helper
|
5
|
-
# Provides access helper to the database service from within a task
|
6
|
-
module DatabaseHelper
|
7
|
-
def database
|
8
|
-
storage['database'] ||= Fulmar::Infrastructure::Service::Database::DatabaseService.new configuration
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require 'fulmar/infrastructure/service/flow_service'
|
2
|
-
|
3
|
-
module Fulmar
|
4
|
-
module Domain
|
5
|
-
module Service
|
6
|
-
module Helper
|
7
|
-
# Provides access helper to the flow service from within a task
|
8
|
-
module FlowHelper
|
9
|
-
def flow
|
10
|
-
storage['flow'] ||= Fulmar::Infrastructure::Service::FlowService.new remote_shell, configuration
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Fulmar
|
2
|
-
module Domain
|
3
|
-
module Service
|
4
|
-
module Helper
|
5
|
-
# Provides access helper to the database service from within a task
|
6
|
-
module VhostHelper
|
7
|
-
def vhost_name
|
8
|
-
branch = git.current_branch
|
9
|
-
match = branch.match(/f\d+_([a-zA-Z0-9\_\-]+)/)
|
10
|
-
if match
|
11
|
-
match[1]
|
12
|
-
else
|
13
|
-
error "Cannot deploy branch '#{branch}'"
|
14
|
-
fail 'Branch must match specification for feature branches (f1234_name)'
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,63 +0,0 @@
|
|
1
|
-
db_configs = []
|
2
|
-
configuration.each do |env, target, data|
|
3
|
-
db_configs << [env, target] if data[:type] == 'maria'
|
4
|
-
end
|
5
|
-
|
6
|
-
# Expects two hashes as parameters each with { :environment, :target, :name } set
|
7
|
-
# :name is either environment:target or just the environment, if the is only one target
|
8
|
-
def create_update_task(from, to)
|
9
|
-
namespace to[:name] do
|
10
|
-
task "from_#{from[:name]}" do
|
11
|
-
configuration.environment = from[:environment]
|
12
|
-
configuration.target = from[:target]
|
13
|
-
puts 'Getting dump...'
|
14
|
-
sql_dump = database.download_dump
|
15
|
-
if sql_dump == ''
|
16
|
-
puts 'Cannot create sql dump'
|
17
|
-
else
|
18
|
-
configuration.environment = to[:environment]
|
19
|
-
configuration.target = to[:target]
|
20
|
-
puts 'Sending dump...'
|
21
|
-
remote_sql_dump = upload(sql_dump)
|
22
|
-
database.load_dump(remote_sql_dump)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def name(env, target, counts)
|
29
|
-
counts[env] > 1 ? "#{env}:#{target}" : env
|
30
|
-
end
|
31
|
-
|
32
|
-
def create_update_tasks(db_configs)
|
33
|
-
counts = Hash.new(0)
|
34
|
-
db_configs.each do |config|
|
35
|
-
counts[config.first] += 1
|
36
|
-
end
|
37
|
-
|
38
|
-
namespace :update do
|
39
|
-
db_configs.each do |from_db|
|
40
|
-
db_configs.each do |to_db|
|
41
|
-
next if from_db == to_db # no need to sync a database to itself
|
42
|
-
next if from_db.last != to_db.last # sync only matching target names
|
43
|
-
from = {
|
44
|
-
environment: from_db.first,
|
45
|
-
target: from_db.last,
|
46
|
-
name: name(from_db.first, from_db.last, counts)
|
47
|
-
}
|
48
|
-
to = {
|
49
|
-
environment: to_db.first,
|
50
|
-
target: to_db.last,
|
51
|
-
name: name(to_db.first, to_db.last, counts)
|
52
|
-
}
|
53
|
-
create_update_task(from, to)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
if configuration.feature?(:database) && db_configs.any?
|
60
|
-
namespace :database do
|
61
|
-
create_update_tasks(db_configs) if db_configs.count > 1
|
62
|
-
end
|
63
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
module Fulmar
|
2
|
-
module Infrastructure
|
3
|
-
module Service
|
4
|
-
# Provides access to composer
|
5
|
-
class ComposerService
|
6
|
-
DEFAULT_PARAMS = ['--no-dev']
|
7
|
-
|
8
|
-
attr_accessor :shell
|
9
|
-
|
10
|
-
def initialize(shell, custom_path = '/usr/bin/env composer')
|
11
|
-
@shell = shell
|
12
|
-
@shell.quiet = true
|
13
|
-
@path = custom_path
|
14
|
-
end
|
15
|
-
|
16
|
-
def execute(command, arguments = DEFAULT_PARAMS)
|
17
|
-
@shell.run "#{@path} #{command} #{arguments.join(' ')}"
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,118 +0,0 @@
|
|
1
|
-
module Fulmar
|
2
|
-
module Infrastructure
|
3
|
-
module Service
|
4
|
-
module Database
|
5
|
-
# Provides basic methods common to all database services
|
6
|
-
class DatabaseService
|
7
|
-
attr_accessor :client
|
8
|
-
attr_reader :shell, :connected
|
9
|
-
alias_method :connected?, :connected
|
10
|
-
|
11
|
-
DEFAULT_CONFIG = {
|
12
|
-
maria: {
|
13
|
-
host: '127.0.0.1',
|
14
|
-
port: 3306,
|
15
|
-
user: 'root',
|
16
|
-
password: '',
|
17
|
-
encoding: 'utf8',
|
18
|
-
ignore_tables: []
|
19
|
-
}
|
20
|
-
}
|
21
|
-
|
22
|
-
def initialize(config)
|
23
|
-
@config = config
|
24
|
-
@config.merge DEFAULT_CONFIG
|
25
|
-
initialize_shell
|
26
|
-
config_test
|
27
|
-
end
|
28
|
-
|
29
|
-
def local?
|
30
|
-
@config[:hostname] == 'localhost'
|
31
|
-
end
|
32
|
-
|
33
|
-
def command(binary)
|
34
|
-
command = binary
|
35
|
-
command << " -h #{@config[:maria][:host]}" unless @config[:maria][:host].blank?
|
36
|
-
command << " -u #{@config[:maria][:user]}" unless @config[:maria][:user].blank?
|
37
|
-
command << " --password='#{@config[:maria][:password]}'" unless @config[:maria][:password].blank?
|
38
|
-
command
|
39
|
-
end
|
40
|
-
|
41
|
-
def dump(filename = backup_filename)
|
42
|
-
filename = "#{@config[:remote_path]}/#{filename}" unless filename[0, 1] == '/'
|
43
|
-
|
44
|
-
@shell.run "#{command('mysqldump')} #{@config[:maria][:database]} --single-transaction #{diffable} #{ignore_tables} -r \"#{filename}\""
|
45
|
-
|
46
|
-
filename
|
47
|
-
end
|
48
|
-
|
49
|
-
def load_dump(dump_file, database = @config[:maria][:database])
|
50
|
-
@shell.run "#{command('mysql')} -D #{database} < #{dump_file}"
|
51
|
-
end
|
52
|
-
|
53
|
-
def download_dump(filename = backup_filename)
|
54
|
-
local_path = filename[0, 1] == '/' ? filename : @config[:local_path] + '/' + filename
|
55
|
-
remote_path = dump
|
56
|
-
copy = system("scp -Cq #{@config.ssh_user_and_host}:#{remote_path} #{local_path}")
|
57
|
-
@shell.run "rm -f \"#{remote_path}\"" # delete temporary file
|
58
|
-
if copy
|
59
|
-
local_path
|
60
|
-
else
|
61
|
-
''
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
protected
|
66
|
-
|
67
|
-
# Return mysql command line options to ignore specific tables
|
68
|
-
def ignore_tables
|
69
|
-
@config[:maria][:ignore_tables] = [*@config[:maria][:ignore_tables]]
|
70
|
-
@config[:maria][:ignore_tables].map do |table|
|
71
|
-
"--ignore-table=#{@config[:maria][:database]}.#{table}"
|
72
|
-
end.join(' ')
|
73
|
-
end
|
74
|
-
|
75
|
-
# Return the mysql configuration options to make a dump diffable
|
76
|
-
def diffable
|
77
|
-
@config[:maria][:diffable_dump] ? '--skip-comments --skip-extended-insert ' : ''
|
78
|
-
end
|
79
|
-
|
80
|
-
# Test configuration
|
81
|
-
def config_test
|
82
|
-
fail 'Configuration option "database" missing.' unless @config[:maria][:database]
|
83
|
-
end
|
84
|
-
|
85
|
-
# Builds the filename for a new database backup file
|
86
|
-
# NOTE: The file might already exist, for example if this is run at the same
|
87
|
-
# time from to different clients. I won't handle this as it is unlikely and
|
88
|
-
# would result in more I/O
|
89
|
-
def backup_filename
|
90
|
-
"#{@config[:maria][:database]}_#{Time.now.strftime('%Y-%m-%dT%H%M%S')}.sql"
|
91
|
-
end
|
92
|
-
|
93
|
-
def initialize_shell
|
94
|
-
path = local? ? @config[:local_path] : @config[:remote_path]
|
95
|
-
@shell = Fulmar::Infrastructure::Service::ShellService.new(path , @config.ssh_user_and_host)
|
96
|
-
@shell.debug = true if @config[:debug]
|
97
|
-
@shell.strict = true
|
98
|
-
end
|
99
|
-
|
100
|
-
# Compiles a mysql config hash from valid options of the fulmar config
|
101
|
-
def compile_options
|
102
|
-
possible_options = [:host, :username, :password, :port, :encoding, :socket, :read_timeout, :write_timeout,
|
103
|
-
:connect_timeout, :reconnect, :local_infile, :secure_auth, :default_file, :default_group,
|
104
|
-
:init_command
|
105
|
-
]
|
106
|
-
options = { host: '127.0.0.1', username: @config[:maria][:user] }
|
107
|
-
|
108
|
-
possible_options.each do |option|
|
109
|
-
options[option] = @config[:maria][option] unless @config[:maria][option].nil?
|
110
|
-
end
|
111
|
-
|
112
|
-
options
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
118
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
module Fulmar
|
2
|
-
module Infrastructure
|
3
|
-
module Service
|
4
|
-
# Implements Flow commands
|
5
|
-
class FlowService
|
6
|
-
# @param [Fulmar::Infrastructure::Service::ShellService] shell
|
7
|
-
# @param [Hash] config
|
8
|
-
def initialize(shell, config)
|
9
|
-
@remote_shell = shell
|
10
|
-
@config = config
|
11
|
-
test_config
|
12
|
-
end
|
13
|
-
|
14
|
-
def cache_clear
|
15
|
-
execute('flow:cache:flush --force')
|
16
|
-
end
|
17
|
-
|
18
|
-
def cache_warmup
|
19
|
-
execute('flow:cache:warmup')
|
20
|
-
end
|
21
|
-
|
22
|
-
def site_export(filename = export_filename)
|
23
|
-
execute("typo3.neos:site:export --filename \"#{filename}\"")
|
24
|
-
filename
|
25
|
-
end
|
26
|
-
|
27
|
-
def site_import(filename)
|
28
|
-
execute("./flow typo3.neos:site:import --filename \"#{filename}\"")
|
29
|
-
end
|
30
|
-
|
31
|
-
def execute(command)
|
32
|
-
@remote_shell.run "FLOW_CONTEXT=\"#{@config[:neos][:environment]}\" ./flow #{command}"
|
33
|
-
end
|
34
|
-
|
35
|
-
protected
|
36
|
-
|
37
|
-
def export_filename
|
38
|
-
"export_#{Time.now.strftime('%Y-%m-%dT%H%M%S')}.xml"
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_config
|
42
|
-
fail 'Neos environment is not set.' unless @config[:neos] && @config[:neos][:environment]
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
data/test/rsync_with_versions.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'minitest/autorun'
|
2
|
-
require 'fulmar/infrastructure/service/transfer/rsync_with_versions'
|
3
|
-
|
4
|
-
# Tests RsyncWithVersions
|
5
|
-
class RsyncWithVersionsTest < MiniTest::Unit::TestCase
|
6
|
-
def setup
|
7
|
-
@transfer = Fulmar::Infrastructure::Service::Transfer::RsyncWithVersions.new(
|
8
|
-
host: 'example.com',
|
9
|
-
remote_dir: '/tmp',
|
10
|
-
rsync: {
|
11
|
-
exclude: 'foo'
|
12
|
-
},
|
13
|
-
type: :rsync_with_versions
|
14
|
-
)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_release_dir_contains_current_date
|
18
|
-
assert_match(/\/#{Time.now.strftime('%Y-%m-%d')}_/, @transfer.release_dir)
|
19
|
-
end
|
20
|
-
end
|