)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"23ed03f1f211ad2f086bc4e48e6cb074c0a7cce3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"da4df55a_a9035672","line":14,"updated":"2016-12-23 01:06:24.000000000","message":"You need a Depends-On header to your client patch for the DSVM gate test to pass,\n\nhttps://review.openstack.org/#/c/396245/","commit_id":"e04dc5eec2030d8c1816a3844d103305efeb927c"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"6afaff65f4da9dc15b472c316c679532b0c0e6e7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Andy Yan \u003cyanchao3@lenovo.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-01-06 08:39:56 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove infra and mgmt parsing logic from API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch removes the logic of fetching infra and mgmt driver information"},{"line_number":10,"context_line":"from API and storing it in DB."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"ba5201f7_f43914a5","line":7,"range":{"start_line":7,"start_character":22,"end_line":7,"end_character":29},"updated":"2017-01-06 22:54:52.000000000","message":"passing","commit_id":"267ba6e55ae5ae3a4e10220551f4d5360be71549"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"094d11257b0470dd160f0a0b8b578d44f8c60f0e","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Iccf5ecf016fb7f32e8e3d7fdc4f204bb58bee670"},{"line_number":13,"context_line":"Partial-Bug: #1630936"},{"line_number":14,"context_line":"Depends-On: I4684e69b8993e6c35503317503dd73e2c13f44dd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"ba5201f7_74a604af","line":14,"range":{"start_line":14,"start_character":1,"end_line":14,"end_character":53},"updated":"2017-01-06 22:56:44.000000000","message":"remove it since it is merged.","commit_id":"267ba6e55ae5ae3a4e10220551f4d5360be71549"}],"tacker/db/vnfm/vnfm_db.py":[{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"f8f60f92f84c65d69db7767b1f03f422ce8b80bd","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    # driver to create hosting vnf. e.g. noop, heat, etc..."},{"line_number":63,"context_line":"    infra_driver \u003d sa.Column(sa.String(255))"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    # driver to communicate with service managment"},{"line_number":66,"context_line":"    mgmt_driver \u003d sa.Column(sa.String(255))"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    # (key, value) pair to spin up"},{"line_number":69,"context_line":"    attributes \u003d orm.relationship(\u0027VNFDAttribute\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_3940b556","side":"PARENT","line":66,"range":{"start_line":65,"start_character":0,"end_line":66,"end_character":43},"updated":"2016-12-12 23:20:08.000000000","message":"Shouldn\u0027t this go as well?","commit_id":"0de40f7328c8c0ed0761cab752dbb10636ab08a3"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"a509457bcb73880c25b10b569ead530ab99034b7","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    # driver to create hosting vnf. e.g. noop, heat, etc..."},{"line_number":63,"context_line":"    infra_driver \u003d sa.Column(sa.String(255))"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    # driver to communicate with service managment"},{"line_number":66,"context_line":"    mgmt_driver \u003d sa.Column(sa.String(255))"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    # (key, value) pair to spin up"},{"line_number":69,"context_line":"    attributes \u003d orm.relationship(\u0027VNFDAttribute\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_26c4ed3e","side":"PARENT","line":66,"range":{"start_line":65,"start_character":0,"end_line":66,"end_character":43},"in_reply_to":"1a6eadb0_26740434","updated":"2016-12-19 21:25:33.000000000","message":"Sounds good. Let\u0027s keep it.","commit_id":"0de40f7328c8c0ed0761cab752dbb10636ab08a3"},{"author":{"_account_id":20866,"name":"Janki Chhatbar","email":"jchhatba@redhat.com","username":"janki"},"change_message_id":"3977c01fac021520ef21746b7fa949604431cb04","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    # driver to create hosting vnf. e.g. noop, heat, etc..."},{"line_number":63,"context_line":"    infra_driver \u003d sa.Column(sa.String(255))"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    # driver to communicate with service managment"},{"line_number":66,"context_line":"    mgmt_driver \u003d sa.Column(sa.String(255))"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    # (key, value) pair to spin up"},{"line_number":69,"context_line":"    attributes \u003d orm.relationship(\u0027VNFDAttribute\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_26740434","side":"PARENT","line":66,"range":{"start_line":65,"start_character":0,"end_line":66,"end_character":43},"in_reply_to":"1a6eadb0_3940b556","updated":"2016-12-13 08:59:38.000000000","message":"the value is derived from template [1] and stored in VNFD DB because it is again required while VNF creation [2], the sequence of functions being called\ncreate_vnf -\u003e _create_vnf -\u003e mgmt_create_pre -\u003e _invoke -\u003e _mgmt_driver_name in plugin.py\n\n[1]. https://github.com/openstack/tacker/blob/master/tacker/vnfm/plugin.py#L210\n[2]. https://github.com/openstack/tacker/blob/master/tacker/db/vnfm/vnfm_db.py#L214","commit_id":"0de40f7328c8c0ed0761cab752dbb10636ab08a3"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"d5cbda34c9466ff8518000f5e91d3370d99be878","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    # In future, single service VM may accomodate multiple services."},{"line_number":60,"context_line":"    service_types \u003d orm.relationship(\u0027ServiceType\u0027, backref\u003d\u0027vnfd\u0027)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    # driver to communicate with service managment"},{"line_number":63,"context_line":"    mgmt_driver \u003d sa.Column(sa.String(255))"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    # (key, value) pair to spin up"},{"line_number":66,"context_line":"    attributes \u003d orm.relationship(\u0027VNFDAttribute\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5201f7_fda60c52","line":63,"range":{"start_line":62,"start_character":3,"end_line":63,"end_character":43},"updated":"2017-01-10 07:07:35.000000000","message":"I think we can remove it too.","commit_id":"267ba6e55ae5ae3a4e10220551f4d5360be71549"},{"author":{"_account_id":20866,"name":"Janki Chhatbar","email":"jchhatba@redhat.com","username":"janki"},"change_message_id":"135dd701be45b00b6d92808b752a75dbbda1109f","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    # In future, single service VM may accomodate multiple services."},{"line_number":60,"context_line":"    service_types \u003d orm.relationship(\u0027ServiceType\u0027, backref\u003d\u0027vnfd\u0027)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    # driver to communicate with service managment"},{"line_number":63,"context_line":"    mgmt_driver \u003d sa.Column(sa.String(255))"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    # (key, value) pair to spin up"},{"line_number":66,"context_line":"    attributes \u003d orm.relationship(\u0027VNFDAttribute\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5201f7_01f8ca7b","line":63,"range":{"start_line":62,"start_character":3,"end_line":63,"end_character":43},"in_reply_to":"ba5201f7_fda60c52","updated":"2017-01-10 08:23:45.000000000","message":"gongysh, mgmt_driver is required by other functions like \"_invoke\". Hence it cannot be removed. I have explained it in reply to Sridhar\u0027s comment earlier.","commit_id":"267ba6e55ae5ae3a4e10220551f4d5360be71549"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"6afaff65f4da9dc15b472c316c679532b0c0e6e7","unresolved":false,"context_lines":[{"line_number":181,"context_line":"                vnfd.service_types)"},{"line_number":182,"context_line":"        }"},{"line_number":183,"context_line":"        key_list \u003d (\u0027id\u0027, \u0027tenant_id\u0027, \u0027name\u0027, \u0027description\u0027,"},{"line_number":184,"context_line":"                    \u0027mgmt_driver\u0027, \u0027created_at\u0027, \u0027updated_at\u0027)"},{"line_number":185,"context_line":"        res.update((key, vnfd[key]) for key in key_list)"},{"line_number":186,"context_line":"        return self._fields(res, fields)"},{"line_number":187,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5201f7_94e5280a","line":184,"range":{"start_line":184,"start_character":20,"end_line":184,"end_character":33},"updated":"2017-01-06 22:54:52.000000000","message":"why keep mgmt_driver?","commit_id":"267ba6e55ae5ae3a4e10220551f4d5360be71549"},{"author":{"_account_id":20866,"name":"Janki Chhatbar","email":"jchhatba@redhat.com","username":"janki"},"change_message_id":"67333f55c2ad53b9df41f3a7b55e76e867b2e63b","unresolved":false,"context_lines":[{"line_number":181,"context_line":"                vnfd.service_types)"},{"line_number":182,"context_line":"        }"},{"line_number":183,"context_line":"        key_list \u003d (\u0027id\u0027, \u0027tenant_id\u0027, \u0027name\u0027, \u0027description\u0027,"},{"line_number":184,"context_line":"                    \u0027mgmt_driver\u0027, \u0027created_at\u0027, \u0027updated_at\u0027)"},{"line_number":185,"context_line":"        res.update((key, vnfd[key]) for key in key_list)"},{"line_number":186,"context_line":"        return self._fields(res, fields)"},{"line_number":187,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5201f7_7dce9cb5","line":184,"range":{"start_line":184,"start_character":20,"end_line":184,"end_character":33},"in_reply_to":"ba5201f7_94e5280a","updated":"2017-01-10 06:42:17.000000000","message":"keeping it here beacuse mgmt_driver needs to be stored in DB and is used in other \"_invoke\" functions too.","commit_id":"267ba6e55ae5ae3a4e10220551f4d5360be71549"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"6afaff65f4da9dc15b472c316c679532b0c0e6e7","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        LOG.debug(_(\u0027vnfd %s\u0027), vnfd)"},{"line_number":216,"context_line":"        tenant_id \u003d self._get_tenant_id_for_create(context, vnfd)"},{"line_number":217,"context_line":"        service_types \u003d vnfd.get(\u0027service_types\u0027)"},{"line_number":218,"context_line":"        mgmt_driver \u003d vnfd.get(\u0027mgmt_driver\u0027)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        if (not attributes.is_attr_set(service_types)):"},{"line_number":221,"context_line":"            LOG.debug(_(\u0027service types unspecified\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5201f7_f4bcb4dd","line":218,"range":{"start_line":218,"start_character":8,"end_line":218,"end_character":45},"updated":"2017-01-06 22:54:52.000000000","message":"why this? where is it come from?","commit_id":"267ba6e55ae5ae3a4e10220551f4d5360be71549"},{"author":{"_account_id":20866,"name":"Janki Chhatbar","email":"jchhatba@redhat.com","username":"janki"},"change_message_id":"67333f55c2ad53b9df41f3a7b55e76e867b2e63b","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        LOG.debug(_(\u0027vnfd %s\u0027), vnfd)"},{"line_number":216,"context_line":"        tenant_id \u003d self._get_tenant_id_for_create(context, vnfd)"},{"line_number":217,"context_line":"        service_types \u003d vnfd.get(\u0027service_types\u0027)"},{"line_number":218,"context_line":"        mgmt_driver \u003d vnfd.get(\u0027mgmt_driver\u0027)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        if (not attributes.is_attr_set(service_types)):"},{"line_number":221,"context_line":"            LOG.debug(_(\u0027service types unspecified\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5201f7_9ddc2076","line":218,"range":{"start_line":218,"start_character":8,"end_line":218,"end_character":45},"in_reply_to":"ba5201f7_f4bcb4dd","updated":"2017-01-10 06:42:17.000000000","message":"gmt_driver is derived from template at [1].\n\n\n[1]. https://github.com/openstack/tacker/blob/master/tacker/vnfm/plugin.py#L174","commit_id":"267ba6e55ae5ae3a4e10220551f4d5360be71549"}],"tacker/extensions/vnfm.py":[{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"f8f60f92f84c65d69db7767b1f03f422ce8b80bd","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    message \u003d _(\u0027infra driver is not specified\u0027)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class MGMTDriverNotSpecified(exceptions.InvalidInput):"},{"line_number":39,"context_line":"    message \u003d _(\u0027mgmt driver is not specified\u0027)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class MultipleMGMTDriversSpecified(exceptions.InvalidInput):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_f9671d23","side":"PARENT","line":39,"range":{"start_line":38,"start_character":0,"end_line":39,"end_character":47},"updated":"2016-12-12 23:20:08.000000000","message":"This can be removed as well.","commit_id":"0de40f7328c8c0ed0761cab752dbb10636ab08a3"},{"author":{"_account_id":20866,"name":"Janki Chhatbar","email":"jchhatba@redhat.com","username":"janki"},"change_message_id":"3977c01fac021520ef21746b7fa949604431cb04","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    message \u003d _(\u0027infra driver is not specified\u0027)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class MGMTDriverNotSpecified(exceptions.InvalidInput):"},{"line_number":39,"context_line":"    message \u003d _(\u0027mgmt driver is not specified\u0027)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class MultipleMGMTDriversSpecified(exceptions.InvalidInput):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_46dd8013","side":"PARENT","line":39,"range":{"start_line":38,"start_character":0,"end_line":39,"end_character":47},"in_reply_to":"1a6eadb0_f9671d23","updated":"2016-12-13 08:59:38.000000000","message":"Will remove this.","commit_id":"0de40f7328c8c0ed0761cab752dbb10636ab08a3"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"f8f60f92f84c65d69db7767b1f03f422ce8b80bd","unresolved":false,"context_lines":[{"line_number":211,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":212,"context_line":"            \u0027default\u0027: attr.ATTR_NOT_SPECIFIED,"},{"line_number":213,"context_line":"        },"},{"line_number":214,"context_line":"        \u0027mgmt_driver\u0027: {"},{"line_number":215,"context_line":"            \u0027allow_post\u0027: False,"},{"line_number":216,"context_line":"            \u0027allow_put\u0027: False,"},{"line_number":217,"context_line":"            \u0027validate\u0027: {\u0027type:string\u0027: None},"},{"line_number":218,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":219,"context_line":"            \u0027default\u0027: \"\","},{"line_number":220,"context_line":"        },"},{"line_number":221,"context_line":"        \u0027attributes\u0027: {"},{"line_number":222,"context_line":"            \u0027allow_post\u0027: True,"},{"line_number":223,"context_line":"            \u0027allow_put\u0027: False,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_597731d4","line":220,"range":{"start_line":214,"start_character":0,"end_line":220,"end_character":10},"updated":"2016-12-12 23:20:08.000000000","message":"This should go as well ?","commit_id":"940ddfb3d6233d537088bbded3b4a329f586f342"},{"author":{"_account_id":20866,"name":"Janki Chhatbar","email":"jchhatba@redhat.com","username":"janki"},"change_message_id":"3977c01fac021520ef21746b7fa949604431cb04","unresolved":false,"context_lines":[{"line_number":211,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":212,"context_line":"            \u0027default\u0027: attr.ATTR_NOT_SPECIFIED,"},{"line_number":213,"context_line":"        },"},{"line_number":214,"context_line":"        \u0027mgmt_driver\u0027: {"},{"line_number":215,"context_line":"            \u0027allow_post\u0027: False,"},{"line_number":216,"context_line":"            \u0027allow_put\u0027: False,"},{"line_number":217,"context_line":"            \u0027validate\u0027: {\u0027type:string\u0027: None},"},{"line_number":218,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":219,"context_line":"            \u0027default\u0027: \"\","},{"line_number":220,"context_line":"        },"},{"line_number":221,"context_line":"        \u0027attributes\u0027: {"},{"line_number":222,"context_line":"            \u0027allow_post\u0027: True,"},{"line_number":223,"context_line":"            \u0027allow_put\u0027: False,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_a6b574ce","line":220,"range":{"start_line":214,"start_character":0,"end_line":220,"end_character":10},"in_reply_to":"1a6eadb0_597731d4","updated":"2016-12-13 08:59:38.000000000","message":"If we dont want it to be displayed on client, can remove this.","commit_id":"940ddfb3d6233d537088bbded3b4a329f586f342"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"a509457bcb73880c25b10b569ead530ab99034b7","unresolved":false,"context_lines":[{"line_number":211,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":212,"context_line":"            \u0027default\u0027: attr.ATTR_NOT_SPECIFIED,"},{"line_number":213,"context_line":"        },"},{"line_number":214,"context_line":"        \u0027mgmt_driver\u0027: {"},{"line_number":215,"context_line":"            \u0027allow_post\u0027: False,"},{"line_number":216,"context_line":"            \u0027allow_put\u0027: False,"},{"line_number":217,"context_line":"            \u0027validate\u0027: {\u0027type:string\u0027: None},"},{"line_number":218,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":219,"context_line":"            \u0027default\u0027: \"\","},{"line_number":220,"context_line":"        },"},{"line_number":221,"context_line":"        \u0027attributes\u0027: {"},{"line_number":222,"context_line":"            \u0027allow_post\u0027: True,"},{"line_number":223,"context_line":"            \u0027allow_put\u0027: False,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_e6f7558a","line":220,"range":{"start_line":214,"start_character":0,"end_line":220,"end_character":10},"in_reply_to":"1a6eadb0_a6b574ce","updated":"2016-12-19 21:25:33.000000000","message":"yes, let\u0027s not display the mgmt_driver in the API response. This mgmt_driver piece needs to be enhanced to be more per-VDU than the current per-VNF.","commit_id":"940ddfb3d6233d537088bbded3b4a329f586f342"}],"tacker/releasenotes/notes/remove-passing-infra-and-mgmt-driver-in-api-954fe28b1294a2d6.yaml":[{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"6afaff65f4da9dc15b472c316c679532b0c0e6e7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Removed passing infa and mgmt driver in API."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"ba5201f7_b49eac60","line":3,"range":{"start_line":3,"start_character":3,"end_line":3,"end_character":48},"updated":"2017-01-06 22:54:52.000000000","message":"to state:\ninfra driver now is from corresponding VIM, and mgmt driver is in TOSCA template.","commit_id":"267ba6e55ae5ae3a4e10220551f4d5360be71549"}],"tacker/vnfm/plugin.py":[{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"384a047b8a2d4dbaec659a5d4e9da81219703b91","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import eventlet"},{"line_number":22,"context_line":"from oslo_config import cfg"},{"line_number":23,"context_line":"from oslo_log import log as logging"},{"line_number":24,"context_line":"from oslo_log import versionutils"},{"line_number":25,"context_line":"from oslo_utils import excutils"},{"line_number":26,"context_line":"from toscaparser.tosca_template import ToscaTemplate"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_4b018869","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":33},"updated":"2017-01-06 00:18:15.000000000","message":"Please remove this line. pep8 is failing due to this.","commit_id":"75b5a3c58114d6ce34b127358b261cf943e426a4"}]}
