10223: Merge branch 'master' into 10223-cr-set-output-name
authorLucas Di Pentima <lucas@curoverse.com>
Wed, 4 Jan 2017 15:19:39 +0000 (12:19 -0300)
committerLucas Di Pentima <lucas@curoverse.com>
Wed, 4 Jan 2017 15:19:39 +0000 (12:19 -0300)
1  2 
sdk/cwl/arvados_cwl/arvcontainer.py
sdk/cwl/tests/test_submit.py
services/api/db/structure.sql
services/api/test/unit/container_request_test.rb

index edf8c26698efc79b92785af3b6c06ccb406e5dbf,d6e3098ab4800fa8bab4d735046cefe280b5f9bb..c1e1a26b1b9ed647058f93163a927ac270f84d66
@@@ -234,10 -245,9 +245,10 @@@ class RunnerContainer(Runner)
              }
              container_req["properties"]["template_uuid"] = wfuuid
  
-         command = ["arvados-cwl-runner", "--local", "--api=containers"]
+         command = ["arvados-cwl-runner", "--local", "--api=containers", "--no-log-timestamps"]
          if self.output_name:
              command.append("--output-name=" + self.output_name)
 +            container_req["output_name"] = self.output_name
  
          if self.output_tags:
              command.append("--output-tags=" + self.output_tags)
index 17b864b61ab343cd9d389ab9b22a870c7d8aa5fb,cdeb6dfd8edabe816565a081784a564f32510fcc..14ae7b9f8fee3f86a12724194ceb443349b8e634
@@@ -468,8 -469,9 +469,10 @@@ class TestSubmit(unittest.TestCase)
          except:
              logging.exception("")
  
-         stubs.expect_container_spec["command"] = ['arvados-cwl-runner', '--local', '--api=containers', "--output-name="+output_name, '--enable-reuse', '/var/lib/cwl/workflow/submit_wf.cwl', '/var/lib/cwl/cwl.input.json']
+         stubs.expect_container_spec["command"] = ['arvados-cwl-runner', '--local', '--api=containers', '--no-log-timestamps',
+                                                   "--output-name="+output_name, '--enable-reuse',
+                                                   '/var/lib/cwl/workflow/submit_wf.cwl', '/var/lib/cwl/cwl.input.json']
 +        stubs.expect_container_spec["output_name"] = output_name
  
          expect_container = copy.deepcopy(stubs.expect_container_spec)
          stubs.api.container_requests().create.assert_called_with(
index fb32872eef45b13332b0912b61bdc6f436e36796,6ef03cff11aed3b7dba49fa5445c09749ac0930d..d4b3713cd0edf7d123e14c2fc1d15a7edf648451
@@@ -2709,6 -2731,4 +2732,9 @@@ INSERT INTO schema_migrations (version
  
  INSERT INTO schema_migrations (version) VALUES ('20161213172944');
  
 -INSERT INTO schema_migrations (version) VALUES ('20161222153434');
++INSERT INTO schema_migrations (version) VALUES ('20161222153434');
++
 +INSERT INTO schema_migrations (version) VALUES ('20161223090712');
 +
- INSERT INTO schema_migrations (version) VALUES ('20170102153111');
++INSERT INTO schema_migrations (version) VALUES ('20170102153111');
++
index 1f65c0135f89db7fbb9a6f7af33b2bfff504140a,9e28f7bf0988e3c2bfba0d22f29d154a97c35266..78dc3e3978449f1d8f12a107accfedb48934fd8e
@@@ -501,45 -506,12 +506,47 @@@ class ContainerRequestTest < ActiveSupp
      end
  
      cr.reload
+     cr2.reload
      assert_equal "Final", cr.state
      assert_equal prev_container_uuid, cr.container_uuid
+     assert_not_equal cr2.container_uuid, cr.container_uuid
    end
  
 +  test "Set up output collection on finalized container request" do
 +    set_user_from_auth :active
 +    output_name = 'Test output collection'
 +    cr = create_minimal_req!(priority: 1,
 +                             state: ContainerRequest::Committed,
 +                             output_name: output_name)
 +    cr.reload
 +    act_as_system_user do
 +      c = Container.find_by_uuid(cr.container_uuid)
 +      c.update_attributes!(state: Container::Locked)
 +      c.update_attributes!(state: Container::Running)
 +      c.update_attributes!(state: Container::Complete,
 +                           exit_code: 0,
 +                           output: '1f4b0bc7583c2a7f9102c395f4ffc5e3+45',
 +                           log: 'fa7aeb5140e2848d39b416daeef4ffc5+45')
 +    end
 +    cr.reload
 +    output_coll = Collection.find_by_uuid(cr.output_uuid)
 +    assert_not_nil output_coll
 +    assert_equal output_coll.name, output_name
 +    # Now ask for a second CR, equal to the first one so it will reuse the container
 +    cr2 = create_minimal_req!(priority: 1,
 +                              state: ContainerRequest::Uncommitted,
 +                              output_name: output_name)
 +    cr2.state = ContainerRequest::Committed
 +    cr2.save
 +    assert_equal ContainerRequest::Final, cr2.state
 +    output_coll_2 = Collection.find_by_uuid(cr2.output_uuid)
 +    # Make sure the resulting output collection name include the original name
 +    # plus the date
 +    assert_not_equal output_coll_2.name, output_coll.name
 +    assert output_coll_2.name.include? output_name
 +    assert_match /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z/, output_coll_2.name
 +  end
 +
    test "Finalize committed request when reusing a finished container" do
      set_user_from_auth :active
      cr = create_minimal_req!(priority: 1, state: ContainerRequest::Committed)