From: Jan Provaznik <[email protected]>

This method builds XML representation of cloud account credentials and is passed
to Image Factory in Image Building process.
---
 src/app/models/cloud_account.rb |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/src/app/models/cloud_account.rb b/src/app/models/cloud_account.rb
index 7cc056f..70bf6c5 100644
--- a/src/app/models/cloud_account.rb
+++ b/src/app/models/cloud_account.rb
@@ -19,6 +19,8 @@
 # Filters added to this controller apply to all controllers in the application.
 # Likewise, all the methods added will be available for all controllers.
 
+require 'nokogiri'
+
 class CloudAccount < ActiveRecord::Base
   include PermissionedObject
   belongs_to :provider
@@ -108,6 +110,28 @@ class CloudAccount < ActiveRecord::Base
     DeltaCloud::valid_credentials?(username, password, provider.url)
   end
 
+  def build_credentials
+    xml = Nokogiri::XML <<EOT
+<?xml version="1.0"?>
+<provider_credentials>
+  <ec2_credentials>
+    <account_number></account_number>
+    <access_key></access_key>
+    <secret_access_key></secret_access_key>
+    <certificate></certificate>
+    <key></key>
+  </ec2_credentials>
+</provider_credentials>
+EOT
+    node = xml.at_xpath('/provider_credentials/ec2_credentials')
+    node.at_xpath('./account_number').content = account_number
+    node.at_xpath('./access_key').content = username
+    node.at_xpath('./secret_access_key').content = password
+    node.at_xpath('./certificate').content = x509_cert_pub
+    node.at_xpath('./key').content = x509_cert_priv
+    return xml.to_s
+  end
+
   protected
   def validate
     errors.add_to_base("Login Credentials are Invalid for this Provider") 
unless valid_credentials?
-- 
1.7.2.2

_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to