opennebula 4.14.2 → 4.90.0.beta1

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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/NOTICE +1 -1
  3. data/lib/cloud/CloudClient.rb +3 -3
  4. data/lib/opennebula.rb +8 -2
  5. data/lib/opennebula/acl.rb +20 -14
  6. data/lib/opennebula/acl_pool.rb +1 -1
  7. data/lib/opennebula/client.rb +1 -1
  8. data/lib/opennebula/cluster.rb +1 -1
  9. data/lib/opennebula/cluster_pool.rb +1 -1
  10. data/lib/opennebula/datastore.rb +2 -2
  11. data/lib/opennebula/datastore_pool.rb +3 -3
  12. data/lib/opennebula/document.rb +16 -1
  13. data/lib/opennebula/document_json.rb +13 -1
  14. data/lib/opennebula/document_pool.rb +1 -1
  15. data/lib/opennebula/document_pool_json.rb +1 -1
  16. data/lib/opennebula/error.rb +1 -1
  17. data/lib/opennebula/group.rb +17 -10
  18. data/lib/opennebula/group_pool.rb +1 -1
  19. data/lib/opennebula/host.rb +26 -14
  20. data/lib/opennebula/host_pool.rb +1 -1
  21. data/lib/opennebula/image.rb +7 -3
  22. data/lib/opennebula/image_pool.rb +1 -2
  23. data/lib/opennebula/ldap_auth.rb +1 -1
  24. data/lib/opennebula/ldap_auth_spec.rb +1 -1
  25. data/lib/opennebula/marketplace.rb +161 -0
  26. data/lib/opennebula/marketplace_pool.rb +55 -0
  27. data/lib/opennebula/marketplaceapp.rb +267 -0
  28. data/lib/opennebula/marketplaceapp_pool.rb +77 -0
  29. data/lib/opennebula/oneflow_client.rb +10 -8
  30. data/lib/opennebula/pool.rb +1 -1
  31. data/lib/opennebula/pool_element.rb +1 -1
  32. data/lib/opennebula/security_group.rb +43 -2
  33. data/lib/opennebula/security_group_pool.rb +1 -1
  34. data/lib/opennebula/server_cipher_auth.rb +1 -1
  35. data/lib/opennebula/server_x509_auth.rb +1 -1
  36. data/lib/opennebula/ssh_auth.rb +1 -1
  37. data/lib/opennebula/system.rb +1 -1
  38. data/lib/opennebula/template.rb +42 -13
  39. data/lib/opennebula/template_pool.rb +1 -1
  40. data/lib/opennebula/user.rb +1 -1
  41. data/lib/opennebula/user_pool.rb +1 -1
  42. data/lib/opennebula/vdc.rb +1 -1
  43. data/lib/opennebula/vdc_pool.rb +1 -1
  44. data/lib/opennebula/virtual_machine.rb +65 -50
  45. data/lib/opennebula/virtual_machine_pool.rb +1 -1
  46. data/lib/opennebula/virtual_network.rb +13 -2
  47. data/lib/opennebula/virtual_network_pool.rb +1 -1
  48. data/lib/opennebula/virtual_router.rb +203 -0
  49. data/lib/opennebula/virtual_router_pool.rb +79 -0
  50. data/lib/opennebula/x509_auth.rb +1 -1
  51. data/lib/opennebula/xml_element.rb +6 -1
  52. data/lib/opennebula/xml_pool.rb +1 -1
  53. data/lib/opennebula/xml_utils.rb +1 -1
  54. data/lib/opennebula/zone.rb +1 -1
  55. data/lib/opennebula/zone_pool.rb +1 -1
  56. metadata +11 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 372e1bd2c013e6a41256485e418b1a8607154f70
4
- data.tar.gz: bbd11156ee05c99ad8707fab2a4e65b7675485f8
3
+ metadata.gz: e860fb8028ca5276c55c13bb41ce2661310ecc33
4
+ data.tar.gz: 1fbbe122e328a30e83a6fa7cd3408efea2710610
5
5
  SHA512:
6
- metadata.gz: 4d96afc12bec6bb369dc1d677e547c63e117181e51a64d2134cbfd648de07a8177f5eed36ad1f5c3e2fa1783df4c2fe8d25a5971c1c79eb673a2014d902d5179
7
- data.tar.gz: ba4735722fdc2b3e2d0930f4779a8c4ad49348934f3a0268c15b1b1a3edac8a61461649adf4b22921a59805bbbf71458f11214e6b80ebd6fd06a2ea8e470babe
6
+ metadata.gz: 9d6281be6b49fb27cb38cfa03d79c9d6c5addb7615b164202c07150e60b4e5a1429afd07d587dc9200f15d0b0639b5c3abbff6307238232b680f965e063c98d3
7
+ data.tar.gz: 0bcb4214d63d82cf507d8c952126b510f6257b38a4e5b5b95bfa2731480141888a6f7d060573d00be1f8fb392eecaf5aeddc512c67caa29faec680ca1d1221c3
data/NOTICE CHANGED
@@ -1,6 +1,6 @@
1
1
  OpenNebula Open Source Project
