{"action":"created","comment":{"url":"https://api.github.com/repos/kontena/kontena/pulls/comments/140245967","pull_request_review_id":64289733,"id":140245967,"diff_hunk":"@@ -0,0 +1,23 @@\n+\n+require_relative 'common'\n+require_relative '../../services/logging'\n+\n+module GridCertificates\n+  class RemoveCertificate < Mutations::Command\n+    include Common\n+    include Logging\n+\n+    required do\n+      model :certificate, class: Certificate\n+    end\n+\n+    def validate\n+      services_using = certificate.grid.grid_services.where(:'certificates.subject' => certificate.subject).map { |s| s.to_path}\n+      add_error(self.certificate.subject, :certificate_in_use, \"Certificate still in use in services: #{services_using.join(',')}\") if services_using.size > 0","path":"server/app/mutations/grid_certificates/remove_certificate.rb","position":16,"original_position":16,"commit_id":"caaf14c465634b3e4c19ae529c18b012d5c15adf","original_commit_id":"caaf14c465634b3e4c19ae529c18b012d5c15adf","user":{"login":"jnummelin","id":3205505,"avatar_url":"https://avatars0.githubusercontent.com/u/3205505?v=4","gravatar_id":"","url":"https://api.github.com/users/jnummelin","html_url":"https://github.com/jnummelin","followers_url":"https://api.github.com/users/jnummelin/followers","following_url":"https://api.github.com/users/jnummelin/following{/other_user}","gists_url":"https://api.github.com/users/jnummelin/gists{/gist_id}","starred_url":"https://api.github.com/users/jnummelin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnummelin/subscriptions","organizations_url":"https://api.github.com/users/jnummelin/orgs","repos_url":"https://api.github.com/users/jnummelin/repos","events_url":"https://api.github.com/users/jnummelin/events{/privacy}","received_events_url":"https://api.github.com/users/jnummelin/received_events","type":"User","site_admin":false},"body":"oh, totally forgot the dotted functionality there.","created_at":"2017-09-21T13:48:42Z","updated_at":"2017-09-21T13:48:43Z","html_url":"https://github.com/kontena/kontena/pull/2850#discussion_r140245967","pull_request_url":"https://api.github.com/repos/kontena/kontena/pulls/2850","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/kontena/kontena/pulls/comments/140245967"},"html":{"href":"https://github.com/kontena/kontena/pull/2850#discussion_r140245967"},"pull_request":{"href":"https://api.github.com/repos/kontena/kontena/pulls/2850"}},"in_reply_to_id":140245697},"pull_request":{"url":"https://api.github.com/repos/kontena/kontena/pulls/2850","id":142301163,"html_url":"https://github.com/kontena/kontena/pull/2850","diff_url":"https://github.com/kontena/kontena/pull/2850.diff","patch_url":"https://github.com/kontena/kontena/pull/2850.patch","issue_url":"https://api.github.com/repos/kontena/kontena/issues/2850","number":2850,"state":"open","locked":false,"title":"Add cert delete api and cli command","user":{"login":"jnummelin","id":3205505,"avatar_url":"https://avatars0.githubusercontent.com/u/3205505?v=4","gravatar_id":"","url":"https://api.github.com/users/jnummelin","html_url":"https://github.com/jnummelin","followers_url":"https://api.github.com/users/jnummelin/followers","following_url":"https://api.github.com/users/jnummelin/following{/other_user}","gists_url":"https://api.github.com/users/jnummelin/gists{/gist_id}","starred_url":"https://api.github.com/users/jnummelin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnummelin/subscriptions","organizations_url":"https://api.github.com/users/jnummelin/orgs","repos_url":"https://api.github.com/users/jnummelin/repos","events_url":"https://api.github.com/users/jnummelin/events{/privacy}","received_events_url":"https://api.github.com/users/jnummelin/received_events","type":"User","site_admin":false},"body":"fixes #2849 ","created_at":"2017-09-21T09:52:15Z","updated_at":"2017-09-21T13:48:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fb3fb4f5c90bbb59dd97aed235cd130607c06ae2","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":{"url":"https://api.github.com/repos/kontena/kontena/milestones/72","html_url":"https://github.com/kontena/kontena/milestone/72","labels_url":"https://api.github.com/repos/kontena/kontena/milestones/72/labels","id":2488399,"number":72,"title":"1.4.0","description":"","creator":{"login":"jakolehm","id":1446224,"avatar_url":"https://avatars0.githubusercontent.com/u/1446224?v=4","gravatar_id":"","url":"https://api.github.com/users/jakolehm","html_url":"https://github.com/jakolehm","followers_url":"https://api.github.com/users/jakolehm/followers","following_url":"https://api.github.com/users/jakolehm/following{/other_user}","gists_url":"https://api.github.com/users/jakolehm/gists{/gist_id}","starred_url":"https://api.github.com/users/jakolehm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jakolehm/subscriptions","organizations_url":"https://api.github.com/users/jakolehm/orgs","repos_url":"https://api.github.com/users/jakolehm/repos","events_url":"https://api.github.com/users/jakolehm/events{/privacy}","received_events_url":"https://api.github.com/users/jakolehm/received_events","type":"User","site_admin":false},"open_issues":23,"closed_issues":140,"state":"open","created_at":"2017-04-28T14:51:26Z","updated_at":"2017-09-21T13:23:17Z","due_on":"2017-09-15T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/kontena/kontena/pulls/2850/commits","review_comments_url":"https://api.github.com/repos/kontena/kontena/pulls/2850/comments","review_comment_url":"https://api.github.com/repos/kontena/kontena/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kontena/kontena/issues/2850/comments","statuses_url":"https://api.github.com/repos/kontena/kontena/statuses/caaf14c465634b3e4c19ae529c18b012d5c15adf","head":{"label":"kontena:feature/delete-certs","ref":"feature/delete-certs","sha":"caaf14c465634b3e4c19ae529c18b012d5c15adf","user":{"login":"kontena","id":10419574,"avatar_url":"https://avatars2.githubusercontent.com/u/10419574?v=4","gravatar_id":"","url":"https://api.github.com/users/kontena","html_url":"https://github.com/kontena","followers_url":"https://api.github.com/users/kontena/followers","following_url":"https://api.github.com/users/kontena/following{/other_user}","gists_url":"https://api.github.com/users/kontena/gists{/gist_id}","starred_url":"https://api.github.com/users/kontena/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kontena/subscriptions","organizations_url":"https://api.github.com/users/kontena/orgs","repos_url":"https://api.github.com/users/kontena/repos","events_url":"https://api.github.com/users/kontena/events{/privacy}","received_events_url":"https://api.github.com/users/kontena/received_events","type":"Organization","site_admin":false},"repo":{"id":32689932,"name":"kontena","full_name":"kontena/kontena","owner":{"login":"kontena","id":10419574,"avatar_url":"https://avatars2.githubusercontent.com/u/10419574?v=4","gravatar_id":"","url":"https://api.github.com/users/kontena","html_url":"https://github.com/kontena","followers_url":"https://api.github.com/users/kontena/followers","following_url":"https://api.github.com/users/kontena/following{/other_user}","gists_url":"https://api.github.com/users/kontena/gists{/gist_id}","starred_url":"https://api.github.com/users/kontena/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kontena/subscriptions","organizations_url":"https://api.github.com/users/kontena/orgs","repos_url":"https://api.github.com/users/kontena/repos","events_url":"https://api.github.com/users/kontena/events{/privacy}","received_events_url":"https://api.github.com/users/kontena/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kontena/kontena","description":"The developer friendly container and micro services platform. Works on any cloud, easy to setup, simple to use.","fork":false,"url":"https://api.github.com/repos/kontena/kontena","forks_url":"https://api.github.com/repos/kontena/kontena/forks","keys_url":"https://api.github.com/repos/kontena/kontena/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kontena/kontena/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kontena/kontena/teams","hooks_url":"https://api.github.com/repos/kontena/kontena/hooks","issue_events_url":"https://api.github.com/repos/kontena/kontena/issues/events{/number}","events_url":"https://api.github.com/repos/kontena/kontena/events","assignees_url":"https://api.github.com/repos/kontena/kontena/assignees{/user}","branches_url":"https://api.github.com/repos/kontena/kontena/branches{/branch}","tags_url":"https://api.github.com/repos/kontena/kontena/tags","blobs_url":"https://api.github.com/repos/kontena/kontena/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kontena/kontena/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kontena/kontena/git/refs{/sha}","trees_url":"https://api.github.com/repos/kontena/kontena/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kontena/kontena/statuses/{sha}","languages_url":"https://api.github.com/repos/kontena/kontena/languages","stargazers_url":"https://api.github.com/repos/kontena/kontena/stargazers","contributors_url":"https://api.github.com/repos/kontena/kontena/contributors","subscribers_url":"https://api.github.com/repos/kontena/kontena/subscribers","subscription_url":"https://api.github.com/repos/kontena/kontena/subscription","commits_url":"https://api.github.com/repos/kontena/kontena/commits{/sha}","git_commits_url":"https://api.github.com/repos/kontena/kontena/git/commits{/sha}","comments_url":"https://api.github.com/repos/kontena/kontena/comments{/number}","issue_comment_url":"https://api.github.com/repos/kontena/kontena/issues/comments{/number}","contents_url":"https://api.github.com/repos/kontena/kontena/contents/{+path}","compare_url":"https://api.github.com/repos/kontena/kontena/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kontena/kontena/merges","archive_url":"https://api.github.com/repos/kontena/kontena/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kontena/kontena/downloads","issues_url":"https://api.github.com/repos/kontena/kontena/issues{/number}","pulls_url":"https://api.github.com/repos/kontena/kontena/pulls{/number}","milestones_url":"https://api.github.com/repos/kontena/kontena/milestones{/number}","notifications_url":"https://api.github.com/repos/kontena/kontena/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kontena/kontena/labels{/name}","releases_url":"https://api.github.com/repos/kontena/kontena/releases{/id}","deployments_url":"https://api.github.com/repos/kontena/kontena/deployments","created_at":"2015-03-22T18:52:32Z","updated_at":"2017-09-21T12:00:27Z","pushed_at":"2017-09-21T13:36:16Z","git_url":"git://github.com/kontena/kontena.git","ssh_url":"git@github.com:kontena/kontena.git","clone_url":"https://github.com/kontena/kontena.git","svn_url":"https://github.com/kontena/kontena","homepage":"http://www.kontena.io","size":8025,"stargazers_count":1205,"watchers_count":1205,"language":"Ruby","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":108,"mirror_url":null,"open_issues_count":410,"forks":108,"open_issues":410,"watchers":1205,"default_branch":"master"}},"base":{"label":"kontena:master","ref":"master","sha":"6b134c6f96d44ff05fe0056f188d8979f20a62f6","user":{"login":"kontena","id":10419574,"avatar_url":"https://avatars2.githubusercontent.com/u/10419574?v=4","gravatar_id":"","url":"https://api.github.com/users/kontena","html_url":"https://github.com/kontena","followers_url":"https://api.github.com/users/kontena/followers","following_url":"https://api.github.com/users/kontena/following{/other_user}","gists_url":"https://api.github.com/users/kontena/gists{/gist_id}","starred_url":"https://api.github.com/users/kontena/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kontena/subscriptions","organizations_url":"https://api.github.com/users/kontena/orgs","repos_url":"https://api.github.com/users/kontena/repos","events_url":"https://api.github.com/users/kontena/events{/privacy}","received_events_url":"https://api.github.com/users/kontena/received_events","type":"Organization","site_admin":false},"repo":{"id":32689932,"name":"kontena","full_name":"kontena/kontena","owner":{"login":"kontena","id":10419574,"avatar_url":"https://avatars2.githubusercontent.com/u/10419574?v=4","gravatar_id":"","url":"https://api.github.com/users/kontena","html_url":"https://github.com/kontena","followers_url":"https://api.github.com/users/kontena/followers","following_url":"https://api.github.com/users/kontena/following{/other_user}","gists_url":"https://api.github.com/users/kontena/gists{/gist_id}","starred_url":"https://api.github.com/users/kontena/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kontena/subscriptions","organizations_url":"https://api.github.com/users/kontena/orgs","repos_url":"https://api.github.com/users/kontena/repos","events_url":"https://api.github.com/users/kontena/events{/privacy}","received_events_url":"https://api.github.com/users/kontena/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kontena/kontena","description":"The developer friendly container and micro services platform. Works on any cloud, easy to setup, simple to use.","fork":false,"url":"https://api.github.com/repos/kontena/kontena","forks_url":"https://api.github.com/repos/kontena/kontena/forks","keys_url":"https://api.github.com/repos/kontena/kontena/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kontena/kontena/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kontena/kontena/teams","hooks_url":"https://api.github.com/repos/kontena/kontena/hooks","issue_events_url":"https://api.github.com/repos/kontena/kontena/issues/events{/number}","events_url":"https://api.github.com/repos/kontena/kontena/events","assignees_url":"https://api.github.com/repos/kontena/kontena/assignees{/user}","branches_url":"https://api.github.com/repos/kontena/kontena/branches{/branch}","tags_url":"https://api.github.com/repos/kontena/kontena/tags","blobs_url":"https://api.github.com/repos/kontena/kontena/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kontena/kontena/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kontena/kontena/git/refs{/sha}","trees_url":"https://api.github.com/repos/kontena/kontena/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kontena/kontena/statuses/{sha}","languages_url":"https://api.github.com/repos/kontena/kontena/languages","stargazers_url":"https://api.github.com/repos/kontena/kontena/stargazers","contributors_url":"https://api.github.com/repos/kontena/kontena/contributors","subscribers_url":"https://api.github.com/repos/kontena/kontena/subscribers","subscription_url":"https://api.github.com/repos/kontena/kontena/subscription","commits_url":"https://api.github.com/repos/kontena/kontena/commits{/sha}","git_commits_url":"https://api.github.com/repos/kontena/kontena/git/commits{/sha}","comments_url":"https://api.github.com/repos/kontena/kontena/comments{/number}","issue_comment_url":"https://api.github.com/repos/kontena/kontena/issues/comments{/number}","contents_url":"https://api.github.com/repos/kontena/kontena/contents/{+path}","compare_url":"https://api.github.com/repos/kontena/kontena/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kontena/kontena/merges","archive_url":"https://api.github.com/repos/kontena/kontena/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kontena/kontena/downloads","issues_url":"https://api.github.com/repos/kontena/kontena/issues{/number}","pulls_url":"https://api.github.com/repos/kontena/kontena/pulls{/number}","milestones_url":"https://api.github.com/repos/kontena/kontena/milestones{/number}","notifications_url":"https://api.github.com/repos/kontena/kontena/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kontena/kontena/labels{/name}","releases_url":"https://api.github.com/repos/kontena/kontena/releases{/id}","deployments_url":"https://api.github.com/repos/kontena/kontena/deployments","created_at":"2015-03-22T18:52:32Z","updated_at":"2017-09-21T12:00:27Z","pushed_at":"2017-09-21T13:36:16Z","git_url":"git://github.com/kontena/kontena.git","ssh_url":"git@github.com:kontena/kontena.git","clone_url":"https://github.com/kontena/kontena.git","svn_url":"https://github.com/kontena/kontena","homepage":"http://www.kontena.io","size":8025,"stargazers_count":1205,"watchers_count":1205,"language":"Ruby","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":108,"mirror_url":null,"open_issues_count":410,"forks":108,"open_issues":410,"watchers":1205,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kontena/kontena/pulls/2850"},"html":{"href":"https://github.com/kontena/kontena/pull/2850"},"issue":{"href":"https://api.github.com/repos/kontena/kontena/issues/2850"},"comments":{"href":"https://api.github.com/repos/kontena/kontena/issues/2850/comments"},"review_comments":{"href":"https://api.github.com/repos/kontena/kontena/pulls/2850/comments"},"review_comment":{"href":"https://api.github.com/repos/kontena/kontena/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kontena/kontena/pulls/2850/commits"},"statuses":{"href":"https://api.github.com/repos/kontena/kontena/statuses/caaf14c465634b3e4c19ae529c18b012d5c15adf"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"jnummelin"}}