diff --git a/src/cloud/occi/lib/UserOCCI.rb b/src/cloud/occi/lib/UserOCCI.rb
new file mode 100644
index 0000000000..e12b2cb7f7
--- /dev/null
+++ b/src/cloud/occi/lib/UserOCCI.rb
@@ -0,0 +1,64 @@
+# -------------------------------------------------------------------------- #
+# Copyright 2002-2011, OpenNebula Project Leads (OpenNebula.org) #
+# #
+# 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. #
+#--------------------------------------------------------------------------- #
+
+require 'OpenNebula'
+
+include OpenNebula
+
+require 'quota'
+
+class UserOCCI < User
+ FORCE_USAGE = true
+
+ OCCI_USER = %q{
+
+ <%= self.id.to_s %>
+ <%= self.name %>
+
+ <% user_quota.each { |key,value|
+ key_s = key.to_s.upcase
+ value_i = value.to_i %>
+ <<%= key_s %>><%= value_i %><%= key_s %>>
+ <% } %>
+
+
+ <% user_usage.each { |key,value|
+ key_s = key.to_s.upcase
+ value_i = value.to_i %>
+ <<%= key_s %>><%= value_i %><%= key_s %>>
+ <% } %>
+
+
+ }
+
+ # Class constructor
+ def initialize(xml, client)
+ super(xml, client)
+ end
+
+ # Creates the OCCI representation of a User
+ def to_occi(base_url)
+ quota = Quota.new
+ user_usage = quota.get_usage(self.id, nil, FORCE_USAGE)
+ user_usage.delete(:uid)
+
+ user_quota = quota.get_quota(self.id)
+ user_quota.delete(:uid)
+
+ occi = ERB.new(OCCI_USER)
+ return occi.result(binding).gsub(/\n\s*/,'')
+ end
+end
diff --git a/src/cloud/occi/lib/UserPoolOCCI.rb b/src/cloud/occi/lib/UserPoolOCCI.rb
new file mode 100644
index 0000000000..acb745a5f7
--- /dev/null
+++ b/src/cloud/occi/lib/UserPoolOCCI.rb
@@ -0,0 +1,43 @@
+# -------------------------------------------------------------------------- #
+# Copyright 2002-2011, OpenNebula Project Leads (OpenNebula.org) #
+# #
+# 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. #
+#--------------------------------------------------------------------------- #
+
+require 'OpenNebula'
+
+include OpenNebula
+
+class UserPoolOCCI < UserPool
+ OCCI_USER_POOL = %q{
+
+ <% self.each{ |user| %>
+
+ <% } %>
+
+ }
+
+
+ # Creates the OCCI representation of a User Pool
+ def to_occi(base_url)
+ begin
+ occi = ERB.new(OCCI_USER_POOL)
+ occi_text = occi.result(binding)
+ rescue Exception => e
+ error = OpenNebula::Error.new(e.message)
+ return error
+ end
+
+ return occi_text.gsub(/\n\s*/,'')
+ end
+end
\ No newline at end of file