new_file: don't pass private field to create_open
authorEric Wong <normalperson@yhbt.net>
Thu, 8 Nov 2012 02:43:38 +0000 (8 02:43 +0000)
committerEric Wong <normalperson@yhbt.net>
Thu, 8 Nov 2012 02:43:38 +0000 (8 02:43 +0000)
Avoid needless encoding and data transfer to the tracker.

lib/mogilefs/mogilefs.rb

index 8bab9ef..048357c 100644 (file)
@@ -280,7 +280,7 @@ class MogileFS::MogileFS < MogileFS::Client
   #   an array of URI::HTTP objects to the stored destinations
   def new_file(key, args = nil, bytes = nil) # :yields: file
     raise MogileFS::ReadOnlyError if readonly?
-    opts = { :key => key, :multi_dest => 1, :nhp_put => @nhp_put }
+    opts = { :key => key, :multi_dest => 1 }
     case args
     when Hash
       opts[:domain] = args[:domain]
@@ -291,6 +291,7 @@ class MogileFS::MogileFS < MogileFS::Client
     end
     opts[:domain] ||= @domain
     res = @backend.create_open(open_args ? open_args.merge(opts) : opts)
+    opts[:nhp_put] = @nhp_put
 
     dests = if dev_count = res['dev_count'] # multi_dest succeeded
       (1..dev_count.to_i).map { |i| [res["devid_#{i}"], res["path_#{i}"]] }