class Tengine::Resource::Provider
Public Class Methods
find_or_create_by_name!(attrs)
click to toggle source
# File lib/tengine/resource/provider.rb, line 70 def find_or_create_by_name!(attrs) result = self.where({:name => attrs[:name]}).first result ||= self.create!(attrs) result end
manual()
click to toggle source
# File lib/tengine/resource/provider.rb, line 63 def manual entry = type_entry_by_key(:manual_control) result = self.where({:type_cd => entry.id}).first result ||= self.create!({name: entry.name, type_cd: entry.id}) result end
register_synchronizers(hash)
click to toggle source
# File lib/tengine/resource/provider.rb, line 80 def register_synchronizers(hash) synchronizers.update(hash) end
synchronizers()
click to toggle source
# File lib/tengine/resource/provider.rb, line 76 def synchronizers @synchronizers ||= {} end
Public Instance Methods
find_virtual_server_on_duplicaion_error(virtual_server_provided_id) { || ... }
click to toggle source
# File lib/tengine/resource/provider.rb, line 48 def find_virtual_server_on_duplicaion_error(virtual_server_provided_id) begin yield rescue Moped::Errors::OperationFailure => e raise e unless e.message =~ /E11000 duplicate key error/ self.virtual_servers.where({:provided_id => virtual_server_provided_id}).first or raise "VirtualServer not found for #{virtual_server_provided_id}" rescue Mongoid::Errors::Validations => e raise e unless e.document.errors[:provided_id].any?{|s| s =~ /taken/} self.virtual_servers.where({:provided_id => virtual_server_provided_id}).first or raise "VirtualServer not found for #{virtual_server_provided_id}" end end
synchronize_physical_servers()
click to toggle source
物理サーバの監視
# File lib/tengine/resource/provider.rb, line 37 def synchronize_physical_servers ; raise NotImplementedError end
synchronize_virtual_server_images()
click to toggle source
仮想サーバイメージの監視
# File lib/tengine/resource/provider.rb, line 41 def synchronize_virtual_server_images ; raise NotImplementedError end
synchronize_virtual_server_types()
click to toggle source
仮想サーバタイプの監視
# File lib/tengine/resource/provider.rb, line 35 def synchronize_virtual_server_types ; raise NotImplementedError end
synchronize_virtual_servers()
click to toggle source
仮想サーバの監視
# File lib/tengine/resource/provider.rb, line 39 def synchronize_virtual_servers ; raise NotImplementedError end
update_physical_servers()
click to toggle source
# File lib/tengine/resource/provider.rb, line 43 def update_physical_servers ; raise NotImplementedError end
update_virtual_server_imagess()
click to toggle source
# File lib/tengine/resource/provider.rb, line 45 def update_virtual_server_imagess; raise NotImplementedError end
update_virtual_servers()
click to toggle source
# File lib/tengine/resource/provider.rb, line 44 def update_virtual_servers ; raise NotImplementedError end
Private Instance Methods
synchronize_by(target_name)
click to toggle source
# File lib/tengine/resource/provider.rb, line 87 def synchronize_by(target_name) synchronizer = synchronizers_by(target_name) synchronizer.execute end
synchronizers_by(target_name)
click to toggle source
# File lib/tengine/resource/provider.rb, line 92 def synchronizers_by(target_name) unless @synchronizers @synchronizers = {} self.class.synchronizers.each do |target_name, klass| @synchronizers[target_name] = klass.new(self, target_name) end end @synchronizers[target_name] end