Sha256: eb04341625b6910c56c734448cafb2c68b2f4fa2484b840781fe01ca90e8907f

Contents?: true

Size: 1.55 KB

Versions: 14

Compression:

Stored size: 1.55 KB

Contents

module CORL
module Action
class Vagrantfile < Plugin::CloudAction

  #-----------------------------------------------------------------------------
  # Settings
  
  def configure
    super do    
      codes :vagrant_backup_failure,
            :vagrant_save_failure,
            :network_save_failure
    end
  end
  
  #-----------------------------------------------------------------------------
  # Action operations
   
  def execute
    super do |node, network|
      info('corl.actions.vagrantfile.start')
      
      ensure_network(network) do
        generated_vagrantfile_name = File.join(CORL.lib_path, 'core', 'vagrant', 'Vagrantfile')        
        project_vagrantfile_name   = File.join(network.directory, 'Vagrantfile')
        success                    = true
                
        corl_vagrantfile = Util::Disk.read(generated_vagrantfile_name)
        
        if File.exists?(project_vagrantfile_name)
          unless FileUtils.mv(project_vagrantfile_name, "#{project_vagrantfile_name}.backup", :force => true)
            myself.status = code.vagrant_backup_failure
            success       = false
          end
        end
        
        if success
          unless Util::Disk.write(project_vagrantfile_name, corl_vagrantfile)
            myself.status = code.vagrant_save_failure
            success       = false
          end
          
          if success
            unless network.save({ :files => 'Vagrantfile' })
              myself.status = code.network_save_failure
            end
          end
        end 
      end
    end
  end
end
end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
corl-0.4.29 lib/CORL/action/vagrantfile.rb
corl-0.4.28 lib/CORL/action/vagrantfile.rb
corl-0.4.27 lib/CORL/action/vagrantfile.rb
corl-0.4.26 lib/CORL/action/vagrantfile.rb
corl-0.4.25 lib/CORL/action/vagrantfile.rb
corl-0.4.24 lib/CORL/action/vagrantfile.rb
corl-0.4.23 lib/CORL/action/vagrantfile.rb
corl-0.4.22 lib/CORL/action/vagrantfile.rb
corl-0.4.21 lib/CORL/action/vagrantfile.rb
corl-0.4.20 lib/CORL/action/vagrantfile.rb
corl-0.4.19 lib/CORL/action/vagrantfile.rb
corl-0.4.18 lib/CORL/action/vagrantfile.rb
corl-0.4.17 lib/CORL/action/vagrantfile.rb
corl-0.4.16 lib/CORL/action/vagrantfile.rb