def save
raise Fog::Errors::Error, 'Resaving an existing object may create a duplicate' if persisted?
requires :flavor_ref, :name
requires_one :image_ref, :block_device_mapping, :block_device_mapping_v2
options = {
'personality' => personality,
'accessIPv4' => accessIPv4,
'accessIPv6' => accessIPv6,
'availability_zone' => availability_zone,
'user_data' => user_data_encoded,
'key_name' => key_name,
'config_drive' => config_drive,
'security_groups' => @security_groups,
'min_count' => @min_count,
'max_count' => @max_count,
'nics' => @nics,
'os:scheduler_hints' => @os_scheduler_hints,
'block_device_mapping' => @block_device_mapping,
'block_device_mapping_v2' => @block_device_mapping_v2,
}
options['metadata'] = metadata.to_hash unless @metadata.nil?
options = options.reject { |_key, value| value.nil? }
data = service.create_server(name, image_ref, flavor_ref, options)
merge_attributes(data.body['server'])
true
end