alcapon 0.4.17 → 0.4.18

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3148c24452e76ce1db9f8a101ee6e379d7d41d48
4
- data.tar.gz: a4f7e37ce1f4f4bdf440195dff751437e978db4c
3
+ metadata.gz: 8ad2a04b0b969ddcdd084c811fca9eded8b1c501
4
+ data.tar.gz: c657ccd1631591f313ecfc06940ca6297cad240e
5
5
  SHA512:
6
- metadata.gz: d897a288b7e14f4b0ed2ffd0d7f4c7e59fe85419e928c71505704abdb6c7bef7ad769a1893ca636a9dfe6a13e5b24d7cc0f824101e76ceb992bd969bfd5eb78e
7
- data.tar.gz: 37ccc3da0db90a6d8e6a2b09c39d7c349c98a44b4ffeb621857b4e5a16ed4c9711875b6515fa896c1992af86d44c5f746d21fe5f610c129fc5a2cfd78c1fc1c5
6
+ metadata.gz: e0c27c326b6358b238912fab48f0555d9c8899ff7176c8c37252239172472ca48de9d78746a6db000c960468634f783f41a8f52148242ec7333155991b734744
7
+ data.tar.gz: e12957da18393dac9dbc6ba3d6e089ce0755b410195a1d989ed09c4c1868ac9127db060e4d90e36e2c5034dc03125adfb14f1e49fbe4d4716e63f4e4c60493fa
data/bin/capezit CHANGED
@@ -188,6 +188,13 @@ files = {
188
188
  # IMPORTANT: requires that the database is already created before it is run
189
189
  set :ezp5_regenerate_config, false
190
190
 
191
+ # Parameters when ezdfs is used
192
+ #set :ezdfs_mount_path, "/path/to/your/(NFS|GlusterFS|Samba) mount"
193
+ #set :ezdfs_database_server, "localhost"
194
+ #set :ezdfs_database_name, "dbname"
195
+ #set :ezdfs_database_uname, "dbuname"
196
+ #set :ezdfs_database_passd, "dbpasswd"
197
+
191
198
 
192
199
  # TODO : use yml files to manage database credentials securely
193
200
  # See http://www.simonecarletti.com/blog/2009/06/capistrano-and-database-yml/
@@ -0,0 +1,54 @@
1
+ def unindent(string)
2
+ indentation = string[/\A\s*/]
3
+ string.strip.gsub(/^#{indentation}/, "")
4
+ end
5
+
6
+ def capez_puts_done
7
+ puts '✔'.green
8
+ end
9
+
10
+ def print_dotted( message, options={} )
11
+ defaults_options = { :eol => false,
12
+ :sol => false,
13
+ :max_length => 40,
14
+ :eol_msg => false }
15
+
16
+ options = defaults_options.merge( options )
17
+ message = "#{message} " + "." * [0,options[:max_length]-message.length-1].max
18
+
19
+ if options[:sol]
20
+ message = "\n#{message}"
21
+ end
22
+
23
+ if options[:eol_msg]
24
+ message += " #{options[:eol_msg]}"
25
+ end
26
+
27
+ if options[:eol]
28
+ puts message
29
+ else
30
+ print message
31
+ end
32
+ end
33
+
34
+ def ezp5?
35
+ return ( fetch( :ezpublish_version, nil ) == 5 )
36
+ end
37
+
38
+ def ezp_legacy_path(path='')
39
+ elements = Array.new
40
+
41
+ if( fetch( :ezp_legacy, "" ) != "" )
42
+ elements += [ "#{ezp_legacy}" ]
43
+ end
44
+
45
+ if( path != '' )
46
+ elements += [ "#{path}" ]
47
+ end
48
+
49
+ return File.join( elements )
50
+ end
51
+
52
+ def alcapon_message(string)
53
+ puts( "[alcapon]".green+" #{string}" )
54
+ end
data/lib/capez.rb CHANGED
@@ -336,26 +336,38 @@ namespace :ezpublish do
336
336
  Sync your var directory with a remote one
337
337
  DESC
338
338
  task :sync_to_local, :roles => :web, :only => { :primary => true } do
339
- confirmation = Capistrano::CLI.ui.ask "You're about to sync your local var/ directory FROM a remote one (current stage = #{stage}). Are you sure (y/N) ?"
339
+ puts "Cluster mode : " + (fetch( :ezdfs_mount_path, nil ) == nil ? "no".red : "yes".green )
340
+ confirmation = Capistrano::CLI.ui.ask "You're about to sync your local storage directory FROM a remote one (current stage = #{stage}). Are you sure (y/N) ?"
340
341
  abort "Aborted" unless confirmation.downcase == 'y'
341
342
 
342
343
  shared_host = fetch( :shared_host, nil )
343
344
  abort "Please set 'shared_host'" if shared_host == nil
344
345
 
345
- # TODO : make it configurable
346
- exclude_string = ""
347
- exclude_paths = [ "/cache", "/log", "/*/cache", "/*/log", "/autoload" ]
348
- exclude_paths.each{ |item|
349
- exclude_string << "--exclude '#{item}' "
350
- }
351
-
352
- run_locally( "rsync -az #{exclude_string} #{user}@#{shared_host}:#{shared_path}/var/* " + ezp_legacy_path( "var/" ) )
346
+ if fetch( :ezdfs_mount_path, nil ) == nil
347
+ # TODO : make it configurable
348
+ exclude_string = ""
349
+ exclude_paths = [ "/cache", "/log", "/*/cache", "/*/log", "/autoload" ]
350
+ exclude_paths.each{ |item|
351
+ exclude_string << "--exclude '#{item}' "
352
+ }
353
+ run_locally( "rsync -az #{exclude_string} #{user}@#{shared_host}:#{shared_path}/var/* " + ezp_legacy_path( "var/" ) )
354
+ else
355
+ puts "Syncing remote mount path (path = #{ezdfs_mount_path} on both side)".green
356
+ storage_directories.each{ |sd|
357
+ print_dotted( "var/#{sd}/storage" )
358
+ fullpath = "#{ezdfs_mount_path}/var/#{sd}/storage"
359
+ run_locally( "if [ ! -d #{fullpath} ]; then mkdir -p #{fullpath}; fi;" )
360
+ run_locally( "rsync -az #{user}@#{shared_host}:#{fullpath}/* #{fullpath}/" )
361
+ capez_puts_done
362
+ }
363
+ end
353
364
  end
354
365
 
355
366
  desc <<-DESC
356
367
  Sync your a remote var folder with local datas
357
368
  DESC
358
369
  task :sync_to_remote, :roles => :web, :only => { :primary => true } do
370
+ puts "Please note that this task is not eZDFS compliant...".red
359
371
  confirmation = Capistrano::CLI.ui.ask "You're about to sync your local var/ directory TO a remote one (current stage = #{stage}). Are you sure (y/N) ?"
360
372
  abort "Aborted" unless confirmation.downcase == 'y'
361
373
 
data/lib/db.rb CHANGED
@@ -32,24 +32,12 @@ namespace :db do
32
32
  Creates a backup from a remote database server
33
33
  DESC
34
34
  task :backup, :roles => :web, :only => { :primary => true } do
35
- filename = generate_backup_name( database_name )
36
- file = File.join( "/tmp", filename )
37
- backup_dir_for_this_stage = File.join( get_backup_dir, "#{stage}" )
38
- on_rollback do
39
- run "rm #{file}"
40
- end
41
- dump_result = nil
42
- run "mysqldump -h#{database_server} -u#{database_uname} -p #{database_name} | gzip > #{file}" do |ch, stream, out|
43
- ch.send_data "#{database_passd}\n" if out =~ /^Enter password:/
44
- dump_result = out
45
- end
46
- if dump_result =~ /.*error.*1045/i
47
- puts "Access denied on '#{database_server}' with user '#{database_uname}'".red
48
- else
49
- create_backup_dir( backup_dir_for_this_stage )
50
- get( file, File.join( backup_dir_for_this_stage, filename ), :via => :scp )
35
+
36
+ do_and_retrieve_backup( "#{database_server}", "#{database_name}", "#{database_uname}", "#{database_passd}" )
37
+ if fetch( :ezdfs_database_server, nil ) != nil
38
+ do_and_retrieve_backup( "#{ezdfs_database_server}", "#{ezdfs_database_name}", "#{ezdfs_database_uname}", "#{ezdfs_database_passd}" )
51
39
  end
52
- run "rm #{file}"
40
+
53
41
  end
54
42
 
55
43
  desc <<-DESC
@@ -73,4 +61,26 @@ namespace :db do
73
61
  def get_backup_dir
74
62
  return "#{ezp_legacy_path('extension/alcapon/backups/database')}"
75
63
  end
64
+
65
+ def do_and_retrieve_backup( thisdbserver, thisdbname, thisdbuser, thisdbpass )
66
+ filename = generate_backup_name( thisdbname )
67
+ file = File.join( "/tmp", filename )
68
+ backup_dir_for_this_stage = File.join( get_backup_dir, "#{stage}" )
69
+ on_rollback do
70
+ run "rm #{file}"
71
+ end
72
+
73
+ dump_result = nil
74
+ run "mysqldump -h#{thisdbserver} -u#{thisdbuser} -p #{thisdbname} | gzip > #{file}" do |ch, stream, out|
75
+ ch.send_data "#{thisdbpass}\n" if out =~ /^Enter password:/
76
+ dump_result = out
77
+ end
78
+ if dump_result =~ /.*error.*1045/i
79
+ puts "Access denied on '#{thisdbserver}' with user '#{thisdbuser}'".red
80
+ else
81
+ create_backup_dir( backup_dir_for_this_stage )
82
+ get( file, File.join( backup_dir_for_this_stage, filename ), :via => :scp )
83
+ end
84
+ run "rm #{file}"
85
+ end
76
86
  end
data/lib/ext/spinner.rb CHANGED
File without changes
File without changes
data/lib/ezpublish5.rb CHANGED
File without changes
data/lib/utils.rb CHANGED
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alcapon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.17
4
+ version: 0.4.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arnaud Lafon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-16 00:00:00.000000000 Z
11
+ date: 2014-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano
@@ -48,6 +48,7 @@ extensions: []
48
48
  extra_rdoc_files: []
49
49
  files:
50
50
  - bin/capezit
51
+ - lib/alcapon/utils.rb
51
52
  - lib/capez.rb
52
53
  - lib/db.rb
53
54
  - lib/ext/spinner.rb