)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17789,"name":"Zhao Lei","email":"zhaolei@cn.fujitsu.com","username":"zhaolei"},"change_message_id":"8f242d48d22314ce63c49496278084f4d350ca7c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"of the system, not two as we do now. This patch adds"},{"line_number":14,"context_line":"changes for Replication Controller."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Seperate patch to pass bay_uuid as a parameter to"},{"line_number":17,"context_line":"magnum CLI will be submitted."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I7905af9e22f47b16d92043cc1fdcb1cdf72ebc48"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"9a1a9d01_94459ab4","line":16,"updated":"2015-09-26 03:18:07.000000000","message":"Separate","commit_id":"dc4a55255af252288522fa7f4b8b1018db4460da"},{"author":{"_account_id":11650,"name":"Tom Cammann","email":"tom.cammann@hpe.com","username":"cammann"},"change_message_id":"dfb482afdc9dcdfd9391146665d5b7fb940575d7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Objects from Bay - Replication Controller"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently objects (pod/rc/service) are read from the"},{"line_number":10,"context_line":"database. In order for native clients to work, they"},{"line_number":11,"context_line":"must be read from the ReST bay endpoint. To execute"},{"line_number":12,"context_line":"native clients, we must have one truth of the state"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"5a2ca52d_52b49e33","line":9,"updated":"2015-10-16 07:58:59.000000000","message":"Wrapping is wrong.","commit_id":"b6033363cbf50212ec2f9141c6efe9613b3cb03e"}],"magnum/api/controllers/v1/replicationcontroller.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"de11d2694e0d4d85279ba5716c7bdd803a306046","unresolved":false,"context_lines":[{"line_number":310,"context_line":"    def patch(self, rc_ident, patch):"},{"line_number":311,"context_line":"        \"\"\"Update an existing rc."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        :param rc_ident: Logical name of a ReplicationController."},{"line_number":314,"context_line":"        :param patch: a json PATCH document to apply to this rc."},{"line_number":315,"context_line":"        \"\"\""},{"line_number":316,"context_line":"        rpc_rc \u003d api_utils.get_rpc_resource_by_name(\u0027ReplicationController\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_4eb6cf3e","line":313,"updated":"2015-08-26 17:41:19.000000000","message":"Is it possible to support both uuid and name? That will make the API more consistent I think.","commit_id":"5adab4f539a53d690d3cddc9002872c487a5d5ae"},{"author":{"_account_id":15967,"name":"vikas choudhary","email":"choudharyvikas16@gmail.com","username":"vikaschoudhary16"},"change_message_id":"bcaa9a629cfb3f9de51db9de1a6b23381286b61f","unresolved":false,"context_lines":[{"line_number":310,"context_line":"    def patch(self, rc_ident, patch):"},{"line_number":311,"context_line":"        \"\"\"Update an existing rc."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        :param rc_ident: Logical name of a ReplicationController."},{"line_number":314,"context_line":"        :param patch: a json PATCH document to apply to this rc."},{"line_number":315,"context_line":"        \"\"\""},{"line_number":316,"context_line":"        rpc_rc \u003d api_utils.get_rpc_resource_by_name(\u0027ReplicationController\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_919d5ebe","line":313,"in_reply_to":"da20952f_4eb6cf3e","updated":"2015-08-31 11:20:21.000000000","message":"+1 Hongbin.","commit_id":"5adab4f539a53d690d3cddc9002872c487a5d5ae"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"a13bf5a694269dc24cb209c1461679cdbf07e736","unresolved":false,"context_lines":[{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        :param rc_ident: UUID or logical name of a ReplicationController."},{"line_number":284,"context_line":"        \"\"\""},{"line_number":285,"context_line":"        rpc_rc \u003d api_utils.get_k8s_rpc_resource(\u0027ReplicationController\u0027,"},{"line_number":286,"context_line":"                                                rc_ident,"},{"line_number":287,"context_line":"                                                bay_uuid)"},{"line_number":288,"context_line":"        return ReplicationController.convert_with_links(rpc_rc)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_e15c754e","line":285,"updated":"2015-09-09 03:33:34.000000000","message":"I think this method should be implemented by calling rpcapi, which makes it consistent with post/patch/delete.","commit_id":"493a3cb16861a25663e236d21394f9c4b33cd25c"},{"author":{"_account_id":15967,"name":"vikas choudhary","email":"choudharyvikas16@gmail.com","username":"vikaschoudhary16"},"change_message_id":"15a3a8adc8c28e809ce829eda94965d5c8923c5d","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                   types.uuid, int, wtypes.text, wtypes.text,"},{"line_number":227,"context_line":"                   types.uuid)"},{"line_number":228,"context_line":"    def get_all(self, rc_uuid\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":229,"context_line":"                sort_key\u003d\u0027id\u0027, sort_dir\u003d\u0027asc\u0027, bay_uuid\u003dNone):"},{"line_number":230,"context_line":"        \"\"\"Retrieve a list of ReplicationControllers."},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        :param marker: pagination marker for large data sets."}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_7ed829f0","line":229,"updated":"2015-09-12 03:26:42.000000000","message":"will corresponding changes be required in python client as well for new attribute?\n\nAre we making it mandatory to pass bay-uuid for \"magnum rc-list\"?\n\nWhat about if we dont change existing cli, and output results for all bays?","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"99a5d99997233a90f45171e38a25e96ae62176b3","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                   types.uuid, int, wtypes.text, wtypes.text,"},{"line_number":227,"context_line":"                   types.uuid)"},{"line_number":228,"context_line":"    def get_all(self, rc_uuid\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":229,"context_line":"                sort_key\u003d\u0027id\u0027, sort_dir\u003d\u0027asc\u0027, bay_uuid\u003dNone):"},{"line_number":230,"context_line":"        \"\"\"Retrieve a list of ReplicationControllers."},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        :param marker: pagination marker for large data sets."}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_775c9125","line":229,"in_reply_to":"ba15a1d1_7ed829f0","updated":"2015-09-15 03:23:53.000000000","message":"Yes a separate change for CLI/magnum-client will be needed. I have it in my work item. Also included in the commit message about the same.\n\nThere is no change in CLI just asking for additional *mandatory* parameter to be passed (which is bay-uuid).\n\nIf you can suggest an alternative so that we can do it without passing a bay-uuid I would be happy to listen to it.","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"a7cfb9ef256b3ce6290883f7813113964f168b2d","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        :param marker: pagination marker for large data sets."},{"line_number":233,"context_line":"        :param limit: maximum number of resources to return in a single result."},{"line_number":234,"context_line":"        :param sort_key: column to sort results by. Default: id."},{"line_number":235,"context_line":"        :param sort_dir: direction to sort. \"asc\" or \"desc\". Default: asc."},{"line_number":236,"context_line":"        \"\"\""},{"line_number":237,"context_line":"        return self._get_rcs_collection(marker, limit, sort_key,"},{"line_number":238,"context_line":"                                        sort_dir, bay_uuid)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_335b1f24","line":235,"updated":"2015-09-11 23:21:55.000000000","message":"The doc string needs to be updated here for new parameter of bay_uuid","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"99a5d99997233a90f45171e38a25e96ae62176b3","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        :param marker: pagination marker for large data sets."},{"line_number":233,"context_line":"        :param limit: maximum number of resources to return in a single result."},{"line_number":234,"context_line":"        :param sort_key: column to sort results by. Default: id."},{"line_number":235,"context_line":"        :param sort_dir: direction to sort. \"asc\" or \"desc\". Default: asc."},{"line_number":236,"context_line":"        \"\"\""},{"line_number":237,"context_line":"        return self._get_rcs_collection(marker, limit, sort_key,"},{"line_number":238,"context_line":"                                        sort_dir, bay_uuid)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_777331b2","line":235,"in_reply_to":"da20952f_335b1f24","updated":"2015-09-15 03:23:53.000000000","message":"Done","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":15967,"name":"vikas choudhary","email":"choudharyvikas16@gmail.com","username":"vikaschoudhary16"},"change_message_id":"15a3a8adc8c28e809ce829eda94965d5c8923c5d","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                   types.uuid, int, wtypes.text, wtypes.text,"},{"line_number":243,"context_line":"                   types.uuid)"},{"line_number":244,"context_line":"    def detail(self, rc_uuid\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":245,"context_line":"               sort_key\u003d\u0027id\u0027, sort_dir\u003d\u0027asc\u0027, bay_uuid\u003dNone):"},{"line_number":246,"context_line":"        \"\"\"Retrieve a list of ReplicationControllers with detail."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        :param rc_uuid: UUID of a ReplicationController, to get only"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_deedb58f","line":245,"updated":"2015-09-12 03:26:42.000000000","message":"will corresponding changes be required in python client as well for new attribute?\n\nAre we making it mandatory to pass bay-uuid for \"magnum rc-list\"?\n\nWhat about if we dont change existing cli, and output results for all bays?","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"99a5d99997233a90f45171e38a25e96ae62176b3","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                   types.uuid, int, wtypes.text, wtypes.text,"},{"line_number":243,"context_line":"                   types.uuid)"},{"line_number":244,"context_line":"    def detail(self, rc_uuid\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":245,"context_line":"               sort_key\u003d\u0027id\u0027, sort_dir\u003d\u0027asc\u0027, bay_uuid\u003dNone):"},{"line_number":246,"context_line":"        \"\"\"Retrieve a list of ReplicationControllers with detail."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        :param rc_uuid: UUID of a ReplicationController, to get only"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_376619ee","line":245,"in_reply_to":"ba15a1d1_deedb58f","updated":"2015-09-15 03:23:53.000000000","message":"Please see above.","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"a7cfb9ef256b3ce6290883f7813113964f168b2d","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        :param marker: pagination marker for large data sets."},{"line_number":251,"context_line":"        :param limit: maximum number of resources to return in a single result."},{"line_number":252,"context_line":"        :param sort_key: column to sort results by. Default: id."},{"line_number":253,"context_line":"        :param sort_dir: direction to sort. \"asc\" or \"desc\". Default: asc."},{"line_number":254,"context_line":"        \"\"\""},{"line_number":255,"context_line":"        # NOTE(jay-lau-513): /detail should only work agaist collections"},{"line_number":256,"context_line":"        parent \u003d pecan.request.path.split(\u0027/\u0027)[:-1][-1]"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_f39fe7b1","line":253,"updated":"2015-09-11 23:21:55.000000000","message":"ditto","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"99a5d99997233a90f45171e38a25e96ae62176b3","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        :param marker: pagination marker for large data sets."},{"line_number":251,"context_line":"        :param limit: maximum number of resources to return in a single result."},{"line_number":252,"context_line":"        :param sort_key: column to sort results by. Default: id."},{"line_number":253,"context_line":"        :param sort_dir: direction to sort. \"asc\" or \"desc\". Default: asc."},{"line_number":254,"context_line":"        \"\"\""},{"line_number":255,"context_line":"        # NOTE(jay-lau-513): /detail should only work agaist collections"},{"line_number":256,"context_line":"        parent \u003d pecan.request.path.split(\u0027/\u0027)[:-1][-1]"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_d7623dd8","line":253,"in_reply_to":"da20952f_f39fe7b1","updated":"2015-09-15 03:23:53.000000000","message":"Done","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"a7cfb9ef256b3ce6290883f7813113964f168b2d","unresolved":false,"context_lines":[{"line_number":270,"context_line":"    def get_one(self, rc_ident, bay_uuid):"},{"line_number":271,"context_line":"        \"\"\"Retrieve information about the given ReplicationController."},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        :param rc_ident: UUID or logical name of a ReplicationController."},{"line_number":274,"context_line":"        \"\"\""},{"line_number":275,"context_line":"        rpc_rc \u003d pecan.request.rpcapi.rc_show(rc_ident, bay_uuid)"},{"line_number":276,"context_line":"        return ReplicationController.convert_with_links(rpc_rc)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_73ac37ed","line":273,"updated":"2015-09-11 23:21:55.000000000","message":"ditto","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"99a5d99997233a90f45171e38a25e96ae62176b3","unresolved":false,"context_lines":[{"line_number":270,"context_line":"    def get_one(self, rc_ident, bay_uuid):"},{"line_number":271,"context_line":"        \"\"\"Retrieve information about the given ReplicationController."},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        :param rc_ident: UUID or logical name of a ReplicationController."},{"line_number":274,"context_line":"        \"\"\""},{"line_number":275,"context_line":"        rpc_rc \u003d pecan.request.rpcapi.rc_show(rc_ident, bay_uuid)"},{"line_number":276,"context_line":"        return ReplicationController.convert_with_links(rpc_rc)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_979b65c9","line":273,"in_reply_to":"da20952f_73ac37ed","updated":"2015-09-15 03:23:53.000000000","message":"Done","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"a7cfb9ef256b3ce6290883f7813113964f168b2d","unresolved":false,"context_lines":[{"line_number":302,"context_line":"    @wsme.validate(types.uuid, [ReplicationControllerPatchType])"},{"line_number":303,"context_line":"    @expose.expose(ReplicationController, types.uuid_or_name,"},{"line_number":304,"context_line":"                   types.uuid,"},{"line_number":305,"context_line":"                   body\u003d[ReplicationControllerPatchType])"},{"line_number":306,"context_line":"    def patch(self, rc_ident, bay_uuid, patch):"},{"line_number":307,"context_line":"        \"\"\"Update an existing rc."},{"line_number":308,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_73daf779","line":305,"updated":"2015-09-11 23:21:55.000000000","message":"This can be moved the the upper line.","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"99a5d99997233a90f45171e38a25e96ae62176b3","unresolved":false,"context_lines":[{"line_number":302,"context_line":"    @wsme.validate(types.uuid, [ReplicationControllerPatchType])"},{"line_number":303,"context_line":"    @expose.expose(ReplicationController, types.uuid_or_name,"},{"line_number":304,"context_line":"                   types.uuid,"},{"line_number":305,"context_line":"                   body\u003d[ReplicationControllerPatchType])"},{"line_number":306,"context_line":"    def patch(self, rc_ident, bay_uuid, patch):"},{"line_number":307,"context_line":"        \"\"\"Update an existing rc."},{"line_number":308,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_77aa51d6","line":305,"in_reply_to":"da20952f_73daf779","updated":"2015-09-15 03:23:53.000000000","message":"Done","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"26db62c4f7870e0ce87094b96faef012fb2f0899","unresolved":false,"context_lines":[{"line_number":311,"context_line":"        :param patch: a json PATCH document to apply to this rc."},{"line_number":312,"context_line":"        \"\"\""},{"line_number":313,"context_line":"        rc \u003d ReplicationController()"},{"line_number":314,"context_line":"        manifest \u003d k8s_manifest.parse(rc._get_manifest())"},{"line_number":315,"context_line":"        rpc_rc \u003d pecan.request.rpcapi.rc_update(rc_ident, bay_uuid, manifest)"},{"line_number":316,"context_line":"        return ReplicationController.convert_with_links(rpc_rc)"},{"line_number":317,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_4eaf0ee3","line":314,"updated":"2015-09-11 18:58:31.000000000","message":"I cannot find the implementation of method \"_get_manifest\". Also, it seems to me that you invoke a private method from object, which is not good.","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"99a5d99997233a90f45171e38a25e96ae62176b3","unresolved":false,"context_lines":[{"line_number":311,"context_line":"        :param patch: a json PATCH document to apply to this rc."},{"line_number":312,"context_line":"        \"\"\""},{"line_number":313,"context_line":"        rc \u003d ReplicationController()"},{"line_number":314,"context_line":"        manifest \u003d k8s_manifest.parse(rc._get_manifest())"},{"line_number":315,"context_line":"        rpc_rc \u003d pecan.request.rpcapi.rc_update(rc_ident, bay_uuid, manifest)"},{"line_number":316,"context_line":"        return ReplicationController.convert_with_links(rpc_rc)"},{"line_number":317,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_57f38d0a","line":314,"in_reply_to":"da20952f_33e0ff25","updated":"2015-09-15 03:23:53.000000000","message":"Good catch!\n\nThought it will be invoked from the base class but looks like I am wrong. Would you like to suggest a better option I can get to extract the manifest here. Will update in the following patch.","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"a7cfb9ef256b3ce6290883f7813113964f168b2d","unresolved":false,"context_lines":[{"line_number":311,"context_line":"        :param patch: a json PATCH document to apply to this rc."},{"line_number":312,"context_line":"        \"\"\""},{"line_number":313,"context_line":"        rc \u003d ReplicationController()"},{"line_number":314,"context_line":"        manifest \u003d k8s_manifest.parse(rc._get_manifest())"},{"line_number":315,"context_line":"        rpc_rc \u003d pecan.request.rpcapi.rc_update(rc_ident, bay_uuid, manifest)"},{"line_number":316,"context_line":"        return ReplicationController.convert_with_links(rpc_rc)"},{"line_number":317,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_33e0ff25","line":314,"in_reply_to":"da20952f_4eaf0ee3","updated":"2015-09-11 23:21:55.000000000","message":"+1","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"e48473238eb116d88564416997df99380495db93","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            rc.unset_fields_except([\u0027uuid\u0027, \u0027name\u0027, \u0027images\u0027, \u0027bay_uuid\u0027,"},{"line_number":78,"context_line":"                                    \u0027labels\u0027, \u0027replicas\u0027])"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        rc.links \u003d [link.Link.make_link(\u0027self\u0027, url,"},{"line_number":81,"context_line":"                                        \u0027rcs\u0027, rc.uuid),"},{"line_number":82,"context_line":"                    link.Link.make_link(\u0027bookmark\u0027, url,"},{"line_number":83,"context_line":"                                        \u0027rcs\u0027, rc.uuid,"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba15a1d1_1ec7ad65","line":80,"updated":"2015-09-18 21:14:14.000000000","message":"Links created here is no longer valid, since \u0027bay_uuid\u0027 is missing here.","commit_id":"4ceb2c1969a14bb308c3f018a70659ae852a31ed"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"a2266ebb7c2a775192deae98f705615d4c740e1c","unresolved":false,"context_lines":[{"line_number":336,"context_line":"        :param rc_uuid: UUID of a ReplicationController."},{"line_number":337,"context_line":"        :param bay_uuid: UUID of Bay."},{"line_number":338,"context_line":"        \"\"\""},{"line_number":339,"context_line":"        pecan.request.rpcapi.rc_delete(rc_ident, bay_uuid)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a1a9d01_28c1f380","line":339,"updated":"2015-10-02 06:12:11.000000000","message":"Does this work? In https://review.openstack.org/#/c/220344/12/magnum/conductor/api.py , the rc_delete has only 1 parameter.","commit_id":"dc4a55255af252288522fa7f4b8b1018db4460da"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"7d920a6684ea3d765fccc19c65164c19d9f04edf","unresolved":false,"context_lines":[{"line_number":325,"context_line":"            raise exception.PatchError(patch\u003dpatch, reason\u003de)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        rpc_rc \u003d pecan.request.rpcapi.rc_update(rc_ident,"},{"line_number":328,"context_line":"                                                bay_uuid,"},{"line_number":329,"context_line":"                                                rc.manifest)"},{"line_number":330,"context_line":"        return ReplicationController.convert_with_links(rpc_rc)"},{"line_number":331,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"5a2ca52d_56ec09c7","line":328,"updated":"2015-10-14 02:44:47.000000000","message":"can be moved to above","commit_id":"b6033363cbf50212ec2f9141c6efe9613b3cb03e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"738b7d999208951ad192f4e185280e65b8e34ef0","unresolved":false,"context_lines":[{"line_number":325,"context_line":"            raise exception.PatchError(patch\u003dpatch, reason\u003de)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        rpc_rc \u003d pecan.request.rpcapi.rc_update(rc_ident,"},{"line_number":328,"context_line":"                                                bay_uuid,"},{"line_number":329,"context_line":"                                                rc.manifest)"},{"line_number":330,"context_line":"        return ReplicationController.convert_with_links(rpc_rc)"},{"line_number":331,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"5a2ca52d_d19a076e","line":328,"in_reply_to":"5a2ca52d_56ec09c7","updated":"2015-10-15 17:50:00.000000000","message":"Sure. Looks like I will need to submit one more patch. Will do these changes as part of it. Thanks!","commit_id":"b6033363cbf50212ec2f9141c6efe9613b3cb03e"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"085c9780c200273275397dac3ad536e9feba3109","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        limit \u003d api_utils.validate_limit(limit)"},{"line_number":213,"context_line":"        sort_dir \u003d api_utils.validate_sort_dir(sort_dir)"},{"line_number":214,"context_line":"        rcs \u003d pecan.request.rpcapi.rc_list(pecan.request.context, bay_ident)"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        return ReplicationControllerCollection.convert_with_links("},{"line_number":217,"context_line":"            rcs, limit,"}],"source_content_type":"text/x-python","patch_set":26,"id":"fa80f949_0eb67c8a","line":214,"updated":"2015-11-04 06:39:41.000000000","message":"you removed marker, will you support later ?\nI meant sort_key, sort_dir etc...","commit_id":"105cf72535e83e719d80906173f3ffe545b4859f"}],"magnum/api/controllers/v1/utils.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"26db62c4f7870e0ce87094b96faef012fb2f0899","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    return resource.get_by_name(pecan.request.context, resource_ident)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"def get_k8s_rpc_resource(resource, resource_ident, bay_uuid):"},{"line_number":76,"context_line":"    \"\"\"Get the RPC resource from the uuid or logical name."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    :param resource: the resource type."}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_aeca6a9e","line":75,"updated":"2015-09-11 18:58:31.000000000","message":"I guess this method is no longer used.","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"99a5d99997233a90f45171e38a25e96ae62176b3","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    return resource.get_by_name(pecan.request.context, resource_ident)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"def get_k8s_rpc_resource(resource, resource_ident, bay_uuid):"},{"line_number":76,"context_line":"    \"\"\"Get the RPC resource from the uuid or logical name."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    :param resource: the resource type."}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_37db797e","line":75,"in_reply_to":"da20952f_aeca6a9e","updated":"2015-09-15 03:23:53.000000000","message":"True. Will remove it.","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"}],"magnum/common/exception.py":[{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"d4300bb16f98253c405a70f323dd822a191a273d","unresolved":false,"context_lines":[{"line_number":414,"context_line":""},{"line_number":415,"context_line":"class ReplicationControllerListNotFound(ResourceNotFound):"},{"line_number":416,"context_line":"    message \u003d _(\"ReplicationController list could not be found\""},{"line_number":417,"context_line":"                \" for Bay %(bay_uuid)s.\")"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":""},{"line_number":420,"context_line":"class ReplicationControllerCreationFailed(Invalid):"}],"source_content_type":"text/x-python","patch_set":31,"id":"ba8a016a_9dfce03f","line":417,"updated":"2015-11-17 00:48:45.000000000","message":"what does this mean? It\u0027s hard to be understand.\n\njust checked the code list_namespaced_replication_controller may return None, which is to see, k8s api can not find that method. It\u0027s okay for our developers, but user may be confused since this exception will be raise to users.\n\n\nhow about : \"Could not list ReplicationController for Bay %(bay_uuid): ReplicationController list could not be found by k8s API\" or something similar like this.","commit_id":"3b1c0b28cb7910debc26eed7bf8aa8da9ed88a33"}],"magnum/conductor/api.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"26db62c4f7870e0ce87094b96faef012fb2f0899","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # ReplicationController Operations"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def rc_create(self, rc):"},{"line_number":103,"context_line":"        return self._call(\u0027rc_create\u0027, rc\u003drc)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def rc_update(self, rc_ident, bay_uuid, manifest):"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_eebe22d3","line":102,"updated":"2015-09-11 18:58:31.000000000","message":"This suggestion might be picky. It is your call to implement it or not. It is better to make the API of rc_create and rc_update more consistent:\n\neither\n\nrc_create(self, bay_uuid, manifest)\n\nrc_update(self, rc_ident, bay_uuid, manifest)\n\nor\n\nrc_create(self, rc)\n\nrc_update(self, rc)","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"9e9c371650c8ded94cea2c9b691ccc2dd17e8ab6","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                          bay_uuid\u003dbay_uuid, manifest\u003dmanifest)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def rc_list(self, context, bay_uuid):"},{"line_number":110,"context_line":"        return self._call(\u0027rc_list\u0027, bay_uuid\u003dbay_uuid)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def rc_delete(self, rc_ident, bay_uuid):"},{"line_number":113,"context_line":"        return self._call(\u0027rc_delete\u0027, rc_ident\u003drc_ident, bay_uuid\u003dbay_uuid)"}],"source_content_type":"text/x-python","patch_set":24,"id":"5a2ca52d_c42d8c47","line":110,"updated":"2015-10-15 03:17:43.000000000","message":"how do we control rc list items in one API call ?","commit_id":"b6033363cbf50212ec2f9141c6efe9613b3cb03e"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"6daeb0e99e93784a3396331ecbae1e53d5d323ac","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                          bay_uuid\u003dbay_uuid, manifest\u003dmanifest)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def rc_list(self, context, bay_uuid):"},{"line_number":110,"context_line":"        return self._call(\u0027rc_list\u0027, bay_uuid\u003dbay_uuid)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def rc_delete(self, rc_ident, bay_uuid):"},{"line_number":113,"context_line":"        return self._call(\u0027rc_delete\u0027, rc_ident\u003drc_ident, bay_uuid\u003dbay_uuid)"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a29b11f_c4fef16a","line":110,"in_reply_to":"5a2ca52d_113abfcc","updated":"2015-10-20 10:10:31.000000000","message":"hi @Vilobh. right now, you call rc_list direct. I am not sure how many rcs can be in one by.\n\nif not large enough, it is ok to return all. If large, I can not find it can achieve same funtion as before, as before have limit to control the returned results, right ?","commit_id":"b6033363cbf50212ec2f9141c6efe9613b3cb03e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"738b7d999208951ad192f4e185280e65b8e34ef0","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                          bay_uuid\u003dbay_uuid, manifest\u003dmanifest)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def rc_list(self, context, bay_uuid):"},{"line_number":110,"context_line":"        return self._call(\u0027rc_list\u0027, bay_uuid\u003dbay_uuid)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def rc_delete(self, rc_ident, bay_uuid):"},{"line_number":113,"context_line":"        return self._call(\u0027rc_delete\u0027, rc_ident\u003drc_ident, bay_uuid\u003dbay_uuid)"}],"source_content_type":"text/x-python","patch_set":24,"id":"5a2ca52d_113abfcc","line":110,"in_reply_to":"5a2ca52d_c42d8c47","updated":"2015-10-15 17:50:00.000000000","message":"@Kennan : Sorry can you please elaborate ? I didn\u0027t get you ? Thanks!","commit_id":"b6033363cbf50212ec2f9141c6efe9613b3cb03e"}],"magnum/conductor/handlers/k8s_conductor.py":[{"author":{"_account_id":12053,"name":"Hua Wang","email":"wanghua.humble@gmail.com","username":"humble00"},"change_message_id":"da09803780ffda42348e48d621e039fecd848614","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        except error.HTTPError as err:"},{"line_number":154,"context_line":"            message \u003d ast.literal_eval(err.read())[\u0027message\u0027]"},{"line_number":155,"context_line":"            raise exception.KubernetesAPIFailed(code\u003derr.code, message\u003dmessage)"},{"line_number":156,"context_line":"        rc.uuid \u003d resp.metadata.uid"},{"line_number":157,"context_line":"        return rc"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def rc_update(self, context, rc):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_b10d3137","line":156,"updated":"2015-08-16 02:23:06.000000000","message":"If you don\u0027t save rc\u0027s uuid in the db, how you can know the uuid when you want to query, update or delete it?","commit_id":"f1c29a174e9b2ee34dca174b8e4969593ee0c56e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"88829ea55e65ceb386b6b0baab8008af2b7c8522","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        except error.HTTPError as err:"},{"line_number":154,"context_line":"            message \u003d ast.literal_eval(err.read())[\u0027message\u0027]"},{"line_number":155,"context_line":"            raise exception.KubernetesAPIFailed(code\u003derr.code, message\u003dmessage)"},{"line_number":156,"context_line":"        rc.uuid \u003d resp.metadata.uid"},{"line_number":157,"context_line":"        return rc"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def rc_update(self, context, rc):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_711dac65","line":156,"in_reply_to":"1a4dcd0f_b10d3137","updated":"2015-08-17 16:48:46.000000000","message":"It will be fetched from k8s using the k8s ReST API. HTH.","commit_id":"f1c29a174e9b2ee34dca174b8e4969593ee0c56e"},{"author":{"_account_id":15967,"name":"vikas choudhary","email":"choudharyvikas16@gmail.com","username":"vikaschoudhary16"},"change_message_id":"15a3a8adc8c28e809ce829eda94965d5c8923c5d","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            message \u003d ast.literal_eval(err.read())[\u0027message\u0027]"},{"line_number":156,"context_line":"            raise exception.KubernetesAPIFailed(code\u003derr.code, message\u003dmessage)"},{"line_number":157,"context_line":"        # call the rc object to persist in db"},{"line_number":158,"context_line":"        rc.create(context)"},{"line_number":159,"context_line":"        return rc"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def rc_update(self, context, rc):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_fec0b9e2","side":"PARENT","line":158,"updated":"2015-09-12 03:26:42.000000000","message":"Are we removing this call i.e creating an entry in local magnum db?\nIn yes, why object is being retrieved from db at line #205","commit_id":"1c94aeb125640013dccea9165d83d45c351d0d84"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"a7cfb9ef256b3ce6290883f7813113964f168b2d","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    def rc_update(self, context, rc_ident, bay_uuid, manifest):"},{"line_number":168,"context_line":"        LOG.debug(\"rc_update %s\", rc_ident)"},{"line_number":169,"context_line":"        self.k8s_api \u003d k8s.create_k8s_api(context, bay_uuid)"},{"line_number":170,"context_line":"        if utils.is_uuid_like(rc_ident):"},{"line_number":171,"context_line":"            rc \u003d objects.ReplicationController.get_by_uuid(context,"},{"line_number":172,"context_line":"                                                           rc_ident,"},{"line_number":173,"context_line":"                                                           bay_uuid,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_13fffbab","line":170,"updated":"2015-09-11 23:21:55.000000000","message":"This will involve two API calls:\n1) get_by_uuid or get_by_name\n2) replaceReplicationController\n\nDoes 1) really needed? Does this will impact performance?","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"99a5d99997233a90f45171e38a25e96ae62176b3","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    def rc_update(self, context, rc_ident, bay_uuid, manifest):"},{"line_number":168,"context_line":"        LOG.debug(\"rc_update %s\", rc_ident)"},{"line_number":169,"context_line":"        self.k8s_api \u003d k8s.create_k8s_api(context, bay_uuid)"},{"line_number":170,"context_line":"        if utils.is_uuid_like(rc_ident):"},{"line_number":171,"context_line":"            rc \u003d objects.ReplicationController.get_by_uuid(context,"},{"line_number":172,"context_line":"                                                           rc_ident,"},{"line_number":173,"context_line":"                                                           bay_uuid,"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_57586dfa","line":170,"in_reply_to":"da20952f_13fffbab","updated":"2015-09-15 03:23:53.000000000","message":"Yes #1 is needed because\n\nA] rc_ident can be an UUID or a logical name\n\nif it is a logical name we can use it directly in call to replaceReplicationController but if its an UUID we need a way to figure out the name of the rc. If there is a way to deduce rc_name directly from UUID then we can think of not doing an extra call but IMHO we need #1 as well as #2.\n\nB] #1 gives us the rc object initial state and that object can be updated after call #2. This object needs to be returned back to the Controller layer for further processing.","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"a7cfb9ef256b3ce6290883f7813113964f168b2d","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        LOG.debug(\"rc_delete %s\", rc_ident)"},{"line_number":203,"context_line":"        self.k8s_api \u003d k8s.create_k8s_api(context, bay_uuid)"},{"line_number":204,"context_line":"        if utils.is_uuid_like(rc_ident):"},{"line_number":205,"context_line":"            rc \u003d objects.ReplicationController.get_by_uuid(context,"},{"line_number":206,"context_line":"                                                           rc_ident,"},{"line_number":207,"context_line":"                                                           bay_uuid,"},{"line_number":208,"context_line":"                                                           self.k8s_api)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_33fc7fb4","line":205,"updated":"2015-09-11 23:21:55.000000000","message":"ditto","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"99a5d99997233a90f45171e38a25e96ae62176b3","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        LOG.debug(\"rc_delete %s\", rc_ident)"},{"line_number":203,"context_line":"        self.k8s_api \u003d k8s.create_k8s_api(context, bay_uuid)"},{"line_number":204,"context_line":"        if utils.is_uuid_like(rc_ident):"},{"line_number":205,"context_line":"            rc \u003d objects.ReplicationController.get_by_uuid(context,"},{"line_number":206,"context_line":"                                                           rc_ident,"},{"line_number":207,"context_line":"                                                           bay_uuid,"},{"line_number":208,"context_line":"                                                           self.k8s_api)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_d76c7d9e","line":205,"in_reply_to":"da20952f_33fc7fb4","updated":"2015-09-15 03:23:53.000000000","message":"Please see above for my reply.","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"9e9c371650c8ded94cea2c9b691ccc2dd17e8ab6","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            bay_ident \u003d bay.uuid"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        bay_uuid \u003d bay_ident"},{"line_number":170,"context_line":"        self.k8s_api \u003d k8s.create_k8s_api_rc(context, bay_uuid)"},{"line_number":171,"context_line":"        if utils.is_uuid_like(rc_ident):"},{"line_number":172,"context_line":"            rc \u003d objects.ReplicationController.get_by_uuid(context, rc_ident,"},{"line_number":173,"context_line":"                                                           bay_uuid,"}],"source_content_type":"text/x-python","patch_set":24,"id":"5a2ca52d_8410f402","line":170,"updated":"2015-10-15 03:17:43.000000000","message":"not think it is good name for special rc only api. It need common name like,\n\nk8s.create_k8s_api","commit_id":"b6033363cbf50212ec2f9141c6efe9613b3cb03e"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"6daeb0e99e93784a3396331ecbae1e53d5d323ac","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            bay_ident \u003d bay.uuid"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        bay_uuid \u003d bay_ident"},{"line_number":170,"context_line":"        self.k8s_api \u003d k8s.create_k8s_api_rc(context, bay_uuid)"},{"line_number":171,"context_line":"        if utils.is_uuid_like(rc_ident):"},{"line_number":172,"context_line":"            rc \u003d objects.ReplicationController.get_by_uuid(context, rc_ident,"},{"line_number":173,"context_line":"                                                           bay_uuid,"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a29b11f_a43bb537","line":170,"in_reply_to":"5a2ca52d_712e9344","updated":"2015-10-20 10:10:31.000000000","message":"OK. Thanks","commit_id":"b6033363cbf50212ec2f9141c6efe9613b3cb03e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"738b7d999208951ad192f4e185280e65b8e34ef0","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            bay_ident \u003d bay.uuid"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        bay_uuid \u003d bay_ident"},{"line_number":170,"context_line":"        self.k8s_api \u003d k8s.create_k8s_api_rc(context, bay_uuid)"},{"line_number":171,"context_line":"        if utils.is_uuid_like(rc_ident):"},{"line_number":172,"context_line":"            rc \u003d objects.ReplicationController.get_by_uuid(context, rc_ident,"},{"line_number":173,"context_line":"                                                           bay_uuid,"}],"source_content_type":"text/x-python","patch_set":24,"id":"5a2ca52d_712e9344","line":170,"in_reply_to":"5a2ca52d_8410f402","updated":"2015-10-15 17:50:00.000000000","message":"@Kennan : I agree and hence I have a comment in magnum/conductor/k8s_api.py stating the same that this is place holder and will be renamed to create_k8s_api i.e. \n\ncreate_k8s_api_rc \u003d\u003e create_k8s_api (once all the objects from bay patches are merged in. I have a bug opened for the same)\n\nThe reason why I need to have \n\ncreate_k8s_api_rc \u003d\u003e For RC\ncreate_k8s_api \u003d\u003e For service/pods is\n\ncreate_k8s_api_rc take context and bay_uuid\n\nwhere as create_k8s_api takes context and bay obj\n\nIf I had to keep same aPI (create_k8s_api) for RC/service/pod the unit test for RC would never have passed. Other option I would have to do to get it working is to make all the changes for all the k8s objects as part of same patch (which would be a 2100 line patch; would be hard to review) and hence after discussing with hongbin on IRC I took this approach.\n\n\nSo in short\n\n#1. create_k8s_api_rc is placeholder\n\n#2. It will be renamed to create_k8s_api once all the object from bay patches are checked in. Alongwith it the associated code introduced in magnum/conductor/k8s_api (as part of this patch and corresponding k8s object patches for objects from bay) will be removed. I have opened a seperate bug to track it.\n\nHTH","commit_id":"b6033363cbf50212ec2f9141c6efe9613b3cb03e"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"085c9780c200273275397dac3ad536e9feba3109","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            bay_ident \u003d bay.uuid"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        bay_uuid \u003d bay_ident"},{"line_number":262,"context_line":"        self.k8s_api \u003d k8s.create_k8s_api_rc(context, bay_uuid)"},{"line_number":263,"context_line":"        try:"},{"line_number":264,"context_line":"            resp \u003d self.k8s_api.list_namespaced_replication_controller("},{"line_number":265,"context_line":"                namespaces\u003d\u0027default\u0027)"}],"source_content_type":"text/x-python","patch_set":26,"id":"fa80f949_6e306857","line":262,"updated":"2015-11-04 06:39:41.000000000","message":"this could raise exception when create k8s_api_rc, you\u0027d better to handler it well.\n\nany REST api exception should be handled well.","commit_id":"105cf72535e83e719d80906173f3ffe545b4859f"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"b789cf2ff935dc1b78c276a4a851f4b26f0f5c81","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        self.k8s_api \u003d k8s.create_k8s_api_rc(context, bay_uuid)"},{"line_number":265,"context_line":"        try:"},{"line_number":266,"context_line":"            resp \u003d self.k8s_api.list_namespaced_replication_controller("},{"line_number":267,"context_line":"                namespaces\u003d\u0027default\u0027)"},{"line_number":268,"context_line":"        except rest.ApiException as err:"},{"line_number":269,"context_line":"            raise exception.KubernetesAPIFailed(err\u003derr)"},{"line_number":270,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"da85f559_e15a0950","line":267,"updated":"2015-11-09 21:34:42.000000000","message":"The kwarg should be \u0027namespace\u0027 (no \u0027s\u0027)","commit_id":"6d4c3ceef5d379e4390970a94337943f3c658911"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"2bbc23bd67ab43b26aaa869d8f27e0d7581a6620","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        self.k8s_api \u003d k8s.create_k8s_api_rc(context, bay_uuid)"},{"line_number":265,"context_line":"        try:"},{"line_number":266,"context_line":"            resp \u003d self.k8s_api.list_namespaced_replication_controller("},{"line_number":267,"context_line":"                namespaces\u003d\u0027default\u0027)"},{"line_number":268,"context_line":"        except rest.ApiException as err:"},{"line_number":269,"context_line":"            raise exception.KubernetesAPIFailed(err\u003derr)"},{"line_number":270,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"da85f559_f107327f","line":267,"in_reply_to":"da85f559_e15a0950","updated":"2015-11-10 01:56:07.000000000","message":"good catch!","commit_id":"6d4c3ceef5d379e4390970a94337943f3c658911"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"d4300bb16f98253c405a70f323dd822a191a273d","unresolved":false,"context_lines":[{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        if resp is None:"},{"line_number":272,"context_line":"            raise exception.ReplicationControllerListNotFound("},{"line_number":273,"context_line":"                bay_uuid\u003dbay_uuid)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"        rcs \u003d []"},{"line_number":276,"context_line":"        for entry in resp._items:"}],"source_content_type":"text/x-python","patch_set":31,"id":"ba8a016a_7dc1fce3","line":273,"updated":"2015-11-17 00:48:45.000000000","message":"can you please added a test case for this exception?\n\nI think it should be in https://review.openstack.org/#/c/213368/31/magnum/tests/unit/conductor/handlers/test_k8s_conductor.py\n\nbut I don\u0027t find any test case cover it.","commit_id":"3b1c0b28cb7910debc26eed7bf8aa8da9ed88a33"}],"magnum/conductor/k8s_api.py":[{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"9e9c371650c8ded94cea2c9b691ccc2dd17e8ab6","unresolved":false,"context_lines":[{"line_number":111,"context_line":"#      method will be removed once the objects from bay code for k8s"},{"line_number":112,"context_line":"#      objects is merged. These changes are temporary to get the Unit"},{"line_number":113,"context_line":"#      test working."},{"line_number":114,"context_line":"class K8sAPI_RC(apiv_api.ApivApi):"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def _create_temp_file_with_content(self, content):"},{"line_number":117,"context_line":"        \"\"\"Creates temp file and write content to the file."}],"source_content_type":"text/x-python","patch_set":24,"id":"5a2ca52d_84cb14a5","line":114,"updated":"2015-10-15 03:17:43.000000000","message":"For this, I also checked https://review.openstack.org/#/c/223367/\nhas same, only name difference, I did not think need to use so many same classes with just different name.","commit_id":"b6033363cbf50212ec2f9141c6efe9613b3cb03e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"738b7d999208951ad192f4e185280e65b8e34ef0","unresolved":false,"context_lines":[{"line_number":111,"context_line":"#      method will be removed once the objects from bay code for k8s"},{"line_number":112,"context_line":"#      objects is merged. These changes are temporary to get the Unit"},{"line_number":113,"context_line":"#      test working."},{"line_number":114,"context_line":"class K8sAPI_RC(apiv_api.ApivApi):"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def _create_temp_file_with_content(self, content):"},{"line_number":117,"context_line":"        \"\"\"Creates temp file and write content to the file."}],"source_content_type":"text/x-python","patch_set":24,"id":"5a2ca52d_91da4f4b","line":114,"in_reply_to":"5a2ca52d_84cb14a5","updated":"2015-10-15 17:50:00.000000000","message":"Kennan I agree and here is the reason for it\n\n@Kennan : I agree and hence I have a comment in magnum/conductor/k8s_api.py stating the same that this is place holder and will be renamed to create_k8s_api i.e. \n\ncreate_k8s_api_rc \u003d\u003e create_k8s_api (once all the objects from bay patches are merged in. I have a bug opened for the same)\n\nThe reason why I need to have \n\ncreate_k8s_api_rc \u003d\u003e For RC\ncreate_k8s_api \u003d\u003e For service/pods is\n\ncreate_k8s_api_rc take context and bay_uuid\n\nwhere as create_k8s_api takes context and bay obj\n\nIf I had to keep same aPI (create_k8s_api) for RC/service/pod the unit test for RC would never have passed. Other option I would have to do to get it working is to make all the changes for all the k8s objects as part of same patch (which would be a 2100 line patch; would be hard to review) and hence after discussing with hongbin on IRC I took this approach.\n\n\nSo in short\n\n#1. create_k8s_api_rc is placeholder\n\n#2. It will be renamed to create_k8s_api once all the object from bay patches are checked in. Alongwith it the associated code introduced in magnum/conductor/k8s_api (as part of this patch and corresponding k8s object patches for objects from bay) will be removed. I have opened a seperate bug (https://bugs.launchpad.net/magnum/+bug/1502367) to track it.\n\nHTH","commit_id":"b6033363cbf50212ec2f9141c6efe9613b3cb03e"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"79a3329871e8f879b23e2c9c0f04d1afa3417a49","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                                      cert_file\u003dself.cert_file.name,"},{"line_number":149,"context_line":"                                      ca_certs\u003dself.ca_file.name)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        super(K8sAPI, self).__init__(client)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def _create_certificate_files(self, bay):"},{"line_number":154,"context_line":"        \"\"\"Read certificate and key for a bay and stores in files."}],"source_content_type":"text/x-python","patch_set":26,"id":"fa80f949_2a2a377f","line":151,"updated":"2015-11-04 16:31:31.000000000","message":"s/K8sAPI_RC/K8sAPI/","commit_id":"105cf72535e83e719d80906173f3ffe545b4859f"}],"magnum/conductor/utils.py":[{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"9e9c371650c8ded94cea2c9b691ccc2dd17e8ab6","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from magnum.common import clients"},{"line_number":16,"context_line":"from magnum.objects import bay"},{"line_number":17,"context_line":"from magnum.objects import baymodel"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"5a2ca52d_24aa4071","line":15,"updated":"2015-10-15 03:17:43.000000000","message":"Also for this file, I aslo checked \nhttps://review.openstack.org/#/c/223367/14/magnum/conductor/utils.py\n\nhas same change, I suggest you have another patch depend on that, instead of several different patches with same change.","commit_id":"b6033363cbf50212ec2f9141c6efe9613b3cb03e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"738b7d999208951ad192f4e185280e65b8e34ef0","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from magnum.common import clients"},{"line_number":16,"context_line":"from magnum.objects import bay"},{"line_number":17,"context_line":"from magnum.objects import baymodel"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"5a2ca52d_91a80f8f","line":15,"in_reply_to":"5a2ca52d_24aa4071","updated":"2015-10-15 17:50:00.000000000","message":"I will rebase it when one of the patches merges. I initially went the dependency route and had a hard time managing them; hence followed this route.\n\nOnce one of these objects from bay patch is merged in I will need to rebase once and the other 2 objects from bay patches should have the change.","commit_id":"b6033363cbf50212ec2f9141c6efe9613b3cb03e"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"6daeb0e99e93784a3396331ecbae1e53d5d323ac","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from magnum.common import clients"},{"line_number":16,"context_line":"from magnum.objects import bay"},{"line_number":17,"context_line":"from magnum.objects import baymodel"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"3a29b11f_442181fa","line":15,"in_reply_to":"5a2ca52d_91a80f8f","updated":"2015-10-20 10:10:31.000000000","message":"OK","commit_id":"b6033363cbf50212ec2f9141c6efe9613b3cb03e"}],"magnum/objects/replicationcontroller.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"a13bf5a694269dc24cb209c1461679cdbf07e736","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        :returns: a :class:`ReplicationController` object."},{"line_number":91,"context_line":"        \"\"\""},{"line_number":92,"context_line":"        k8s_api \u003d k8s.create_k8s_api(context, bay_uuid)"},{"line_number":93,"context_line":"        try:"},{"line_number":94,"context_line":"            resp \u003d k8s_api.listReplicationController(namespaces\u003d\u0027default\u0027)"},{"line_number":95,"context_line":"        except error.HTTPError as err:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_019f2951","line":92,"updated":"2015-09-09 03:33:34.000000000","message":"Don\u0027t like to call k8s_api in objects. Objects are used to send python objects via PRC for serialization/deserialization . Calling k8s API is anti-pattern.","commit_id":"493a3cb16861a25663e236d21394f9c4b33cd25c"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"26db62c4f7870e0ce87094b96faef012fb2f0899","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        \"\"\""},{"line_number":76,"context_line":"        db_rc \u003d cls.dbapi.get_rc_by_id(context, rc_id)"},{"line_number":77,"context_line":"        rc \u003d ReplicationController._from_db_object(cls(context), db_rc)"},{"line_number":78,"context_line":"        return rc"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @base.remotable_classmethod"},{"line_number":81,"context_line":"    def get_by_uuid(cls, context, uuid, bay_uuid, k8s_api):"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_ee35c2f6","line":78,"updated":"2015-09-11 18:58:31.000000000","message":"Line 47 - 78 should be removed.","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"99a5d99997233a90f45171e38a25e96ae62176b3","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        \"\"\""},{"line_number":76,"context_line":"        db_rc \u003d cls.dbapi.get_rc_by_id(context, rc_id)"},{"line_number":77,"context_line":"        rc \u003d ReplicationController._from_db_object(cls(context), db_rc)"},{"line_number":78,"context_line":"        return rc"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @base.remotable_classmethod"},{"line_number":81,"context_line":"    def get_by_uuid(cls, context, uuid, bay_uuid, k8s_api):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_9705a5c3","line":78,"in_reply_to":"da20952f_ee35c2f6","updated":"2015-09-15 03:23:53.000000000","message":"Done ! :)","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"26db62c4f7870e0ce87094b96faef012fb2f0899","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        rc \u003d ReplicationController._from_db_object(cls(context), db_rc)"},{"line_number":78,"context_line":"        return rc"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @base.remotable_classmethod"},{"line_number":81,"context_line":"    def get_by_uuid(cls, context, uuid, bay_uuid, k8s_api):"},{"line_number":82,"context_line":"        \"\"\"Find a ReplicationController based on uuid and return"},{"line_number":83,"context_line":"        a :class:`ReplicationController` object."}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_ce179e52","line":80,"updated":"2015-09-11 18:58:31.000000000","message":"I guess this is not remotable anymore.","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"99a5d99997233a90f45171e38a25e96ae62176b3","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        rc \u003d ReplicationController._from_db_object(cls(context), db_rc)"},{"line_number":78,"context_line":"        return rc"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @base.remotable_classmethod"},{"line_number":81,"context_line":"    def get_by_uuid(cls, context, uuid, bay_uuid, k8s_api):"},{"line_number":82,"context_line":"        \"\"\"Find a ReplicationController based on uuid and return"},{"line_number":83,"context_line":"        a :class:`ReplicationController` object."}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_37f7f9d4","line":80,"in_reply_to":"da20952f_ce179e52","updated":"2015-09-15 03:23:53.000000000","message":"I will talk to you tommorow or someone from oslo versioned objects and get back. Just to be 100% sure on this.","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":15967,"name":"vikas choudhary","email":"choudharyvikas16@gmail.com","username":"vikaschoudhary16"},"change_message_id":"fdbdf82017a2271f7b1e366053b86cd8030a4c23","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        return rc"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @base.remotable_classmethod"},{"line_number":81,"context_line":"    def get_by_uuid(cls, context, uuid, bay_uuid, k8s_api):"},{"line_number":82,"context_line":"        \"\"\"Find a ReplicationController based on uuid and return"},{"line_number":83,"context_line":"        a :class:`ReplicationController` object."},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_a468e0bb","line":81,"updated":"2015-09-14 08:41:41.000000000","message":"As this file represents magnum db related apis, how about moving this api to k8s_conductor.py?","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"99a5d99997233a90f45171e38a25e96ae62176b3","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        return rc"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @base.remotable_classmethod"},{"line_number":81,"context_line":"    def get_by_uuid(cls, context, uuid, bay_uuid, k8s_api):"},{"line_number":82,"context_line":"        \"\"\"Find a ReplicationController based on uuid and return"},{"line_number":83,"context_line":"        a :class:`ReplicationController` object."},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_d71a3d17","line":81,"in_reply_to":"ba15a1d1_a468e0bb","updated":"2015-09-15 03:23:53.000000000","message":"Not sure if we want to do that. Would prefer to keep the code structure same and not to disturb it at this moment.","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":15967,"name":"vikas choudhary","email":"choudharyvikas16@gmail.com","username":"vikaschoudhary16"},"change_message_id":"fdbdf82017a2271f7b1e366053b86cd8030a4c23","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                return rc_obj"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @base.remotable_classmethod"},{"line_number":114,"context_line":"    def get_by_name(cls, context, name, bay_uuid, k8s_api):"},{"line_number":115,"context_line":"        \"\"\"Find a ReplicationController based on name and return"},{"line_number":116,"context_line":"        a :class:`ReplicationController` object."},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_845fdc0d","line":114,"updated":"2015-09-14 08:41:41.000000000","message":"same as above","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"99a5d99997233a90f45171e38a25e96ae62176b3","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                return rc_obj"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @base.remotable_classmethod"},{"line_number":114,"context_line":"    def get_by_name(cls, context, name, bay_uuid, k8s_api):"},{"line_number":115,"context_line":"        \"\"\"Find a ReplicationController based on name and return"},{"line_number":116,"context_line":"        a :class:`ReplicationController` object."},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_57ddcd40","line":114,"in_reply_to":"ba15a1d1_845fdc0d","updated":"2015-09-15 03:23:53.000000000","message":"Please see my reply above.","commit_id":"5aa5b7a32c0a4dc1cde023651b77d4caccf899d6"},{"author":{"_account_id":15967,"name":"vikas choudhary","email":"choudharyvikas16@gmail.com","username":"vikaschoudhary16"},"change_message_id":"5fa74ec9713b94413270c8e146308fb02da6b1af","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    }"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @base.remotable_classmethod"},{"line_number":48,"context_line":"    def get_by_uuid(cls, context, uuid, bay_uuid, k8s_api):"},{"line_number":49,"context_line":"        \"\"\"Find a ReplicationController based on uuid and return"},{"line_number":50,"context_line":"        a :class:`ReplicationController` object."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba15a1d1_75e6ff17","line":48,"updated":"2015-09-19 06:59:39.000000000","message":"Apis in this file are intended to query magnum db. Instead of passing k8s_api here, it will be better to write a new api in k8s_conductor.py itself","commit_id":"4ceb2c1969a14bb308c3f018a70659ae852a31ed"},{"author":{"_account_id":15967,"name":"vikas choudhary","email":"choudharyvikas16@gmail.com","username":"vikaschoudhary16"},"change_message_id":"5fa74ec9713b94413270c8e146308fb02da6b1af","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                return rc_obj"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @base.remotable_classmethod"},{"line_number":81,"context_line":"    def get_by_name(cls, context, name, bay_uuid, k8s_api):"},{"line_number":82,"context_line":"        \"\"\"Find a ReplicationController based on name and return"},{"line_number":83,"context_line":"        a :class:`ReplicationController` object."},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba15a1d1_f5b8cfea","line":81,"updated":"2015-09-19 06:59:39.000000000","message":"same as above","commit_id":"4ceb2c1969a14bb308c3f018a70659ae852a31ed"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"e5b5023b1d2c50759716fba19f54a9a19d4d3e2c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                rc[\u0027replicas\u0027] \u003d entry.status.replicas"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"                rc_obj \u003d ReplicationController(context, **rc)"},{"line_number":75,"context_line":"                return rc_obj"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @base.remotable_classmethod"},{"line_number":78,"context_line":"    def get_by_name(cls, context, name, bay_uuid, k8s_api):"}],"source_content_type":"text/x-python","patch_set":19,"id":"7a2fa921_1bb82a29","line":75,"updated":"2015-10-11 01:04:07.000000000","message":"@Vilobh, in my understanding, if the k8s_api.list_namespaced_replication_controller(namespace\u003d\u0027default\u0027) has no rc, then the resp should be empty but not exception, right? Please correct me if I\u0027m wrong. \n\nAnother point is that if the k8s can return some rcs, but if neither of the rcs match the uuid, then this API will be failed.","commit_id":"20d954ac7d20fc703725e3a2a2affa2c87836a21"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"74550f515f4693e7b47368e9affe04a247e71980","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                rc[\u0027replicas\u0027] \u003d entry.status.replicas"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"                rc_obj \u003d ReplicationController(context, **rc)"},{"line_number":75,"context_line":"                return rc_obj"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @base.remotable_classmethod"},{"line_number":78,"context_line":"    def get_by_name(cls, context, name, bay_uuid, k8s_api):"}],"source_content_type":"text/x-python","patch_set":19,"id":"7a2fa921_ddee03b4","line":75,"in_reply_to":"7a2fa921_1bb82a29","updated":"2015-10-12 17:48:19.000000000","message":"Agree. I missed that. I have included it as part of next patch. \n\nThanks Jay for this suggestion.","commit_id":"20d954ac7d20fc703725e3a2a2affa2c87836a21"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"79a3329871e8f879b23e2c9c0f04d1afa3417a49","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        rc[\u0027name\u0027] \u003d resp.metadata.name"},{"line_number":106,"context_line":"        rc[\u0027project_id\u0027] \u003d context.project_id"},{"line_number":107,"context_line":"        rc[\u0027user_id\u0027] \u003d context.user_id"},{"line_number":108,"context_line":"        rc[\u0027images\u0027] \u003d resp.items[0].spec.template.spec.containers.image"},{"line_number":109,"context_line":"        rc[\u0027bay_uuid\u0027] \u003d bay_uuid"},{"line_number":110,"context_line":"        rc[\u0027labels\u0027] \u003d resp.metadata.labels"},{"line_number":111,"context_line":"        rc[\u0027replicas\u0027] \u003d resp.status.replicas"}],"source_content_type":"text/x-python","patch_set":26,"id":"fa80f949_5035ecd7","line":108,"updated":"2015-11-04 16:31:31.000000000","message":"Here gave me an error. It should be:\n\nrc[\u0027images\u0027] \u003d [c.image for c in resp.spec.template.spec.containers]","commit_id":"105cf72535e83e719d80906173f3ffe545b4859f"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"79a3329871e8f879b23e2c9c0f04d1afa3417a49","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        rc[\u0027user_id\u0027] \u003d context.user_id"},{"line_number":108,"context_line":"        rc[\u0027images\u0027] \u003d resp.items[0].spec.template.spec.containers.image"},{"line_number":109,"context_line":"        rc[\u0027bay_uuid\u0027] \u003d bay_uuid"},{"line_number":110,"context_line":"        rc[\u0027labels\u0027] \u003d resp.metadata.labels"},{"line_number":111,"context_line":"        rc[\u0027replicas\u0027] \u003d resp.status.replicas"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        rc_obj \u003d ReplicationController(context, **rc)"}],"source_content_type":"text/x-python","patch_set":26,"id":"fa80f949_b092189e","line":110,"updated":"2015-11-04 16:31:31.000000000","message":"In the new image, \u0027resp.metadata.labels\u0027 is a str. You need to convert it to dict first.","commit_id":"105cf72535e83e719d80906173f3ffe545b4859f"}]}
