)]}'
{"tacker/db/db_sqlalchemy/api.py":[{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"2255224aff1083b94292f1be07456ef0ff760bc7","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    if read_deleted:"},{"line_number":40,"context_line":"        if \u0027no\u0027 \u003d\u003d read_deleted:"},{"line_number":41,"context_line":"            query_kwargs[\u0027deleted\u0027] \u003d False"},{"line_number":42,"context_line":"        elif \u0027only\u0027 \u003d\u003d read_deleted:"},{"line_number":43,"context_line":"            query_kwargs[\u0027deleted\u0027] \u003d True"},{"line_number":44,"context_line":"        elif \u0027yes\u0027 \u003d\u003d read_deleted:"},{"line_number":45,"context_line":"            pass"},{"line_number":46,"context_line":"        else:"},{"line_number":47,"context_line":"            raise ValueError(_(\"Unrecognized read_deleted value \u0027%s\u0027\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_b5915ff4","line":44,"range":{"start_line":42,"start_character":8,"end_line":44,"end_character":35},"updated":"2019-09-17 09:10:07.000000000","message":"Just a query:\nIs there any case where we needs to read deleted rows?\nIMO, ans is no. If so, why needs these check?","commit_id":"70a5a39c2c20dc12ad0c7f404e5a252a0198da5b"},{"author":{"_account_id":30650,"name":"nitin uikey","email":"nitin.uikey@nttdata.com","username":"nitin.uikey"},"change_message_id":"ba2c4af967dd21d0cb2960ca4671ba3d6c60d031","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    if read_deleted:"},{"line_number":40,"context_line":"        if \u0027no\u0027 \u003d\u003d read_deleted:"},{"line_number":41,"context_line":"            query_kwargs[\u0027deleted\u0027] \u003d False"},{"line_number":42,"context_line":"        elif \u0027only\u0027 \u003d\u003d read_deleted:"},{"line_number":43,"context_line":"            query_kwargs[\u0027deleted\u0027] \u003d True"},{"line_number":44,"context_line":"        elif \u0027yes\u0027 \u003d\u003d read_deleted:"},{"line_number":45,"context_line":"            pass"},{"line_number":46,"context_line":"        else:"},{"line_number":47,"context_line":"            raise ValueError(_(\"Unrecognized read_deleted value \u0027%s\u0027\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_4856432c","line":44,"range":{"start_line":42,"start_character":8,"end_line":44,"end_character":35},"in_reply_to":"3fa7e38b_b5915ff4","updated":"2019-09-18 02:54:50.000000000","message":"Yes. We need to read deleted row in case of periodic task, but there we are not using  model query, we will do that changes and upload new patch set.","commit_id":"70a5a39c2c20dc12ad0c7f404e5a252a0198da5b"}],"tacker/db/db_sqlalchemy/models.py":[{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"39131b2ad00d19dfaa6c23d4149e549d54051561","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        VnfArtifacts,"},{"line_number":139,"context_line":"        primaryjoin\u003d\u0027and_(VnfPackage.id \u003d\u003d \u0027"},{"line_number":140,"context_line":"                    \u0027VnfArtifacts.package_uuid)\u0027)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @property"},{"line_number":143,"context_line":"    def metadetails(self):"},{"line_number":144,"context_line":"        return {m.key: m.value for m in self._metadata}"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_55e96f7c","line":141,"updated":"2019-09-03 07:35:41.000000000","message":"missing relationship to VnfPackageVnfd.package_uuid?","commit_id":"18d82ef9174a7b5dd070f1e764fc284fb905a1bd"},{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"ad5c571efbd7330852f4f366c9ecd2afe6e952de","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    \"\"\"Contains all info about vnf packages.\"\"\""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    __tablename__ \u003d \u0027vnf_package_vnfd\u0027"},{"line_number":152,"context_line":"    package_uuid \u003d sa.Column(sa.String(36),"},{"line_number":153,"context_line":"                             sa.ForeignKey(\u0027vnf_packages.id\u0027),"},{"line_number":154,"context_line":"                             nullable\u003dFalse)"},{"line_number":155,"context_line":"    vnf_provider \u003d sa.Column(sa.String(255), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_14b0c78a","line":152,"range":{"start_line":152,"start_character":32,"end_line":152,"end_character":42},"updated":"2019-09-04 02:52:55.000000000","message":"According to the spec, this should be Integer.\nAnd also missing vnfd_id column.","commit_id":"18d82ef9174a7b5dd070f1e764fc284fb905a1bd"},{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"a371df128c7d0d9b40a42b18dd6451ee8f49c9b6","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    \"\"\"Contains all info about vnf packages.\"\"\""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    __tablename__ \u003d \u0027vnf_package_vnfd\u0027"},{"line_number":152,"context_line":"    package_uuid \u003d sa.Column(sa.String(36),"},{"line_number":153,"context_line":"                             sa.ForeignKey(\u0027vnf_packages.id\u0027),"},{"line_number":154,"context_line":"                             nullable\u003dFalse)"},{"line_number":155,"context_line":"    vnf_provider \u003d sa.Column(sa.String(255), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_d1d86080","line":152,"range":{"start_line":152,"start_character":32,"end_line":152,"end_character":42},"in_reply_to":"7faddb67_14b0c78a","updated":"2019-09-11 07:33:20.000000000","message":"sorry my mistake. please ignore this comment.","commit_id":"18d82ef9174a7b5dd070f1e764fc284fb905a1bd"},{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"4e6983a042cc901e8c9a4f10f31cac4e84603287","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    \"\"\"Contains all info about vnf packages software images.\"\"\""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    __tablename__ \u003d \u0027vnf_software_images\u0027"},{"line_number":55,"context_line":"    software_image_id \u003d sa.Column(sa.Integer, nullable\u003dFalse)"},{"line_number":56,"context_line":"    flavor_uuid \u003d sa.Column(sa.Integer, sa.ForeignKey(\u0027vnf_flavors.id\u0027),"},{"line_number":57,"context_line":"                          nullable\u003dFalse)"},{"line_number":58,"context_line":"    name \u003d sa.Column(sa.String(255), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_1095b240","line":55,"range":{"start_line":55,"start_character":37,"end_line":55,"end_character":44},"updated":"2019-09-10 05:02:23.000000000","message":"String(255)?","commit_id":"35d8e2a5ce181e56830ac6bd313ec1837161380a"},{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"4e6983a042cc901e8c9a4f10f31cac4e84603287","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    __tablename__ \u003d \u0027vnf_software_images\u0027"},{"line_number":55,"context_line":"    software_image_id \u003d sa.Column(sa.Integer, nullable\u003dFalse)"},{"line_number":56,"context_line":"    flavor_uuid \u003d sa.Column(sa.Integer, sa.ForeignKey(\u0027vnf_flavors.id\u0027),"},{"line_number":57,"context_line":"                          nullable\u003dFalse)"},{"line_number":58,"context_line":"    name \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":59,"context_line":"    provider \u003d sa.Column(sa.String(255), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_908a0219","line":56,"range":{"start_line":56,"start_character":31,"end_line":56,"end_character":38},"updated":"2019-09-10 05:02:23.000000000","message":"String(255)?","commit_id":"35d8e2a5ce181e56830ac6bd313ec1837161380a"},{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"4e6983a042cc901e8c9a4f10f31cac4e84603287","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"class VnfPackageVnfd(model_base.BASE, models.SoftDeleteMixin,"},{"line_number":99,"context_line":"                  models.TimestampMixin, models_v1.HasId):"},{"line_number":100,"context_line":"    \"\"\"Contains all info about vnf packages VNFD.\"\"\""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    __tablename__ \u003d \u0027vnf_package_vnfd\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_30c78e48","line":99,"range":{"start_line":99,"start_character":41,"end_line":99,"end_character":56},"updated":"2019-09-10 05:02:23.000000000","message":"According to the spec, vnf_package_vnfd.id column is auto_increment integer.","commit_id":"35d8e2a5ce181e56830ac6bd313ec1837161380a"},{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"a371df128c7d0d9b40a42b18dd6451ee8f49c9b6","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    __tablename__ \u003d \u0027vnf_software_images\u0027"},{"line_number":55,"context_line":"    software_image_id \u003d sa.Column(sa.Integer, nullable\u003dFalse)"},{"line_number":56,"context_line":"    flavor_uuid \u003d sa.Column(sa.Integer, sa.ForeignKey(\u0027vnf_flavors.id\u0027),"},{"line_number":57,"context_line":"                          nullable\u003dFalse)"},{"line_number":58,"context_line":"    name \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":59,"context_line":"    provider \u003d sa.Column(sa.String(255), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_91b42837","line":56,"range":{"start_line":56,"start_character":31,"end_line":56,"end_character":38},"updated":"2019-09-11 07:33:20.000000000","message":"String(36)?","commit_id":"e26d8bc64219d8bf876842a5bbea47feaaa4b0fc"},{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"a371df128c7d0d9b40a42b18dd6451ee8f49c9b6","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        return {m.key: m.value for m in self._metadata}"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class VnfFlavor(model_base.BASE, models.SoftDeleteMixin,"},{"line_number":81,"context_line":"                models.TimestampMixin, models_v1.HasId):"},{"line_number":82,"context_line":"    \"\"\"Contains all info about vnf packages Flavors.\"\"\""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_782e3244","line":80,"range":{"start_line":80,"start_character":9,"end_line":80,"end_character":15},"updated":"2019-09-11 07:33:20.000000000","message":"Flavour","commit_id":"e26d8bc64219d8bf876842a5bbea47feaaa4b0fc"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"ce3b18340848f3d3da37ff052bb96ddb7d5d2806","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        return {m.key: m.value for m in self._metadata}"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class VnfFlavor(model_base.BASE, models.SoftDeleteMixin,"},{"line_number":81,"context_line":"                models.TimestampMixin, models_v1.HasId):"},{"line_number":82,"context_line":"    \"\"\"Contains all info about vnf packages Flavors.\"\"\""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_f4cc6abd","line":80,"range":{"start_line":80,"start_character":9,"end_line":80,"end_character":15},"in_reply_to":"5faad753_782e3244","updated":"2019-09-11 08:24:39.000000000","message":"As per OpenStack convention, it\u0027s should be flavor and not flavour. \nWe have done the same in tosca-parser patch [1] but we had got one nit on flavour.\n\nSo let\u0027s decide what it should be?\n\n[1] : https://review.opendev.org/#/c/675561/7/toscaparser/tests/data/topology_template/definitions_1_2.yaml@18","commit_id":"e26d8bc64219d8bf876842a5bbea47feaaa4b0fc"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"9b7fb4a85c03205b24324f681dd42ea889b96bab","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        return {m.key: m.value for m in self._metadata}"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class VnfFlavor(model_base.BASE, models.SoftDeleteMixin,"},{"line_number":81,"context_line":"                models.TimestampMixin, models_v1.HasId):"},{"line_number":82,"context_line":"    \"\"\"Contains all info about vnf packages Flavors.\"\"\""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_7a4941ce","line":80,"range":{"start_line":80,"start_character":9,"end_line":80,"end_character":15},"in_reply_to":"5faad753_dac15582","updated":"2019-09-11 09:51:03.000000000","message":"Ok, we will make this change but it\u0027s going to impact all patches.","commit_id":"e26d8bc64219d8bf876842a5bbea47feaaa4b0fc"},{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"619bf01646e96d2bb4a12da5a504e373883444ab","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        return {m.key: m.value for m in self._metadata}"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class VnfFlavor(model_base.BASE, models.SoftDeleteMixin,"},{"line_number":81,"context_line":"                models.TimestampMixin, models_v1.HasId):"},{"line_number":82,"context_line":"    \"\"\"Contains all info about vnf packages Flavors.\"\"\""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_dac15582","line":80,"range":{"start_line":80,"start_character":9,"end_line":80,"end_character":15},"in_reply_to":"5faad753_f4cc6abd","updated":"2019-09-11 09:24:14.000000000","message":"Then, I think we should name this to \"VnfDeploymentFlavour\" to make clear this is different from Nova flavor.","commit_id":"e26d8bc64219d8bf876842a5bbea47feaaa4b0fc"},{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"a371df128c7d0d9b40a42b18dd6451ee8f49c9b6","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class VnfFlavor(model_base.BASE, models.SoftDeleteMixin,"},{"line_number":81,"context_line":"                models.TimestampMixin, models_v1.HasId):"},{"line_number":82,"context_line":"    \"\"\"Contains all info about vnf packages Flavors.\"\"\""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    __tablename__ \u003d \u0027vnf_flavors\u0027"},{"line_number":85,"context_line":"    package_uuid \u003d sa.Column(sa.String(36),"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_3828ba32","line":82,"range":{"start_line":82,"start_character":44,"end_line":82,"end_character":51},"updated":"2019-09-11 07:33:20.000000000","message":"Deployment Flavours","commit_id":"e26d8bc64219d8bf876842a5bbea47feaaa4b0fc"},{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"a371df128c7d0d9b40a42b18dd6451ee8f49c9b6","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                models.TimestampMixin, models_v1.HasId):"},{"line_number":82,"context_line":"    \"\"\"Contains all info about vnf packages Flavors.\"\"\""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    __tablename__ \u003d \u0027vnf_flavors\u0027"},{"line_number":85,"context_line":"    package_uuid \u003d sa.Column(sa.String(36),"},{"line_number":86,"context_line":"                             sa.ForeignKey(\u0027vnf_packages.id\u0027),"},{"line_number":87,"context_line":"                             nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_181dbe0e","line":84,"range":{"start_line":84,"start_character":25,"end_line":84,"end_character":32},"updated":"2019-09-11 07:33:20.000000000","message":"flavours","commit_id":"e26d8bc64219d8bf876842a5bbea47feaaa4b0fc"},{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"a371df128c7d0d9b40a42b18dd6451ee8f49c9b6","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    package_uuid \u003d sa.Column(sa.String(36),"},{"line_number":86,"context_line":"                             sa.ForeignKey(\u0027vnf_packages.id\u0027),"},{"line_number":87,"context_line":"                             nullable\u003dFalse)"},{"line_number":88,"context_line":"    name \u003d sa.Column(sa.String(255), nullable\u003dFalse)"},{"line_number":89,"context_line":"    description \u003d sa.Column(sa.Text(), nullable\u003dTrue)"},{"line_number":90,"context_line":"    instantiation_levels \u003d sa.Column(sa.Text(), nullable\u003dTrue)"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_f8e6a216","line":88,"range":{"start_line":88,"start_character":4,"end_line":88,"end_character":9},"updated":"2019-09-11 07:33:20.000000000","message":"flavour_id","commit_id":"e26d8bc64219d8bf876842a5bbea47feaaa4b0fc"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"ce3b18340848f3d3da37ff052bb96ddb7d5d2806","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    package_uuid \u003d sa.Column(sa.String(36),"},{"line_number":86,"context_line":"                             sa.ForeignKey(\u0027vnf_packages.id\u0027),"},{"line_number":87,"context_line":"                             nullable\u003dFalse)"},{"line_number":88,"context_line":"    name \u003d sa.Column(sa.String(255), nullable\u003dFalse)"},{"line_number":89,"context_line":"    description \u003d sa.Column(sa.Text(), nullable\u003dTrue)"},{"line_number":90,"context_line":"    instantiation_levels \u003d sa.Column(sa.Text(), nullable\u003dTrue)"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_b4c6f299","line":88,"range":{"start_line":88,"start_character":4,"end_line":88,"end_character":9},"in_reply_to":"5faad753_f8e6a216","updated":"2019-09-11 08:24:39.000000000","message":"To avoid confusion with id, we have name this column as name only.","commit_id":"e26d8bc64219d8bf876842a5bbea47feaaa4b0fc"},{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"a371df128c7d0d9b40a42b18dd6451ee8f49c9b6","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"class VnfPackageVnfd(model_base.BASE, models.SoftDeleteMixin,"},{"line_number":99,"context_line":"                  models.TimestampMixin, models_v1.HasId):"},{"line_number":100,"context_line":"    \"\"\"Contains all info about vnf packages VNFD.\"\"\""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    __tablename__ \u003d \u0027vnf_package_vnfd\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_b8acaa8c","line":99,"range":{"start_line":99,"start_character":41,"end_line":99,"end_character":56},"updated":"2019-09-11 07:33:20.000000000","message":"According to spec, this table has auto-incremented integer id. But I think uuid is better for vnf_package_vnfd. So let\u0027s remain this as is.","commit_id":"e26d8bc64219d8bf876842a5bbea47feaaa4b0fc"},{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"a371df128c7d0d9b40a42b18dd6451ee8f49c9b6","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    vnf_product_name \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":108,"context_line":"    vnf_software_version \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":109,"context_line":"    vnfd_version \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"class VnfPackage(model_base.BASE, models.SoftDeleteMixin,"},{"line_number":113,"context_line":"                 models.TimestampMixin, models_v1.HasTenant,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_f8a2229a","line":110,"updated":"2019-09-11 07:33:20.000000000","message":"missing vnfd_id \u003d sa.Column(sa.String(255), nullable\u003dFalse)\nvnfd_id is given in VNFD.","commit_id":"e26d8bc64219d8bf876842a5bbea47feaaa4b0fc"},{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"619bf01646e96d2bb4a12da5a504e373883444ab","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    vnf_product_name \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":108,"context_line":"    vnf_software_version \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":109,"context_line":"    vnfd_version \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"class VnfPackage(model_base.BASE, models.SoftDeleteMixin,"},{"line_number":113,"context_line":"                 models.TimestampMixin, models_v1.HasTenant,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_baafb9e1","line":110,"in_reply_to":"5faad753_14458617","updated":"2019-09-11 09:24:14.000000000","message":"Let me know. id is auto-generated by Tacker when VNFD is uploaded, is this correct? If correct, I think we need to have other column to store vnfd-id given in VNFD (node_template -\u003e VNF -\u003e propeties -\u003e descriptor_id).","commit_id":"e26d8bc64219d8bf876842a5bbea47feaaa4b0fc"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"9b7fb4a85c03205b24324f681dd42ea889b96bab","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    vnf_product_name \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":108,"context_line":"    vnf_software_version \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":109,"context_line":"    vnfd_version \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"class VnfPackage(model_base.BASE, models.SoftDeleteMixin,"},{"line_number":113,"context_line":"                 models.TimestampMixin, models_v1.HasTenant,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_dad635c4","line":110,"in_reply_to":"5faad753_baafb9e1","updated":"2019-09-11 09:51:03.000000000","message":"I think it\u0027s better to add vnfd_id column in vnf_package_vnfd table. We will make this column as unique. If you attempt to create two vnf packages with same descriptor_id, one will fail. We will need to update specs as well accordingly.","commit_id":"e26d8bc64219d8bf876842a5bbea47feaaa4b0fc"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"910e90d58b2c48c12ad56f57fb29bdc8bbe91e59","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    vnf_product_name \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":108,"context_line":"    vnf_software_version \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":109,"context_line":"    vnfd_version \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"class VnfPackage(model_base.BASE, models.SoftDeleteMixin,"},{"line_number":113,"context_line":"                 models.TimestampMixin, models_v1.HasTenant,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_851dbe67","line":110,"in_reply_to":"5faad753_dad635c4","updated":"2019-09-11 10:02:26.000000000","message":"In the specs, vnfd_uuid is already present. I will change it to vnfd_id.","commit_id":"e26d8bc64219d8bf876842a5bbea47feaaa4b0fc"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"ce3b18340848f3d3da37ff052bb96ddb7d5d2806","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    vnf_product_name \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":108,"context_line":"    vnf_software_version \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":109,"context_line":"    vnfd_version \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"class VnfPackage(model_base.BASE, models.SoftDeleteMixin,"},{"line_number":113,"context_line":"                 models.TimestampMixin, models_v1.HasTenant,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_14458617","line":110,"in_reply_to":"5faad753_f8a2229a","updated":"2019-09-11 08:24:39.000000000","message":"Primary key id will be vnfd_id which is in Uuid format.","commit_id":"e26d8bc64219d8bf876842a5bbea47feaaa4b0fc"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"2255224aff1083b94292f1be07456ef0ff760bc7","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"class VnfPackage(model_base.BASE, models.SoftDeleteMixin,"},{"line_number":115,"context_line":"                 models.TimestampMixin, models_v1.HasTenant,"},{"line_number":116,"context_line":"                 models_v1.HasId):"},{"line_number":117,"context_line":"    \"\"\"Contains all info about vnf packages.\"\"\""},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_f55ef743","line":115,"range":{"start_line":115,"start_character":40,"end_line":115,"end_character":59},"updated":"2019-09-17 09:10:07.000000000","message":"we needs to refactor tenant form code and update it with project. But ok, for now and can be changed throughout the code in separate fix.","commit_id":"70a5a39c2c20dc12ad0c7f404e5a252a0198da5b"},{"author":{"_account_id":30650,"name":"nitin uikey","email":"nitin.uikey@nttdata.com","username":"nitin.uikey"},"change_message_id":"ba2c4af967dd21d0cb2960ca4671ba3d6c60d031","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"class VnfPackage(model_base.BASE, models.SoftDeleteMixin,"},{"line_number":115,"context_line":"                 models.TimestampMixin, models_v1.HasTenant,"},{"line_number":116,"context_line":"                 models_v1.HasId):"},{"line_number":117,"context_line":"    \"\"\"Contains all info about vnf packages.\"\"\""},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_e8304f0a","line":115,"range":{"start_line":115,"start_character":40,"end_line":115,"end_character":59},"in_reply_to":"3fa7e38b_f55ef743","updated":"2019-09-18 02:54:50.000000000","message":"ok","commit_id":"70a5a39c2c20dc12ad0c7f404e5a252a0198da5b"}],"tacker/db/migration/alembic_migrations/versions/9d425296f2c3_add_vnfpkgm_db.py":[{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"2255224aff1083b94292f1be07456ef0ff760bc7","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        sa.Column(\u0027created_at\u0027, sa.DateTime(), nullable\u003dFalse),"},{"line_number":47,"context_line":"        sa.Column(\u0027updated_at\u0027, sa.DateTime(), nullable\u003dTrue),"},{"line_number":48,"context_line":"        sa.Column(\u0027deleted_at\u0027, sa.DateTime(), nullable\u003dTrue),"},{"line_number":49,"context_line":"        sa.Column(\u0027deleted\u0027, Boolean, default\u003dFalse),"},{"line_number":50,"context_line":"        sa.PrimaryKeyConstraint(\u0027id\u0027),"},{"line_number":51,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027"},{"line_number":52,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_360fb62f","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":52},"updated":"2019-09-17 09:10:07.000000000","message":"Do we need this additional column along with deleted_at?\n\nsame for all other columns.","commit_id":"70a5a39c2c20dc12ad0c7f404e5a252a0198da5b"},{"author":{"_account_id":30650,"name":"nitin uikey","email":"nitin.uikey@nttdata.com","username":"nitin.uikey"},"change_message_id":"ba2c4af967dd21d0cb2960ca4671ba3d6c60d031","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        sa.Column(\u0027created_at\u0027, sa.DateTime(), nullable\u003dFalse),"},{"line_number":47,"context_line":"        sa.Column(\u0027updated_at\u0027, sa.DateTime(), nullable\u003dTrue),"},{"line_number":48,"context_line":"        sa.Column(\u0027deleted_at\u0027, sa.DateTime(), nullable\u003dTrue),"},{"line_number":49,"context_line":"        sa.Column(\u0027deleted\u0027, Boolean, default\u003dFalse),"},{"line_number":50,"context_line":"        sa.PrimaryKeyConstraint(\u0027id\u0027),"},{"line_number":51,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027"},{"line_number":52,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_c83f93d4","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":52},"in_reply_to":"3fa7e38b_360fb62f","updated":"2019-09-18 02:54:50.000000000","message":"Yes we can. But we followed the standard approach which is followed in other projects. Also we need to check for None or a Date to check the record status and felt checking boolean is more standard way to do it.","commit_id":"70a5a39c2c20dc12ad0c7f404e5a252a0198da5b"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"06f73f6eeb80a30c3b338ae68308e5f2acb25861","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        sa.Column(\u0027created_at\u0027, sa.DateTime(), nullable\u003dFalse),"},{"line_number":47,"context_line":"        sa.Column(\u0027updated_at\u0027, sa.DateTime(), nullable\u003dTrue),"},{"line_number":48,"context_line":"        sa.Column(\u0027deleted_at\u0027, sa.DateTime(), nullable\u003dTrue),"},{"line_number":49,"context_line":"        sa.Column(\u0027deleted\u0027, Boolean, default\u003dFalse),"},{"line_number":50,"context_line":"        sa.PrimaryKeyConstraint(\u0027id\u0027),"},{"line_number":51,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027"},{"line_number":52,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_920e9de3","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":52},"in_reply_to":"3fa7e38b_c83f93d4","updated":"2019-09-19 05:10:33.000000000","message":"deleted_at !\u003d Null itself make it clear that row is already deleted. So having additional column only for the same is redundant.\nIn some projects, this field has been used for audit and soft_delete cases. So ok, lets keep it as future point of view.","commit_id":"70a5a39c2c20dc12ad0c7f404e5a252a0198da5b"}]}