2
2
  --------------------------------------------------------------------------------
3
- Copyright 2002-2015, OpenNebula Project, OpenNebula Systems (formerly C12G Labs)
3
+ Copyright 2002-2016, OpenNebula Project, OpenNebula Systems (formerly C12G Labs)
4
4
  --------------------------------------------------------------------------------
5
5
 
6
6
  You can find more information about the project, release notes and
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -50,7 +50,7 @@ end
50
50
  module CloudClient
51
51
 
52
52
  # OpenNebula version
53
- VERSION = '4.14.2'
53
+ VERSION = '4.90.0'
54
54
 
55
55
  # #########################################################################
56
56
  # Default location for the authentication file
@@ -201,7 +201,7 @@ module CloudCLI
201
201
  def version_text
202
202
  version=<<EOT
203
203
  OpenNebula #{CloudClient::VERSION}
204
- Copyright 2002-2015, OpenNebula Project, OpenNebula Systems
204
+ Copyright 2002-2016, OpenNebula Project, OpenNebula Systems
205
205
 
206
206
  Licensed under the Apache License, Version 2.0 (the "License"); you may
207
207
  not use this file except in compliance with the License. You may obtain
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -56,9 +56,15 @@ require 'opennebula/security_group_pool'
56
56
  require 'opennebula/vdc'
57
57
  require 'opennebula/vdc_pool'
58
58
  require 'opennebula/system'
59
+ require 'opennebula/virtual_router'
60
+ require 'opennebula/virtual_router_pool'
61
+ require 'opennebula/marketplace'
62
+ require 'opennebula/marketplace_pool'
63
+ require 'opennebula/marketplaceapp'
64
+ require 'opennebula/marketplaceapp_pool'
59
65
 
60
66
  module OpenNebula
61
67
 
62
68
  # OpenNebula version
63
- VERSION = '4.14.2'
69
+ VERSION = '4.90.0'
64
70
  end
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -33,6 +33,9 @@ module OpenNebula
33
33
  # ACL
34
34
  # SECGROUP
35
35
  # VDC
36
+ # VROUTER
37
+ # MARKETPLACE
38
+ # MARKETPLACEAPP
36
39
  # RIGHTS -> + separated list
37
40
  # USE
38
41
  # MANAGE
@@ -49,19 +52,22 @@ module OpenNebula
49
52
 
50
53
  RESOURCES =
51
54
  {
52
- "VM" => 0x1000000000,
53
- "HOST" => 0x2000000000,
54
- "NET" => 0x4000000000,
55
- "IMAGE" => 0x8000000000,
56
- "USER" => 0x10000000000,
57
- "TEMPLATE" => 0x20000000000,
58
- "GROUP" => 0x40000000000,
59
- "DATASTORE" => 0x100000000000,
60
- "CLUSTER" => 0x200000000000,
61
- "DOCUMENT" => 0x400000000000,
62
- "ZONE" => 0x800000000000,
63
- "SECGROUP" => 0x1000000000000,
64
- "VDC" => 0x2000000000000
55
+ "VM" => 0x1000000000,
56
+ "HOST" => 0x2000000000,
57
+ "NET" => 0x4000000000,
58
+ "IMAGE" => 0x8000000000,
59
+ "USER" => 0x10000000000,
60
+ "TEMPLATE" => 0x20000000000,
61
+ "GROUP" => 0x40000000000,
62
+ "DATASTORE" => 0x100000000000,
63
+ "CLUSTER" => 0x200000000000,
64
+ "DOCUMENT" => 0x400000000000,
65
+ "ZONE" => 0x800000000000,
66
+ "SECGROUP" => 0x1000000000000,
67
+ "VDC" => 0x2000000000000,
68
+ "VROUTER" => 0x4000000000000,
69
+ "MARKETPLACE" => 0x8000000000000,
70
+ "MARKETPLACEAPP"=> 0x10000000000000
65
71
  }
66
72
 
67
73
  RIGHTS =
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -85,7 +85,7 @@ module OpenNebula
85
85
  # Allocates a new Datastore in OpenNebula
86
86
  #
87
87
  # @param description [String] The template of the Datastore.
88
- # @param cluster_id [Integer] Id of the cluster
88
+ # @param cluster_id [Integer] Id of the cluster, -1 to use default
89
89
  #
90
90
  # @return [Integer, OpenNebula::Error] the new ID in case of
