Merge remote-tracking branch 'origin/master' into 3605-improved-dashboard
[arvados.git] / services / api / app / controllers / arvados / v1 / nodes_controller.rb
index d7a477d337ffe9655b609bcda6f99adc32284f5d..5bfeff06f5c11200c08258eba53489b594aa1e3f 100644 (file)
@@ -6,7 +6,7 @@ class Arvados::V1::NodesController < ApplicationController
   def create
     @object = Node.new
     @object.save!
-    @object.start!(lambda { |h| arvados_v1_ping_node_url(h) })
+    @object.start!(lambda { |h| ping_arvados_v1_node_url(h) })
     show
   end
 
@@ -20,10 +20,16 @@ class Arvados::V1::NodesController < ApplicationController
       if !@object
         return render_not_found
       end
-      @object.ping({ ip: params[:local_ipv4] || request.env['REMOTE_ADDR'],
-                     ping_secret: params[:ping_secret],
-                     ec2_instance_id: params[:instance_id] })
-      if @object.info[:ping_secret] == params[:ping_secret]
+      ping_data = {
+        ip: params[:local_ipv4] || request.env['REMOTE_ADDR'],
+        ec2_instance_id: params[:instance_id]
+      }
+      [:ping_secret, :total_cpu_cores, :total_ram_mb, :total_scratch_mb]
+        .each do |key|
+        ping_data[key] = params[key] if params[key]
+      end
+      @object.ping(ping_data)
+      if @object.info['ping_secret'] == params[:ping_secret]
         render json: @object.as_api_response(:superuser)
       else
         raise "Invalid ping_secret after ping"