{"action":"created","comment":{"url":"https://api.github.com/repos/StackStorm/st2/pulls/comments/65484871","id":65484871,"diff_hunk":"@@ -105,6 +105,22 @@ class ActionExecutionAPI(BaseAPI):\n                 \"type\": \"array\",\n                 \"items\": {\"type\": \"string\"},\n                 \"uniqueItems\": True\n+            },\n+            \"log\": {","path":"st2common/st2common/models/api/execution.py","position":5,"original_position":5,"commit_id":"21fb998af876b801598e741aed7073dcef75121b","original_commit_id":"21fb998af876b801598e741aed7073dcef75121b","user":{"login":"enykeev","id":1357357,"avatar_url":"https://avatars.githubusercontent.com/u/1357357?v=3","gravatar_id":"","url":"https://api.github.com/users/enykeev","html_url":"https://github.com/enykeev","followers_url":"https://api.github.com/users/enykeev/followers","following_url":"https://api.github.com/users/enykeev/following{/other_user}","gists_url":"https://api.github.com/users/enykeev/gists{/gist_id}","starred_url":"https://api.github.com/users/enykeev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/enykeev/subscriptions","organizations_url":"https://api.github.com/users/enykeev/orgs","repos_url":"https://api.github.com/users/enykeev/repos","events_url":"https://api.github.com/users/enykeev/events{/privacy}","received_events_url":"https://api.github.com/users/enykeev/received_events","type":"User","site_admin":false},"body":"At that point, I don't see what else could we add here. At the same time, I see no problem with expanding the log objects providing we keep in mind performance implications of transferring the execution down the wire.","created_at":"2016-06-02T05:10:36Z","updated_at":"2016-06-02T05:10:36Z","html_url":"https://github.com/StackStorm/st2/pull/2718#discussion_r65484871","pull_request_url":"https://api.github.com/repos/StackStorm/st2/pulls/2718","_links":{"self":{"href":"https://api.github.com/repos/StackStorm/st2/pulls/comments/65484871"},"html":{"href":"https://github.com/StackStorm/st2/pull/2718#discussion_r65484871"},"pull_request":{"href":"https://api.github.com/repos/StackStorm/st2/pulls/2718"}}},"pull_request":{"url":"https://api.github.com/repos/StackStorm/st2/pulls/2718","id":71678118,"html_url":"https://github.com/StackStorm/st2/pull/2718","diff_url":"https://github.com/StackStorm/st2/pull/2718.diff","patch_url":"https://github.com/StackStorm/st2/pull/2718.patch","issue_url":"https://api.github.com/repos/StackStorm/st2/issues/2718","number":2718,"state":"open","locked":false,"title":"Execution log","user":{"login":"enykeev","id":1357357,"avatar_url":"https://avatars.githubusercontent.com/u/1357357?v=3","gravatar_id":"","url":"https://api.github.com/users/enykeev","html_url":"https://github.com/enykeev","followers_url":"https://api.github.com/users/enykeev/followers","following_url":"https://api.github.com/users/enykeev/following{/other_user}","gists_url":"https://api.github.com/users/enykeev/gists{/gist_id}","starred_url":"https://api.github.com/users/enykeev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/enykeev/subscriptions","organizations_url":"https://api.github.com/users/enykeev/orgs","repos_url":"https://api.github.com/users/enykeev/repos","events_url":"https://api.github.com/users/enykeev/events{/privacy}","received_events_url":"https://api.github.com/users/enykeev/received_events","type":"User","site_admin":false},"body":"While discussing #2706 we figured there is a few new timestamps we would like to add to execution record to improve user's understanding of the flow and make it easier to debug indeterminate set of problems (primarily performance related I would guess).\r\n\r\nProblem is, there is quite a few execution states already and there's going to be even more if we are to focus on the problem seriously. Storing timestamps related to this state changes as a properties of the execution itself will quickly bloat the execution object beyond reason.\r\n\r\nAn obvious solution to the problem is to create another data structure that would hold this expanding set of data in a linear fashion.\r\n\r\nThe idea is, for every execution state mutation, we creating a log entry with the state execution transitions to and the timestamp when it happened. For some time, this this structure may exist in parallel to our current `state`, `start_timestamp` and `end_timestamp` to ensure backward compatibility and while providing additional context for new executions.\r\n\r\nFor now, user would have to access api directly or use st2client debug mode to get to this data, but as soon as we happy with it, we can easily add a command for it to cli and a view in web.","created_at":"2016-05-27T08:35:12Z","updated_at":"2016-06-02T05:10:36Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ceed9db5b804ad4857a279dcf0cb200009c47911","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/StackStorm/st2/pulls/2718/commits","review_comments_url":"https://api.github.com/repos/StackStorm/st2/pulls/2718/comments","review_comment_url":"https://api.github.com/repos/StackStorm/st2/pulls/comments{/number}","comments_url":"https://api.github.com/repos/StackStorm/st2/issues/2718/comments","statuses_url":"https://api.github.com/repos/StackStorm/st2/statuses/21fb998af876b801598e741aed7073dcef75121b","head":{"label":"StackStorm:feature/execution_log","ref":"feature/execution_log","sha":"21fb998af876b801598e741aed7073dcef75121b","user":{"login":"StackStorm","id":4969009,"avatar_url":"https://avatars.githubusercontent.com/u/4969009?v=3","gravatar_id":"","url":"https://api.github.com/users/StackStorm","html_url":"https://github.com/StackStorm","followers_url":"https://api.github.com/users/StackStorm/followers","following_url":"https://api.github.com/users/StackStorm/following{/other_user}","gists_url":"https://api.github.com/users/StackStorm/gists{/gist_id}","starred_url":"https://api.github.com/users/StackStorm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StackStorm/subscriptions","organizations_url":"https://api.github.com/users/StackStorm/orgs","repos_url":"https://api.github.com/users/StackStorm/repos","events_url":"https://api.github.com/users/StackStorm/events{/privacy}","received_events_url":"https://api.github.com/users/StackStorm/received_events","type":"Organization","site_admin":false},"repo":{"id":19051806,"name":"st2","full_name":"StackStorm/st2","owner":{"login":"StackStorm","id":4969009,"avatar_url":"https://avatars.githubusercontent.com/u/4969009?v=3","gravatar_id":"","url":"https://api.github.com/users/StackStorm","html_url":"https://github.com/StackStorm","followers_url":"https://api.github.com/users/StackStorm/followers","following_url":"https://api.github.com/users/StackStorm/following{/other_user}","gists_url":"https://api.github.com/users/StackStorm/gists{/gist_id}","starred_url":"https://api.github.com/users/StackStorm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StackStorm/subscriptions","organizations_url":"https://api.github.com/users/StackStorm/orgs","repos_url":"https://api.github.com/users/StackStorm/repos","events_url":"https://api.github.com/users/StackStorm/events{/privacy}","received_events_url":"https://api.github.com/users/StackStorm/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/StackStorm/st2","description":"StackStorm (aka \"IFTTT for Ops\") is event-driven automation commonly used for auto-remediation, security responses, facilitated troubleshooting, complex deployments, and more. Includes rules engine, workflow,1800+ integrations (see /st2contrib), native ChatOps and so forth.  Installer available at http://docs.stackstorm.com/install/index.html. Ping us on slack - https://stackstorm-community.slack.com/. ","fork":false,"url":"https://api.github.com/repos/StackStorm/st2","forks_url":"https://api.github.com/repos/StackStorm/st2/forks","keys_url":"https://api.github.com/repos/StackStorm/st2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/StackStorm/st2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/StackStorm/st2/teams","hooks_url":"https://api.github.com/repos/StackStorm/st2/hooks","issue_events_url":"https://api.github.com/repos/StackStorm/st2/issues/events{/number}","events_url":"https://api.github.com/repos/StackStorm/st2/events","assignees_url":"https://api.github.com/repos/StackStorm/st2/assignees{/user}","branches_url":"https://api.github.com/repos/StackStorm/st2/branches{/branch}","tags_url":"https://api.github.com/repos/StackStorm/st2/tags","blobs_url":"https://api.github.com/repos/StackStorm/st2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/StackStorm/st2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/StackStorm/st2/git/refs{/sha}","trees_url":"https://api.github.com/repos/StackStorm/st2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/StackStorm/st2/statuses/{sha}","languages_url":"https://api.github.com/repos/StackStorm/st2/languages","stargazers_url":"https://api.github.com/repos/StackStorm/st2/stargazers","contributors_url":"https://api.github.com/repos/StackStorm/st2/contributors","subscribers_url":"https://api.github.com/repos/StackStorm/st2/subscribers","subscription_url":"https://api.github.com/repos/StackStorm/st2/subscription","commits_url":"https://api.github.com/repos/StackStorm/st2/commits{/sha}","git_commits_url":"https://api.github.com/repos/StackStorm/st2/git/commits{/sha}","comments_url":"https://api.github.com/repos/StackStorm/st2/comments{/number}","issue_comment_url":"https://api.github.com/repos/StackStorm/st2/issues/comments{/number}","contents_url":"https://api.github.com/repos/StackStorm/st2/contents/{+path}","compare_url":"https://api.github.com/repos/StackStorm/st2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/StackStorm/st2/merges","archive_url":"https://api.github.com/repos/StackStorm/st2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/StackStorm/st2/downloads","issues_url":"https://api.github.com/repos/StackStorm/st2/issues{/number}","pulls_url":"https://api.github.com/repos/StackStorm/st2/pulls{/number}","milestones_url":"https://api.github.com/repos/StackStorm/st2/milestones{/number}","notifications_url":"https://api.github.com/repos/StackStorm/st2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/StackStorm/st2/labels{/name}","releases_url":"https://api.github.com/repos/StackStorm/st2/releases{/id}","deployments_url":"https://api.github.com/repos/StackStorm/st2/deployments","created_at":"2014-04-23T00:51:34Z","updated_at":"2016-05-31T15:20:18Z","pushed_at":"2016-06-01T09:53:04Z","git_url":"git://github.com/StackStorm/st2.git","ssh_url":"git@github.com:StackStorm/st2.git","clone_url":"https://github.com/StackStorm/st2.git","svn_url":"https://github.com/StackStorm/st2","homepage":"http://www.stackstorm.com/","size":17160,"stargazers_count":1388,"watchers_count":1388,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":148,"mirror_url":null,"open_issues_count":131,"forks":148,"open_issues":131,"watchers":1388,"default_branch":"master"}},"base":{"label":"StackStorm:master","ref":"master","sha":"e7cf3dae3eb3829cfc30353f12f345fc5d327087","user":{"login":"StackStorm","id":4969009,"avatar_url":"https://avatars.githubusercontent.com/u/4969009?v=3","gravatar_id":"","url":"https://api.github.com/users/StackStorm","html_url":"https://github.com/StackStorm","followers_url":"https://api.github.com/users/StackStorm/followers","following_url":"https://api.github.com/users/StackStorm/following{/other_user}","gists_url":"https://api.github.com/users/StackStorm/gists{/gist_id}","starred_url":"https://api.github.com/users/StackStorm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StackStorm/subscriptions","organizations_url":"https://api.github.com/users/StackStorm/orgs","repos_url":"https://api.github.com/users/StackStorm/repos","events_url":"https://api.github.com/users/StackStorm/events{/privacy}","received_events_url":"https://api.github.com/users/StackStorm/received_events","type":"Organization","site_admin":false},"repo":{"id":19051806,"name":"st2","full_name":"StackStorm/st2","owner":{"login":"StackStorm","id":4969009,"avatar_url":"https://avatars.githubusercontent.com/u/4969009?v=3","gravatar_id":"","url":"https://api.github.com/users/StackStorm","html_url":"https://github.com/StackStorm","followers_url":"https://api.github.com/users/StackStorm/followers","following_url":"https://api.github.com/users/StackStorm/following{/other_user}","gists_url":"https://api.github.com/users/StackStorm/gists{/gist_id}","starred_url":"https://api.github.com/users/StackStorm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StackStorm/subscriptions","organizations_url":"https://api.github.com/users/StackStorm/orgs","repos_url":"https://api.github.com/users/StackStorm/repos","events_url":"https://api.github.com/users/StackStorm/events{/privacy}","received_events_url":"https://api.github.com/users/StackStorm/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/StackStorm/st2","description":"StackStorm (aka \"IFTTT for Ops\") is event-driven automation commonly used for auto-remediation, security responses, facilitated troubleshooting, complex deployments, and more. Includes rules engine, workflow,1800+ integrations (see /st2contrib), native ChatOps and so forth.  Installer available at http://docs.stackstorm.com/install/index.html. Ping us on slack - https://stackstorm-community.slack.com/. ","fork":false,"url":"https://api.github.com/repos/StackStorm/st2","forks_url":"https://api.github.com/repos/StackStorm/st2/forks","keys_url":"https://api.github.com/repos/StackStorm/st2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/StackStorm/st2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/StackStorm/st2/teams","hooks_url":"https://api.github.com/repos/StackStorm/st2/hooks","issue_events_url":"https://api.github.com/repos/StackStorm/st2/issues/events{/number}","events_url":"https://api.github.com/repos/StackStorm/st2/events","assignees_url":"https://api.github.com/repos/StackStorm/st2/assignees{/user}","branches_url":"https://api.github.com/repos/StackStorm/st2/branches{/branch}","tags_url":"https://api.github.com/repos/StackStorm/st2/tags","blobs_url":"https://api.github.com/repos/StackStorm/st2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/StackStorm/st2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/StackStorm/st2/git/refs{/sha}","trees_url":"https://api.github.com/repos/StackStorm/st2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/StackStorm/st2/statuses/{sha}","languages_url":"https://api.github.com/repos/StackStorm/st2/languages","stargazers_url":"https://api.github.com/repos/StackStorm/st2/stargazers","contributors_url":"https://api.github.com/repos/StackStorm/st2/contributors","subscribers_url":"https://api.github.com/repos/StackStorm/st2/subscribers","subscription_url":"https://api.github.com/repos/StackStorm/st2/subscription","commits_url":"https://api.github.com/repos/StackStorm/st2/commits{/sha}","git_commits_url":"https://api.github.com/repos/StackStorm/st2/git/commits{/sha}","comments_url":"https://api.github.com/repos/StackStorm/st2/comments{/number}","issue_comment_url":"https://api.github.com/repos/StackStorm/st2/issues/comments{/number}","contents_url":"https://api.github.com/repos/StackStorm/st2/contents/{+path}","compare_url":"https://api.github.com/repos/StackStorm/st2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/StackStorm/st2/merges","archive_url":"https://api.github.com/repos/StackStorm/st2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/StackStorm/st2/downloads","issues_url":"https://api.github.com/repos/StackStorm/st2/issues{/number}","pulls_url":"https://api.github.com/repos/StackStorm/st2/pulls{/number}","milestones_url":"https://api.github.com/repos/StackStorm/st2/milestones{/number}","notifications_url":"https://api.github.com/repos/StackStorm/st2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/StackStorm/st2/labels{/name}","releases_url":"https://api.github.com/repos/StackStorm/st2/releases{/id}","deployments_url":"https://api.github.com/repos/StackStorm/st2/deployments","created_at":"2014-04-23T00:51:34Z","updated_at":"2016-05-31T15:20:18Z","pushed_at":"2016-06-01T09:53:04Z","git_url":"git://github.com/StackStorm/st2.git","ssh_url":"git@github.com:StackStorm/st2.git","clone_url":"https://github.com/StackStorm/st2.git","svn_url":"https://github.com/StackStorm/st2","homepage":"http://www.stackstorm.com/","size":17160,"stargazers_count":1388,"watchers_count":1388,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":148,"mirror_url":null,"open_issues_count":131,"forks":148,"open_issues":131,"watchers":1388,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/StackStorm/st2/pulls/2718"},"html":{"href":"https://github.com/StackStorm/st2/pull/2718"},"issue":{"href":"https://api.github.com/repos/StackStorm/st2/issues/2718"},"comments":{"href":"https://api.github.com/repos/StackStorm/st2/issues/2718/comments"},"review_comments":{"href":"https://api.github.com/repos/StackStorm/st2/pulls/2718/comments"},"review_comment":{"href":"https://api.github.com/repos/StackStorm/st2/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/StackStorm/st2/pulls/2718/commits"},"statuses":{"href":"https://api.github.com/repos/StackStorm/st2/statuses/21fb998af876b801598e741aed7073dcef75121b"}}}}
{"actor":{"display_login":"enykeev"}}