{"action":"created","comment":{"url":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/comments/217937534","pull_request_review_id":155768310,"id":217937534,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxNzkzNzUzNA==","diff_hunk":"@@ -666,6 +700,126 @@ def test_ext_handler_no_reporting_status(self, *args):\n         self._assert_handler_status(protocol.report_vm_status, \"Ready\", 1, \"1.0.0\")\n         self._assert_ext_status(protocol.report_ext_status, \"error\", 0)\n \n+    def test_wait_for_handler_successful_completion_empty_exts(self, *args):\n+        test_data = WireProtocolData(DATA_FILE)\n+        exthandlers_handler, protocol = self._create_mock(test_data, *args)\n+\n+        handler = ExtHandler(name=\"handler\")\n+\n+        ExtHandlerInstance.get_ext_handling_status = MagicMock(return_value=None)\n+        self.assertTrue(exthandlers_handler.wait_for_handler_successful_completion(handler, datetime.datetime.utcnow()))\n+\n+    def _test_wait_for_handler_successful_completion(self, exthandlers_handler):\n+        handler_name = \"Handler\"\n+        exthandler = ExtHandler(name=handler_name)\n+        extension = Extension(name=handler_name)\n+        exthandler.properties.extensions.append(extension)\n+\n+        # Override the timout value to minimize the test duration\n+        wait_until = datetime.datetime.utcnow() + datetime.timedelta(seconds=5)\n+        return exthandlers_handler.wait_for_handler_successful_completion(exthandler, wait_until)\n+\n+    def test_wait_for_handler_successful_completion_none(self, *args):\n+        test_data = WireProtocolData(DATA_FILE)\n+        exthandlers_handler, protocol = self._create_mock(test_data, *args)\n+\n+        ExtHandlerInstance.get_ext_handling_status = MagicMock(return_value=None)\n+        self.assertFalse(self._test_wait_for_handler_successful_completion(exthandlers_handler))\n+\n+    def test_wait_for_handler_successful_completion_success_status(self, *args):\n+        test_data = WireProtocolData(DATA_FILE)\n+        exthandlers_handler, protocol = self._create_mock(test_data, *args)\n+\n+        status = \"success\"\n+\n+        ExtHandlerInstance.get_ext_handling_status = MagicMock(return_value=status)\n+        self.assertTrue(self._test_wait_for_handler_successful_completion(exthandlers_handler))\n+\n+    def test_wait_for_handler_successful_completion_error_status(self, *args):\n+        test_data = WireProtocolData(DATA_FILE)\n+        exthandlers_handler, protocol = self._create_mock(test_data, *args)\n+\n+        status = \"error\"\n+\n+        ExtHandlerInstance.get_ext_handling_status = MagicMock(return_value=status)\n+        self.assertFalse(self._test_wait_for_handler_successful_completion(exthandlers_handler))\n+\n+    def test_wait_for_handler_successful_completion_timeout(self, *args):","path":"tests/ga/test_extension.py","position":147,"original_position":147,"commit_id":"fcffb8d34222e75fb76db319472f376e2dfa9182","original_commit_id":"fcffb8d34222e75fb76db319472f376e2dfa9182","user":{"login":"sirajudeens","id":6467044,"node_id":"MDQ6VXNlcjY0NjcwNDQ=","avatar_url":"https://avatars3.githubusercontent.com/u/6467044?v=4","gravatar_id":"","url":"https://api.github.com/users/sirajudeens","html_url":"https://github.com/sirajudeens","followers_url":"https://api.github.com/users/sirajudeens/followers","following_url":"https://api.github.com/users/sirajudeens/following{/other_user}","gists_url":"https://api.github.com/users/sirajudeens/gists{/gist_id}","starred_url":"https://api.github.com/users/sirajudeens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sirajudeens/subscriptions","organizations_url":"https://api.github.com/users/sirajudeens/orgs","repos_url":"https://api.github.com/users/sirajudeens/repos","events_url":"https://api.github.com/users/sirajudeens/events{/privacy}","received_events_url":"https://api.github.com/users/sirajudeens/received_events","type":"User","site_admin":false},"body":"\"warning\" is a non-terminal state which will eventually timeout the wait function and return false. This is what is tested here. We have set the timeout value to be 5 seconds to minimize the duration.\r\nDo you mean to rename this function? If it needs to be rewritten, can you please explain what is missing here?","created_at":"2018-09-17T01:48:38Z","updated_at":"2018-09-17T01:48:38Z","html_url":"https://github.com/Azure/WALinuxAgent/pull/1298#discussion_r217937534","pull_request_url":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/1298","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/comments/217937534"},"html":{"href":"https://github.com/Azure/WALinuxAgent/pull/1298#discussion_r217937534"},"pull_request":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/1298"}},"in_reply_to_id":217932355},"pull_request":{"url":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/1298","id":208073726,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA4MDczNzI2","html_url":"https://github.com/Azure/WALinuxAgent/pull/1298","diff_url":"https://github.com/Azure/WALinuxAgent/pull/1298.diff","patch_url":"https://github.com/Azure/WALinuxAgent/pull/1298.patch","issue_url":"https://api.github.com/repos/Azure/WALinuxAgent/issues/1298","number":1298,"state":"open","locked":false,"title":"Implementing extension sequencing in azure linux agent","user":{"login":"sirajudeens","id":6467044,"node_id":"MDQ6VXNlcjY0NjcwNDQ=","avatar_url":"https://avatars3.githubusercontent.com/u/6467044?v=4","gravatar_id":"","url":"https://api.github.com/users/sirajudeens","html_url":"https://github.com/sirajudeens","followers_url":"https://api.github.com/users/sirajudeens/followers","following_url":"https://api.github.com/users/sirajudeens/following{/other_user}","gists_url":"https://api.github.com/users/sirajudeens/gists{/gist_id}","starred_url":"https://api.github.com/users/sirajudeens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sirajudeens/subscriptions","organizations_url":"https://api.github.com/users/sirajudeens/orgs","repos_url":"https://api.github.com/users/sirajudeens/repos","events_url":"https://api.github.com/users/sirajudeens/events{/privacy}","received_events_url":"https://api.github.com/users/sirajudeens/received_events","type":"User","site_admin":false},"body":"<!-- DO NOT DELETE THIS TEMPLATE -->\r\n\r\n## Adding support for extension sequencing in the azure linux agent\r\n\r\nIssue # <!-- if any -->\r\nVMSS extensions can be installed and enabled in a sequence by specifying dependsOn property values in the ARM template. CRP processes the dependency data, builds dependency graph and generates dependency level for each extension. The dependency level information is passed on to the VM agent. The VM agent needs to parse the dependency data and install the extensions based on the dependency level.\r\n\r\n---\r\n\r\n### PR information\r\n- [x] The title of the PR is clear and informative.\r\n- [x] There are a small number of commits, each of which has an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md).\r\n- [x] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.\r\n- [ ] If applicable, the PR references the bug/issue that it fixes in the description.\r\n- [x] New Unit tests were added for the changes made and Travis.CI is passing.\r\n\r\n### Quality of Code and Contribution Guidelines\r\n- [ ] I have read the [contribution guidelines](https://github.com/Azure/WALinuxAgent/blob/master/.github/CONTRIBUTING.md).","created_at":"2018-08-13T19:08:22Z","updated_at":"2018-09-17T01:48:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9ecf0dda5af7e063fe23183f73a5e05d536cab54","assignee":null,"assignees":[],"requested_reviewers":[{"login":"vrdmr","id":1047040,"node_id":"MDQ6VXNlcjEwNDcwNDA=","avatar_url":"https://avatars0.githubusercontent.com/u/1047040?v=4","gravatar_id":"","url":"https://api.github.com/users/vrdmr","html_url":"https://github.com/vrdmr","followers_url":"https://api.github.com/users/vrdmr/followers","following_url":"https://api.github.com/users/vrdmr/following{/other_user}","gists_url":"https://api.github.com/users/vrdmr/gists{/gist_id}","starred_url":"https://api.github.com/users/vrdmr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vrdmr/subscriptions","organizations_url":"https://api.github.com/users/vrdmr/orgs","repos_url":"https://api.github.com/users/vrdmr/repos","events_url":"https://api.github.com/users/vrdmr/events{/privacy}","received_events_url":"https://api.github.com/users/vrdmr/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/1298/commits","review_comments_url":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/1298/comments","review_comment_url":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Azure/WALinuxAgent/issues/1298/comments","statuses_url":"https://api.github.com/repos/Azure/WALinuxAgent/statuses/fcffb8d34222e75fb76db319472f376e2dfa9182","head":{"label":"sirajudeens:extension-sequencing","ref":"extension-sequencing","sha":"fcffb8d34222e75fb76db319472f376e2dfa9182","user":{"login":"sirajudeens","id":6467044,"node_id":"MDQ6VXNlcjY0NjcwNDQ=","avatar_url":"https://avatars3.githubusercontent.com/u/6467044?v=4","gravatar_id":"","url":"https://api.github.com/users/sirajudeens","html_url":"https://github.com/sirajudeens","followers_url":"https://api.github.com/users/sirajudeens/followers","following_url":"https://api.github.com/users/sirajudeens/following{/other_user}","gists_url":"https://api.github.com/users/sirajudeens/gists{/gist_id}","starred_url":"https://api.github.com/users/sirajudeens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sirajudeens/subscriptions","organizations_url":"https://api.github.com/users/sirajudeens/orgs","repos_url":"https://api.github.com/users/sirajudeens/repos","events_url":"https://api.github.com/users/sirajudeens/events{/privacy}","received_events_url":"https://api.github.com/users/sirajudeens/received_events","type":"User","site_admin":false},"repo":{"id":142061398,"node_id":"MDEwOlJlcG9zaXRvcnkxNDIwNjEzOTg=","name":"WALinuxAgent","full_name":"sirajudeens/WALinuxAgent","private":false,"owner":{"login":"sirajudeens","id":6467044,"node_id":"MDQ6VXNlcjY0NjcwNDQ=","avatar_url":"https://avatars3.githubusercontent.com/u/6467044?v=4","gravatar_id":"","url":"https://api.github.com/users/sirajudeens","html_url":"https://github.com/sirajudeens","followers_url":"https://api.github.com/users/sirajudeens/followers","following_url":"https://api.github.com/users/sirajudeens/following{/other_user}","gists_url":"https://api.github.com/users/sirajudeens/gists{/gist_id}","starred_url":"https://api.github.com/users/sirajudeens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sirajudeens/subscriptions","organizations_url":"https://api.github.com/users/sirajudeens/orgs","repos_url":"https://api.github.com/users/sirajudeens/repos","events_url":"https://api.github.com/users/sirajudeens/events{/privacy}","received_events_url":"https://api.github.com/users/sirajudeens/received_events","type":"User","site_admin":false},"html_url":"https://github.com/sirajudeens/WALinuxAgent","description":"Microsoft Azure Linux Guest Agent ","fork":true,"url":"https://api.github.com/repos/sirajudeens/WALinuxAgent","forks_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/forks","keys_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/teams","hooks_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/hooks","issue_events_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/issues/events{/number}","events_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/events","assignees_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/assignees{/user}","branches_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/branches{/branch}","tags_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/tags","blobs_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/git/refs{/sha}","trees_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/statuses/{sha}","languages_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/languages","stargazers_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/stargazers","contributors_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/contributors","subscribers_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/subscribers","subscription_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/subscription","commits_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/commits{/sha}","git_commits_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/git/commits{/sha}","comments_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/comments{/number}","issue_comment_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/issues/comments{/number}","contents_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/contents/{+path}","compare_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/merges","archive_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/downloads","issues_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/issues{/number}","pulls_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/pulls{/number}","milestones_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/milestones{/number}","notifications_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/labels{/name}","releases_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/releases{/id}","deployments_url":"https://api.github.com/repos/sirajudeens/WALinuxAgent/deployments","created_at":"2018-07-23T19:44:01Z","updated_at":"2018-07-23T19:44:03Z","pushed_at":"2018-09-16T17:59:14Z","git_url":"git://github.com/sirajudeens/WALinuxAgent.git","ssh_url":"git@github.com:sirajudeens/WALinuxAgent.git","clone_url":"https://github.com/sirajudeens/WALinuxAgent.git","svn_url":"https://github.com/sirajudeens/WALinuxAgent","homepage":"http://azure.microsoft.com/","size":10625,"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","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"Azure:master","ref":"master","sha":"02d9e9ee5205b43c13e663f8cbb9e53b27fc0973","user":{"login":"Azure","id":6844498,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY4NDQ0OTg=","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,"node_id":"MDEwOlJlcG9zaXRvcnk0NTc2NjM5","name":"WALinuxAgent","full_name":"Azure/WALinuxAgent","private":false,"owner":{"login":"Azure","id":6844498,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY4NDQ0OTg=","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},"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-09-14T22:51:39Z","pushed_at":"2018-09-16T17:59:15Z","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":10992,"stargazers_count":251,"watchers_count":251,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":218,"mirror_url":null,"archived":false,"open_issues_count":17,"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":218,"open_issues":17,"watchers":251,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/1298"},"html":{"href":"https://github.com/Azure/WALinuxAgent/pull/1298"},"issue":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/issues/1298"},"comments":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/issues/1298/comments"},"review_comments":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/1298/comments"},"review_comment":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/pulls/1298/commits"},"statuses":{"href":"https://api.github.com/repos/Azure/WALinuxAgent/statuses/fcffb8d34222e75fb76db319472f376e2dfa9182"}},"author_association":"NONE"}}
{"actor":{"display_login":"sirajudeens"}}