Sha256: 233904f9b5917fa289690263dcb7dd7711246cf5636472bed179a206da917788

Contents?: true

Size: 934 Bytes

Versions: 26

Compression:

Stored size: 934 Bytes

Contents

module Specinfra::Backend
  class Lxc < Exec
    def initialize
      begin
        require 'lxc/extra' unless defined?(::LXC::Extra)
      rescue LoadError
        fail "LXC client library is not available. Try installing `lxc-extra' gem"
      end
    end

    def run_command(cmd, opts={})
      cmd = build_command(cmd)
      cmd = add_pre_command(cmd)
      out, ret = ct.execute do
        out = `#{cmd}  2>&1`
        [out, $?.dup]
      end
      if @example
        @example.metadata[:command] = cmd
        @example.metadata[:stdout]  = out
      end
      CommandResult.new :stdout => out, :exit_status => ret.exitstatus
    end
    def build_command(cmd)
      cmd
    end

    def add_pre_command(cmd)
      cmd
    end

    def send_file(from, to)
      FileUtils.cp(from, File.join(ct.config_item('lxc.rootfs'), to))
    end

    def ct
      @ct ||= ::LXC::Container.new(Specinfra.configuration.lxc)
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
specinfra-2.2.2 lib/specinfra/backend/lxc.rb
specinfra-2.2.1 lib/specinfra/backend/lxc.rb
specinfra-2.2.0 lib/specinfra/backend/lxc.rb
specinfra-2.1.1 lib/specinfra/backend/lxc.rb
specinfra-2.1.0 lib/specinfra/backend/lxc.rb
specinfra-2.0.4 lib/specinfra/backend/lxc.rb
specinfra-2.0.3 lib/specinfra/backend/lxc.rb
specinfra-2.0.2 lib/specinfra/backend/lxc.rb
specinfra-2.0.1 lib/specinfra/backend/lxc.rb
specinfra-2.0.0 lib/specinfra/backend/lxc.rb
specinfra-2.0.0.beta52 lib/specinfra/backend/lxc.rb
specinfra-2.0.0.beta51 lib/specinfra/backend/lxc.rb
specinfra-2.0.0.beta50 lib/specinfra/backend/lxc.rb
specinfra-2.0.0.beta49 lib/specinfra/backend/lxc.rb
specinfra-2.0.0.beta48 lib/specinfra/backend/lxc.rb
specinfra-2.0.0.beta47 lib/specinfra/backend/lxc.rb
specinfra-2.0.0.beta46 lib/specinfra/backend/lxc.rb
specinfra-2.0.0.beta45 lib/specinfra/backend/lxc.rb
specinfra-2.0.0.beta44 lib/specinfra/backend/lxc.rb
specinfra-2.0.0.beta43 lib/specinfra/backend/lxc.rb