91
91
  # success, error otherwise
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -36,9 +36,9 @@ module OpenNebula
36
36
  super('DATASTORE_POOL','DATASTORE',client)
37
37
  end
38
38
 
39
- # Factory method to create User objects
39
+ # Factory method to create datastore objects
40
40
  def factory(element_xml)
41
- OpenNebula::Group.new(element_xml,@client)
41
+ OpenNebula::Datastore.new(element_xml,@client)
42
42
  end
43
43
 
44
44
  #######################################################################
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -134,6 +134,21 @@ module OpenNebula
134
134
  super(DOCUMENT_METHODS[:update], new_template, append ? 1 : 0)
135
135
  end
136
136
 
137
+ # Replaces the raw template contents
138
+ #
139
+ # @param template [String] New template contents, in the form KEY = VAL
140
+ # @param append [true, false] True to append new attributes instead of
141
+ # replace the whole template
142
+ #
143
+ # @return [nil, OpenNebula::Error] nil in case of success, Error
144
+ # otherwise
145
+ def update_raw(template_raw, append=false)
146
+ rc = check_type()
147
+ return rc if OpenNebula.is_error?(rc)
148
+
149
+ return call(DOCUMENT_METHODS[:update], @pe_id, template_raw, append ? 1 : 0)
150
+ end
151
+
137
152
  # Changes the owner/group
138
153
  #
139
154
  # @param [Integer] uid the new owner id. Set to -1 to leave the current one
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -70,6 +70,18 @@ module OpenNebula
70
70
  super(text, append)
71
71
  end
72
72
 
73
+ # Replaces the raw template contents
74
+ #
75
+ # @param template [String] New template contents, in the form KEY = VAL
76
+ # @param append [true, false] True to append new attributes instead of
77
+ # replace the whole template
78
+ #
79
+ # @return [nil, OpenNebula::Error] nil in case of success, Error
80
+ # otherwise
81
+ def update_raw(template_raw, append=false)
82
+ super(template_raw, append)
83
+ end
84
+
73
85
  # Generates a json representing the object
74
86
  #
75
87
  # @param [true, false] pretty_generate
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -37,7 +37,7 @@ module OpenNebula
37
37
  SELF = -1
38
38
 
39
39
  # Default resource ACL's for group users (create)
40
- GROUP_DEFAULT_ACLS = "VM+IMAGE+TEMPLATE+DOCUMENT+SECGROUP"
40
+ GROUP_DEFAULT_ACLS = "VM+IMAGE+TEMPLATE+DOCUMENT+SECGROUP+VROUTER"
41
41
 
42
42
  # The default view for group and group admins, must be defined in
43
43
  # sunstone_views.yaml
@@ -139,31 +139,38 @@ module OpenNebula
139
139
  return OpenNebula::Error.new(error_msg)
140
140
  end
141
141
 
142
- str = ""
142
+ sunstone_attrs = []
143
143
 
144
144
  # Add Sunstone views for the group
145
145
  if group_hash[:views]
146
- str += "SUNSTONE_VIEWS=\"#{group_hash[:views].join(",")}\"\n"
146
+ sunstone_attrs << "VIEWS=\"#{group_hash[:views].join(",")}\""
147
147
  end
148
148
 
149
149
  if group_hash[:default_view]
150
- str += "DEFAULT_VIEW=\"#{group_hash[:default_view]}\"\n"
150
+ sunstone_attrs << "DEFAULT_VIEW=\"#{group_hash[:default_view]}\""
151
151
  end
152
152
 
153
153
  # And the admin views
154
154
  if group_hash[:admin_views]
155
- str += "GROUP_ADMIN_VIEWS=\"#{group_hash[:admin_views].join(",")}\"\n"
155
+ sunstone_attrs << "GROUP_ADMIN_VIEWS=\"#{group_hash[:admin_views].join(",")}\""
156
156
  else
157
- str += "GROUP_ADMIN_VIEWS=#{GROUP_ADMIN_SUNSTONE_VIEWS}\n"
157
+ sunstone_attrs << "GROUP_ADMIN_VIEWS=#{GROUP_ADMIN_SUNSTONE_VIEWS}"
158
158
  end
159
159
 
160
160
  if group_hash[:default_admin_view]
161
- str += "GROUP_ADMIN_DEFAULT_VIEW=\"#{group_hash[:default_admin_view]}\"\n"
161
+ sunstone_attrs << "GROUP_ADMIN_DEFAULT_VIEW=\"#{group_hash[:default_admin_view]}\""
162
162
  else
163
- str += "GROUP_ADMIN_DEFAULT_VIEW=#{GROUP_ADMIN_SUNSTONE_VIEWS}"
163
+ sunstone_attrs << "GROUP_ADMIN_DEFAULT_VIEW=#{GROUP_ADMIN_SUNSTONE_VIEWS}"
164
164
  end
