# File lib/deltacloud/drivers/mock/mock_client.rb, line 25 def initialize(storage_root) @storage_root = storage_root @collections = [] if ! File::directory?(@storage_root) FileUtils::rm_rf(@storage_root) FileUtils::mkdir_p(@storage_root, :mode => 0750) data = Dir[File::join(File::dirname(__FILE__), "data", "*")] FileUtils::cp_r(data, @storage_root) end end
Return the object with id id
of class klass
from
the collection derived from the classes name
# File lib/deltacloud/drivers/mock/mock_client.rb, line 75 def build(klass, id) klass.new(load(collection_name(klass), id)) end
Return an array of model objects of the resources in the collection corresponding to class. The name of the collection is derived from the name of the class
# File lib/deltacloud/drivers/mock/mock_client.rb, line 87 def build_all(klass) load_all(collection_name(klass)).map { |hash| klass.new(hash) } end
# File lib/deltacloud/drivers/mock/mock_client.rb, line 109 def cimi_dir(collection) File::join(@storage_root, "cimi", collection.to_s) end
# File lib/deltacloud/drivers/mock/mock_client.rb, line 105 def cimi_file(collection, id) File::join(cimi_dir(collection), "#{id}.json") end
# File lib/deltacloud/drivers/mock/mock_client.rb, line 91 def destroy(collection, id) fname = file(collection, id) FileUtils.rm(fname) if File::exists?(fname) end
# File lib/deltacloud/drivers/mock/mock_client.rb, line 37 def dir(collection) result = File::join(@storage_root, collection.to_s) unless @collections.include?(collection) FileUtils::mkdir_p(result, :mode => 0750) unless File::directory?(result) @collections << collection end result end
# File lib/deltacloud/drivers/mock/mock_client.rb, line 46 def file(collection, id) File::join(dir(collection), "#{id}.yml") end
# File lib/deltacloud/drivers/mock/mock_client.rb, line 50 def files(collection) Dir[File::join(dir(collection), "*.yml")] end
# File lib/deltacloud/drivers/mock/mock_client.rb, line 59 def load(collection, id) fname = file(collection, id) begin YAML.load(File.read(fname)) rescue Errno::ENOENT nil end end
Return an array of hashes of all the resources in the collection
# File lib/deltacloud/drivers/mock/mock_client.rb, line 80 def load_all(collection) members(collection).map { |id| load(collection, id) } end
# File lib/deltacloud/drivers/mock/mock_client.rb, line 96 def load_all_cimi(model_name) model_files = Dir[File::join(cimi_dir(model_name), "*.json")] model_files.map{|f| File.read(f)} end
# File lib/deltacloud/drivers/mock/mock_client.rb, line 101 def load_cimi(model_name, id) File.read(cimi_file(model_name, id)) end
Return the ID's of all members of collection
# File lib/deltacloud/drivers/mock/mock_client.rb, line 55 def members(collection) files(collection).map { |f| File::basename(f, ".yml") } end
# File lib/deltacloud/drivers/mock/mock_client.rb, line 68 def store(collection, obj) raise "Why no obj[:id] ?" unless obj[:id] File::open(file(collection, obj[:id]), "w") { |f| YAML.dump(obj, f) } end