Guest User

Untitled

a guest
Apr 7th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. require 'poolparty'
  2. require File.dirname(__FILE__) + "/../mysqler"
  3.  
  4. describe "Mysql plugin" do
  5. before(:all) do
  6. @master, @instances = PoolParty::PluginSpecHelper.define_stubs(1)
  7. @mysqler = Mysqler.new
  8. Mysqler.stub!(:new).and_return @mysqler
  9.  
  10. @mysqler.stub!(:read_config_file).and_return({:user => "iamauser",:password => 1234,:backup_dir => "mysql-backup"})
  11. end
  12.  
  13. it "should be a PoolParty::Plugin" do
  14. Mysqler.superclass.should == PoolParty::Plugin
  15. end
  16.  
  17. it "should load the plugin settings from a file" do
  18. @mysqler.load_db_settings
  19. @mysqler.db_settings.should_not == nil
  20. @mysqler.db_settings[:user].should == 'iamauser'
  21. end
  22.  
  23. it "should upload config files to new instances" do
  24. @master.should_receive(:scp).with("#{PoolParty.user_dir}/config/my.cnf", "/etc/my.cnf")
  25. @master.stub!(:scp).with("mysqler.monit.conf", "/etc/monit.d/mysqler.monit.conf").and_return true
  26. @master.configure_cloud
  27. end
  28.  
  29. it "should upload the mysqler.monit config files to the instances" do
  30. @master.stub!(:scp).with("#{PoolParty.user_dir}/config/my.cnf", "/etc/my.cnf")
  31. @master.should_receive(:scp).with("mysqler.monit.conf", "/etc/monit.d/mysqler.monit.conf").and_return true
  32. @master.configure_cloud
  33. end
  34.  
  35. describe "setup for restore database" do
  36. before(:each) do
  37. @mysqler.stub!(:start_monit).and_return true
  38. @mysqler.stub!(:setup_backup).and_return true
  39. end
  40. it "should restore the database from backups when restarting" do
  41. @mysqler.load_db_settings
  42. @master.should_receive(:ssh).with("mysql -u #{@mysqler.db_settings[:user]} -p#{@mysqler.db_settings[:password]} < /data/#{@mysqler.db_settings[:backup_dir]}/db_dump.sql").and_return true
  43. @master.configure_cloud
  44. end
  45. end
  46.  
  47. describe "setup for setup backups" do
  48. before(:each) do
  49. @mysqler.stub!(:start_monit).and_return true
  50. @mysqler.stub!(:restore_database).and_return true
  51. end
  52. it "should setup backups when installing a new database instance" do
  53. @mysqler.load_db_settings
  54. @master.should_receive(:ssh).with("cp #{@master.base_tmp_dir}/mysql-backup /etc/cron.d").and_return true
  55. @master.configure_cloud
  56. end
  57. end
  58.  
  59. describe "setup for starting monit" do
  60. before(:each) do
  61. @mysqler.stub!(:setup_backup).and_return true
  62. @mysqler.stub!(:restore_database).and_return true
  63. end
  64. it "should start monit once new installation is completed" do
  65. @mysqler.load_db_settings
  66. @master.should_receive(:ssh).with("/etc/init.d/monit start").and_return true
  67. @master.configure_cloud
  68. end
  69. end
  70.  
  71.  
  72. end
Add Comment
Please, Sign In to add comment