)]}'
{"magnum/conductor/k8s_api.py":[{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"9aa4ede72b76f41edeb121843c926554c9fec3e3","unresolved":false,"context_lines":[{"line_number":30,"context_line":"               help\u003d_(\u0027Default port of the k8s master endpoint.\u0027)),"},{"line_number":31,"context_line":"]"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"cfg.CONF.register_opts(kubernetes_opts, group\u003d\u0027kubernetes\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class K8sAPI(ApivbetaApi.ApivbetaApi):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_27ea5c10","line":33,"updated":"2015-06-30 10:57:05.000000000","message":"I think this also need change related opts.py and conf example file","commit_id":"d6e143ee5e575a7394b2c08aa35cb486a2775563"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"529349885f549c1e063a400ad6da884d7285ad8c","unresolved":false,"context_lines":[{"line_number":30,"context_line":"               help\u003d_(\u0027Default port of the k8s master endpoint.\u0027)),"},{"line_number":31,"context_line":"]"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"cfg.CONF.register_opts(kubernetes_opts, group\u003d\u0027kubernetes\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class K8sAPI(ApivbetaApi.ApivbetaApi):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_e303e80b","line":33,"in_reply_to":"ba3cc151_1f2afc2c","updated":"2015-06-30 21:11:24.000000000","message":"The opts.py was updated. The conf example don\u0027t need to be updated since there is no config change in this patch.","commit_id":"d6e143ee5e575a7394b2c08aa35cb486a2775563"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"e839533627e202de3fa78f457c182d485ed2e340","unresolved":false,"context_lines":[{"line_number":30,"context_line":"               help\u003d_(\u0027Default port of the k8s master endpoint.\u0027)),"},{"line_number":31,"context_line":"]"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"cfg.CONF.register_opts(kubernetes_opts, group\u003d\u0027kubernetes\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class K8sAPI(ApivbetaApi.ApivbetaApi):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_1f2afc2c","line":33,"in_reply_to":"ba3cc151_27ea5c10","updated":"2015-06-30 12:29:21.000000000","message":"Will do. Thanks.","commit_id":"d6e143ee5e575a7394b2c08aa35cb486a2775563"}],"magnum/conductor/utils.py":[{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"7132a6843e3ab41dd3096c830fe1b56dbce161ae","unresolved":false,"context_lines":[{"line_number":34,"context_line":"               help\u003d_(\u0027Default port of the k8s master endpoint.\u0027)),"},{"line_number":35,"context_line":"]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"cfg.CONF.register_opts(kubernetes_opts, group\u003d\u0027kubernetes\u0027)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def retrieve_bay(context, obj):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_866a8e19","line":37,"updated":"2015-06-29 01:48:04.000000000","message":"Did not find it is meaningful to register twice.\n\nIf you need that, just cfg.CONF.import_opt I think that would work.","commit_id":"321815f83e743fa3afa0040a3c4586ad40cd787a"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"166e151848ffccf2eb73920aee53326142ad4684","unresolved":false,"context_lines":[{"line_number":34,"context_line":"               help\u003d_(\u0027Default port of the k8s master endpoint.\u0027)),"},{"line_number":35,"context_line":"]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"cfg.CONF.register_opts(kubernetes_opts, group\u003d\u0027kubernetes\u0027)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def retrieve_bay(context, obj):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_d6f100cf","line":37,"in_reply_to":"ba3cc151_866a8e19","updated":"2015-06-29 18:56:24.000000000","message":"Fixed by removing duplicated registration.","commit_id":"321815f83e743fa3afa0040a3c4586ad40cd787a"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"88683a3f295b636324093ae28913515ba14b3f65","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    if (stack.stack_status \u003d\u003d \u0027DELETE_COMPLETE\u0027 or"},{"line_number":55,"context_line":"            stack.stack_status \u003d\u003d \u0027DELETE_IN_PROGRESS\u0027):"},{"line_number":56,"context_line":"        return False"},{"line_number":57,"context_line":"    else:"},{"line_number":58,"context_line":"        return True"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_509ab1c6","line":57,"updated":"2015-06-28 01:15:32.000000000","message":"I think the else: is not needed here.","commit_id":"321815f83e743fa3afa0040a3c4586ad40cd787a"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"1017e64dfa63908db28133af6ba0d107af3c7ff8","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    if (stack.stack_status \u003d\u003d \u0027DELETE_COMPLETE\u0027 or"},{"line_number":55,"context_line":"            stack.stack_status \u003d\u003d \u0027DELETE_IN_PROGRESS\u0027):"},{"line_number":56,"context_line":"        return False"},{"line_number":57,"context_line":"    else:"},{"line_number":58,"context_line":"        return True"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_83c7e044","line":57,"in_reply_to":"fa32b979_509ab1c6","updated":"2015-06-29 00:18:24.000000000","message":"+1","commit_id":"321815f83e743fa3afa0040a3c4586ad40cd787a"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"166e151848ffccf2eb73920aee53326142ad4684","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    if (stack.stack_status \u003d\u003d \u0027DELETE_COMPLETE\u0027 or"},{"line_number":55,"context_line":"            stack.stack_status \u003d\u003d \u0027DELETE_IN_PROGRESS\u0027):"},{"line_number":56,"context_line":"        return False"},{"line_number":57,"context_line":"    else:"},{"line_number":58,"context_line":"        return True"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_16cf6880","line":57,"in_reply_to":"fa32b979_509ab1c6","updated":"2015-06-29 18:56:24.000000000","message":"Done","commit_id":"321815f83e743fa3afa0040a3c4586ad40cd787a"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"7132a6843e3ab41dd3096c830fe1b56dbce161ae","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        return True"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"def create_k8s_api(context, obj):"},{"line_number":62,"context_line":"    \"\"\"Create a kubernetes API client"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    Creates connection with Kubernetes master and creates ApivbetaApi instance"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_4655661b","line":61,"updated":"2015-06-29 01:48:04.000000000","message":"I think it is special to k8s, better not put it in common utils","commit_id":"321815f83e743fa3afa0040a3c4586ad40cd787a"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"88683a3f295b636324093ae28913515ba14b3f65","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        return True"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"def create_k8s_api(context, obj):"},{"line_number":62,"context_line":"    \"\"\"Create a kubernetes API client"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    Creates connection with Kubernetes master and creates ApivbetaApi instance"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_709d75ba","line":61,"updated":"2015-06-28 01:15:32.000000000","message":"Why putting k8s api here? Does it belong to k8s only?","commit_id":"321815f83e743fa3afa0040a3c4586ad40cd787a"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"d467e85b096fad30c5cb70f653d1eb45fe3a0e44","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        return True"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"def create_k8s_api(context, obj):"},{"line_number":62,"context_line":"    \"\"\"Create a kubernetes API client"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    Creates connection with Kubernetes master and creates ApivbetaApi instance"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_29c83574","line":61,"in_reply_to":"ba3cc151_234934d1","updated":"2015-06-29 02:17:08.000000000","message":"I mean I am going to submit another patch that needs to leverage k8s_api out of the conductor, so I need to put it here to make it shareable.","commit_id":"321815f83e743fa3afa0040a3c4586ad40cd787a"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"af87c70e07f23dbe27829c308aab47cbcc023dac","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        return True"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"def create_k8s_api(context, obj):"},{"line_number":62,"context_line":"    \"\"\"Create a kubernetes API client"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    Creates connection with Kubernetes master and creates ApivbetaApi instance"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_8ff5c184","line":61,"in_reply_to":"ba3cc151_29c83574","updated":"2015-06-29 04:04:46.000000000","message":"FYI, here is the patch that reuses the k8s_api https://review.openstack.org/#/c/196526/","commit_id":"321815f83e743fa3afa0040a3c4586ad40cd787a"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"d467e85b096fad30c5cb70f653d1eb45fe3a0e44","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        return True"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"def create_k8s_api(context, obj):"},{"line_number":62,"context_line":"    \"\"\"Create a kubernetes API client"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    Creates connection with Kubernetes master and creates ApivbetaApi instance"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_c9ebc9af","line":61,"in_reply_to":"ba3cc151_4655661b","updated":"2015-06-29 02:17:08.000000000","message":"How about this. I can split this file into two\n\nconductor/k8s_utils.py: this file contains \u0027create_k8s_api\u0027.\n\nconductor/utils.py: this file contains the rest of the utils.\n\nHow is that sounds. Please note that I pull this code out of conductor is for reusing them. I guess everyone prefers a DRY style. Right?","commit_id":"321815f83e743fa3afa0040a3c4586ad40cd787a"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"1017e64dfa63908db28133af6ba0d107af3c7ff8","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        return True"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"def create_k8s_api(context, obj):"},{"line_number":62,"context_line":"    \"\"\"Create a kubernetes API client"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    Creates connection with Kubernetes master and creates ApivbetaApi instance"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_234934d1","line":61,"in_reply_to":"fa32b979_0b8ab71a","updated":"2015-06-29 00:18:24.000000000","message":"I didn\u0027t get your reply. Could you please elaborate?","commit_id":"321815f83e743fa3afa0040a3c4586ad40cd787a"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"e9a615af03a4d0047ea689b31a4dae6b431416d1","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        return True"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"def create_k8s_api(context, obj):"},{"line_number":62,"context_line":"    \"\"\"Create a kubernetes API client"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    Creates connection with Kubernetes master and creates ApivbetaApi instance"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_a66c7209","line":61,"in_reply_to":"fa32b979_0b8ab71a","updated":"2015-06-29 01:42:44.000000000","message":"imho, I think that k8s related code should be in k8s conductor but not in a common util","commit_id":"321815f83e743fa3afa0040a3c4586ad40cd787a"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"166e151848ffccf2eb73920aee53326142ad4684","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        return True"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"def create_k8s_api(context, obj):"},{"line_number":62,"context_line":"    \"\"\"Create a kubernetes API client"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    Creates connection with Kubernetes master and creates ApivbetaApi instance"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_56e730e4","line":61,"in_reply_to":"fa32b979_709d75ba","updated":"2015-06-29 18:56:24.000000000","message":"Fixed by creating a k8s_api module. All python-k8sclient codes were putted there.","commit_id":"321815f83e743fa3afa0040a3c4586ad40cd787a"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"d7cc6d0277145584cdfe4cf92a76b5b558051470","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        return True"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"def create_k8s_api(context, obj):"},{"line_number":62,"context_line":"    \"\"\"Create a kubernetes API client"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    Creates connection with Kubernetes master and creates ApivbetaApi instance"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_0b8ab71a","line":61,"in_reply_to":"fa32b979_709d75ba","updated":"2015-06-28 14:55:00.000000000","message":"It will be used in bay_conductor later to decide which host has no pods, so I put it here.","commit_id":"321815f83e743fa3afa0040a3c4586ad40cd787a"}],"magnum/tests/unit/conductor/test_k8s_api.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"15307f02d8d7bffcad74a4ec27a30a20250d8449","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from magnum import objects"},{"line_number":19,"context_line":"from magnum.tests import base"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from mock import patch"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class TestK8sAPI(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_ca3b509b","line":21,"updated":"2015-07-01 01:15:04.000000000","message":"This should be put together with from oslo.xxx, right?","commit_id":"ccb95cf0b771b551a964c0f6273cec2fa1584c47"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"0241463d2d5f40201f7971b20f21994f67a7e53e","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from magnum import objects"},{"line_number":19,"context_line":"from magnum.tests import base"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from mock import patch"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class TestK8sAPI(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_ff0106b0","line":21,"in_reply_to":"ba3cc151_ca3b509b","updated":"2015-07-01 18:20:29.000000000","message":"Will fix that","commit_id":"ccb95cf0b771b551a964c0f6273cec2fa1584c47"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"3771c93cb69342df4208e2ac7f45ac2a648e2440","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            mock_baymodel_get_by_uuid,"},{"line_number":71,"context_line":"            mock_bay_get_by_uuid):"},{"line_number":72,"context_line":"        self._test_retrieve_k8s_master_url(mock_baymodel_get_by_uuid,"},{"line_number":73,"context_line":"                                           mock_bay_get_by_uuid)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_e905c610","line":73,"updated":"2015-07-02 01:16:29.000000000","message":"Also add test for def create_k8s_api","commit_id":"ccb95cf0b771b551a964c0f6273cec2fa1584c47"}],"magnum/tests/unit/conductor/test_utils.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"15307f02d8d7bffcad74a4ec27a30a20250d8449","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from magnum import objects"},{"line_number":17,"context_line":"from magnum.tests import base"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from mock import patch"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class TestConductorUtils(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_2a743c66","line":19,"updated":"2015-07-01 01:15:04.000000000","message":"mock should be put in the first line","commit_id":"ccb95cf0b771b551a964c0f6273cec2fa1584c47"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"0241463d2d5f40201f7971b20f21994f67a7e53e","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from magnum import objects"},{"line_number":17,"context_line":"from magnum.tests import base"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from mock import patch"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class TestConductorUtils(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_3f23ee57","line":19,"in_reply_to":"ba3cc151_2a743c66","updated":"2015-07-01 18:20:29.000000000","message":"Will fix","commit_id":"ccb95cf0b771b551a964c0f6273cec2fa1584c47"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"15307f02d8d7bffcad74a4ec27a30a20250d8449","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        expected_bay_uuid \u003d \u0027bay_uuid\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"        obj.bay_uuid \u003d expected_bay_uuid"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        utils.retrieve_bay(expected_context, obj)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        mock_bay_get_by_uuid.assert_called_once_with(expected_context,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_0a69388b","line":29,"updated":"2015-07-01 01:15:04.000000000","message":"Does this blank space needed?","commit_id":"ccb95cf0b771b551a964c0f6273cec2fa1584c47"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"15307f02d8d7bffcad74a4ec27a30a20250d8449","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        obj.bay_uuid \u003d expected_bay_uuid"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        utils.retrieve_bay(expected_context, obj)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        mock_bay_get_by_uuid.assert_called_once_with(expected_context,"},{"line_number":33,"context_line":"                                                     expected_bay_uuid)"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_aa060ccc","line":31,"updated":"2015-07-01 01:15:04.000000000","message":"ditto","commit_id":"ccb95cf0b771b551a964c0f6273cec2fa1584c47"}]}
