Fix route name in nodes.create, add basic functional test.
authorTom Clegg <tom@curoverse.com>
Wed, 30 Apr 2014 07:00:16 +0000 (03:00 -0400)
committerTom Clegg <tom@curoverse.com>
Wed, 30 Apr 2014 07:02:45 +0000 (03:02 -0400)
services/api/app/controllers/arvados/v1/nodes_controller.rb
services/api/app/models/node.rb
services/api/test/functional/arvados/v1/nodes_controller_test.rb

index d7a477d337ffe9655b609bcda6f99adc32284f5d..990397bf7cee77928ecc3d889ab313c173197c2a 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
 
index 805e1ccd41cabd1a681e901b4cdb38f7d375067a..b88d4a50d037a30a80e8fcec6d9269dd384ef1a2 100644 (file)
@@ -120,7 +120,7 @@ class Node < ArvadosModel
 
   def start!(ping_url_method)
     ensure_permission_to_update
-    ping_url = ping_url_method.call({ uuid: self.uuid, ping_secret: self.info[:ping_secret] })
+    ping_url = ping_url_method.call({ id: self.uuid, ping_secret: self.info[:ping_secret] })
     if (Rails.configuration.compute_node_ec2run_args and
         Rails.configuration.compute_node_ami)
       ec2_args = ["--user-data '#{ping_url}'",
index 386c839aeda07e1157b5de34d5cd972a188561fb..e096a045c60c81b9aef6bf1fcc08d714a48077e9 100644 (file)
@@ -66,4 +66,13 @@ class Arvados::V1::NodesControllerTest < ActionController::TestCase
     assert_response 401
   end
 
+  test "create node" do
+    authorize_with :admin
+    post :create
+    assert_response :success
+    assert_not_nil json_response['uuid']
+    assert_not_nil json_response['info'].is_a? Hash
+    assert_not_nil json_response['info']['ping_secret']
+  end
+
 end