Class: Etailer::MysqlCleanerCloner

Inherits:
Vagrant::Cloners::Cloner show all
Defined in:
lib/vagrant-cloner/cloners/mysql_cleaner.rb

Instance Attribute Summary collapse

Attributes inherited from Vagrant::Cloners::Cloner

#enabled, #env, #options, #run_order

Instance Method Summary collapse

Methods inherited from Vagrant::Cloners::Cloner

#enabled?, #scp, #ssh, #vm

Instance Attribute Details

#vm_db_passwordObject

Returns the value of attribute vm_db_password.



3
4
5
# File 'lib/vagrant-cloner/cloners/mysql_cleaner.rb', line 3

def vm_db_password
  @vm_db_password
end

#vm_db_userObject

Returns the value of attribute vm_db_user.



3
4
5
# File 'lib/vagrant-cloner/cloners/mysql_cleaner.rb', line 3

def vm_db_user
  @vm_db_user
end

Instance Method Details

#callObject



26
27
28
29
30
31
32
33
# File 'lib/vagrant-cloner/cloners/mysql_cleaner.rb', line 26

def call
  @scripts.each do |script|
    info "Fetching script #{script}..."
    basename = script.split("/").last
    vm.execute "wget #{script} -P /tmp"
    vm.execute "mysql #{mysql_connection_string} < /tmp/#{basename}"
  end
end

#mysql_connection_stringObject



22
23
24
# File 'lib/vagrant-cloner/cloners/mysql_cleaner.rb', line 22

def mysql_connection_string
  "-u#{vm_db_user} -p#{vm_db_password}"
end

#nameObject



5
6
7
# File 'lib/vagrant-cloner/cloners/mysql_cleaner.rb', line 5

def name
  "mysqlcleaner"
end

#scriptsObject



9
10
11
# File 'lib/vagrant-cloner/cloners/mysql_cleaner.rb', line 9

def scripts
  @scripts ||= []
end

#scripts=(scripts) ⇒ Object



13
14
15
# File 'lib/vagrant-cloner/cloners/mysql_cleaner.rb', line 13

def scripts=(scripts)
  @scripts = Array(scripts).flatten
end

#validate!(env, errors) ⇒ Object



17
18
19
20
# File 'lib/vagrant-cloner/cloners/mysql_cleaner.rb', line 17

def validate!(env, errors)
  errors.add("You have to specify at least one script to run!") if scripts.nil? || scripts.empty?
  errors.add("You must specify a VM database user and password!") unless vm_db_user && vm_db_password
end