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