From: David Lutterkort <[email protected]>
---
server/deltacloud.rb | 1 +
server/lib/deltacloud/models/instance.rb | 1 +
server/lib/deltacloud/models/instance_profile.rb | 47 ++++++++++++++++++++++
3 files changed, 49 insertions(+), 0 deletions(-)
create mode 100644 server/lib/deltacloud/models/instance_profile.rb
diff --git a/server/deltacloud.rb b/server/deltacloud.rb
index c879316..2a60679 100644
--- a/server/deltacloud.rb
+++ b/server/deltacloud.rb
@@ -10,5 +10,6 @@ require 'deltacloud/models/flavor'
require 'deltacloud/models/realm'
require 'deltacloud/models/image'
require 'deltacloud/models/instance'
+require 'deltacloud/models/instance_profile'
require 'deltacloud/models/storage_snapshot'
require 'deltacloud/models/storage_volume'
diff --git a/server/lib/deltacloud/models/instance.rb
b/server/lib/deltacloud/models/instance.rb
index 485ffb2..e5c1f9c 100644
--- a/server/lib/deltacloud/models/instance.rb
+++ b/server/lib/deltacloud/models/instance.rb
@@ -27,6 +27,7 @@ class Instance < BaseModel
attr_accessor :actions
attr_accessor :public_addresses
attr_accessor :private_addresses
+ attr_accessor :instance_profile
def initialize(init=nil)
super(init)
diff --git a/server/lib/deltacloud/models/instance_profile.rb
b/server/lib/deltacloud/models/instance_profile.rb
new file mode 100644
index 0000000..a9e3854
--- /dev/null
+++ b/server/lib/deltacloud/models/instance_profile.rb
@@ -0,0 +1,47 @@
+#
+# Copyright (C) 2009 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA
+
+# Model to store the hardware profile applied to an instance together with
+# any instance-specific overrides
+class InstanceProfile < BaseModel
+ attr_accessor :memory
+ attr_accessor :storage
+ attr_accessor :architecture
+ attr_accessor :cpu
+
+ def initialize(hwp_name, args = {})
+ opts = args.inject({ :id => hwp_name.to_s }) do |m, e|
+ k, v = e
+ m[$1] = v if k.to_s =~ /^hwp_(.*)$/
+ m
+ end
+ super(opts)
+ end
+
+ def name
+ id
+ end
+
+ def overrides
+ [:memory, :storage, :architecture, :cpu].inject({}) do |h, p|
+ if v = instance_variable_get("@#{p}")
+ h[p] = v
+ end
+ h
+ end
+ end
+end
--
1.6.6.1
_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel