{"action":"created","comment":{"url":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/comments/182891989","pull_request_review_id":113786363,"id":182891989,"diff_hunk":"@@ -362,9 +360,37 @@ def handle_ext_handlers(self, etag=None):\n \n         self.ext_handlers.extHandlers.sort(key=operator.methodcaller('sort_key'))\n         for ext_handler in self.ext_handlers.extHandlers:\n-            # TODO: handle install in sequence, enable in parallel\n+            self.wait_on_ext_handler_dependencies(ext_handler)\n             self.handle_ext_handler(ext_handler, etag)\n-    \n+\n+    def wait_on_ext_handler_dependencies(self, ext_handler):\n+        dependencies = sum([e.dependencies for e in ext_handler.properties.extensions], [])\n+        for dependency in dependencies:\n+            handler_i = ExtHandlerInstance(dependency.handler, self.protocol)\n+            timeout = 90 if dependency.timeout is None else dependency.timeout\n+            timeout_delta = datetime.timedelta(seconds=(timeout * 60))\n+            begin = datetime.datetime.utcnow()\n+            for ext in dependency.exts:\n+                status = None\n+                while timeout_delta > (datetime.datetime.utcnow() - begin):\n+                    status = handler_i.collect_ext_status(ext)\n+                    if status is None:\n+                        break\n+                    all_success = status.status == \"success\"\n+                    for substatus in status.substatusList:\n+                        if substatus.status != \"success\":\n+                            all_success = False\n+                            break\n+                    if all_success:","path":"azurelinuxagent/ga/exthandlers.py","position":38,"original_position":38,"commit_id":"6130afd357931ce8e02a578d7702c0f0582e1fc7","original_commit_id":"6130afd357931ce8e02a578d7702c0f0582e1fc7","user":{"login":"uiri","id":364765,"avatar_url":"https://avatars3.githubusercontent.com/u/364765?v=4","gravatar_id":"","url":"https://api.github.com/users/uiri","html_url":"https://github.com/uiri","followers_url":"https://api.github.com/users/uiri/followers","following_url":"https://api.github.com/users/uiri/following{/other_user}","gists_url":"https://api.github.com/users/uiri/gists{/gist_id}","starred_url":"https://api.github.com/users/uiri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uiri/subscriptions","organizations_url":"https://api.github.com/users/uiri/orgs","repos_url":"https://api.github.com/users/uiri/repos","events_url":"https://api.github.com/users/uiri/events{/privacy}","received_events_url":"https://api.github.com/users/uiri/received_events","type":"User","site_admin":false},"body":"if `all_success` is `False`, then some `status` value in the status blob was reported as a value other than `success` to the platform which would take appropriate action.\r\n","created_at":"2018-04-19T21:37:03Z","updated_at":"2018-04-19T21:37:03Z","html_url":"https://github.com/Azure/WALinuxAgent/pull/1077#discussion_r182891989","pull_request_url":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/1077","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/comments/182891989"},"html":{"href":"https://github.com/Azure/WALinuxAgent/pull/1077#discussion_r182891989"},"pull_request":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/1077"}},"in_reply_to_id":182853349},"pull_request":{"url":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/1077","id":177509032,"html_url":"https://github.com/Azure/WALinuxAgent/pull/1077","diff_url":"https://github.com/Azure/WALinuxAgent/pull/1077.diff","patch_url":"https://github.com/Azure/WALinuxAgent/pull/1077.patch","issue_url":"https://api.github.com/repos/Azure/WALinuxAgent/issues/1077","number":1077,"state":"open","locked":false,"title":"Additional processing for dependencies","user":{"login":"uiri","id":364765,"avatar_url":"https://avatars3.githubusercontent.com/u/364765?v=4","gravatar_id":"","url":"https://api.github.com/users/uiri","html_url":"https://github.com/uiri","followers_url":"https://api.github.com/users/uiri/followers","following_url":"https://api.github.com/users/uiri/following{/other_user}","gists_url":"https://api.github.com/users/uiri/gists{/gist_id}","starred_url":"https://api.github.com/users/uiri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uiri/subscriptions","organizations_url":"https://api.github.com/users/uiri/orgs","repos_url":"https://api.github.com/users/uiri/repos","events_url":"https://api.github.com/users/uiri/events{/privacy}","received_events_url":"https://api.github.com/users/uiri/received_events","type":"User","site_admin":false},"body":"This builds on #1052\r\n","created_at":"2018-03-26T17:03:38Z","updated_at":"2018-04-19T21:37:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"550752a19caad98be9ae4c9265e4e4330982efad","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/1077/commits","review_comments_url":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/1077/comments","review_comment_url":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Azure/WALinuxAgent/issues/1077/comments","statuses_url":"https://api.github.com/repos/Azure/WALinuxAgent/statuses/6130afd357931ce8e02a578d7702c0f0582e1fc7","head":{"label":"uiri:new-feature","ref":"new-feature","sha":"6130afd357931ce8e02a578d7702c0f0582e1fc7","user":{"login":"uiri","id":364765,"avatar_url":"https://avatars3.githubusercontent.com/u/364765?v=4","gravatar_id":"","url":"https://api.github.com/users/uiri","html_url":"https://github.com/uiri","followers_url":"https://api.github.com/users/uiri/followers","following_url":"https://api.github.com/users/uiri/following{/other_user}","gists_url":"https://api.github.com/users/uiri/gists{/gist_id}","starred_url":"https://api.github.com/users/uiri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uiri/subscriptions","organizations_url":"https://api.github.com/users/uiri/orgs","repos_url":"https://api.github.com/users/uiri/repos","events_url":"https://api.github.com/users/uiri/events{/privacy}","received_events_url":"https://api.github.com/users/uiri/received_events","type":"User","site_admin":false},"repo":{"id":102528879,"name":"WALinuxAgent","full_name":"uiri/WALinuxAgent","owner":{"login":"uiri","id":364765,"avatar_url":"https://avatars3.githubusercontent.com/u/364765?v=4","gravatar_id":"","url":"https://api.github.com/users/uiri","html_url":"https://github.com/uiri","followers_url":"https://api.github.com/users/uiri/followers","following_url":"https://api.github.com/users/uiri/following{/other_user}","gists_url":"https://api.github.com/users/uiri/gists{/gist_id}","starred_url":"https://api.github.com/users/uiri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uiri/subscriptions","organizations_url":"https://api.github.com/users/uiri/orgs","repos_url":"https://api.github.com/users/uiri/repos","events_url":"https://api.github.com/users/uiri/events{/privacy}","received_events_url":"https://api.github.com/users/uiri/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/uiri/WALinuxAgent","description":"Microsoft Azure Linux Guest Agent ","fork":true,"url":"https://api.github.com/repos/uiri/WALinuxAgent","forks_url":"https://api.github.com/repos/uiri/WALinuxAgent/forks","keys_url":"https://api.github.com/repos/uiri/WALinuxAgent/keys{/key_id}","collaborators_url":"https://api.github.com/repos/uiri/WALinuxAgent/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/uiri/WALinuxAgent/teams","hooks_url":"https://api.github.com/repos/uiri/WALinuxAgent/hooks","issue_events_url":"https://api.github.com/repos/uiri/WALinuxAgent/issues/events{/number}","events_url":"https://api.github.com/repos/uiri/WALinuxAgent/events","assignees_url":"https://api.github.com/repos/uiri/WALinuxAgent/assignees{/user}","branches_url":"https://api.github.com/repos/uiri/WALinuxAgent/branches{/branch}","tags_url":"https://api.github.com/repos/uiri/WALinuxAgent/tags","blobs_url":"https://api.github.com/repos/uiri/WALinuxAgent/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/uiri/WALinuxAgent/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/uiri/WALinuxAgent/git/refs{/sha}","trees_url":"https://api.github.com/repos/uiri/WALinuxAgent/git/trees{/sha}","statuses_url":"https://api.github.com/repos/uiri/WALinuxAgent/statuses/{sha}","languages_url":"https://api.github.com/repos/uiri/WALinuxAgent/languages","stargazers_url":"https://api.github.com/repos/uiri/WALinuxAgent/stargazers","contributors_url":"https://api.github.com/repos/uiri/WALinuxAgent/contributors","subscribers_url":"https://api.github.com/repos/uiri/WALinuxAgent/subscribers","subscription_url":"https://api.github.com/repos/uiri/WALinuxAgent/subscription","commits_url":"https://api.github.com/repos/uiri/WALinuxAgent/commits{/sha}","git_commits_url":"https://api.github.com/repos/uiri/WALinuxAgent/git/commits{/sha}","comments_url":"https://api.github.com/repos/uiri/WALinuxAgent/comments{/number}","issue_comment_url":"https://api.github.com/repos/uiri/WALinuxAgent/issues/comments{/number}","contents_url":"https://api.github.com/repos/uiri/WALinuxAgent/contents/{+path}","compare_url":"https://api.github.com/repos/uiri/WALinuxAgent/compare/{base}...{head}","merges_url":"https://api.github.com/repos/uiri/WALinuxAgent/merges","archive_url":"https://api.github.com/repos/uiri/WALinuxAgent/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/uiri/WALinuxAgent/downloads","issues_url":"https://api.github.com/repos/uiri/WALinuxAgent/issues{/number}","pulls_url":"https://api.github.com/repos/uiri/WALinuxAgent/pulls{/number}","milestones_url":"https://api.github.com/repos/uiri/WALinuxAgent/milestones{/number}","notifications_url":"https://api.github.com/repos/uiri/WALinuxAgent/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/uiri/WALinuxAgent/labels{/name}","releases_url":"https://api.github.com/repos/uiri/WALinuxAgent/releases{/id}","deployments_url":"https://api.github.com/repos/uiri/WALinuxAgent/deployments","created_at":"2017-09-05T20:53:31Z","updated_at":"2017-09-05T20:53:33Z","pushed_at":"2018-04-12T18:44:54Z","git_url":"git://github.com/uiri/WALinuxAgent.git","ssh_url":"git@github.com:uiri/WALinuxAgent.git","clone_url":"https://github.com/uiri/WALinuxAgent.git","svn_url":"https://github.com/uiri/WALinuxAgent","homepage":"http://azure.microsoft.com/","size":7198,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"Azure:master","ref":"master","sha":"7c31eaa3b53bbe5b7fc0987de8cf5210b0735112","user":{"login":"Azure","id":6844498,"avatar_url":"https://avatars0.githubusercontent.com/u/6844498?v=4","gravatar_id":"","url":"https://api.github.com/users/Azure","html_url":"https://github.com/Azure","followers_url":"https://api.github.com/users/Azure/followers","following_url":"https://api.github.com/users/Azure/following{/other_user}","gists_url":"https://api.github.com/users/Azure/gists{/gist_id}","starred_url":"https://api.github.com/users/Azure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Azure/subscriptions","organizations_url":"https://api.github.com/users/Azure/orgs","repos_url":"https://api.github.com/users/Azure/repos","events_url":"https://api.github.com/users/Azure/events{/privacy}","received_events_url":"https://api.github.com/users/Azure/received_events","type":"Organization","site_admin":false},"repo":{"id":4576639,"name":"WALinuxAgent","full_name":"Azure/WALinuxAgent","owner":{"login":"Azure","id":6844498,"avatar_url":"https://avatars0.githubusercontent.com/u/6844498?v=4","gravatar_id":"","url":"https://api.github.com/users/Azure","html_url":"https://github.com/Azure","followers_url":"https://api.github.com/users/Azure/followers","following_url":"https://api.github.com/users/Azure/following{/other_user}","gists_url":"https://api.github.com/users/Azure/gists{/gist_id}","starred_url":"https://api.github.com/users/Azure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Azure/subscriptions","organizations_url":"https://api.github.com/users/Azure/orgs","repos_url":"https://api.github.com/users/Azure/repos","events_url":"https://api.github.com/users/Azure/events{/privacy}","received_events_url":"https://api.github.com/users/Azure/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Azure/WALinuxAgent","description":"Microsoft Azure Linux Guest Agent ","fork":false,"url":"https://api.github.com/repos/Azure/WALinuxAgent","forks_url":"https://api.github.com/repos/Azure/WALinuxAgent/forks","keys_url":"https://api.github.com/repos/Azure/WALinuxAgent/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Azure/WALinuxAgent/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Azure/WALinuxAgent/teams","hooks_url":"https://api.github.com/repos/Azure/WALinuxAgent/hooks","issue_events_url":"https://api.github.com/repos/Azure/WALinuxAgent/issues/events{/number}","events_url":"https://api.github.com/repos/Azure/WALinuxAgent/events","assignees_url":"https://api.github.com/repos/Azure/WALinuxAgent/assignees{/user}","branches_url":"https://api.github.com/repos/Azure/WALinuxAgent/branches{/branch}","tags_url":"https://api.github.com/repos/Azure/WALinuxAgent/tags","blobs_url":"https://api.github.com/repos/Azure/WALinuxAgent/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Azure/WALinuxAgent/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Azure/WALinuxAgent/git/refs{/sha}","trees_url":"https://api.github.com/repos/Azure/WALinuxAgent/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Azure/WALinuxAgent/statuses/{sha}","languages_url":"https://api.github.com/repos/Azure/WALinuxAgent/languages","stargazers_url":"https://api.github.com/repos/Azure/WALinuxAgent/stargazers","contributors_url":"https://api.github.com/repos/Azure/WALinuxAgent/contributors","subscribers_url":"https://api.github.com/repos/Azure/WALinuxAgent/subscribers","subscription_url":"https://api.github.com/repos/Azure/WALinuxAgent/subscription","commits_url":"https://api.github.com/repos/Azure/WALinuxAgent/commits{/sha}","git_commits_url":"https://api.github.com/repos/Azure/WALinuxAgent/git/commits{/sha}","comments_url":"https://api.github.com/repos/Azure/WALinuxAgent/comments{/number}","issue_comment_url":"https://api.github.com/repos/Azure/WALinuxAgent/issues/comments{/number}","contents_url":"https://api.github.com/repos/Azure/WALinuxAgent/contents/{+path}","compare_url":"https://api.github.com/repos/Azure/WALinuxAgent/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Azure/WALinuxAgent/merges","archive_url":"https://api.github.com/repos/Azure/WALinuxAgent/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Azure/WALinuxAgent/downloads","issues_url":"https://api.github.com/repos/Azure/WALinuxAgent/issues{/number}","pulls_url":"https://api.github.com/repos/Azure/WALinuxAgent/pulls{/number}","milestones_url":"https://api.github.com/repos/Azure/WALinuxAgent/milestones{/number}","notifications_url":"https://api.github.com/repos/Azure/WALinuxAgent/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Azure/WALinuxAgent/labels{/name}","releases_url":"https://api.github.com/repos/Azure/WALinuxAgent/releases{/id}","deployments_url":"https://api.github.com/repos/Azure/WALinuxAgent/deployments","created_at":"2012-06-06T18:55:55Z","updated_at":"2018-04-19T20:29:21Z","pushed_at":"2018-04-19T20:29:21Z","git_url":"git://github.com/Azure/WALinuxAgent.git","ssh_url":"git@github.com:Azure/WALinuxAgent.git","clone_url":"https://github.com/Azure/WALinuxAgent.git","svn_url":"https://github.com/Azure/WALinuxAgent","homepage":"http://azure.microsoft.com/","size":7881,"stargazers_count":222,"watchers_count":222,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":190,"mirror_url":null,"archived":false,"open_issues_count":35,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":190,"open_issues":35,"watchers":222,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/1077"},"html":{"href":"https://github.com/Azure/WALinuxAgent/pull/1077"},"issue":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/issues/1077"},"comments":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/issues/1077/comments"},"review_comments":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/1077/comments"},"review_comment":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/1077/commits"},"statuses":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/statuses/6130afd357931ce8e02a578d7702c0f0582e1fc7"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"uiri"}}