Class: Tengine::ResourceWakame::Provider::VirtualServerSynchronizer

Inherits:
Synchronizer
  • Object
show all
Defined in:
lib/tengine/resource_wakame/provider.rb

Constant Summary collapse

PRIVATE_IP_ADDRESS =
"private_ip_address".freeze

Instance Method Summary collapse

Instance Method Details

#attrs_to_create(properties) ⇒ Object



304
305
306
307
308
309
# File 'lib/tengine/resource_wakame/provider.rb', line 304

def attrs_to_create(properties)
  result = super(properties)
  # 初期登録時、default 値として name には一意な provided_id を name へ登録します
  result[:name] = result[:provided_id]
  result
end

#create_by_hash(hash) ⇒ Object



294
295
296
297
298
299
300
301
302
# File 'lib/tengine/resource_wakame/provider.rb', line 294

def create_by_hash(hash)
  super(hash)
rescue Mongo::OperationFailure => e
  raise e unless e.message =~ /E11000 duplicate key error/
  nil
rescue Mongoid::Errors::Validations => e
  raise e unless e.document.errors[:provided_id].any?{|s| s =~ /taken/}
  nil
end

#differential_update_by_hash(hash) ⇒ Object



311
312
313
314
315
# File 'lib/tengine/resource_wakame/provider.rb', line 311

def differential_update_by_hash(hash)
  super(hash) do |virtual_server, properties|
    virtual_server.save! if virtual_server.changed? && !virtual_server.changes.values.all?{|v| v.nil?}
  end
end