It belongs to neither Warehouse or Factory, but references both,
so using the top-level makes the most sense here.
---
lib/aeolus_image.rb | 2 ++
lib/aeolus_image/import.rb | 35 +++++++++++++++++++++++++++++++++++
2 files changed, 37 insertions(+), 0 deletions(-)
create mode 100644 lib/aeolus_image/import.rb
diff --git a/lib/aeolus_image.rb b/lib/aeolus_image.rb
index 6f9b0a0..6d428f8 100644
--- a/lib/aeolus_image.rb
+++ b/lib/aeolus_image.rb
@@ -31,3 +31,5 @@ require File.join(File.dirname(__FILE__),
'aeolus_image/model/factory', 'provide
require File.join(File.dirname(__FILE__), 'aeolus_image/model/factory',
'target_image')
require File.join(File.dirname(__FILE__), 'aeolus_image/model/factory',
'builder')
require File.join(File.dirname(__FILE__), 'aeolus_image',
'active_resource_oauth_client')
+
+require File.join(File.dirname(__FILE__), 'aeolus_image', 'import')
diff --git a/lib/aeolus_image/import.rb b/lib/aeolus_image/import.rb
new file mode 100644
index 0000000..fe0ce22
--- /dev/null
+++ b/lib/aeolus_image/import.rb
@@ -0,0 +1,35 @@
+# Copyright 2011 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#
http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+module Aeolus
+ module Image
+ def self.import(provider_name, deltacloud_driver, image_id, account_id, xml=nil)
+ xml ||=
"<image><name>#{image_id}</name></image>"
+ image = Factory::Image.new(
+ :target_name => deltacloud_driver,
+ :provider_name => provider_name,
+ :target_identifier => image_id,
+ :image_descriptor => xml
+ )
+ image.save!
+ # Set the provider_account_id on the image
+ iwhd_image = Warehouse::Image.find(image.id)
+ # Set the account on the provider image
+ # This assumes (as is currently correct) that there will only be one provider image
for imported images
+ pimg = iwhd_image.provider_images.first
+ pimg.set_attr('provider_account_identifier', account_id)
+ image
+ end
+ end
+end
--
1.7.6.4