instalatron 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,4 +1,35 @@
1
- Requirements:
1
+ # Instalatron
2
+
3
+ RedHat Anaconda Testing Framework using Oracle's VirtualBox
4
+
5
+ # Requirements
6
+
7
+ Rubygems
2
8
 
3
9
  VirtualBox >= 4.0.8
10
+
4
11
  ImageMagick >= 6.6.4
12
+
13
+ # Install
14
+
15
+ Make you you have installed VirtualBox and ImageMagick before installing.
16
+
17
+ Install instalatron gem:
18
+
19
+ `sudo gem install instalatron`
20
+
21
+
22
+ # Examples
23
+
24
+ Creating a new recording
25
+
26
+ `instalatron-record --iso-file my-abiquo-iso.iso`
27
+
28
+ This will create a new VM in VirtualBox and will start the recording session
29
+
30
+ Creating a new instalatron script
31
+
32
+ `instalatron-play -s ciab --iso-file ~/Downloads/abiquo-linux-ee-1.8-preview-2011-07-07-1456.iso --nic-config nic1:eth0:bridged --vm-memory 1024`
33
+
34
+ This will create a VM with 1024 MB of RAM and use the script found in 'ciab' directory to create a Cloud in a Box install.
35
+
data/Rakefile CHANGED
@@ -24,7 +24,6 @@ Jeweler::Tasks.new do |gem|
24
24
  # Include your dependencies below. Runtime dependencies are required when using your gem,
25
25
  # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
26
26
  gem.add_runtime_dependency 'mixlib-cli', '>= 1.2'
27
- gem.add_runtime_dependency 'mixlib-cli', '>= 1.2'
28
27
  gem.add_runtime_dependency 'virtualbox', '>= 0.8'
29
28
  # gem.add_development_dependency 'rspec', '> 1.2.3'
30
29
  end
data/bin/instalatron-play CHANGED
@@ -4,11 +4,29 @@ require 'instalatron'
4
4
  require 'yaml'
5
5
  require 'mixlib/cli'
6
6
  require 'logger'
7
+ require 'erb'
7
8
 
8
9
  def play_session(vm_name, script, custom_seq = nil, key_press_delay = 0)
9
10
  ctrlc_gap = 0
10
11
  basedir = File.dirname(script)
11
- script = YAML.load_file(script)
12
+ if File.exist?(basedir + '/config.rb')
13
+ include Instalatron
14
+ begin
15
+ require basedir + '/config.rb'
16
+ rescue Exception => e
17
+ raise Exception.new("Error loading config.rb file: #{e.message}")
18
+ end
19
+
20
+ begin
21
+ tmpl = ERB.new(File.read(script))
22
+ script = YAML.load(tmpl.result)
23
+ rescue Exception => e
24
+ raise Exception.new("Error rendering ERB template from script.yml: #{e.message}")
25
+ end
26
+
27
+ else
28
+ script = YAML.load_file(script)
29
+ end
12
30
  if custom_seq
13
31
  new_seq = script[0]
14
32
  new_seq[:sequence] = custom_seq
@@ -42,7 +42,7 @@ def record_session(vm_name, session_name = "instalatron_rec_" + Time.now.strftim
42
42
  $stdin.gets
43
43
  end
44
44
  rescue SystemExit, Interrupt
45
- puts "Aborting..."
45
+ puts "\nAborting..."
46
46
  File.open "#{session_name}/script.yml", 'w' do |f|
47
47
  f.puts script.to_yaml
48
48
  end
data/lib/instalatron.rb CHANGED
@@ -4,7 +4,30 @@ require 'virtualbox'
4
4
 
5
5
  module Instalatron
6
6
 
7
- VERSION = '0.1.4'
7
+ VERSION = '0.1.5'
8
+
9
+ class ScriptConfig
10
+
11
+ @config = {}
12
+
13
+ class << self
14
+ attr_reader :config
15
+
16
+ def [](arg)
17
+ config[arg]
18
+ end
19
+ end
20
+
21
+ def self.create(&block)
22
+ i = self.new
23
+ i.instance_eval &block
24
+ end
25
+
26
+ def method_missing(symbol, *args, &block)
27
+ ScriptConfig.config[symbol] = args[0]
28
+ end
29
+
30
+ end
8
31
 
9
32
  #
10
33
  # NIC is nic1, nic2, etc
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: instalatron
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 4
10
- version: 0.1.4
9
+ - 5
10
+ version: 0.1.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sergio Rubio
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-07-11 00:00:00 Z
18
+ date: 2011-07-18 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  version_requirements: &id001 !ruby/object:Gem::Requirement
@@ -66,21 +66,6 @@ dependencies:
66
66
  name: mixlib-cli
67
67
  - !ruby/object:Gem::Dependency
68
68
  version_requirements: &id004 !ruby/object:Gem::Requirement
69
- none: false
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- hash: 11
74
- segments:
75
- - 1
76
- - 2
77
- version: "1.2"
78
- type: :runtime
79
- requirement: *id004
80
- prerelease: false
81
- name: mixlib-cli
82
- - !ruby/object:Gem::Dependency
83
- version_requirements: &id005 !ruby/object:Gem::Requirement
84
69
  none: false
85
70
  requirements:
86
71
  - - ">="
@@ -91,7 +76,7 @@ dependencies:
91
76
  - 8
92
77
  version: "0.8"
93
78
  type: :runtime
94
- requirement: *id005
79
+ requirement: *id004
95
80
  prerelease: false
96
81
  name: virtualbox
97
82
  description: Tests graphical installers using VirtualBox, keyboard driven input and image recognition technics