{"action":"created","comment":{"url":"https://api.github.com/repos/mesosphere/marathon/pulls/comments/234700463","pull_request_review_id":176398223,"id":234700463,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNDcwMDQ2Mw==","diff_hunk":"@@ -47,25 +47,18 @@ class InstanceOpFactoryImpl(\n   override def matchOfferRequest(request: InstanceOpFactory.Request): OfferMatchResult = {\n     logger.debug(\"matchOfferRequest\")\n \n-    request.runSpec match {\n-      case app: AppDefinition =>\n-        if (request.isForResidentRunSpec) {\n-          inferForResidents(request)\n-        } else {\n-          request.scheduledInstances.headOption.map { scheduledInstance =>\n-            inferNormalTaskOp(app, request.instances, request.offer, request.localRegion, scheduledInstance)\n-          }.getOrElse(OfferMatchResult.NoMatch(app, request.offer, Seq.empty, clock.now()))\n-        }\n-      case pod: PodDefinition =>\n-        if (request.isForResidentRunSpec) {\n-          inferForResidents(request)\n-        } else {\n-          request.scheduledInstances.headOption.map { scheduledInstance =>\n-            inferPodInstanceOp(pod, request.instances, request.offer, request.localRegion, scheduledInstance)\n-          }.getOrElse(OfferMatchResult.NoMatch(pod, request.offer, Seq.empty, clock.now()))\n-        }\n-      case _ =>\n-        throw new IllegalArgumentException(s\"unsupported runSpec object ${request.runSpec}\")\n+    request.scheduledInstances.headOption match {\n+      case Some(scheduledInstance @ Instance(_, _, _, _, app: AppDefinition, _)) =>\n+        if (app.isResident) inferForResidents(request, scheduledInstance)\n+        else inferNormalTaskOp(app, request.instances, request.offer, request.localRegion, scheduledInstance)\n+      case Some(scheduledInstance @ Instance(_, _, _, _, pod: PodDefinition, _)) =>\n+        if (pod.isResident) inferForResidents(request, scheduledInstance)\n+        inferPodInstanceOp(pod, request.instances, request.offer, request.localRegion, scheduledInstance)\n+      case Some(Instance(_, _, _, _, runSpec, _)) =>\n+        throw new IllegalArgumentException(s\"unsupported runSpec object ${runSpec}\")\n+      case None =>\n+        // TODO(karsten): Ideally scheduled instances would be a non empty seq\n+        OfferMatchResult.NoScheduledInstances(request.offer, clock.now())","path":"src/main/scala/mesosphere/marathon/core/launcher/impl/InstanceOpFactoryImpl.scala","position":34,"original_position":34,"commit_id":"42748ec17716b197acd1bc7b569d25791970375f","original_commit_id":"42748ec17716b197acd1bc7b569d25791970375f","user":{"login":"jeschkies","id":2418440,"node_id":"MDQ6VXNlcjI0MTg0NDA=","avatar_url":"https://avatars3.githubusercontent.com/u/2418440?v=4","gravatar_id":"","url":"https://api.github.com/users/jeschkies","html_url":"https://github.com/jeschkies","followers_url":"https://api.github.com/users/jeschkies/followers","following_url":"https://api.github.com/users/jeschkies/following{/other_user}","gists_url":"https://api.github.com/users/jeschkies/gists{/gist_id}","starred_url":"https://api.github.com/users/jeschkies/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeschkies/subscriptions","organizations_url":"https://api.github.com/users/jeschkies/orgs","repos_url":"https://api.github.com/users/jeschkies/repos","events_url":"https://api.github.com/users/jeschkies/events{/privacy}","received_events_url":"https://api.github.com/users/jeschkies/received_events","type":"User","site_admin":false},"body":"Cats offers a `NonEmptyList` are we brace enough to import it or should we have an `IllegalStateException` instead? There should be no offer matching when no instance is scheduled.","created_at":"2018-11-19T16:58:14Z","updated_at":"2018-11-19T16:58:15Z","html_url":"https://github.com/mesosphere/marathon/pull/6664#discussion_r234700463","pull_request_url":"https://api.github.com/repos/mesosphere/marathon/pulls/6664","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/mesosphere/marathon/pulls/comments/234700463"},"html":{"href":"https://github.com/mesosphere/marathon/pull/6664#discussion_r234700463"},"pull_request":{"href":"https://api.github.com/repos/mesosphere/marathon/pulls/6664"}}},"pull_request":{"url":"https://api.github.com/repos/mesosphere/marathon/pulls/6664","id":231456491,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMxNDU2NDkx","html_url":"https://github.com/mesosphere/marathon/pull/6664","diff_url":"https://github.com/mesosphere/marathon/pull/6664.diff","patch_url":"https://github.com/mesosphere/marathon/pull/6664.patch","issue_url":"https://api.github.com/repos/mesosphere/marathon/issues/6664","number":6664,"state":"open","locked":false,"title":"Use run spec attached to instance for launching.","user":{"login":"jeschkies","id":2418440,"node_id":"MDQ6VXNlcjI0MTg0NDA=","avatar_url":"https://avatars3.githubusercontent.com/u/2418440?v=4","gravatar_id":"","url":"https://api.github.com/users/jeschkies","html_url":"https://github.com/jeschkies","followers_url":"https://api.github.com/users/jeschkies/followers","following_url":"https://api.github.com/users/jeschkies/following{/other_user}","gists_url":"https://api.github.com/users/jeschkies/gists{/gist_id}","starred_url":"https://api.github.com/users/jeschkies/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeschkies/subscriptions","organizations_url":"https://api.github.com/users/jeschkies/orgs","repos_url":"https://api.github.com/users/jeschkies/repos","events_url":"https://api.github.com/users/jeschkies/events{/privacy}","received_events_url":"https://api.github.com/users/jeschkies/received_events","type":"User","site_admin":false},"body":"Summary:\r\nWith #6661 we attach the run spec of an instance to the instance itself.\r\nWe should use that run spec for matching offers and launching instances\r\ninstead of using the latest.\r\n\r\nDepends on #6661\r\n\r\nJIRA issues: MARATHON-8325","created_at":"2018-11-16T08:52:51Z","updated_at":"2018-11-19T16:58:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1a32d5ccfcb8a525cc888fae25b4f4eada033a2f","assignee":null,"assignees":[],"requested_reviewers":[{"login":"alenkacz","id":264608,"node_id":"MDQ6VXNlcjI2NDYwOA==","avatar_url":"https://avatars1.githubusercontent.com/u/264608?v=4","gravatar_id":"","url":"https://api.github.com/users/alenkacz","html_url":"https://github.com/alenkacz","followers_url":"https://api.github.com/users/alenkacz/followers","following_url":"https://api.github.com/users/alenkacz/following{/other_user}","gists_url":"https://api.github.com/users/alenkacz/gists{/gist_id}","starred_url":"https://api.github.com/users/alenkacz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alenkacz/subscriptions","organizations_url":"https://api.github.com/users/alenkacz/orgs","repos_url":"https://api.github.com/users/alenkacz/repos","events_url":"https://api.github.com/users/alenkacz/events{/privacy}","received_events_url":"https://api.github.com/users/alenkacz/received_events","type":"User","site_admin":false},{"login":"meichstedt","id":414354,"node_id":"MDQ6VXNlcjQxNDM1NA==","avatar_url":"https://avatars2.githubusercontent.com/u/414354?v=4","gravatar_id":"","url":"https://api.github.com/users/meichstedt","html_url":"https://github.com/meichstedt","followers_url":"https://api.github.com/users/meichstedt/followers","following_url":"https://api.github.com/users/meichstedt/following{/other_user}","gists_url":"https://api.github.com/users/meichstedt/gists{/gist_id}","starred_url":"https://api.github.com/users/meichstedt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/meichstedt/subscriptions","organizations_url":"https://api.github.com/users/meichstedt/orgs","repos_url":"https://api.github.com/users/meichstedt/repos","events_url":"https://api.github.com/users/meichstedt/events{/privacy}","received_events_url":"https://api.github.com/users/meichstedt/received_events","type":"User","site_admin":false},{"login":"zen-dog","id":7558454,"node_id":"MDQ6VXNlcjc1NTg0NTQ=","avatar_url":"https://avatars2.githubusercontent.com/u/7558454?v=4","gravatar_id":"","url":"https://api.github.com/users/zen-dog","html_url":"https://github.com/zen-dog","followers_url":"https://api.github.com/users/zen-dog/followers","following_url":"https://api.github.com/users/zen-dog/following{/other_user}","gists_url":"https://api.github.com/users/zen-dog/gists{/gist_id}","starred_url":"https://api.github.com/users/zen-dog/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zen-dog/subscriptions","organizations_url":"https://api.github.com/users/zen-dog/orgs","repos_url":"https://api.github.com/users/zen-dog/repos","events_url":"https://api.github.com/users/zen-dog/events{/privacy}","received_events_url":"https://api.github.com/users/zen-dog/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/mesosphere/marathon/pulls/6664/commits","review_comments_url":"https://api.github.com/repos/mesosphere/marathon/pulls/6664/comments","review_comment_url":"https://api.github.com/repos/mesosphere/marathon/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mesosphere/marathon/issues/6664/comments","statuses_url":"https://api.github.com/repos/mesosphere/marathon/statuses/42748ec17716b197acd1bc7b569d25791970375f","head":{"label":"mesosphere:karsten/use-instance-runspec","ref":"karsten/use-instance-runspec","sha":"42748ec17716b197acd1bc7b569d25791970375f","user":{"login":"mesosphere","id":3458585,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0NTg1ODU=","avatar_url":"https://avatars0.githubusercontent.com/u/3458585?v=4","gravatar_id":"","url":"https://api.github.com/users/mesosphere","html_url":"https://github.com/mesosphere","followers_url":"https://api.github.com/users/mesosphere/followers","following_url":"https://api.github.com/users/mesosphere/following{/other_user}","gists_url":"https://api.github.com/users/mesosphere/gists{/gist_id}","starred_url":"https://api.github.com/users/mesosphere/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mesosphere/subscriptions","organizations_url":"https://api.github.com/users/mesosphere/orgs","repos_url":"https://api.github.com/users/mesosphere/repos","events_url":"https://api.github.com/users/mesosphere/events{/privacy}","received_events_url":"https://api.github.com/users/mesosphere/received_events","type":"Organization","site_admin":false},"repo":{"id":10941409,"node_id":"MDEwOlJlcG9zaXRvcnkxMDk0MTQwOQ==","name":"marathon","full_name":"mesosphere/marathon","private":false,"owner":{"login":"mesosphere","id":3458585,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0NTg1ODU=","avatar_url":"https://avatars0.githubusercontent.com/u/3458585?v=4","gravatar_id":"","url":"https://api.github.com/users/mesosphere","html_url":"https://github.com/mesosphere","followers_url":"https://api.github.com/users/mesosphere/followers","following_url":"https://api.github.com/users/mesosphere/following{/other_user}","gists_url":"https://api.github.com/users/mesosphere/gists{/gist_id}","starred_url":"https://api.github.com/users/mesosphere/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mesosphere/subscriptions","organizations_url":"https://api.github.com/users/mesosphere/orgs","repos_url":"https://api.github.com/users/mesosphere/repos","events_url":"https://api.github.com/users/mesosphere/events{/privacy}","received_events_url":"https://api.github.com/users/mesosphere/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/mesosphere/marathon","description":"Deploy and manage containers (including Docker) on top of Apache Mesos at scale.","fork":false,"url":"https://api.github.com/repos/mesosphere/marathon","forks_url":"https://api.github.com/repos/mesosphere/marathon/forks","keys_url":"https://api.github.com/repos/mesosphere/marathon/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mesosphere/marathon/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mesosphere/marathon/teams","hooks_url":"https://api.github.com/repos/mesosphere/marathon/hooks","issue_events_url":"https://api.github.com/repos/mesosphere/marathon/issues/events{/number}","events_url":"https://api.github.com/repos/mesosphere/marathon/events","assignees_url":"https://api.github.com/repos/mesosphere/marathon/assignees{/user}","branches_url":"https://api.github.com/repos/mesosphere/marathon/branches{/branch}","tags_url":"https://api.github.com/repos/mesosphere/marathon/tags","blobs_url":"https://api.github.com/repos/mesosphere/marathon/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mesosphere/marathon/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mesosphere/marathon/git/refs{/sha}","trees_url":"https://api.github.com/repos/mesosphere/marathon/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mesosphere/marathon/statuses/{sha}","languages_url":"https://api.github.com/repos/mesosphere/marathon/languages","stargazers_url":"https://api.github.com/repos/mesosphere/marathon/stargazers","contributors_url":"https://api.github.com/repos/mesosphere/marathon/contributors","subscribers_url":"https://api.github.com/repos/mesosphere/marathon/subscribers","subscription_url":"https://api.github.com/repos/mesosphere/marathon/subscription","commits_url":"https://api.github.com/repos/mesosphere/marathon/commits{/sha}","git_commits_url":"https://api.github.com/repos/mesosphere/marathon/git/commits{/sha}","comments_url":"https://api.github.com/repos/mesosphere/marathon/comments{/number}","issue_comment_url":"https://api.github.com/repos/mesosphere/marathon/issues/comments{/number}","contents_url":"https://api.github.com/repos/mesosphere/marathon/contents/{+path}","compare_url":"https://api.github.com/repos/mesosphere/marathon/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mesosphere/marathon/merges","archive_url":"https://api.github.com/repos/mesosphere/marathon/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mesosphere/marathon/downloads","issues_url":"https://api.github.com/repos/mesosphere/marathon/issues{/number}","pulls_url":"https://api.github.com/repos/mesosphere/marathon/pulls{/number}","milestones_url":"https://api.github.com/repos/mesosphere/marathon/milestones{/number}","notifications_url":"https://api.github.com/repos/mesosphere/marathon/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mesosphere/marathon/labels{/name}","releases_url":"https://api.github.com/repos/mesosphere/marathon/releases{/id}","deployments_url":"https://api.github.com/repos/mesosphere/marathon/deployments","created_at":"2013-06-25T14:56:34Z","updated_at":"2018-11-19T16:04:48Z","pushed_at":"2018-11-19T16:05:37Z","git_url":"git://github.com/mesosphere/marathon.git","ssh_url":"git@github.com:mesosphere/marathon.git","clone_url":"https://github.com/mesosphere/marathon.git","svn_url":"https://github.com/mesosphere/marathon","homepage":"https://mesosphere.github.io/marathon/","size":38905,"stargazers_count":3754,"watchers_count":3754,"language":"Scala","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":866,"mirror_url":null,"archived":false,"open_issues_count":15,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":866,"open_issues":15,"watchers":3754,"default_branch":"master"}},"base":{"label":"mesosphere:karsten/attach-runspec","ref":"karsten/attach-runspec","sha":"9eda3e843dc4e127ebdf1645facc67cd91f5a643","user":{"login":"mesosphere","id":3458585,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0NTg1ODU=","avatar_url":"https://avatars0.githubusercontent.com/u/3458585?v=4","gravatar_id":"","url":"https://api.github.com/users/mesosphere","html_url":"https://github.com/mesosphere","followers_url":"https://api.github.com/users/mesosphere/followers","following_url":"https://api.github.com/users/mesosphere/following{/other_user}","gists_url":"https://api.github.com/users/mesosphere/gists{/gist_id}","starred_url":"https://api.github.com/users/mesosphere/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mesosphere/subscriptions","organizations_url":"https://api.github.com/users/mesosphere/orgs","repos_url":"https://api.github.com/users/mesosphere/repos","events_url":"https://api.github.com/users/mesosphere/events{/privacy}","received_events_url":"https://api.github.com/users/mesosphere/received_events","type":"Organization","site_admin":false},"repo":{"id":10941409,"node_id":"MDEwOlJlcG9zaXRvcnkxMDk0MTQwOQ==","name":"marathon","full_name":"mesosphere/marathon","private":false,"owner":{"login":"mesosphere","id":3458585,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0NTg1ODU=","avatar_url":"https://avatars0.githubusercontent.com/u/3458585?v=4","gravatar_id":"","url":"https://api.github.com/users/mesosphere","html_url":"https://github.com/mesosphere","followers_url":"https://api.github.com/users/mesosphere/followers","following_url":"https://api.github.com/users/mesosphere/following{/other_user}","gists_url":"https://api.github.com/users/mesosphere/gists{/gist_id}","starred_url":"https://api.github.com/users/mesosphere/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mesosphere/subscriptions","organizations_url":"https://api.github.com/users/mesosphere/orgs","repos_url":"https://api.github.com/users/mesosphere/repos","events_url":"https://api.github.com/users/mesosphere/events{/privacy}","received_events_url":"https://api.github.com/users/mesosphere/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/mesosphere/marathon","description":"Deploy and manage containers (including Docker) on top of Apache Mesos at scale.","fork":false,"url":"https://api.github.com/repos/mesosphere/marathon","forks_url":"https://api.github.com/repos/mesosphere/marathon/forks","keys_url":"https://api.github.com/repos/mesosphere/marathon/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mesosphere/marathon/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mesosphere/marathon/teams","hooks_url":"https://api.github.com/repos/mesosphere/marathon/hooks","issue_events_url":"https://api.github.com/repos/mesosphere/marathon/issues/events{/number}","events_url":"https://api.github.com/repos/mesosphere/marathon/events","assignees_url":"https://api.github.com/repos/mesosphere/marathon/assignees{/user}","branches_url":"https://api.github.com/repos/mesosphere/marathon/branches{/branch}","tags_url":"https://api.github.com/repos/mesosphere/marathon/tags","blobs_url":"https://api.github.com/repos/mesosphere/marathon/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mesosphere/marathon/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mesosphere/marathon/git/refs{/sha}","trees_url":"https://api.github.com/repos/mesosphere/marathon/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mesosphere/marathon/statuses/{sha}","languages_url":"https://api.github.com/repos/mesosphere/marathon/languages","stargazers_url":"https://api.github.com/repos/mesosphere/marathon/stargazers","contributors_url":"https://api.github.com/repos/mesosphere/marathon/contributors","subscribers_url":"https://api.github.com/repos/mesosphere/marathon/subscribers","subscription_url":"https://api.github.com/repos/mesosphere/marathon/subscription","commits_url":"https://api.github.com/repos/mesosphere/marathon/commits{/sha}","git_commits_url":"https://api.github.com/repos/mesosphere/marathon/git/commits{/sha}","comments_url":"https://api.github.com/repos/mesosphere/marathon/comments{/number}","issue_comment_url":"https://api.github.com/repos/mesosphere/marathon/issues/comments{/number}","contents_url":"https://api.github.com/repos/mesosphere/marathon/contents/{+path}","compare_url":"https://api.github.com/repos/mesosphere/marathon/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mesosphere/marathon/merges","archive_url":"https://api.github.com/repos/mesosphere/marathon/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mesosphere/marathon/downloads","issues_url":"https://api.github.com/repos/mesosphere/marathon/issues{/number}","pulls_url":"https://api.github.com/repos/mesosphere/marathon/pulls{/number}","milestones_url":"https://api.github.com/repos/mesosphere/marathon/milestones{/number}","notifications_url":"https://api.github.com/repos/mesosphere/marathon/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mesosphere/marathon/labels{/name}","releases_url":"https://api.github.com/repos/mesosphere/marathon/releases{/id}","deployments_url":"https://api.github.com/repos/mesosphere/marathon/deployments","created_at":"2013-06-25T14:56:34Z","updated_at":"2018-11-19T16:04:48Z","pushed_at":"2018-11-19T16:05:37Z","git_url":"git://github.com/mesosphere/marathon.git","ssh_url":"git@github.com:mesosphere/marathon.git","clone_url":"https://github.com/mesosphere/marathon.git","svn_url":"https://github.com/mesosphere/marathon","homepage":"https://mesosphere.github.io/marathon/","size":38905,"stargazers_count":3754,"watchers_count":3754,"language":"Scala","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":866,"mirror_url":null,"archived":false,"open_issues_count":15,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":866,"open_issues":15,"watchers":3754,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mesosphere/marathon/pulls/6664"},"html":{"href":"https://github.com/mesosphere/marathon/pull/6664"},"issue":{"href":"https://api.github.com/repos/mesosphere/marathon/issues/6664"},"comments":{"href":"https://api.github.com/repos/mesosphere/marathon/issues/6664/comments"},"review_comments":{"href":"https://api.github.com/repos/mesosphere/marathon/pulls/6664/comments"},"review_comment":{"href":"https://api.github.com/repos/mesosphere/marathon/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mesosphere/marathon/pulls/6664/commits"},"statuses":{"href":"https://api.github.com/repos/mesosphere/marathon/statuses/42748ec17716b197acd1bc7b569d25791970375f"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"jeschkies"}}