)]}'
{"cyborg/agent/resource_tracker.py":[{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"4fe6249ea4bb2dbbe31365aea813bef9c270a3a8","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"# need to change the driver field name"},{"line_number":38,"context_line":"DEPLOYABLE_HOST_MAPS \u003d {\"assignable\": \"assignable\","},{"line_number":39,"context_line":"                        \"pcie_address\": \"devices\","},{"line_number":40,"context_line":"                        \"board\": \"product_id\","},{"line_number":41,"context_line":"                        \"type\": \"function\","},{"line_number":42,"context_line":"                        \"vendor\": \"vendor_id\","}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_b8262c67","line":39,"range":{"start_line":39,"start_character":24,"end_line":39,"end_character":38},"updated":"2018-07-24 07:42:56.000000000","message":"s/pcie_address/address","commit_id":"29648e5c1c6b6d2bff67dff13bfcd8056f35c76c"}],"cyborg/db/sqlalchemy/models.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"38a830495dbc8de043fa5bb1572aa7a796f88fcf","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                         ForeignKey(\u0027deployables.uuid\u0027), nullable\u003dTrue)"},{"line_number":95,"context_line":"    root_uuid \u003d Column(String(36),"},{"line_number":96,"context_line":"                       ForeignKey(\u0027deployables.uuid\u0027), nullable\u003dTrue)"},{"line_number":97,"context_line":"    address \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":98,"context_line":"    host \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":99,"context_line":"    board \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":100,"context_line":"    vendor \u003d Column(String(255), nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_9a9e0867","line":97,"updated":"2018-07-20 10:05:19.000000000","message":"What about to use two nullable fields:\n\n  pci_address \u003d Column(String(255), nullable\u003dTrue)\n  mdev_uuid \u003d Column(String(36), nullable\u003dTrue)\n\nSo based on the interface_type one or the other will be None. I\u0027m saying that because we don\u0027t know how devices could be identified in future, also that we have the fields well representing the data.","commit_id":"0dcabc122d8919c23a582c1a9b14c79eda2171d3"},{"author":{"_account_id":17813,"name":"wangzhh","email":"wzh_1993@126.com","username":"wangzhh"},"change_message_id":"45db68f23f421c22d8844e8a10f8271d27d57578","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                         ForeignKey(\u0027deployables.uuid\u0027), nullable\u003dTrue)"},{"line_number":95,"context_line":"    root_uuid \u003d Column(String(36),"},{"line_number":96,"context_line":"                       ForeignKey(\u0027deployables.uuid\u0027), nullable\u003dTrue)"},{"line_number":97,"context_line":"    address \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":98,"context_line":"    host \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":99,"context_line":"    board \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":100,"context_line":"    vendor \u003d Column(String(255), nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_693484fa","line":97,"in_reply_to":"5f7c97a3_9a9e0867","updated":"2018-07-20 14:24:22.000000000","message":"IMHO, it\u0027s not reasonable. Use these two fileds make it \"device specific\". We may maintain more and more xxx_address and xxx_uuid. We can use attribute table to deal with unknow type.\nThx.","commit_id":"0dcabc122d8919c23a582c1a9b14c79eda2171d3"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"38a830495dbc8de043fa5bb1572aa7a796f88fcf","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    vendor \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":101,"context_line":"    version \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":102,"context_line":"    type \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":103,"context_line":"    interface_type \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":104,"context_line":"    assignable \u003d Column(Boolean, nullable\u003dFalse)"},{"line_number":105,"context_line":"    instance_uuid \u003d Column(String(36), nullable\u003dTrue)"},{"line_number":106,"context_line":"    availability \u003d Column(String(255), nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_1a7bd828","line":103,"updated":"2018-07-20 10:05:19.000000000","message":"What bout to use an ENUM?","commit_id":"0dcabc122d8919c23a582c1a9b14c79eda2171d3"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"f0d4628b83479858671893e851b6ab9b99b68e3b","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    vendor \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":101,"context_line":"    version \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":102,"context_line":"    type \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":103,"context_line":"    interface_type \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":104,"context_line":"    assignable \u003d Column(Boolean, nullable\u003dFalse)"},{"line_number":105,"context_line":"    instance_uuid \u003d Column(String(36), nullable\u003dTrue)"},{"line_number":106,"context_line":"    availability \u003d Column(String(255), nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_b4f66c5d","line":103,"in_reply_to":"5f7c97a3_1a7bd828","updated":"2018-07-20 20:48:08.000000000","message":"I prefer to use String type tho, which will make the contents easier to read and cause fewer conflicts between types.","commit_id":"0dcabc122d8919c23a582c1a9b14c79eda2171d3"}],"cyborg/objects/deployable.py":[{"author":{"_account_id":17813,"name":"wangzhh","email":"wzh_1993@126.com","username":"wangzhh"},"change_message_id":"45db68f23f421c22d8844e8a10f8271d27d57578","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    fields \u003d {"},{"line_number":38,"context_line":"        \u0027id\u0027: object_fields.IntegerField(nullable\u003dFalse),"},{"line_number":39,"context_line":"        \u0027uuid\u0027: object_fields.UUIDField(nullable\u003dFalse),"},{"line_number":40,"context_line":"        \u0027name\u0027: object_fields.StringField(nullable\u003dFalse),"},{"line_number":41,"context_line":"        \u0027parent_uuid\u0027: object_fields.UUIDField(nullable\u003dTrue),"},{"line_number":42,"context_line":"        # parent_uuid refers to the id of the VF\u0027s parent node"},{"line_number":43,"context_line":"        \u0027root_uuid\u0027: object_fields.UUIDField(nullable\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_44a72f0a","side":"PARENT","line":40,"updated":"2018-07-20 14:24:22.000000000","message":"Delete here but left in the DB table. Could u explain it?","commit_id":"88b95ae654c9646aba5e64bc5793b06861e21f85"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"f0d4628b83479858671893e851b6ab9b99b68e3b","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        \u0027id\u0027: object_fields.IntegerField(nullable\u003dFalse),"},{"line_number":39,"context_line":"        \u0027uuid\u0027: object_fields.UUIDField(nullable\u003dFalse),"},{"line_number":40,"context_line":"        \u0027name\u0027: object_fields.StringField(nullable\u003dFalse),"},{"line_number":41,"context_line":"        \u0027parent_uuid\u0027: object_fields.UUIDField(nullable\u003dTrue),"},{"line_number":42,"context_line":"        # parent_uuid refers to the id of the VF\u0027s parent node"},{"line_number":43,"context_line":"        \u0027root_uuid\u0027: object_fields.UUIDField(nullable\u003dTrue),"},{"line_number":44,"context_line":"        # root_uuid refers to the id of the VF\u0027s root which has to be a PF"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_749214fe","side":"PARENT","line":41,"range":{"start_line":41,"start_character":9,"end_line":41,"end_character":20},"updated":"2018-07-20 20:48:08.000000000","message":"Don\u0027t remove this.. this is essential to NRP.","commit_id":"88b95ae654c9646aba5e64bc5793b06861e21f85"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"38a830495dbc8de043fa5bb1572aa7a796f88fcf","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    fields \u003d {"},{"line_number":38,"context_line":"        \u0027id\u0027: object_fields.IntegerField(nullable\u003dFalse),"},{"line_number":39,"context_line":"        \u0027uuid\u0027: object_fields.UUIDField(nullable\u003dFalse),"},{"line_number":40,"context_line":"        \u0027name\u0027: object_fields.StringField(nullable\u003dFalse),"},{"line_number":41,"context_line":"        \u0027parent_uuid\u0027: object_fields.UUIDField(nullable\u003dTrue),"},{"line_number":42,"context_line":"        # parent_uuid refers to the id of the VF\u0027s parent node"},{"line_number":43,"context_line":"        \u0027root_uuid\u0027: object_fields.UUIDField(nullable\u003dTrue),"},{"line_number":44,"context_line":"        # root_uuid refers to the id of the VF\u0027s root which has to be a PF"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_7aae8c80","side":"PARENT","line":41,"range":{"start_line":40,"start_character":1,"end_line":41,"end_character":62},"updated":"2018-07-20 10:05:19.000000000","message":"You removed that but that does not look to be mentioned on the commit message. why?","commit_id":"88b95ae654c9646aba5e64bc5793b06861e21f85"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"38a830495dbc8de043fa5bb1572aa7a796f88fcf","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        \u0027version\u0027: object_fields.StringField(nullable\u003dFalse),"},{"line_number":51,"context_line":"        \u0027type\u0027: object_fields.StringField(nullable\u003dFalse),"},{"line_number":52,"context_line":"        # type of deployable, e.g, pf/vf/*f"},{"line_number":53,"context_line":"        \u0027interface_type\u0027: object_fields.StringField(nullable\u003dFalse),"},{"line_number":54,"context_line":"        # interface to hypervisor(libvirt), e.g, pci/mdev..."},{"line_number":55,"context_line":"        \u0027assignable\u0027: object_fields.BooleanField(nullable\u003dFalse),"},{"line_number":56,"context_line":"        # identify if an accelerator is in use"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_9a8cc82e","line":53,"updated":"2018-07-20 10:05:19.000000000","message":"I would have used an enum","commit_id":"0dcabc122d8919c23a582c1a9b14c79eda2171d3"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"f0d4628b83479858671893e851b6ab9b99b68e3b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        \u0027version\u0027: object_fields.StringField(nullable\u003dFalse),"},{"line_number":51,"context_line":"        \u0027type\u0027: object_fields.StringField(nullable\u003dFalse),"},{"line_number":52,"context_line":"        # type of deployable, e.g, pf/vf/*f"},{"line_number":53,"context_line":"        \u0027interface_type\u0027: object_fields.StringField(nullable\u003dFalse),"},{"line_number":54,"context_line":"        # interface to hypervisor(libvirt), e.g, pci/mdev..."},{"line_number":55,"context_line":"        \u0027assignable\u0027: object_fields.BooleanField(nullable\u003dFalse),"},{"line_number":56,"context_line":"        # identify if an accelerator is in use"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_f485c4ae","line":53,"in_reply_to":"5f7c97a3_24da3378","updated":"2018-07-20 20:48:08.000000000","message":"I prefer to use String type tho, which will make the contents easier to read and cause fewer conflicts between types.","commit_id":"0dcabc122d8919c23a582c1a9b14c79eda2171d3"},{"author":{"_account_id":17813,"name":"wangzhh","email":"wzh_1993@126.com","username":"wangzhh"},"change_message_id":"45db68f23f421c22d8844e8a10f8271d27d57578","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        \u0027version\u0027: object_fields.StringField(nullable\u003dFalse),"},{"line_number":51,"context_line":"        \u0027type\u0027: object_fields.StringField(nullable\u003dFalse),"},{"line_number":52,"context_line":"        # type of deployable, e.g, pf/vf/*f"},{"line_number":53,"context_line":"        \u0027interface_type\u0027: object_fields.StringField(nullable\u003dFalse),"},{"line_number":54,"context_line":"        # interface to hypervisor(libvirt), e.g, pci/mdev..."},{"line_number":55,"context_line":"        \u0027assignable\u0027: object_fields.BooleanField(nullable\u003dFalse),"},{"line_number":56,"context_line":"        # identify if an accelerator is in use"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_24da3378","line":53,"in_reply_to":"5f7c97a3_9a8cc82e","updated":"2018-07-20 14:24:22.000000000","message":"Agree.","commit_id":"0dcabc122d8919c23a582c1a9b14c79eda2171d3"}]}
