diff --git a/src/cloud/rm/image.rb b/src/cloud/rm/image.rb
deleted file mode 100644
index 15e9695d06..0000000000
--- a/src/cloud/rm/image.rb
+++ /dev/null
@@ -1,182 +0,0 @@
-# -------------------------------------------------------------------------- #
-# Copyright 2002-2010, 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. #
-#--------------------------------------------------------------------------- #
-
-module OpenNebula
- class Image < Sequel::Model
- plugin :schema
- plugin :hook_class_methods
-
- # Creates the database table asociated with the model. It first
- # checks for table existence before creating it so it is reasonably
- # safe to call it when you load the library.
- def self.initialize_table
- set_schema do
- primary_key :id, :type => Integer
- int :owner
- varchar :name
- varchar :description
- varchar :path
- int :size
- varchar :md5
- end
-
- create_table unless table_exists?
- end
-
- # Makes sure the image is deleted from the repository after
- # the record is deleted. Make sure that you use destroy and not
- # delete as delete method does not call hooks.
- before_destroy do
- FileUtils.rm(self.path)
- end
-
- # Specifies the directory where images will be stored
- # dir:: _String_ directory where the images are stored
- def self.image_dir=(dir)
- @@image_dir=dir
- end
-
- # Strips out non user writable columns
- # metadata:: _Hash_ hash containing the data to add to the db
- # [return] _Hash_ clean metadata
- def self.sanitize_metadata(metadata)
- metadata.reject {|key,value|
- ![:name, :description].include? key
- }
- end
-
- # Creates a new Image object, fills it, copies the image
- # to the repository and saves to the database
- # owner:: _Integer_ identifier of the user that owns this image
- # path:: _String_ place where to copy the image from
- # metadata:: _Hash_ extra data to add to the image, like name and description
- # [return] _Image_ newly created image
- def self.create_image(owner, path, metadata={})
- sanitized_metadata=sanitize_metadata(metadata)
-
- data={
- :owner => owner,
- }.merge(sanitized_metadata)
-
- image=Image.new(data)
-
- image.save
-
- # TODO: make copy or movement configurable
- image.copy_image(path, true)
- image.get_image_info
-
- image.save
-
- image
-
- # set metadata
- end
-
- def identifier
- self.id
- end
-
- # Updates the image with the metadata provided. Currently only
- # name and description can be changed
- def change_metadata(metadata)
- update(Image.sanitize_metadata(metadata))
- end
-
- # Copies the image from the source path to the image repository.
- # Its name will be the image id. It also stores its new location
- # in the object.
- def copy_image(path, move=false)
- if move
- FileUtils.mv(path, image_path)
- else
- FileUtils.cp(path, image_path)
- end
- self.path=image_path
- end
-
- # Returns the filename and path of the image file associated with
- # this Image object.
- def image_path
- @@image_dir||='images'
- File.join(@@image_dir, self.id.to_s)
- end
-
- # Extracts md5 and size from the image file and stores these data
- # in the object.
- def get_image_info
- self.md5=`md5sum #{image_path}`.split.first
- self.size=File.size(image_path)
- end
-
- # Adds a user to the list of allowed users of this image
- def add_acl(user)
- acl=ImageAcl.new({:image_id => self.id, :user => user})
- acl.save
- end
-
- # Deletes a user fom the list of allowed users of this image
- def del_acl(user)
- acl=ImageAcl[:image_id => self.id, :user => user]
- acl.destroy if acl
- end
-
- # Checks if a user has permissions to use this image
- def has_permission?(user)
- return true if self.owner==user
- ImageAcl[:image_id => self.id, :user => user]!=nil
- end
-
- # Returns the xml representation of the image.
- def to_xml
- xml="\n"
- xml<<" #{id}\n"
- xml<<" #{owner}\n"
- xml<<" #{name}\n"
- xml<<" #{description}\n"
- xml<<" #{path}\n"
- xml<<" #{size}\n"
- xml<<" #{md5}\n"
- xml<<"\n"
- end
-
- # Like to_xml but does not show image file path data
- def to_xml_lite
- xml="\n"
- xml<<" #{id}\n"
- xml<<" #{owner}\n"
- xml<<" #{name}\n"
- xml<<" #{description}\n"
- xml<<" #{size}\n"
- xml<<" #{md5}\n"
- xml<<"\n"
- end
- end
-
- class ImageAcl < Sequel::Model
- plugin :schema
-
- def self.initialize_table
- set_schema do
- primary_key :id, :type => Integer
- varchar :image_id
- int :user
- end
-
- create_table unless table_exists?
- end
- end
-end
diff --git a/src/cloud/rm/repo_manager.rb b/src/cloud/rm/repo_manager.rb
deleted file mode 100644
index fd3139f83f..0000000000
--- a/src/cloud/rm/repo_manager.rb
+++ /dev/null
@@ -1,66 +0,0 @@
-# -------------------------------------------------------------------------- #
-# Copyright 2002-2010, 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 'rubygems'
-require 'fileutils'
-require 'sequel'
-require 'logger'
-
-module OpenNebula
- class RepoManager
- def initialize(rm_db=nil)
- raise "DB not defined" if !rm_db
-
- @db=Sequel.sqlite(rm_db)
-
- require 'image'
-
- Image.initialize_table
- ImageAcl.initialize_table
- end
-
- def add(owner, path, metadata={})
- Image.create_image(owner, path, metadata)
- end
-
- def get(image_id)
- Image[:id => image_id]
- end
-
- def update(image_id, metadata)
- image=get(image_id)
- image.update(metadata)
- end
-
-
- end
-
-end
-
-=begin
-OpenNebula::Image.create_image(10, 'repo_manager.rb',
- :name => 'nombre',
- :noexiste => 'nada'
-)
-=end
-
-if $0 == __FILE__
- rm=OpenNebula::RepoManager.new
- img=rm.add_image(rand(100), 'image.rb',
- :name => 'nombre',
- :description => 'desc')
- puts img.to_xml
-end