Improved file reading error handling.

This commit is contained in:
Martin Edenhofer 2013-05-10 23:48:29 +02:00
parent 9cca6be134
commit 6e150a93c5
2 changed files with 15 additions and 6 deletions

View file

@ -252,10 +252,11 @@ class Package < ApplicationModel
# Package.reinstall( package_name ) # Package.reinstall( package_name )
def self.reinstall(package_name) def self.reinstall(package_name)
package = Package.where( :name => package_name ).first package = Package.where( :name => package_name ).first
return if !package if !package
raise "No such package '#{package_name}'"
end
file = self._get_bin( package.name, package.version ) file = self._get_bin( package.name, package.version )
return if !file
self.install( :string => file, :reinstall => true ) self.install( :string => file, :reinstall => true )
end end
@ -345,8 +346,14 @@ class Package < ApplicationModel
) )
# find file # find file
return if !list if !list || !list.first
list.first.store_file.data raise "No such file in storage list #{name} #{version}"
end
store_file = list.first.store_file
if !store_file
raise "No such file in storage #{name} #{version}"
end
store_file.data
end end
def self._read_file(file, fullpath = false) def self._read_file(file, fullpath = false)

View file

@ -47,14 +47,16 @@ class Store < ApplicationModel
def self.list(data) def self.list(data)
# search # search
stores = Store.where( :store_object_id => Store::Object.where( :name => data[:object] ), :o_id => data[:o_id].to_i ). store_object_id = Store::Object.lookup( :name => data[:object] )
stores = Store.where( :store_object_id => store_object_id, :o_id => data[:o_id].to_i ).
order('created_at ASC, id ASC') order('created_at ASC, id ASC')
return stores return stores
end end
def self.remove(data) def self.remove(data)
# search # search
stores = Store.where( :store_object_id => Store::Object.where( :name => data[:object] ) ). store_object_id = Store::Object.lookup( :name => data[:object] )
stores = Store.where( :store_object_id => store_object_id ).
where( :o_id => data[:o_id] ). where( :o_id => data[:o_id] ).
order('created_at ASC, id ASC') order('created_at ASC, id ASC')
stores.each do |store| stores.each do |store|