rbovirt 0.0.34 → 0.0.35
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/client/affinity_group_api.rb +43 -0
- data/lib/ovirt/affinity_group.rb +36 -0
- data/lib/ovirt/version.rb +1 -1
- data/lib/ovirt/volume.rb +5 -1
- data/lib/rbovirt.rb +2 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: abcc1f63781e5ac6ab29e40b1f497e5ae0fc35a7
|
4
|
+
data.tar.gz: fb5b226fe6dcd08f3ed0c7aad7449ed19805127c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a0bdc00d5b70be58f5daca0a9e67eb9b646f34b127c5514d4a84468a51aa44cff3417f8d89890d44dff3154c4f472ee98895e7a7478dedc1334707a92dda813
|
7
|
+
data.tar.gz: af49d5221bf07f53d22569ea6db69c8370113321c1bb308aa4bd252c7509d7cf37cc5fbf1d00a3f9975db1dbb80132e8c180c5367b658ad632517cded9a82ad5
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module OVIRT
|
2
|
+
class Client
|
3
|
+
def affinity_group(affinity_group_id, opts={})
|
4
|
+
cluster_id = opts[:cluster_id] || current_cluster.id
|
5
|
+
ag_xml = http_get("/clusters/%s/affinitygroups/%s" % [cluster_id, affinity_group_id], http_headers)
|
6
|
+
OVIRT::AffinityGroup.new(self, ag_xml.root)
|
7
|
+
end
|
8
|
+
|
9
|
+
def affinity_groups(opts={})
|
10
|
+
cluster_id = opts[:cluster_id] || current_cluster.id
|
11
|
+
http_get("/clusters/%s/affinitygroups" % cluster_id, http_headers).xpath('/affinity_groups/affinity_group').collect do |ag|
|
12
|
+
OVIRT::AffinityGroup.new(self, ag)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def affinity_group_vms(affinity_group_id, opts={})
|
17
|
+
cluster_id = opts[:cluster_id] || current_cluster.id
|
18
|
+
http_get("/clusters/%s/affinitygroups/%s/vms" % [cluster_id, affinity_group_id], http_headers).xpath('/vms/vm').collect do |vm_ref|
|
19
|
+
OVIRT::VM.new(self, http_get("/vms/%s" % vm_ref.attribute('id').value, http_headers).root)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def create_affinity_group(opts={})
|
24
|
+
cluster_id = opts[:cluster_id] || current_cluster.id
|
25
|
+
OVIRT::AffinityGroup.new(self, http_post("/clusters/%s/affinitygroups" % cluster_id, OVIRT::AffinityGroup.to_xml(opts)).root)
|
26
|
+
end
|
27
|
+
|
28
|
+
def destroy_affinity_group(affinity_group_id, opts={})
|
29
|
+
cluster_id = opts[:cluster_id] || current_cluster.id
|
30
|
+
http_delete("/clusters/%s/affinitygroups/%s" % [cluster_id, affinity_group_id])
|
31
|
+
end
|
32
|
+
|
33
|
+
def add_vm_to_affinity_group(affinity_group_id, vm_id, opts={})
|
34
|
+
cluster_id = opts[:cluster_id] || current_cluster.id
|
35
|
+
http_post("/clusters/%s/affinitygroups/%s/vms" % [cluster_id, affinity_group_id], "<vm id='%s'/>" % vm_id)
|
36
|
+
end
|
37
|
+
|
38
|
+
def delete_vm_from_affinity_group(affinity_group_id, vm_id, opts={})
|
39
|
+
cluster_id = opts[:cluster_id] || current_cluster.id
|
40
|
+
http_delete("/clusters/%s/affinitygroups/%s/vms/%s" % [cluster_id, affinity_group_id, vm_id])
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module OVIRT
|
2
|
+
|
3
|
+
class AffinityGroup < BaseObject
|
4
|
+
attr_reader :name, :positive, :enforcing
|
5
|
+
|
6
|
+
def initialize(client, xml)
|
7
|
+
super(client, xml[:id], xml[:href], (xml/'name').first.text)
|
8
|
+
parse_xml_attributes!(xml)
|
9
|
+
self
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.to_xml(opts={})
|
13
|
+
builder = Nokogiri::XML::Builder.new do
|
14
|
+
affinity_group_{
|
15
|
+
if opts[:name]
|
16
|
+
name_(opts[:name])
|
17
|
+
end
|
18
|
+
if opts[:positive]
|
19
|
+
positive_(opts[:positive])
|
20
|
+
end
|
21
|
+
if opts[:enforcing]
|
22
|
+
enforcing_(opts[:enforcing])
|
23
|
+
end
|
24
|
+
}
|
25
|
+
end
|
26
|
+
Nokogiri::XML(builder.to_xml).root.to_s
|
27
|
+
end
|
28
|
+
|
29
|
+
def parse_xml_attributes!(xml)
|
30
|
+
@name = (xml/'name').first.text
|
31
|
+
@positive = (xml/'positive').first.text if (xml/'positive')
|
32
|
+
@enforcing = (xml/'enforcing').first.text if (xml/'enforcing')
|
33
|
+
@cluster = Link::new(@client, (xml/'cluster').first[:id], (xml/'cluster').first[:href]) rescue nil
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/ovirt/version.rb
CHANGED
data/lib/ovirt/volume.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module OVIRT
|
2
2
|
|
3
3
|
class Volume < BaseObject
|
4
|
-
attr_reader :size, :disk_type, :bootable, :interface, :format, :sparse, :status, :storage_domain, :vm, :quota
|
4
|
+
attr_reader :size, :disk_type, :bootable, :interface, :format, :sparse, :status, :storage_domain, :vm, :quota, :alias
|
5
5
|
|
6
6
|
def initialize(client, xml)
|
7
7
|
super(client, xml[:id], xml[:href], (xml/'name').first.text)
|
@@ -38,6 +38,9 @@ module OVIRT
|
|
38
38
|
if opts[:quota]
|
39
39
|
quota_( :id => opts[:quota])
|
40
40
|
end
|
41
|
+
if opts[:alias]
|
42
|
+
alias_(opts[:alias])
|
43
|
+
end
|
41
44
|
}
|
42
45
|
end
|
43
46
|
Nokogiri::XML(builder.to_xml).root.to_s
|
@@ -54,6 +57,7 @@ module OVIRT
|
|
54
57
|
@status = ((xml/'status/state').first.text rescue nil)
|
55
58
|
@vm = Link::new(@client, (xml/'vm').first[:id], (xml/'vm').first[:href]) rescue nil
|
56
59
|
@quota = ((xml/'quota').first[:id] rescue nil)
|
60
|
+
@alias = ((xml/'alias').first.text rescue nil)
|
57
61
|
end
|
58
62
|
|
59
63
|
end
|
data/lib/rbovirt.rb
CHANGED
@@ -10,6 +10,7 @@ require "ovirt/volume"
|
|
10
10
|
require "ovirt/interface"
|
11
11
|
require "ovirt/network"
|
12
12
|
require "ovirt/quota"
|
13
|
+
require "ovirt/affinity_group"
|
13
14
|
require "ovirt/version"
|
14
15
|
|
15
16
|
require "client/vm_api"
|
@@ -20,6 +21,7 @@ require "client/datacenter_api"
|
|
20
21
|
require "client/storage_domain_api"
|
21
22
|
require "client/quota_api"
|
22
23
|
require "client/disk_api"
|
24
|
+
require "client/affinity_group_api"
|
23
25
|
|
24
26
|
require "nokogiri"
|
25
27
|
require "rest_client"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbovirt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.35
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Amos Benari
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -97,6 +97,7 @@ files:
|
|
97
97
|
- LICENSE.txt
|
98
98
|
- README.rdoc
|
99
99
|
- Rakefile
|
100
|
+
- lib/client/affinity_group_api.rb
|
100
101
|
- lib/client/cluster_api.rb
|
101
102
|
- lib/client/datacenter_api.rb
|
102
103
|
- lib/client/disk_api.rb
|
@@ -105,6 +106,7 @@ files:
|
|
105
106
|
- lib/client/storage_domain_api.rb
|
106
107
|
- lib/client/template_api.rb
|
107
108
|
- lib/client/vm_api.rb
|
109
|
+
- lib/ovirt/affinity_group.rb
|
108
110
|
- lib/ovirt/base_object.rb
|
109
111
|
- lib/ovirt/cluster.rb
|
110
112
|
- lib/ovirt/datacenter.rb
|