165
165
 
166
- self.update(str, true)
166
+ if sunstone_attrs.length > 0
167
+ rc = self.update("SUNSTONE=[#{sunstone_attrs.join(",\n")}]", true)
168
+ if OpenNebula.is_error?(rc)
169
+ self.delete
170
+ error_msg = "Error updating group template: #{rc.message}"
171
+ return OpenNebula::Error.new(error_msg)
172
+ end
173
+ end
167
174
 
168
175
  return 0
169
176
  end
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -24,28 +24,35 @@ module OpenNebula
24
24
  # Constants and Class Methods
25
25
  #######################################################################
26
26
 
27
-
28
27
  HOST_METHODS = {
29
28
  :info => "host.info",
30
29
  :allocate => "host.allocate",
31
30
  :delete => "host.delete",
32
- :enable => "host.enable",
31
+ :status => "host.status",
33
32
  :update => "host.update",
34
33
  :monitoring => "host.monitoring",
35
34
  :rename => "host.rename"
36
35
  }
37
36
 
38
- HOST_STATES=%w{INIT MONITORING_MONITORED MONITORED ERROR DISABLED MONITORING_ERROR MONITORING_INIT MONITORING_DISABLED}
37
+ HOST_STATES=%w{INIT MONITORING_MONITORED MONITORED ERROR DISABLED
38
+ MONITORING_ERROR MONITORING_INIT MONITORING_DISABLED OFFLINE}
39
39
 
40
40
  SHORT_HOST_STATES={
41
41
  "INIT" => "init",
42
42
  "MONITORING_MONITORED" => "update",
43
43
  "MONITORED" => "on",
44
44
  "ERROR" => "err",
45
- "DISABLED" => "off",
45
+ "DISABLED" => "dsbl",
46
46
  "MONITORING_ERROR" => "retry",
47
47
  "MONITORING_INIT" => "init",
48
- "MONITORING_DISABLED" => "off"
48
+ "MONITORING_DISABLED" => "dsbl",
49
+ "OFFLINE" => "off"
50
+ }
51
+
52
+ HOST_STATUS={
53
+ "ENABLED" => 0,
54
+ "DISABLED" => 1,
55
+ "OFFLINE" => 2
49
56
  }
50
57
 
51
58
  # Creates a Host description with just its identifier
@@ -89,13 +96,12 @@ module OpenNebula
89
96
  # @param hostname [String] Name of the new Host.
90
97
  # @param im [String] Name of the im_driver (information/monitoring)
91
98
  # @param vmm [String] Name of the vmm_driver (hypervisor)
92
- # @param vnm [String] Name of the vnm_driver (networking)
93
- # @param cluster_id [String] Id of the cluster
99
+ # @param cluster_id [String] Id of the cluster, -1 to use default
94
100
  #
95
101
  # @return [Integer, OpenNebula::Error] the new ID in case of
96
102
  # success, error otherwise
97
- def allocate(hostname,im,vmm,vnm,cluster_id=ClusterPool::NONE_CLUSTER_ID)
98
- super(HOST_METHODS[:allocate],hostname,im,vmm,vnm,cluster_id)
103
+ def allocate(hostname, im, vmm, cluster_id=ClusterPool::NONE_CLUSTER_ID)
104
+ super(HOST_METHODS[:allocate], hostname, im, vmm, cluster_id)
99
105
  end
100
106
 
101
107
  # Deletes the Host
@@ -105,12 +111,17 @@ module OpenNebula
105
111
 
106
112
  # Enables the Host
107
113
  def enable()
108
- set_enabled(true)
114
+ set_status("ENABLED")
109
115
  end
110
116
 
111
117
  # Disables the Host
112
118
  def disable()
113
- set_enabled(false)
119
+ set_status("DISABLED")
120
+ end
121
+
122
+ # Sets the Host offline
123
+ def offline()
124
+ set_status("OFFLINE")
114
125
  end
115
126
 
116
127
  def flush()
@@ -217,6 +228,7 @@ module OpenNebula
217
228
  return rc if OpenNebula.is_error?(rc)
218
229
 
219
230
  vm.deploy(id, false)
231
+ return vm.id
220
232
  end
221
233
 
222
234
  #######################################################################
@@ -255,10 +267,10 @@ module OpenNebula
255
267
  end
256
268
 
257
269
  private
258
- def set_enabled(enabled)
270
+ def set_status(status)
259
271
  return Error.new('ID not defined') if !@pe_id
260
272
 
261
- rc = @client.call(HOST_METHODS[:enable], @pe_id, enabled)
273
+ rc = @client.call(HOST_METHODS[:status], @pe_id, HOST_STATUS[status])
262
274
  rc = nil if !OpenNebula.is_error?(rc)
263
275
 
264
276
  return rc
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #