vagrant-ovirt 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +20 -0
- data/Gemfile +12 -0
- data/LICENSE +22 -0
- data/README.md +219 -0
- data/Rakefile +7 -0
- data/example_box/Vagrantfile +22 -0
- data/example_box/metadata.json +4 -0
- data/example_box/ovirt.box +0 -0
- data/lib/vagrant-ovirt/action/connect_ovirt.rb +84 -0
- data/lib/vagrant-ovirt/action/create_network_interfaces.rb +96 -0
- data/lib/vagrant-ovirt/action/create_vm.rb +114 -0
- data/lib/vagrant-ovirt/action/destroy_vm.rb +25 -0
- data/lib/vagrant-ovirt/action/is_created.rb +18 -0
- data/lib/vagrant-ovirt/action/message_already_created.rb +16 -0
- data/lib/vagrant-ovirt/action/message_not_created.rb +16 -0
- data/lib/vagrant-ovirt/action/read_ssh_info.rb +68 -0
- data/lib/vagrant-ovirt/action/read_state.rb +37 -0
- data/lib/vagrant-ovirt/action/set_name_of_domain.rb +31 -0
- data/lib/vagrant-ovirt/action/start_vm.rb +37 -0
- data/lib/vagrant-ovirt/action/sync_folders.rb +58 -0
- data/lib/vagrant-ovirt/action/timed_provision.rb +21 -0
- data/lib/vagrant-ovirt/action/wait_till_up.rb +108 -0
- data/lib/vagrant-ovirt/action.rb +89 -0
- data/lib/vagrant-ovirt/config.rb +57 -0
- data/lib/vagrant-ovirt/errors.rb +61 -0
- data/lib/vagrant-ovirt/plugin.rb +74 -0
- data/lib/vagrant-ovirt/provider.rb +76 -0
- data/lib/vagrant-ovirt/util/collection.rb +21 -0
- data/lib/vagrant-ovirt/util/timer.rb +17 -0
- data/lib/vagrant-ovirt/util.rb +9 -0
- data/lib/vagrant-ovirt/version.rb +6 -0
- data/lib/vagrant-ovirt.rb +47 -0
- data/locales/en.yml +82 -0
- data/tools/prepare_redhat_for_box.sh +138 -0
- data/vagrant-ovirt.gemspec +23 -0
- metadata +128 -0
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'vagrant'
|
2
|
+
|
3
|
+
module VagrantPlugins
|
4
|
+
module OVirtProvider
|
5
|
+
|
6
|
+
# This is the base class for a provider for the V2 API. A provider
|
7
|
+
# is responsible for creating compute resources to match the
|
8
|
+
# needs of a Vagrant-configured system.
|
9
|
+
class Provider < Vagrant.plugin('2', :provider)
|
10
|
+
def initialize(machine)
|
11
|
+
@machine = machine
|
12
|
+
end
|
13
|
+
|
14
|
+
# This should return an action callable for the given name.
|
15
|
+
def action(name)
|
16
|
+
# Attempt to get the action method from the Action class if it
|
17
|
+
# exists, otherwise return nil to show that we don't support the
|
18
|
+
# given action.
|
19
|
+
action_method = "action_#{name}"
|
20
|
+
return Action.send(action_method) if Action.respond_to?(action_method)
|
21
|
+
nil
|
22
|
+
end
|
23
|
+
|
24
|
+
# This method is called if the underying machine ID changes. Providers
|
25
|
+
# can use this method to load in new data for the actual backing
|
26
|
+
# machine or to realize that the machine is now gone (the ID can
|
27
|
+
# become `nil`).
|
28
|
+
def machine_id_changed
|
29
|
+
end
|
30
|
+
|
31
|
+
# This should return a hash of information that explains how to
|
32
|
+
# SSH into the machine. If the machine is not at a point where
|
33
|
+
# SSH is even possible, then `nil` should be returned.
|
34
|
+
def ssh_info
|
35
|
+
# Run a custom action called "read_ssh_info" which does what it says
|
36
|
+
# and puts the resulting SSH info into the `:machine_ssh_info` key in
|
37
|
+
# the environment.
|
38
|
+
#
|
39
|
+
# Ssh info has following format..
|
40
|
+
#
|
41
|
+
#{
|
42
|
+
# :host => "1.2.3.4",
|
43
|
+
# :port => "22",
|
44
|
+
# :username => "mitchellh",
|
45
|
+
# :private_key_path => "/path/to/my/key"
|
46
|
+
#}
|
47
|
+
env = @machine.action("read_ssh_info")
|
48
|
+
env[:machine_ssh_info]
|
49
|
+
end
|
50
|
+
|
51
|
+
# This should return the state of the machine within this provider.
|
52
|
+
# The state must be an instance of {MachineState}.
|
53
|
+
def state
|
54
|
+
# Run a custom action we define called "read_state" which does
|
55
|
+
# what it says. It puts the state in the `:machine_state_id`
|
56
|
+
# key in the environment.
|
57
|
+
env = @machine.action("read_state")
|
58
|
+
|
59
|
+
state_id = env[:machine_state_id]
|
60
|
+
|
61
|
+
# Get the short and long description
|
62
|
+
short = I18n.t("vagrant_ovirt.states.short_#{state_id}")
|
63
|
+
long = I18n.t("vagrant_ovirt.states.long_#{state_id}")
|
64
|
+
|
65
|
+
# Return the MachineState object
|
66
|
+
Vagrant::MachineState.new(state_id, short, long)
|
67
|
+
end
|
68
|
+
|
69
|
+
def to_s
|
70
|
+
id = @machine.id.nil? ? "new" : @machine.id
|
71
|
+
"oVirt (#{id})"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module OVirtProvider
|
3
|
+
module Util
|
4
|
+
module Collection
|
5
|
+
# This method finds a matching _thing_ in a collection of
|
6
|
+
# _things_. This works matching if the ID or NAME equals to
|
7
|
+
# `name`. Or, if `name` is a regexp, a partial match is chosen
|
8
|
+
# as well.
|
9
|
+
def self.find_matching(collection, name)
|
10
|
+
collection.each do |single|
|
11
|
+
return single if single.name == name
|
12
|
+
return single if single.id == name
|
13
|
+
end
|
14
|
+
|
15
|
+
nil
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module OVirtProvider
|
3
|
+
module Util
|
4
|
+
class Timer
|
5
|
+
# A basic utility method that times the execution of the given
|
6
|
+
# block and returns it.
|
7
|
+
def self.time
|
8
|
+
start_time = Time.now.to_f
|
9
|
+
yield
|
10
|
+
end_time = Time.now.to_f
|
11
|
+
|
12
|
+
end_time - start_time
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
require 'vagrant-ovirt/plugin'
|
3
|
+
|
4
|
+
module VagrantPlugins
|
5
|
+
module OVirtProvider
|
6
|
+
lib_path = Pathname.new(File.expand_path("../vagrant-ovirt", __FILE__))
|
7
|
+
autoload :Action, lib_path.join("action")
|
8
|
+
autoload :Errors, lib_path.join("errors")
|
9
|
+
autoload :Util, lib_path.join("util")
|
10
|
+
|
11
|
+
# Hold connection handler so there is no need to connect more times than
|
12
|
+
# one. This can be annoying when there are more machines to create, or when
|
13
|
+
# doing state action first and then some other.
|
14
|
+
#
|
15
|
+
# TODO Don't sure if this is the best solution
|
16
|
+
@@ovirt_connection = nil
|
17
|
+
@@ovirt_client = nil
|
18
|
+
def self.ovirt_connection
|
19
|
+
@@ovirt_connection
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.ovirt_connection=(conn)
|
23
|
+
@@ovirt_connection = conn
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.ovirt_client
|
27
|
+
@@ovirt_client
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.ovirt_client=(conn)
|
31
|
+
@@ovirt_client = conn
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
def self.source_root
|
36
|
+
@source_root ||= Pathname.new(File.expand_path("../../", __FILE__))
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# Set default provider with bash environment variable like this:
|
42
|
+
# export VAGRANT_DEFAULT_PROVIDER=ovirt
|
43
|
+
Vagrant::Environment.class_eval do
|
44
|
+
def default_provider
|
45
|
+
(ENV['VAGRANT_DEFAULT_PROVIDER'] || :virtualbox).to_sym
|
46
|
+
end
|
47
|
+
end
|
data/locales/en.yml
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
en:
|
2
|
+
vagrant_ovirt:
|
3
|
+
creating_vm: |-
|
4
|
+
Creating VM with the following settings...
|
5
|
+
destroy_vm: |-
|
6
|
+
Removing VM...
|
7
|
+
not_created: |-
|
8
|
+
VM is not created. Please run `vagrant up` first.
|
9
|
+
starting_vm: |-
|
10
|
+
Starting VM.
|
11
|
+
error_recovering: |-
|
12
|
+
An error occured. Recovering..
|
13
|
+
waiting_for_ip: |-
|
14
|
+
Waiting for VM to get an IP address...
|
15
|
+
waiting_for_ssh: |-
|
16
|
+
Waiting for SSH to become available...
|
17
|
+
rsync_folder: |-
|
18
|
+
Rsyncing folder: %{hostpath} => %{guestpath}
|
19
|
+
wait_for_ready_vm: |-
|
20
|
+
Waiting for VM to become "ready" to start...
|
21
|
+
already_created: |-
|
22
|
+
VM is already created.
|
23
|
+
ready: |-
|
24
|
+
Machine is booted and ready for use!
|
25
|
+
|
26
|
+
errors:
|
27
|
+
fog_ovirt_connection_error: |-
|
28
|
+
Error while connecting to oVirt: %{error_message}
|
29
|
+
no_datacenter_error: |-
|
30
|
+
No usable datacenter found! Please check if datacenter specified in
|
31
|
+
configuration is avaliable.
|
32
|
+
no_cluster_error: |-
|
33
|
+
No usable cluster found! Please check if cluster specified in
|
34
|
+
configuration is avaliable.
|
35
|
+
no_quota_error: |-
|
36
|
+
No usable quota found! Please check if quota specified in
|
37
|
+
configuration is avaliable.
|
38
|
+
no_template_error: |-
|
39
|
+
No template %{template_name} found!
|
40
|
+
fog_create_server_error: |-
|
41
|
+
Error while creating domain: %{error_message}
|
42
|
+
interface_slot_not_available: |-
|
43
|
+
Interface adapter number is already in use. Please specify other adapter
|
44
|
+
number.
|
45
|
+
add_interface_error: |-
|
46
|
+
Error while adding new interface to VM. %{error_message}
|
47
|
+
no_vm_error: |-
|
48
|
+
No VM %{vm_name} found.
|
49
|
+
no_network_error: |-
|
50
|
+
No network %{network_name} found.
|
51
|
+
start_vm_error: |-
|
52
|
+
Unable to start VM: %{error_message}
|
53
|
+
no_ip_address_error: |-
|
54
|
+
No IP address found.
|
55
|
+
rsync_error: |-
|
56
|
+
There was an error when attemping to rsync a share folder.
|
57
|
+
Please inspect the error message below for more info.
|
58
|
+
|
59
|
+
Host path: %{hostpath}
|
60
|
+
Guest path: %{guestpath}
|
61
|
+
Error: %{stderr}
|
62
|
+
|
63
|
+
states:
|
64
|
+
short_paused: |-
|
65
|
+
pause
|
66
|
+
short_shutoff: |-
|
67
|
+
shutoff
|
68
|
+
long_shutoff: |-
|
69
|
+
The oVirt machine is not running. Run `vagrant up` to start it.
|
70
|
+
short_down: |-
|
71
|
+
shutoff
|
72
|
+
long_down: |-
|
73
|
+
The oVirt machine is not running. Run `vagrant up` to start it.
|
74
|
+
short_not_created: |-
|
75
|
+
not created
|
76
|
+
long_not_created: |-
|
77
|
+
The oVirt domain is not created. Run `vagrant up` to create it.
|
78
|
+
short_running: |-
|
79
|
+
running
|
80
|
+
long_running: |-
|
81
|
+
The oVirt domain is running. To stop this machine, you can run
|
82
|
+
`vagrant halt`. To destroy the machine, you can run `vagrant destroy`.
|
@@ -0,0 +1,138 @@
|
|
1
|
+
#!/bin/bash +x
|
2
|
+
|
3
|
+
# This script should help to prepare RedHat and RedHat like OS (CentOS,
|
4
|
+
# Scientific Linux, ...) for Vagrant usage.
|
5
|
+
|
6
|
+
# To create new box image, just install minimal base system in VM. Then upload
|
7
|
+
# this script to the VM and run it. After script has finished, halt the machine
|
8
|
+
# and then create an oVirt template, which will be used for creating new
|
9
|
+
# vagrant machines.
|
10
|
+
|
11
|
+
|
12
|
+
# We need a hostname.
|
13
|
+
if [ $# -ne 1 ]; then
|
14
|
+
echo "Usage: $0 <hostname>"
|
15
|
+
echo "Hostname should be in format vagrant-[os-name], e.g. vagrant-redhat63."
|
16
|
+
exit 1
|
17
|
+
fi
|
18
|
+
|
19
|
+
|
20
|
+
# On which version of RedHet are we running?
|
21
|
+
RHEL_MAJOR_VERSION=$(sed 's/.*release \([0-9]\)\..*/\1/' /etc/redhat-release)
|
22
|
+
if [ $? -ne 0 ]; then
|
23
|
+
echo "Is this a RedHat distro?"
|
24
|
+
exit 1
|
25
|
+
fi
|
26
|
+
echo "* Found RedHat ${RHEL_MAJOR_VERSION} version."
|
27
|
+
|
28
|
+
|
29
|
+
# Setup hostname vagrant-something.
|
30
|
+
FQDN="$1.vagrantup.com"
|
31
|
+
if grep '^HOSTNAME=' /etc/sysconfig/network > /dev/null; then
|
32
|
+
sed -i 's/HOSTNAME=\(.*\)/HOSTNAME='${FQDN}'/' /etc/sysconfig/network
|
33
|
+
else
|
34
|
+
echo "HOSTNAME=${FQDN}" >> /etc/sysconfig/network
|
35
|
+
fi
|
36
|
+
|
37
|
+
|
38
|
+
# Enable EPEL repository.
|
39
|
+
yum -y install wget
|
40
|
+
cd ~root
|
41
|
+
if [ $RHEL_MAJOR_VERSION -eq 5 ]; then
|
42
|
+
wget http://ftp.astral.ro/mirrors/fedora/pub/epel/5/i386/epel-release-5-4.noarch.rpm
|
43
|
+
EPEL_PKG="epel-release-5-4.noarch.rpm"
|
44
|
+
else
|
45
|
+
wget http://ftp.astral.ro/mirrors/fedora/pub/epel/6/i386/epel-release-6-8.noarch.rpm
|
46
|
+
EPEL_PKG="epel-release-6-8.noarch.rpm"
|
47
|
+
fi
|
48
|
+
rpm -i ~root/${EPEL_PKG}
|
49
|
+
rm -f ~root/${EPEL_PKG}
|
50
|
+
|
51
|
+
|
52
|
+
# Install some required software.
|
53
|
+
yum -y install openssh-server openssh-clients sudo \
|
54
|
+
ruby ruby-devel make gcc rubygems rsync nmap
|
55
|
+
chkconfig sshd on
|
56
|
+
gem install puppet
|
57
|
+
gem install chef
|
58
|
+
|
59
|
+
|
60
|
+
# Users, groups, passwords and sudoers.
|
61
|
+
echo 'vagrant' | passwd --stdin root
|
62
|
+
grep 'vagrant' /etc/passwd > /dev/null
|
63
|
+
if [ $? -ne 0 ]; then
|
64
|
+
echo '* Creating user vagrant.'
|
65
|
+
useradd vagrant
|
66
|
+
echo 'vagrant' | passwd --stdin vagrant
|
67
|
+
fi
|
68
|
+
grep '^admin:' /etc/group > /dev/null || groupadd admin
|
69
|
+
usermod -G admin vagrant
|
70
|
+
|
71
|
+
echo 'Defaults env_keep += "SSH_AUTH_SOCK"' >> /etc/sudoers
|
72
|
+
echo '%admin ALL=NOPASSWD: ALL' >> /etc/sudoers
|
73
|
+
sed -i 's/Defaults\s*requiretty/Defaults !requiretty/' /etc/sudoers
|
74
|
+
|
75
|
+
|
76
|
+
# SSH setup
|
77
|
+
# Add Vagrant ssh key for root accout.
|
78
|
+
sed -i 's/.*UseDNS.*/UseDNS no/' /etc/ssh/sshd_config
|
79
|
+
|
80
|
+
[ -d ~root/.ssh ] || mkdir ~root/.ssh
|
81
|
+
chmod 700 ~root/.ssh
|
82
|
+
cat > ~root/.ssh/authorized_keys << EOF
|
83
|
+
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
|
84
|
+
EOF
|
85
|
+
chmod 600 ~root/.ssh/authorized_keys
|
86
|
+
|
87
|
+
|
88
|
+
# Disable firewall and switch SELinux to permissive mode.
|
89
|
+
chkconfig iptables off
|
90
|
+
chkconfig ip6tables off
|
91
|
+
sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/sysconfig/selinux
|
92
|
+
sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
|
93
|
+
|
94
|
+
|
95
|
+
# Networking setup..
|
96
|
+
|
97
|
+
# Problem situation: Two interfaces are connected to same network. One interface
|
98
|
+
# wants to renew DHCP lease and asks server for address. DHCPACK message from
|
99
|
+
# server arrives, client moves to BOUND state. The client performs a check on
|
100
|
+
# the suggested address to ensure that the address is not already in use. On
|
101
|
+
# arping for specified IP address, other interface replies and that's why
|
102
|
+
# dhclient-script replies with DHCPDECLINE message. (See RFC2131, 4.4.1.).
|
103
|
+
# Solution: Set sysctl to reply only if the target IP address is local address
|
104
|
+
# configured on the incoming interface. (See kernel documentation
|
105
|
+
# Documentation/networking/ip-sysctl.txt)
|
106
|
+
set_sysctl()
|
107
|
+
{
|
108
|
+
grep $1 /etc/sysctl.conf > /dev/null
|
109
|
+
[ $? -eq 0 ] && sed -i '/'$1'/d' /etc/sysctl.conf
|
110
|
+
echo "$1 = $2" >> /etc/sysctl.conf
|
111
|
+
}
|
112
|
+
set_sysctl 'net.ipv4.conf.all.arp_ignore' 1
|
113
|
+
set_sysctl 'net.ipv4.conf.all.arp_announce' 2
|
114
|
+
set_sysctl 'net.ipv4.conf.all.rp_filter' 3
|
115
|
+
|
116
|
+
echo 'for NETWORK in $(ip a | grep -w inet | grep -v "127.0.0.1" | awk "{ print \$2 }"); do nmap -sP $NETWORK; done' > /etc/rc3.d/S99ping_broadcast
|
117
|
+
chmod +x /etc/rc3.d/S99ping_broadcast
|
118
|
+
|
119
|
+
|
120
|
+
# Don't fix ethX names to hw address.
|
121
|
+
rm -f /etc/udev/rules.d/*persistent-net.rules
|
122
|
+
rm -f /etc/udev/rules.d/*-net.rules
|
123
|
+
rm -fr /var/lib/dhclient/*
|
124
|
+
|
125
|
+
# Interface eth0 should get IP address via dhcp.
|
126
|
+
cat > /etc/sysconfig/network-scripts/ifcfg-eth0 << EOF
|
127
|
+
DEVICE="eth0"
|
128
|
+
BOOTPROTO="dhcp"
|
129
|
+
ONBOOT="yes"
|
130
|
+
NM_CONTROLLED="no"
|
131
|
+
EOF
|
132
|
+
|
133
|
+
|
134
|
+
# Do some cleanup..
|
135
|
+
rm -f ~root/.bash_history
|
136
|
+
rm -r "$(gem env gemdir)"/doc/*
|
137
|
+
yum clean all
|
138
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../lib/vagrant-ovirt/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.authors = ["Lukas Stanek"]
|
6
|
+
gem.email = ["ls@elostech.cz"]
|
7
|
+
gem.description = %q{Vagrant provider for oVirt.}
|
8
|
+
gem.summary = %q{Vagrant provider for oVirt.}
|
9
|
+
gem.homepage = "https://github.com/pradels/vagrant-ovirt"
|
10
|
+
|
11
|
+
gem.files = `git ls-files`.split($\)
|
12
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
13
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
14
|
+
gem.name = "vagrant-ovirt"
|
15
|
+
gem.require_paths = ["lib"]
|
16
|
+
gem.version = VagrantPlugins::OVirtProvider::VERSION
|
17
|
+
|
18
|
+
gem.add_runtime_dependency "fog", "~> 1.10.1"
|
19
|
+
gem.add_runtime_dependency "rbovirt", "~> 0.0.19"
|
20
|
+
|
21
|
+
gem.add_development_dependency "rake"
|
22
|
+
end
|
23
|
+
|
metadata
ADDED
@@ -0,0 +1,128 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: vagrant-ovirt
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Lukas Stanek
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-04-19 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: fog
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.10.1
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.10.1
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rbovirt
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 0.0.19
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.0.19
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rake
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
description: Vagrant provider for oVirt.
|
63
|
+
email:
|
64
|
+
- ls@elostech.cz
|
65
|
+
executables: []
|
66
|
+
extensions: []
|
67
|
+
extra_rdoc_files: []
|
68
|
+
files:
|
69
|
+
- .gitignore
|
70
|
+
- Gemfile
|
71
|
+
- LICENSE
|
72
|
+
- README.md
|
73
|
+
- Rakefile
|
74
|
+
- example_box/Vagrantfile
|
75
|
+
- example_box/metadata.json
|
76
|
+
- example_box/ovirt.box
|
77
|
+
- lib/vagrant-ovirt.rb
|
78
|
+
- lib/vagrant-ovirt/action.rb
|
79
|
+
- lib/vagrant-ovirt/action/connect_ovirt.rb
|
80
|
+
- lib/vagrant-ovirt/action/create_network_interfaces.rb
|
81
|
+
- lib/vagrant-ovirt/action/create_vm.rb
|
82
|
+
- lib/vagrant-ovirt/action/destroy_vm.rb
|
83
|
+
- lib/vagrant-ovirt/action/is_created.rb
|
84
|
+
- lib/vagrant-ovirt/action/message_already_created.rb
|
85
|
+
- lib/vagrant-ovirt/action/message_not_created.rb
|
86
|
+
- lib/vagrant-ovirt/action/read_ssh_info.rb
|
87
|
+
- lib/vagrant-ovirt/action/read_state.rb
|
88
|
+
- lib/vagrant-ovirt/action/set_name_of_domain.rb
|
89
|
+
- lib/vagrant-ovirt/action/start_vm.rb
|
90
|
+
- lib/vagrant-ovirt/action/sync_folders.rb
|
91
|
+
- lib/vagrant-ovirt/action/timed_provision.rb
|
92
|
+
- lib/vagrant-ovirt/action/wait_till_up.rb
|
93
|
+
- lib/vagrant-ovirt/config.rb
|
94
|
+
- lib/vagrant-ovirt/errors.rb
|
95
|
+
- lib/vagrant-ovirt/plugin.rb
|
96
|
+
- lib/vagrant-ovirt/provider.rb
|
97
|
+
- lib/vagrant-ovirt/util.rb
|
98
|
+
- lib/vagrant-ovirt/util/collection.rb
|
99
|
+
- lib/vagrant-ovirt/util/timer.rb
|
100
|
+
- lib/vagrant-ovirt/version.rb
|
101
|
+
- locales/en.yml
|
102
|
+
- tools/prepare_redhat_for_box.sh
|
103
|
+
- vagrant-ovirt.gemspec
|
104
|
+
homepage: https://github.com/pradels/vagrant-ovirt
|
105
|
+
licenses: []
|
106
|
+
post_install_message:
|
107
|
+
rdoc_options: []
|
108
|
+
require_paths:
|
109
|
+
- lib
|
110
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
111
|
+
none: false
|
112
|
+
requirements:
|
113
|
+
- - ! '>='
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '0'
|
116
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
|
+
none: false
|
118
|
+
requirements:
|
119
|
+
- - ! '>='
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0'
|
122
|
+
requirements: []
|
123
|
+
rubyforge_project:
|
124
|
+
rubygems_version: 1.8.25
|
125
|
+
signing_key:
|
126
|
+
specification_version: 3
|
127
|
+
summary: Vagrant provider for oVirt.
|
128
|
+
test_files: []
|