Class: Tengine::ResourceWakame::Provider::VirtualServerSynchronizer
- Inherits:
-
Synchronizer
- Object
- Tengine::Resource::Provider::Synchronizer
- Synchronizer
- Tengine::ResourceWakame::Provider::VirtualServerSynchronizer
- Defined in:
- lib/tengine/resource_wakame/provider.rb
Constant Summary collapse
- PRIVATE_IP_ADDRESS =
"private_ip_address".freeze
Instance Method Summary collapse
- #attrs_to_create(properties) ⇒ Object
- #create_by_hash(hash) ⇒ Object
- #differential_update_by_hash(hash) ⇒ Object
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. =~ /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 |