)]}'
{"specs/template-versioning.rst":[{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"611b35832e5b8ebff72945561892acdf33c7c248","unresolved":false,"context_lines":[{"line_number":18,"context_line":"are used to create resources within Magnum.  Without versions it can be"},{"line_number":19,"context_line":"difficult to ensure updated Templates are used since older templates must"},{"line_number":20,"context_line":"remain if resources created with them exist. Also future desired features"},{"line_number":21,"context_line":"such as Cluster upgrades want to make use of versioned templates better"},{"line_number":22,"context_line":"control these updates."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_2b56ffcd","line":21,"updated":"2016-11-02 16:31:21.000000000","message":"to better","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"7e7117cd111a5a4defa44298c60137209adb40b0","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"1. Operators create a public ClusterTemplate to be used for creating Clusters."},{"line_number":28,"context_line":" The operators want to be able to update the template without changing the"},{"line_number":29,"context_line":" name/uuid of the template while also tracking which version are still in use."},{"line_number":30,"context_line":"2. Operators want to delete a ClusterTemplate so that it cannot be used for new"},{"line_number":31,"context_line":"Clusters without having to wait until all existing Clusters that are using the"},{"line_number":32,"context_line":"template are deleted."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_f3b16e02","line":29,"range":{"start_line":29,"start_character":1,"end_line":29,"end_character":10},"updated":"2016-11-02 10:58:23.000000000","message":"The uuid must change, the name can be the same.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"67e388b91462c8f16cfc3e88022f7d78a015a20c","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"1. Operators create a public ClusterTemplate to be used for creating Clusters."},{"line_number":28,"context_line":" The operators want to be able to update the template without changing the"},{"line_number":29,"context_line":" name/uuid of the template while also tracking which version are still in use."},{"line_number":30,"context_line":"2. Operators want to delete a ClusterTemplate so that it cannot be used for new"},{"line_number":31,"context_line":"Clusters without having to wait until all existing Clusters that are using the"},{"line_number":32,"context_line":"template are deleted."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_0b969b3e","line":29,"in_reply_to":"ba5da102_65974648","updated":"2016-11-02 16:13:46.000000000","message":"I think that the uuid should be unique, we shouldn\u0027t change this.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"d97cbf228ee115fddd592d78eff34f0e4f1c54ff","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"1. Operators create a public ClusterTemplate to be used for creating Clusters."},{"line_number":28,"context_line":" The operators want to be able to update the template without changing the"},{"line_number":29,"context_line":" name/uuid of the template while also tracking which version are still in use."},{"line_number":30,"context_line":"2. Operators want to delete a ClusterTemplate so that it cannot be used for new"},{"line_number":31,"context_line":"Clusters without having to wait until all existing Clusters that are using the"},{"line_number":32,"context_line":"template are deleted."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_65974648","line":29,"range":{"start_line":29,"start_character":1,"end_line":29,"end_character":10},"in_reply_to":"ba5da102_f3b16e02","updated":"2016-11-02 15:50:35.000000000","message":"i figured if they continue to use the same uuid of the parent it will always use the latest as well. Is there a reason it should not?","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"7e7117cd111a5a4defa44298c60137209adb40b0","unresolved":false,"context_lines":[{"line_number":27,"context_line":"1. Operators create a public ClusterTemplate to be used for creating Clusters."},{"line_number":28,"context_line":" The operators want to be able to update the template without changing the"},{"line_number":29,"context_line":" name/uuid of the template while also tracking which version are still in use."},{"line_number":30,"context_line":"2. Operators want to delete a ClusterTemplate so that it cannot be used for new"},{"line_number":31,"context_line":"Clusters without having to wait until all existing Clusters that are using the"},{"line_number":32,"context_line":"template are deleted."},{"line_number":33,"context_line":"3. Operators want to be able to use life cycle commands like \"upgrade\" to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_b3b7f6d6","line":30,"range":{"start_line":30,"start_character":3,"end_line":30,"end_character":12},"updated":"2016-11-02 10:58:23.000000000","message":"Operators or users, I think the version mechanism can be available for all CTs, it will be mostly hidden from the users since they can touch the versions.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"67e388b91462c8f16cfc3e88022f7d78a015a20c","unresolved":false,"context_lines":[{"line_number":27,"context_line":"1. Operators create a public ClusterTemplate to be used for creating Clusters."},{"line_number":28,"context_line":" The operators want to be able to update the template without changing the"},{"line_number":29,"context_line":" name/uuid of the template while also tracking which version are still in use."},{"line_number":30,"context_line":"2. Operators want to delete a ClusterTemplate so that it cannot be used for new"},{"line_number":31,"context_line":"Clusters without having to wait until all existing Clusters that are using the"},{"line_number":32,"context_line":"template are deleted."},{"line_number":33,"context_line":"3. Operators want to be able to use life cycle commands like \"upgrade\" to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_bd15f2e5","line":30,"in_reply_to":"ba5da102_8b61da3b","updated":"2016-11-02 16:13:46.000000000","message":"@jaycen I\u0027m  still not sure about this. Maybe adding versions in all CTs is easier, then we can iterate.  What do you think?","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"611b35832e5b8ebff72945561892acdf33c7c248","unresolved":false,"context_lines":[{"line_number":27,"context_line":"1. Operators create a public ClusterTemplate to be used for creating Clusters."},{"line_number":28,"context_line":" The operators want to be able to update the template without changing the"},{"line_number":29,"context_line":" name/uuid of the template while also tracking which version are still in use."},{"line_number":30,"context_line":"2. Operators want to delete a ClusterTemplate so that it cannot be used for new"},{"line_number":31,"context_line":"Clusters without having to wait until all existing Clusters that are using the"},{"line_number":32,"context_line":"template are deleted."},{"line_number":33,"context_line":"3. Operators want to be able to use life cycle commands like \"upgrade\" to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_6b7e371a","line":30,"in_reply_to":"ba5da102_8b61da3b","updated":"2016-11-02 16:31:21.000000000","message":"I agree that it should be available for all CTs, but specifically calling out the operator use case makes sense to me here.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"d8e1d69280ae95eff41a4e4197f13d57d435d9a1","unresolved":false,"context_lines":[{"line_number":27,"context_line":"1. Operators create a public ClusterTemplate to be used for creating Clusters."},{"line_number":28,"context_line":" The operators want to be able to update the template without changing the"},{"line_number":29,"context_line":" name/uuid of the template while also tracking which version are still in use."},{"line_number":30,"context_line":"2. Operators want to delete a ClusterTemplate so that it cannot be used for new"},{"line_number":31,"context_line":"Clusters without having to wait until all existing Clusters that are using the"},{"line_number":32,"context_line":"template are deleted."},{"line_number":33,"context_line":"3. Operators want to be able to use life cycle commands like \"upgrade\" to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_8b61da3b","line":30,"range":{"start_line":30,"start_character":3,"end_line":30,"end_character":12},"in_reply_to":"ba5da102_b3b7f6d6","updated":"2016-11-02 11:05:52.000000000","message":"I take this back, we can start from public only or managed/supported by the OPS.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"bcf4822d9f4b3a85a3a41ef6fe28660a92f318e4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"1. Operators create a public ClusterTemplate to be used for creating Clusters."},{"line_number":28,"context_line":" The operators want to be able to update the template without changing the"},{"line_number":29,"context_line":" name/uuid of the template while also tracking which version are still in use."},{"line_number":30,"context_line":"2. Operators want to delete a ClusterTemplate so that it cannot be used for new"},{"line_number":31,"context_line":"Clusters without having to wait until all existing Clusters that are using the"},{"line_number":32,"context_line":"template are deleted."},{"line_number":33,"context_line":"3. Operators want to be able to use life cycle commands like \"upgrade\" to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_fd312a5b","line":30,"in_reply_to":"ba5da102_bd15f2e5","updated":"2016-11-02 16:16:43.000000000","message":"i think it should be all.  so it is all users","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"b4cc3d84b5cba2be96503cbc2a4a89d67cc92c39","unresolved":false,"context_lines":[{"line_number":27,"context_line":"1. Operators create a public ClusterTemplate to be used for creating Clusters."},{"line_number":28,"context_line":" The operators want to be able to update the template without changing the"},{"line_number":29,"context_line":" name/uuid of the template while also tracking which version are still in use."},{"line_number":30,"context_line":"2. Operators want to delete a ClusterTemplate so that it cannot be used for new"},{"line_number":31,"context_line":"Clusters without having to wait until all existing Clusters that are using the"},{"line_number":32,"context_line":"template are deleted."},{"line_number":33,"context_line":"3. Operators want to be able to use life cycle commands like \"upgrade\" to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_bdf7b257","line":30,"in_reply_to":"ba5da102_fd312a5b","updated":"2016-11-02 16:19:26.000000000","message":"I lean more to this too.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"7e7117cd111a5a4defa44298c60137209adb40b0","unresolved":false,"context_lines":[{"line_number":30,"context_line":"2. Operators want to delete a ClusterTemplate so that it cannot be used for new"},{"line_number":31,"context_line":"Clusters without having to wait until all existing Clusters that are using the"},{"line_number":32,"context_line":"template are deleted."},{"line_number":33,"context_line":"3. Operators want to be able to use life cycle commands like \"upgrade\" to"},{"line_number":34,"context_line":"trigger the Cluster to update itself to the latest version of the template it"},{"line_number":35,"context_line":"was created from."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Proposed Changes"},{"line_number":38,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_d331ca5b","line":35,"range":{"start_line":33,"start_character":2,"end_line":35,"end_character":17},"updated":"2016-11-02 10:58:23.000000000","message":"To manage upgrades, operators want to version CTs to upgrade clusters to the next version.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"611b35832e5b8ebff72945561892acdf33c7c248","unresolved":false,"context_lines":[{"line_number":38,"context_line":"----------------"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"To allow for template versioning the following would be added to Magnum"},{"line_number":41,"context_line":"templates(such as ClusterTemplate):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"4 new fields would be added to the template object:"},{"line_number":44,"context_line":" - version"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_2bfc3f71","line":41,"updated":"2016-11-02 16:31:21.000000000","message":"needs a space","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"611b35832e5b8ebff72945561892acdf33c7c248","unresolved":false,"context_lines":[{"line_number":43,"context_line":"4 new fields would be added to the template object:"},{"line_number":44,"context_line":" - version"},{"line_number":45,"context_line":" - parent_uuid"},{"line_number":46,"context_line":" - mark_for_deletion"},{"line_number":47,"context_line":" - obsolete"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Create"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_4b0fb387","line":46,"updated":"2016-11-02 16:31:21.000000000","message":"I would prefer \"marked\" (state versus verb)","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":21660,"name":"Stephen Watson","email":"stephen.watson@intel.com","username":"swatson"},"change_message_id":"9dd2b7b33efdd3e8ee1ba9bb15d5c19529d460b9","unresolved":false,"context_lines":[{"line_number":52,"context_line":"Template \"create\" operations would create a new template object and would set"},{"line_number":53,"context_line":"the new values as follows:"},{"line_number":54,"context_line":"version: 1"},{"line_number":55,"context_line":"parent_uuid: \u003cuuid of this object\u003e"},{"line_number":56,"context_line":"mark_for_deletion: False"},{"line_number":57,"context_line":"obsolete: False"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_04e06928","line":55,"updated":"2016-11-01 23:14:12.000000000","message":"Might it make more sense to have parent of a version 1 template be empty or null? It doesn\u0027t matter *that* much considering it\u0027s a simple check regardless, but it would be consistent with the usual defintion for roots","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"7e7117cd111a5a4defa44298c60137209adb40b0","unresolved":false,"context_lines":[{"line_number":52,"context_line":"Template \"create\" operations would create a new template object and would set"},{"line_number":53,"context_line":"the new values as follows:"},{"line_number":54,"context_line":"version: 1"},{"line_number":55,"context_line":"parent_uuid: \u003cuuid of this object\u003e"},{"line_number":56,"context_line":"mark_for_deletion: False"},{"line_number":57,"context_line":"obsolete: False"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_13a2624b","line":55,"in_reply_to":"ba5da102_04e06928","updated":"2016-11-02 10:58:23.000000000","message":"In computer science both patterns are valid. The self reference  makes more sense to easily query CTs. I want this template (defined by the parent_uuid) and this version. To make it work for the case of version 1 without any workaround we need the self-reference pattern. If it was a data-structure like a tree the null for root would make more sense.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"d97cbf228ee115fddd592d78eff34f0e4f1c54ff","unresolved":false,"context_lines":[{"line_number":52,"context_line":"Template \"create\" operations would create a new template object and would set"},{"line_number":53,"context_line":"the new values as follows:"},{"line_number":54,"context_line":"version: 1"},{"line_number":55,"context_line":"parent_uuid: \u003cuuid of this object\u003e"},{"line_number":56,"context_line":"mark_for_deletion: False"},{"line_number":57,"context_line":"obsolete: False"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_25338e63","line":55,"in_reply_to":"ba5da102_13a2624b","updated":"2016-11-02 15:50:35.000000000","message":"Agreed, leaving as self reference for easier implementation with current design.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":21660,"name":"Stephen Watson","email":"stephen.watson@intel.com","username":"swatson"},"change_message_id":"9dd2b7b33efdd3e8ee1ba9bb15d5c19529d460b9","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Template \"update\" operations would create a new template object and would set"},{"line_number":63,"context_line":"the new values as follows:"},{"line_number":64,"context_line":"version: \u003cversion value of template updated + 1\u003e"},{"line_number":65,"context_line":"parent_uuid: \u003ccopy parent_uuid value from template updated\u003e"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"It would also set the obsolete value of the current version object being"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_c4c831ab","line":64,"updated":"2016-11-01 23:14:12.000000000","message":"Would users want some other kind of version system, e.g. major.minor instead of a single number? I could see versions getting unruly if the CT is updated often, but that use case might be too niche","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"d8e1d69280ae95eff41a4e4197f13d57d435d9a1","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Template \"update\" operations would create a new template object and would set"},{"line_number":63,"context_line":"the new values as follows:"},{"line_number":64,"context_line":"version: \u003cversion value of template updated + 1\u003e"},{"line_number":65,"context_line":"parent_uuid: \u003ccopy parent_uuid value from template updated\u003e"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"It would also set the obsolete value of the current version object being"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_4bd98221","line":64,"in_reply_to":"ba5da102_397907c9","updated":"2016-11-02 11:05:52.000000000","message":"I think this kind of versioning is different. And not useful since we won\u0027t have branches and we can only use the latest for creating new Cluster/NGs.\n\nThe high version number can be inconvenient but we avoid corner   cases.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"d97cbf228ee115fddd592d78eff34f0e4f1c54ff","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Template \"update\" operations would create a new template object and would set"},{"line_number":63,"context_line":"the new values as follows:"},{"line_number":64,"context_line":"version: \u003cversion value of template updated + 1\u003e"},{"line_number":65,"context_line":"parent_uuid: \u003ccopy parent_uuid value from template updated\u003e"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"It would also set the obsolete value of the current version object being"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_05ce8a2d","line":64,"in_reply_to":"ba5da102_4bd98221","updated":"2016-11-02 15:50:35.000000000","message":"Since the version number is not something set by the user it makes more sense for it to just be simple number increases.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"7e7117cd111a5a4defa44298c60137209adb40b0","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Template \"update\" operations would create a new template object and would set"},{"line_number":63,"context_line":"the new values as follows:"},{"line_number":64,"context_line":"version: \u003cversion value of template updated + 1\u003e"},{"line_number":65,"context_line":"parent_uuid: \u003ccopy parent_uuid value from template updated\u003e"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"It would also set the obsolete value of the current version object being"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_397907c9","line":64,"in_reply_to":"ba5da102_c4c831ab","updated":"2016-11-02 10:58:23.000000000","message":"I think this kind of versioning is different. And very useful since we won\u0027t have branches and we can only use the latest for creating new Cluster/NGs","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"7e7117cd111a5a4defa44298c60137209adb40b0","unresolved":false,"context_lines":[{"line_number":62,"context_line":"Template \"update\" operations would create a new template object and would set"},{"line_number":63,"context_line":"the new values as follows:"},{"line_number":64,"context_line":"version: \u003cversion value of template updated + 1\u003e"},{"line_number":65,"context_line":"parent_uuid: \u003ccopy parent_uuid value from template updated\u003e"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"It would also set the obsolete value of the current version object being"},{"line_number":68,"context_line":"updated to True."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_3ecc8d69","line":65,"range":{"start_line":65,"start_character":0,"end_line":65,"end_character":59},"updated":"2016-11-02 10:58:23.000000000","message":"To clarify, the parent_uuid would be the uuid of v1 in all 1 + n versions.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"d97cbf228ee115fddd592d78eff34f0e4f1c54ff","unresolved":false,"context_lines":[{"line_number":62,"context_line":"Template \"update\" operations would create a new template object and would set"},{"line_number":63,"context_line":"the new values as follows:"},{"line_number":64,"context_line":"version: \u003cversion value of template updated + 1\u003e"},{"line_number":65,"context_line":"parent_uuid: \u003ccopy parent_uuid value from template updated\u003e"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"It would also set the obsolete value of the current version object being"},{"line_number":68,"context_line":"updated to True."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_657906c8","line":65,"range":{"start_line":65,"start_character":0,"end_line":65,"end_character":59},"in_reply_to":"ba5da102_3ecc8d69","updated":"2016-11-02 15:50:35.000000000","message":"Correct.  That is probably a better description. This is more of how it will likely be implemented but it is the same result","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"7e7117cd111a5a4defa44298c60137209adb40b0","unresolved":false,"context_lines":[{"line_number":71,"context_line":"------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Template \"delete\" operations would change the following on the objects:"},{"line_number":74,"context_line":"Current version"},{"line_number":75,"context_line":"obsolete: True"},{"line_number":76,"context_line":"Parent version"},{"line_number":77,"context_line":"mark_for_deletion: True"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_ab7a1e86","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":15},"updated":"2016-11-02 10:58:23.000000000","message":"won\u0027t chnage","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"67e388b91462c8f16cfc3e88022f7d78a015a20c","unresolved":false,"context_lines":[{"line_number":71,"context_line":"------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Template \"delete\" operations would change the following on the objects:"},{"line_number":74,"context_line":"Current version"},{"line_number":75,"context_line":"obsolete: True"},{"line_number":76,"context_line":"Parent version"},{"line_number":77,"context_line":"mark_for_deletion: True"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_0bce9b2d","line":74,"in_reply_to":"ba5da102_051f6a6c","updated":"2016-11-02 16:13:46.000000000","message":"All versions will be marked as obsolete. Why we need to change the version? Bump it?","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"d97cbf228ee115fddd592d78eff34f0e4f1c54ff","unresolved":false,"context_lines":[{"line_number":71,"context_line":"------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Template \"delete\" operations would change the following on the objects:"},{"line_number":74,"context_line":"Current version"},{"line_number":75,"context_line":"obsolete: True"},{"line_number":76,"context_line":"Parent version"},{"line_number":77,"context_line":"mark_for_deletion: True"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_051f6a6c","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":15},"in_reply_to":"ba5da102_ab7a1e86","updated":"2016-11-02 15:50:35.000000000","message":"wouldn\u0027t we want all versions to be set as obsolete when it is a marked for delete?","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"7e7117cd111a5a4defa44298c60137209adb40b0","unresolved":false,"context_lines":[{"line_number":73,"context_line":"Template \"delete\" operations would change the following on the objects:"},{"line_number":74,"context_line":"Current version"},{"line_number":75,"context_line":"obsolete: True"},{"line_number":76,"context_line":"Parent version"},{"line_number":77,"context_line":"mark_for_deletion: True"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Magnum will check if there are any active resources that reference any of the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_eb7096a6","line":76,"range":{"start_line":76,"start_character":0,"end_line":76,"end_character":14},"updated":"2016-11-02 10:58:23.000000000","message":"won\u0027t change","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"611b35832e5b8ebff72945561892acdf33c7c248","unresolved":false,"context_lines":[{"line_number":80,"context_line":"versions that have the parent_uuid of the template. If the version has no"},{"line_number":81,"context_line":"active resources referencing it then it will be deleted from the db. If all"},{"line_number":82,"context_line":"versions can be deleted then the parent version will be deleted as well. Magnum"},{"line_number":83,"context_line":"will also run this check on after any resource(Cluster/NodeGroup) delete to see"},{"line_number":84,"context_line":"if addition templates that are marked for deletion can be removed."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"List"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_9d182e20","line":83,"updated":"2016-11-02 16:31:21.000000000","message":"needs a space","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"7e7117cd111a5a4defa44298c60137209adb40b0","unresolved":false,"context_lines":[{"line_number":76,"context_line":"Parent version"},{"line_number":77,"context_line":"mark_for_deletion: True"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Magnum will check if there are any active resources that reference any of the"},{"line_number":80,"context_line":"versions that have the parent_uuid of the template. If the version has no"},{"line_number":81,"context_line":"active resources referencing it then it will be deleted from the db. If all"},{"line_number":82,"context_line":"versions can be deleted then the parent version will be deleted as well. Magnum"},{"line_number":83,"context_line":"will also run this check on after any resource(Cluster/NodeGroup) delete to see"},{"line_number":84,"context_line":"if addition templates that are marked for deletion can be removed."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"List"},{"line_number":87,"context_line":"----"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_0bc6aa99","line":84,"range":{"start_line":79,"start_character":0,"end_line":84,"end_character":66},"updated":"2016-11-02 10:58:23.000000000","message":"Better write it like:\n* Magnum will set in all CTs and NGTs mark_for_deletion: True and obsolete: True\n* Magnum will delete all CTs and NGTs that are not referenced by any Cluster or NG\n* After any Cluster/NG delete magnum will try to delete the corresponding CT/NGT if it\u0027s not refernced elsewhere.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"d97cbf228ee115fddd592d78eff34f0e4f1c54ff","unresolved":false,"context_lines":[{"line_number":76,"context_line":"Parent version"},{"line_number":77,"context_line":"mark_for_deletion: True"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Magnum will check if there are any active resources that reference any of the"},{"line_number":80,"context_line":"versions that have the parent_uuid of the template. If the version has no"},{"line_number":81,"context_line":"active resources referencing it then it will be deleted from the db. If all"},{"line_number":82,"context_line":"versions can be deleted then the parent version will be deleted as well. Magnum"},{"line_number":83,"context_line":"will also run this check on after any resource(Cluster/NodeGroup) delete to see"},{"line_number":84,"context_line":"if addition templates that are marked for deletion can be removed."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"List"},{"line_number":87,"context_line":"----"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_10f086fd","line":84,"range":{"start_line":79,"start_character":0,"end_line":84,"end_character":66},"in_reply_to":"ba5da102_0bc6aa99","updated":"2016-11-02 15:50:35.000000000","message":"My thought here is that it is really an all or nothing on the delete.  So only the parent really needs to be marked for delete instead of updating all of the versions.  At any given time only the latest version is not obsolete already.  So when a delete happens it could simply mark the latest to obsolete and mark the parent as \"marked_for_delete\". The check for the actual db template clean up can use the parent as we wouldn\u0027t want the parent to be deleted until all the versions are.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"611b35832e5b8ebff72945561892acdf33c7c248","unresolved":false,"context_lines":[{"line_number":81,"context_line":"active resources referencing it then it will be deleted from the db. If all"},{"line_number":82,"context_line":"versions can be deleted then the parent version will be deleted as well. Magnum"},{"line_number":83,"context_line":"will also run this check on after any resource(Cluster/NodeGroup) delete to see"},{"line_number":84,"context_line":"if addition templates that are marked for deletion can be removed."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"List"},{"line_number":87,"context_line":"----"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_5d4136a8","line":84,"in_reply_to":"ba5da102_10f086fd","updated":"2016-11-02 16:31:21.000000000","message":"Jaycen, if that\u0027s true, then obsolete is redundant.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"67e388b91462c8f16cfc3e88022f7d78a015a20c","unresolved":false,"context_lines":[{"line_number":81,"context_line":"active resources referencing it then it will be deleted from the db. If all"},{"line_number":82,"context_line":"versions can be deleted then the parent version will be deleted as well. Magnum"},{"line_number":83,"context_line":"will also run this check on after any resource(Cluster/NodeGroup) delete to see"},{"line_number":84,"context_line":"if addition templates that are marked for deletion can be removed."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"List"},{"line_number":87,"context_line":"----"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_3d7f2267","line":84,"in_reply_to":"ba5da102_10f086fd","updated":"2016-11-02 16:13:46.000000000","message":"That works too, wfm","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":21660,"name":"Stephen Watson","email":"stephen.watson@intel.com","username":"swatson"},"change_message_id":"9dd2b7b33efdd3e8ee1ba9bb15d5c19529d460b9","unresolved":false,"context_lines":[{"line_number":86,"context_line":"List"},{"line_number":87,"context_line":"----"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"When listing templates, only templates that are not marked obsolete will be"},{"line_number":90,"context_line":"listed.  This will mean that only the latest version of each template will show"},{"line_number":91,"context_line":"up in the list.  Note: if desired a new flag could be added to list all"},{"line_number":92,"context_line":"templates included those versions that are obsolete."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_244bad2b","line":89,"updated":"2016-11-01 23:14:12.000000000","message":"Having the flag might be good simply to allow an operator to get a full view of what\u0027s left in the DB for clusters of old CTs that might be floating around on the cloud","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"7e7117cd111a5a4defa44298c60137209adb40b0","unresolved":false,"context_lines":[{"line_number":86,"context_line":"List"},{"line_number":87,"context_line":"----"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"When listing templates, only templates that are not marked obsolete will be"},{"line_number":90,"context_line":"listed.  This will mean that only the latest version of each template will show"},{"line_number":91,"context_line":"up in the list.  Note: if desired a new flag could be added to list all"},{"line_number":92,"context_line":"templates included those versions that are obsolete."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_abd93e59","line":89,"in_reply_to":"ba5da102_244bad2b","updated":"2016-11-02 10:58:23.000000000","message":"We definitely need this flag for ops.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"d97cbf228ee115fddd592d78eff34f0e4f1c54ff","unresolved":false,"context_lines":[{"line_number":86,"context_line":"List"},{"line_number":87,"context_line":"----"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"When listing templates, only templates that are not marked obsolete will be"},{"line_number":90,"context_line":"listed.  This will mean that only the latest version of each template will show"},{"line_number":91,"context_line":"up in the list.  Note: if desired a new flag could be added to list all"},{"line_number":92,"context_line":"templates included those versions that are obsolete."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_f0d15258","line":89,"in_reply_to":"ba5da102_abd93e59","updated":"2016-11-02 15:50:35.000000000","message":"Ok i\u0027ll add it in.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":21660,"name":"Stephen Watson","email":"stephen.watson@intel.com","username":"swatson"},"change_message_id":"9dd2b7b33efdd3e8ee1ba9bb15d5c19529d460b9","unresolved":false,"context_lines":[{"line_number":95,"context_line":"----"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"When showing a template, the latest version of the template will be displayed."},{"line_number":98,"context_line":"If desired, a new flag could be added to specify a version to allow viewing"},{"line_number":99,"context_line":"older templates that may still exist."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Resource Create"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_a465fdb5","line":98,"updated":"2016-11-01 23:14:12.000000000","message":"+1 for additional flag. I think it\u0027d be useful if only for those moments where maybe you\u0027d want to reference an older template for whatever reason. Not sure how useful that is though","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"d97cbf228ee115fddd592d78eff34f0e4f1c54ff","unresolved":false,"context_lines":[{"line_number":95,"context_line":"----"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"When showing a template, the latest version of the template will be displayed."},{"line_number":98,"context_line":"If desired, a new flag could be added to specify a version to allow viewing"},{"line_number":99,"context_line":"older templates that may still exist."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Resource Create"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_904ad624","line":98,"in_reply_to":"ba5da102_5995db84","updated":"2016-11-02 15:50:35.000000000","message":"ok, that was my thought on this. I didn\u0027t want to just add new flags unless we really thought they would be used. They can always be added in the future if needed.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"7e7117cd111a5a4defa44298c60137209adb40b0","unresolved":false,"context_lines":[{"line_number":95,"context_line":"----"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"When showing a template, the latest version of the template will be displayed."},{"line_number":98,"context_line":"If desired, a new flag could be added to specify a version to allow viewing"},{"line_number":99,"context_line":"older templates that may still exist."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Resource Create"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_5995db84","line":98,"in_reply_to":"ba5da102_a465fdb5","updated":"2016-11-02 10:58:23.000000000","message":"I think we can skip this. Ops should be able to see all version anyway and users can see what is in their cluster with cluster show. Even today you can do cluster-show --long","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"7e7117cd111a5a4defa44298c60137209adb40b0","unresolved":false,"context_lines":[{"line_number":98,"context_line":"If desired, a new flag could be added to specify a version to allow viewing"},{"line_number":99,"context_line":"older templates that may still exist."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Resource Create"},{"line_number":102,"context_line":"---------------"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"When using a template to create a resource the latest version of the template"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_39df476a","line":101,"range":{"start_line":101,"start_character":0,"end_line":101,"end_character":8},"updated":"2016-11-02 10:58:23.000000000","message":"I would be explicit, Cluster/NodeGroup Create","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"d97cbf228ee115fddd592d78eff34f0e4f1c54ff","unresolved":false,"context_lines":[{"line_number":98,"context_line":"If desired, a new flag could be added to specify a version to allow viewing"},{"line_number":99,"context_line":"older templates that may still exist."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Resource Create"},{"line_number":102,"context_line":"---------------"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"When using a template to create a resource the latest version of the template"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_b0535ae1","line":101,"range":{"start_line":101,"start_character":0,"end_line":101,"end_character":8},"in_reply_to":"ba5da102_39df476a","updated":"2016-11-02 15:50:35.000000000","message":"ok","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"611b35832e5b8ebff72945561892acdf33c7c248","unresolved":false,"context_lines":[{"line_number":102,"context_line":"---------------"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"When using a template to create a resource the latest version of the template"},{"line_number":105,"context_line":"will always be used. If all versions are obsolete in the case of a deletion,"},{"line_number":106,"context_line":"a resource cannot be created using that template."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_9d910ef4","line":105,"updated":"2016-11-02 16:31:21.000000000","message":"Being able to create a CT from an old version of another CT could be nice. Is there a reason why it should be disallowed?","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"8afcf1c7943309df2a9325ddbced20424f8f673b","unresolved":false,"context_lines":[{"line_number":102,"context_line":"---------------"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"When using a template to create a resource the latest version of the template"},{"line_number":105,"context_line":"will always be used. If all versions are obsolete in the case of a deletion,"},{"line_number":106,"context_line":"a resource cannot be created using that template."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_b3a8c178","line":105,"in_reply_to":"ba5da102_9d910ef4","updated":"2016-11-02 16:53:25.000000000","message":"no i think that should be allowed.  Just not a cluster","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"7e7117cd111a5a4defa44298c60137209adb40b0","unresolved":false,"context_lines":[{"line_number":122,"context_line":"above."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Alternative Implementation Option"},{"line_number":126,"context_line":"---------------------------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Another way to implement this feature would be to create a TemplateParent"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_8bbb9ae4","line":125,"updated":"2016-11-02 10:58:23.000000000","message":"-1 for me, I\u0027ll get back with more feedback on the alternative.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"d97cbf228ee115fddd592d78eff34f0e4f1c54ff","unresolved":false,"context_lines":[{"line_number":122,"context_line":"above."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Alternative Implementation Option"},{"line_number":126,"context_line":"---------------------------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Another way to implement this feature would be to create a TemplateParent"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_d0c36e55","line":125,"in_reply_to":"ba5da102_8bbb9ae4","updated":"2016-11-02 15:50:35.000000000","message":"it is -1 for me currently as well, but putting it here to get more feedback. I do this the alternative way provides better setup if we plan on getting more advanced with versions in the future. Such as having rollback versions or restoring \u0027deleted\u0027 versions, etc...  For now i think the main approach above is less complicated than this alternative","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"0933219dc3fc87aaee84d743fc0c5d645883e4d7","unresolved":false,"context_lines":[{"line_number":126,"context_line":"---------------------------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Another way to implement this feature would be to create a TemplateParent"},{"line_number":129,"context_line":"Object.  This object would store the latest information about Template and"},{"line_number":130,"context_line":"reference the template objects for each version."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"TemplateParent"},{"line_number":133,"context_line":"- TemplateName"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_ec8eda2c","line":130,"range":{"start_line":129,"start_character":9,"end_line":130,"end_character":48},"updated":"2016-11-02 18:10:31.000000000","message":"This object would store the latest version of the template, the name, the uuid and if it is marked for deletion.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"611b35832e5b8ebff72945561892acdf33c7c248","unresolved":false,"context_lines":[{"line_number":134,"context_line":"- uuid"},{"line_number":135,"context_line":"- latestVersion"},{"line_number":136,"context_line":"- is_deleted"},{"line_number":137,"context_line":"- {\u003cversion\u003e: \u003cTemplate object ref\u003e, ...}"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Overall, versions would work the same as above this object would be the main"},{"line_number":140,"context_line":"source of linking Templates to versions."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_bd017208","line":137,"updated":"2016-11-02 16:31:21.000000000","message":"This is confusing because this field wouldn\u0027t actually exist in the DB","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"645361371a1c05ba69e988c1a533d4efaad61f24","unresolved":false,"context_lines":[{"line_number":134,"context_line":"- uuid"},{"line_number":135,"context_line":"- latestVersion"},{"line_number":136,"context_line":"- is_deleted"},{"line_number":137,"context_line":"- {\u003cversion\u003e: \u003cTemplate object ref\u003e, ...}"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Overall, versions would work the same as above this object would be the main"},{"line_number":140,"context_line":"source of linking Templates to versions."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_b34441b7","line":137,"in_reply_to":"ba5da102_73d0e9f6","updated":"2016-11-02 17:09:02.000000000","message":"Foreign keys in the ClusterTemplate table","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"0933219dc3fc87aaee84d743fc0c5d645883e4d7","unresolved":false,"context_lines":[{"line_number":134,"context_line":"- uuid"},{"line_number":135,"context_line":"- latestVersion"},{"line_number":136,"context_line":"- is_deleted"},{"line_number":137,"context_line":"- {\u003cversion\u003e: \u003cTemplate object ref\u003e, ...}"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Overall, versions would work the same as above this object would be the main"},{"line_number":140,"context_line":"source of linking Templates to versions."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_277f0b67","line":137,"in_reply_to":"ba5da102_b34441b7","updated":"2016-11-02 18:10:31.000000000","message":"So the CT must have the uuid of the ParentTemplate as foreign key and the version.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"8afcf1c7943309df2a9325ddbced20424f8f673b","unresolved":false,"context_lines":[{"line_number":134,"context_line":"- uuid"},{"line_number":135,"context_line":"- latestVersion"},{"line_number":136,"context_line":"- is_deleted"},{"line_number":137,"context_line":"- {\u003cversion\u003e: \u003cTemplate object ref\u003e, ...}"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Overall, versions would work the same as above this object would be the main"},{"line_number":140,"context_line":"source of linking Templates to versions."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_73d0e9f6","line":137,"in_reply_to":"ba5da102_bd017208","updated":"2016-11-02 16:53:25.000000000","message":"what would exist?","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"611b35832e5b8ebff72945561892acdf33c7c248","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Overall, versions would work the same as above this object would be the main"},{"line_number":140,"context_line":"source of linking Templates to versions."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Create"},{"line_number":143,"context_line":"------"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_8039a5d9","line":141,"updated":"2016-11-02 16:31:21.000000000","message":"Please document the changes to the ClusterTemplate table.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"7e7117cd111a5a4defa44298c60137209adb40b0","unresolved":false,"context_lines":[{"line_number":150,"context_line":"------"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"A new Template object would be created.  A reference to that object would be"},{"line_number":153,"context_line":"added to the version list with version equal to latest+1."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Delete"},{"line_number":156,"context_line":"------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_2b39aed7","line":153,"range":{"start_line":153,"start_character":9,"end_line":153,"end_character":25},"updated":"2016-11-02 10:58:23.000000000","message":"to the version list of TemplateParent","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"0933219dc3fc87aaee84d743fc0c5d645883e4d7","unresolved":false,"context_lines":[{"line_number":150,"context_line":"------"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"A new Template object would be created.  A reference to that object would be"},{"line_number":153,"context_line":"added to the version list with version equal to latest+1."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Delete"},{"line_number":156,"context_line":"------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_4c7986c7","line":153,"range":{"start_line":153,"start_character":9,"end_line":153,"end_character":25},"in_reply_to":"ba5da102_2b39aed7","updated":"2016-11-02 18:10:31.000000000","message":"A new Template object would be created and in the ParentTemplate the latest version would be increased by 1.\n\nTo do this, you do cluster-template-update \u003cuuid of the parent template\u003e replace ...\n\n1. A new entry is created using the same attrs plus the new ones plus and increment in the version.\n2. The version in parent template is bumped.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"0933219dc3fc87aaee84d743fc0c5d645883e4d7","unresolved":false,"context_lines":[{"line_number":158,"context_line":"Flag for is_deleted would be set true in the TemplateParent. The template will"},{"line_number":159,"context_line":"no longer be valid for new resource creation.  If all resources referencing any"},{"line_number":160,"context_line":"version in the TemplateParent are deleted then the TemplateParent and listed"},{"line_number":161,"context_line":"template objects will be deleted from database."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":""},{"line_number":164,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_47431f42","line":161,"updated":"2016-11-02 18:10:31.000000000","message":"After ct-delete we must search for all non referenced CTs and deleted them. Then in cluster deletion we must do it again and if all CTs are gone we delete the ParentCT.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"0933219dc3fc87aaee84d743fc0c5d645883e4d7","unresolved":false,"context_lines":[{"line_number":209,"context_line":"Documentation Impact"},{"line_number":210,"context_line":"--------------------"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"Documentation will need to be updated to show how versioning will work for templates."},{"line_number":213,"context_line":""},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_27cd4bb7","line":212,"updated":"2016-11-02 18:10:31.000000000","message":"This maybe a better fit for an arch-guide.","commit_id":"a27aa03c1673dbe78b45765c980db6ecd1c2e2c5"},{"author":{"_account_id":7230,"name":"Vijendar Komalla","email":"vijendar.komalla@rackspace.com","username":"vijendar"},"change_message_id":"0af0fe460b77c0d24f64349460c434d81bb833ce","unresolved":false,"context_lines":[{"line_number":45,"context_line":" - version"},{"line_number":46,"context_line":" - parent_uuid"},{"line_number":47,"context_line":" - marked_for_deletion"},{"line_number":48,"context_line":" - obsolete"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Create"},{"line_number":51,"context_line":"------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba5da102_b0cc30bc","line":48,"range":{"start_line":48,"start_character":3,"end_line":48,"end_character":11},"updated":"2016-11-02 19:06:48.000000000","message":"How about adding a \u0027status\u0027 field that can be set to \u0027ACTIVE\u0027, \u0027OBSOLETE\u0027, \u0027READY_TO_DELETE\u0027/\u0027MARKED_FOR_DELETE\u0027 etc... any thoughts?","commit_id":"3504e455659fc5f9b73bfc67e24747e69706c438"},{"author":{"_account_id":7230,"name":"Vijendar Komalla","email":"vijendar.komalla@rackspace.com","username":"vijendar"},"change_message_id":"0af0fe460b77c0d24f64349460c434d81bb833ce","unresolved":false,"context_lines":[{"line_number":84,"context_line":"active resources referencing it then it will be deleted from the db. If all"},{"line_number":85,"context_line":"versions can be deleted then the parent version will be deleted as well. Magnum"},{"line_number":86,"context_line":"will also run this check on after any resource (Cluster/NodeGroup) delete to"},{"line_number":87,"context_line":"see if addition templates that are marked for deletion can be removed."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"List"},{"line_number":90,"context_line":"----"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba5da102_101a3c17","line":87,"range":{"start_line":87,"start_character":7,"end_line":87,"end_character":15},"updated":"2016-11-02 19:06:48.000000000","message":"s/addition/additional?","commit_id":"3504e455659fc5f9b73bfc67e24747e69706c438"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"b86027ada7aa8ef94d3f296f451b95a22a7a2d4a","unresolved":false,"context_lines":[{"line_number":124,"context_line":"above."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Alternative Implementation Option"},{"line_number":128,"context_line":"---------------------------------"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Another way to implement this feature would be to move the fields shared"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba5da102_aae67be5","line":127,"updated":"2016-11-02 22:13:34.000000000","message":"Ok, I\u0027m won over by this.  I think it is making better use of the database and is cleaner overall. I can also imagine that there might be additional version features in the future and this will be easier to update.\n\nMy vote is for this to be the implementation","commit_id":"d22986ff90e0abe651304f3d534ebe5e0ca85bcc"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"4f88d75869f1565e77627406fdc2419f84c997a5","unresolved":false,"context_lines":[{"line_number":56,"context_line":"Template"},{"line_number":57,"context_line":" - name"},{"line_number":58,"context_line":" - uuid"},{"line_number":59,"context_line":" - latest_version - FK to the TemplateVersion"},{"line_number":60,"context_line":" - is_deleted"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"TemplateVersion"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba5da102_47e743ac","line":59,"range":{"start_line":59,"start_character":30,"end_line":59,"end_character":45},"updated":"2016-11-04 17:52:53.000000000","message":"If this is going to be reworded, it should say \"latest TemplateVersion\"\n\nThe reason I said \"possibly\" is because adding this would create a cyclic dependency in the DB, which might be problematic.","commit_id":"48253d1f2fd337ee2edd83beb42d17f220ed2ab9"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"2987181692598afec9b3018116815d7ebd80782e","unresolved":false,"context_lines":[{"line_number":56,"context_line":"Template"},{"line_number":57,"context_line":" - name"},{"line_number":58,"context_line":" - uuid"},{"line_number":59,"context_line":" - latest_version - FK to the TemplateVersion"},{"line_number":60,"context_line":" - is_deleted"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"TemplateVersion"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba5da102_8a3962db","line":59,"range":{"start_line":59,"start_character":30,"end_line":59,"end_character":45},"in_reply_to":"ba5da102_47e743ac","updated":"2016-11-04 17:58:40.000000000","message":"ok, then i\u0027ll return it to just latest version for now.","commit_id":"48253d1f2fd337ee2edd83beb42d17f220ed2ab9"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"2479a70efba7f3b8887be9974edc008dcd4c8759","unresolved":false,"context_lines":[{"line_number":50,"context_line":"Template."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Each TemplateVersion will have a foreign key linking it to the Template object."},{"line_number":53,"context_line":"It will not need an uuid all the TemplateVersions will share the uuid of the"},{"line_number":54,"context_line":"Template. Each TemplateVersion will have its own version number."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"The Template  will also have an is_deleted flag that will be used to indicate"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba5da102_77e78eac","line":53,"range":{"start_line":53,"start_character":17,"end_line":53,"end_character":24},"updated":"2016-11-04 22:23:52.000000000","message":"s/an uuid/a UUID as/","commit_id":"ef7bb7285bcd261a6d1ab1b45f2be365951306b1"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"2479a70efba7f3b8887be9974edc008dcd4c8759","unresolved":false,"context_lines":[{"line_number":109,"context_line":"List"},{"line_number":110,"context_line":"----"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"When listing templates, the latest_version will be used for the attributes."},{"line_number":113,"context_line":"This will mean that only the latest version of each template will show"},{"line_number":114,"context_line":"up in the list.  A new flag will be added to view all versions including those"},{"line_number":115,"context_line":"marked as obsolete.  --all-versions"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba5da102_f7763e05","line":112,"range":{"start_line":112,"start_character":51,"end_line":112,"end_character":74},"updated":"2016-11-04 22:23:52.000000000","message":"Not sure what you mean by this, since attributes won\u0027t show up in cluster-template-list.","commit_id":"ef7bb7285bcd261a6d1ab1b45f2be365951306b1"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"899793139589bdae8c4d99cc9174b022aae7341c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"https://blueprints.launchpad.net/magnum/+spec/template-versioning"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Magnum currently does not contain any method for versioning the templates"},{"line_number":16,"context_line":"that are used to create resources .i.e ClusterTemplates(CT) and"},{"line_number":17,"context_line":"NodeGroupTemplates(NGT).  Template versions will provide operators better"},{"line_number":18,"context_line":"tools for using and maintaining templates within Magnum."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a629dbe_88208c4b","line":16,"range":{"start_line":16,"start_character":54,"end_line":16,"end_character":56},"updated":"2016-11-07 17:29:07.000000000","message":"Needs a space","commit_id":"fb845404957a1ccb4f8272203bc93aff7a8457b9"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"899793139589bdae8c4d99cc9174b022aae7341c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"https://blueprints.launchpad.net/magnum/+spec/template-versioning"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Magnum currently does not contain any method for versioning the templates"},{"line_number":16,"context_line":"that are used to create resources .i.e ClusterTemplates(CT) and"},{"line_number":17,"context_line":"NodeGroupTemplates(NGT).  Template versions will provide operators better"},{"line_number":18,"context_line":"tools for using and maintaining templates within Magnum."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a629dbe_48267469","line":16,"range":{"start_line":16,"start_character":34,"end_line":16,"end_character":38},"updated":"2016-11-07 17:29:07.000000000","message":"i.e.","commit_id":"fb845404957a1ccb4f8272203bc93aff7a8457b9"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"a1174f72c1a2c4a83c2e28898ecaad2a03edf994","unresolved":false,"context_lines":[{"line_number":13,"context_line":"https://blueprints.launchpad.net/magnum/+spec/template-versioning"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Magnum currently does not contain any method for versioning the templates"},{"line_number":16,"context_line":"that are used to create resources .i.e ClusterTemplates(CT) and"},{"line_number":17,"context_line":"NodeGroupTemplates(NGT).  Template versions will provide operators better"},{"line_number":18,"context_line":"tools for using and maintaining templates within Magnum."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a629dbe_eb3102ee","line":16,"range":{"start_line":16,"start_character":34,"end_line":16,"end_character":38},"in_reply_to":"9a629dbe_48267469","updated":"2016-11-07 17:33:15.000000000","message":"Done","commit_id":"fb845404957a1ccb4f8272203bc93aff7a8457b9"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"a1174f72c1a2c4a83c2e28898ecaad2a03edf994","unresolved":false,"context_lines":[{"line_number":13,"context_line":"https://blueprints.launchpad.net/magnum/+spec/template-versioning"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Magnum currently does not contain any method for versioning the templates"},{"line_number":16,"context_line":"that are used to create resources .i.e ClusterTemplates(CT) and"},{"line_number":17,"context_line":"NodeGroupTemplates(NGT).  Template versions will provide operators better"},{"line_number":18,"context_line":"tools for using and maintaining templates within Magnum."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a629dbe_0b4d5672","line":16,"range":{"start_line":16,"start_character":54,"end_line":16,"end_character":56},"in_reply_to":"9a629dbe_88208c4b","updated":"2016-11-07 17:33:15.000000000","message":"Done","commit_id":"fb845404957a1ccb4f8272203bc93aff7a8457b9"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"899793139589bdae8c4d99cc9174b022aae7341c","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Magnum currently does not contain any method for versioning the templates"},{"line_number":16,"context_line":"that are used to create resources .i.e ClusterTemplates(CT) and"},{"line_number":17,"context_line":"NodeGroupTemplates(NGT).  Template versions will provide operators better"},{"line_number":18,"context_line":"tools for using and maintaining templates within Magnum."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a629dbe_a81d5011","line":17,"range":{"start_line":17,"start_character":17,"end_line":17,"end_character":19},"updated":"2016-11-07 17:29:07.000000000","message":"Needs a space","commit_id":"fb845404957a1ccb4f8272203bc93aff7a8457b9"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"a1174f72c1a2c4a83c2e28898ecaad2a03edf994","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Magnum currently does not contain any method for versioning the templates"},{"line_number":16,"context_line":"that are used to create resources .i.e ClusterTemplates(CT) and"},{"line_number":17,"context_line":"NodeGroupTemplates(NGT).  Template versions will provide operators better"},{"line_number":18,"context_line":"tools for using and maintaining templates within Magnum."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a629dbe_4b574e02","line":17,"range":{"start_line":17,"start_character":17,"end_line":17,"end_character":19},"in_reply_to":"9a629dbe_a81d5011","updated":"2016-11-07 17:33:15.000000000","message":"Done","commit_id":"fb845404957a1ccb4f8272203bc93aff7a8457b9"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"899793139589bdae8c4d99cc9174b022aae7341c","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Without template versions, operators must keep track of templates that"},{"line_number":24,"context_line":"are used to create resources within Magnum.  Without versions it can be"},{"line_number":25,"context_line":"difficult to ensure updated Templates are used since older templates must"},{"line_number":26,"context_line":"remain if resources created with them exist. Also future desired features"},{"line_number":27,"context_line":"such as Cluster upgrades want to make use of versioned templates to better"},{"line_number":28,"context_line":"control these updates."},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a629dbe_08dd5c14","line":26,"range":{"start_line":26,"start_character":45,"end_line":26,"end_character":49},"updated":"2016-11-07 17:29:07.000000000","message":"Also,","commit_id":"fb845404957a1ccb4f8272203bc93aff7a8457b9"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"a1174f72c1a2c4a83c2e28898ecaad2a03edf994","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Without template versions, operators must keep track of templates that"},{"line_number":24,"context_line":"are used to create resources within Magnum.  Without versions it can be"},{"line_number":25,"context_line":"difficult to ensure updated Templates are used since older templates must"},{"line_number":26,"context_line":"remain if resources created with them exist. Also future desired features"},{"line_number":27,"context_line":"such as Cluster upgrades want to make use of versioned templates to better"},{"line_number":28,"context_line":"control these updates."},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a629dbe_ab3e2ab6","line":26,"range":{"start_line":26,"start_character":45,"end_line":26,"end_character":49},"in_reply_to":"9a629dbe_08dd5c14","updated":"2016-11-07 17:33:15.000000000","message":"Done","commit_id":"fb845404957a1ccb4f8272203bc93aff7a8457b9"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"899793139589bdae8c4d99cc9174b022aae7341c","unresolved":false,"context_lines":[{"line_number":31,"context_line":"---------"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"1. Operators create a public ClusterTemplate to be used for creating Clusters."},{"line_number":34,"context_line":"The operators want to be able to update the template without changing the"},{"line_number":35,"context_line":"name/uuid of the template while also tracking which version are still in use."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"2. Operators want to delete a ClusterTemplate so that it cannot be used for new"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a629dbe_4899146e","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":3},"updated":"2016-11-07 17:29:07.000000000","message":"Can you indent the lines that are a part of numbered lists? 3 spaces so that the \"T\" in \"The\" is aligned with \"O\" in \"Operators\".","commit_id":"fb845404957a1ccb4f8272203bc93aff7a8457b9"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"a1174f72c1a2c4a83c2e28898ecaad2a03edf994","unresolved":false,"context_lines":[{"line_number":31,"context_line":"---------"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"1. Operators create a public ClusterTemplate to be used for creating Clusters."},{"line_number":34,"context_line":"The operators want to be able to update the template without changing the"},{"line_number":35,"context_line":"name/uuid of the template while also tracking which version are still in use."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"2. Operators want to delete a ClusterTemplate so that it cannot be used for new"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a629dbe_8b41663c","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":3},"in_reply_to":"9a629dbe_4899146e","updated":"2016-11-07 17:33:15.000000000","message":"Done","commit_id":"fb845404957a1ccb4f8272203bc93aff7a8457b9"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"899793139589bdae8c4d99cc9174b022aae7341c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Proposed Changes"},{"line_number":45,"context_line":"----------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"To implement this feature Template would be split into the Template object"},{"line_number":48,"context_line":"that contains the shared name, uuid, and the latest version information and the"},{"line_number":49,"context_line":"TemplateVersion that contains the attributes, version, and reference to"},{"line_number":50,"context_line":"Template."}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a629dbe_a8c71044","line":47,"range":{"start_line":47,"start_character":18,"end_line":47,"end_character":25},"updated":"2016-11-07 17:29:07.000000000","message":"feature,","commit_id":"fb845404957a1ccb4f8272203bc93aff7a8457b9"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"a1174f72c1a2c4a83c2e28898ecaad2a03edf994","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Proposed Changes"},{"line_number":45,"context_line":"----------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"To implement this feature Template would be split into the Template object"},{"line_number":48,"context_line":"that contains the shared name, uuid, and the latest version information and the"},{"line_number":49,"context_line":"TemplateVersion that contains the attributes, version, and reference to"},{"line_number":50,"context_line":"Template."}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a629dbe_eb48225e","line":47,"range":{"start_line":47,"start_character":18,"end_line":47,"end_character":25},"in_reply_to":"9a629dbe_a8c71044","updated":"2016-11-07 17:33:15.000000000","message":"Done","commit_id":"fb845404957a1ccb4f8272203bc93aff7a8457b9"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"899793139589bdae8c4d99cc9174b022aae7341c","unresolved":false,"context_lines":[{"line_number":134,"context_line":"-----------------"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"ClusterTemplate and NodeGroupTemplate will have the following attributes added"},{"line_number":137,"context_line":"on top of the changes being made as part of the Flatten Attributes[1] and"},{"line_number":138,"context_line":"NodeGroup[2] specs."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Template - ClusterTemplate and NodeGroupTemplate"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a629dbe_e8f9084f","line":137,"range":{"start_line":137,"start_character":65,"end_line":137,"end_character":67},"updated":"2016-11-07 17:29:07.000000000","message":"I think a space should be here.","commit_id":"fb845404957a1ccb4f8272203bc93aff7a8457b9"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"a1174f72c1a2c4a83c2e28898ecaad2a03edf994","unresolved":false,"context_lines":[{"line_number":134,"context_line":"-----------------"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"ClusterTemplate and NodeGroupTemplate will have the following attributes added"},{"line_number":137,"context_line":"on top of the changes being made as part of the Flatten Attributes[1] and"},{"line_number":138,"context_line":"NodeGroup[2] specs."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Template - ClusterTemplate and NodeGroupTemplate"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a629dbe_6b7332b2","line":137,"range":{"start_line":137,"start_character":65,"end_line":137,"end_character":67},"in_reply_to":"9a629dbe_e8f9084f","updated":"2016-11-07 17:33:15.000000000","message":"Done","commit_id":"fb845404957a1ccb4f8272203bc93aff7a8457b9"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"899793139589bdae8c4d99cc9174b022aae7341c","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"ClusterTemplate and NodeGroupTemplate will have the following attributes added"},{"line_number":137,"context_line":"on top of the changes being made as part of the Flatten Attributes[1] and"},{"line_number":138,"context_line":"NodeGroup[2] specs."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Template - ClusterTemplate and NodeGroupTemplate"},{"line_number":141,"context_line":" - New objects and tables."}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a629dbe_289a2015","line":138,"range":{"start_line":138,"start_character":8,"end_line":138,"end_character":10},"updated":"2016-11-07 17:29:07.000000000","message":"ditto","commit_id":"fb845404957a1ccb4f8272203bc93aff7a8457b9"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"a1174f72c1a2c4a83c2e28898ecaad2a03edf994","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"ClusterTemplate and NodeGroupTemplate will have the following attributes added"},{"line_number":137,"context_line":"on top of the changes being made as part of the Flatten Attributes[1] and"},{"line_number":138,"context_line":"NodeGroup[2] specs."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Template - ClusterTemplate and NodeGroupTemplate"},{"line_number":141,"context_line":" - New objects and tables."}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a629dbe_ab654ae2","line":138,"range":{"start_line":138,"start_character":8,"end_line":138,"end_character":10},"in_reply_to":"9a629dbe_289a2015","updated":"2016-11-07 17:33:15.000000000","message":"Done","commit_id":"fb845404957a1ccb4f8272203bc93aff7a8457b9"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"4eeefee4a272f1a8ce61f2ec2461dc19e5fb6f68","unresolved":false,"context_lines":[{"line_number":13,"context_line":"https://blueprints.launchpad.net/magnum/+spec/template-versioning"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Magnum currently does not contain any method for versioning the templates"},{"line_number":16,"context_line":"that are used to create resources .i.e. ClusterTemplates (CT) and"},{"line_number":17,"context_line":"NodeGroupTemplates (NGT).  Template versions will provide operators better"},{"line_number":18,"context_line":"tools for using and maintaining templates within Magnum."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a629dbe_2b8dba31","line":16,"range":{"start_line":16,"start_character":34,"end_line":16,"end_character":39},"updated":"2016-11-07 17:39:58.000000000","message":"Not .i.e.\n\ni.e.","commit_id":"df23e7cb95e4a6116a3a5675b4b4251221cf7a14"},{"author":{"_account_id":21660,"name":"Stephen Watson","email":"stephen.watson@intel.com","username":"swatson"},"change_message_id":"216deb07b418fd214fd1a07f547d981803575c94","unresolved":false,"context_lines":[{"line_number":113,"context_line":"When listing templates, it will also return the latest version number for the"},{"line_number":114,"context_line":"template. This will mean that only the latest version of each template will"},{"line_number":115,"context_line":"show up in the list.  A new flag, --all-versions, will be added to view all"},{"line_number":116,"context_line":"versions including those marked as obsolete."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Show"},{"line_number":119,"context_line":"----"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a629dbe_730c0495","line":116,"updated":"2016-11-07 19:56:18.000000000","message":"Don\u0027t need the part about being marked obsolete","commit_id":"7a44921c3380be6d1e7f4d1e14d6dacba0045e49"},{"author":{"_account_id":21660,"name":"Stephen Watson","email":"stephen.watson@intel.com","username":"swatson"},"change_message_id":"216deb07b418fd214fd1a07f547d981803575c94","unresolved":false,"context_lines":[{"line_number":127,"context_line":"------------------------"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"When using a template to create a resource the latest version of the template"},{"line_number":130,"context_line":"will always be used. If all versions are obsolete in the case of a deletion,"},{"line_number":131,"context_line":"a resource cannot be created using that template."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a629dbe_735a4485","line":130,"updated":"2016-11-07 19:56:18.000000000","message":"\"If all versions are obsolete\" or \"if all versions are deleted\"?","commit_id":"7a44921c3380be6d1e7f4d1e14d6dacba0045e49"},{"author":{"_account_id":21660,"name":"Stephen Watson","email":"stephen.watson@intel.com","username":"swatson"},"change_message_id":"216deb07b418fd214fd1a07f547d981803575c94","unresolved":false,"context_lines":[{"line_number":139,"context_line":"NodeGroup [2] specs."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Template - ClusterTemplate and NodeGroupTemplate"},{"line_number":142,"context_line":" - New objects and tables."},{"line_number":143,"context_line":" - name"},{"line_number":144,"context_line":" - uuid"},{"line_number":145,"context_line":" - latest_version"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a629dbe_13e3c8a4","line":142,"updated":"2016-11-07 19:56:18.000000000","message":"Probably don\u0027t need to call out \"new objects and tables\" since we mention it above with \"the following attributes on top of the changes being made [...]\"","commit_id":"7a44921c3380be6d1e7f4d1e14d6dacba0045e49"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"3fd2ccf8aeaf3fece59803f5978ad64cebaa1304","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Add Template Versioning in Magnum"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Launchpad blueprint:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_d7979c38","line":8,"range":{"start_line":8,"start_character":4,"end_line":8,"end_character":12},"updated":"2016-11-13 05:03:49.000000000","message":"I think it is more clear to replace \"Template\" with \"Cluster Template\". This applies to everywhere in the content below. I suggested that because \"Template\" could mean a Heat template as well. It will cause confusion to readers.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"6476ed30fd57712bff7ef94fb8a1ed08d35a9616","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Add Template Versioning in Magnum"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Launchpad blueprint:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a77a97e_fc4b6f29","line":8,"range":{"start_line":8,"start_character":4,"end_line":8,"end_character":12},"in_reply_to":"7a77a97e_de2b2732","updated":"2016-11-15 17:19:35.000000000","message":"Done","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"1d2bf7de3954a587091848ec16558ea0ba3cb940","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Add Template Versioning in Magnum"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Launchpad blueprint:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_e26e7c95","line":8,"range":{"start_line":8,"start_character":4,"end_line":8,"end_character":12},"in_reply_to":"9a629dbe_d7979c38","updated":"2016-11-14 15:59:05.000000000","message":"The reason for this was because everything below applies to any of the templates and going forward we will at least have 2(ClusterTemplate and NodeGroupTemplate).  I was trying to keep this generic but it might be better just to frame this as ClusterTemplate and then explain it can be used for any other template.  Anyone else feel strongly on this?","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"e043ba5b289bf0483f7fbd1cbdd69a02b23a4425","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Add Template Versioning in Magnum"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Launchpad blueprint:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_ede3cd03","line":8,"range":{"start_line":8,"start_character":4,"end_line":8,"end_character":12},"in_reply_to":"9a629dbe_e26e7c95","updated":"2016-11-14 16:17:39.000000000","message":"The reason I suggested this is because I thought you were proposing Heat template versioning in Magnum. After reading the spec for a while, I figured out what you mean is ClusterTemplate.\n\nI think this confusion can be clarified by explicitly mentioning it as \"ClusterTemplate\". However, I don\u0027t feel strong for that. It is just an advice for you to reference.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"f1f3927449716271dfacc139b11c9f27c1ccabf8","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Add Template Versioning in Magnum"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Launchpad blueprint:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a77a97e_de2b2732","line":8,"range":{"start_line":8,"start_character":4,"end_line":8,"end_character":12},"in_reply_to":"9a629dbe_ede3cd03","updated":"2016-11-15 05:48:28.000000000","message":"+1 for Hongbin\u0027s comment. I also got the same impression.\nIt will be good to change it to ClusterTemplate.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"3fd2ccf8aeaf3fece59803f5978ad64cebaa1304","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Magnum currently does not contain any method for versioning the templates"},{"line_number":16,"context_line":"that are used to create resources i.e. ClusterTemplates (CT) and"},{"line_number":17,"context_line":"NodeGroupTemplates (NGT).  Template versions will provide operators better"},{"line_number":18,"context_line":"tools for using and maintaining templates within Magnum."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_f79ca05f","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":18},"updated":"2016-11-13 05:03:49.000000000","message":"Node Group Templates are not implemented yet, so maybe you don\u0027t need to mention it here.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"e043ba5b289bf0483f7fbd1cbdd69a02b23a4425","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Magnum currently does not contain any method for versioning the templates"},{"line_number":16,"context_line":"that are used to create resources i.e. ClusterTemplates (CT) and"},{"line_number":17,"context_line":"NodeGroupTemplates (NGT).  Template versions will provide operators better"},{"line_number":18,"context_line":"tools for using and maintaining templates within Magnum."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_8db3310a","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":18},"in_reply_to":"9a629dbe_c21fb807","updated":"2016-11-14 16:17:39.000000000","message":"I see.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"1d2bf7de3954a587091848ec16558ea0ba3cb940","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Magnum currently does not contain any method for versioning the templates"},{"line_number":16,"context_line":"that are used to create resources i.e. ClusterTemplates (CT) and"},{"line_number":17,"context_line":"NodeGroupTemplates (NGT).  Template versions will provide operators better"},{"line_number":18,"context_line":"tools for using and maintaining templates within Magnum."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_c21fb807","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":18},"in_reply_to":"9a629dbe_f79ca05f","updated":"2016-11-14 15:59:05.000000000","message":"See comment above.  One of the reasons this spec was created though is that it split out some of the pieces of the very large NodeGroup spec.  This is something that NodeGroup spec will reference which is why I left everything generic.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"3fd2ccf8aeaf3fece59803f5978ad64cebaa1304","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Proposed Changes"},{"line_number":46,"context_line":"----------------"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"To implement this feature, Template would be split into the Template object"},{"line_number":49,"context_line":"that contains the shared name, uuid, and the latest version information and the"},{"line_number":50,"context_line":"TemplateVersion that contains the attributes, version, and reference to"},{"line_number":51,"context_line":"Template."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_97b444d5","line":48,"range":{"start_line":48,"start_character":45,"end_line":48,"end_character":50},"updated":"2016-11-13 05:03:49.000000000","message":"An alternative is to add an attribute \"version\" to the Template object to avoid the splitting. How do you evaluate the pros and cons of this alternative?","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"3f357fc0f51b2f77eebb76d1635632b188e54c87","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Proposed Changes"},{"line_number":46,"context_line":"----------------"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"To implement this feature, Template would be split into the Template object"},{"line_number":49,"context_line":"that contains the shared name, uuid, and the latest version information and the"},{"line_number":50,"context_line":"TemplateVersion that contains the attributes, version, and reference to"},{"line_number":51,"context_line":"Template."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_5cbe2dd5","line":48,"range":{"start_line":48,"start_character":45,"end_line":48,"end_character":50},"in_reply_to":"9a629dbe_40e3c405","updated":"2016-11-14 15:25:31.000000000","message":"I see.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"ab24709226dfd71705f0bbf5fd14519d9e4c374c","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Proposed Changes"},{"line_number":46,"context_line":"----------------"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"To implement this feature, Template would be split into the Template object"},{"line_number":49,"context_line":"that contains the shared name, uuid, and the latest version information and the"},{"line_number":50,"context_line":"TemplateVersion that contains the attributes, version, and reference to"},{"line_number":51,"context_line":"Template."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_40e3c405","line":48,"range":{"start_line":48,"start_character":45,"end_line":48,"end_character":50},"in_reply_to":"9a629dbe_97b444d5","updated":"2016-11-13 14:20:04.000000000","message":"The alternative is described below:\nhttps://review.openstack.org/#/c/392327/12/specs/template-versioning.rst@167\n\nThe reasoning was to not treat the first version as special.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":9995,"name":"Ricardo Rocha","email":"rocha.porto@gmail.com","username":"rocha"},"change_message_id":"69f2e532efbf83a0f9e393fd3216afda6161f31d","unresolved":false,"context_lines":[{"line_number":75,"context_line":" - version"},{"line_number":76,"context_line":" - Other attributes (image, flavor, etc.)"},{"line_number":77,"context_line":" - No uuid is necessary because the combination of Template UUID and version is"},{"line_number":78,"context_line":"   unique."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Create"},{"line_number":81,"context_line":"------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_7fa37a00","line":78,"updated":"2016-11-09 20:21:45.000000000","message":"creation_time is assumed here too?","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"699e3b30aa8b443e5926226e3349ac44f2bf0b29","unresolved":false,"context_lines":[{"line_number":75,"context_line":" - version"},{"line_number":76,"context_line":" - Other attributes (image, flavor, etc.)"},{"line_number":77,"context_line":" - No uuid is necessary because the combination of Template UUID and version is"},{"line_number":78,"context_line":"   unique."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Create"},{"line_number":81,"context_line":"------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_df3e4627","line":78,"in_reply_to":"9a629dbe_7fa37a00","updated":"2016-11-09 20:30:46.000000000","message":"I think TemplateVersion would inherit from Base so it would come with created_at and updated_at like all other objects. Should that be made explicit in the spec?\n\nhttps://github.com/openstack/oslo.db/blob/2e79681670f7b8e6843abf29d6e95ffda0c3147c/oslo_db/sqlalchemy/models.py#L135-L137\n\nhttps://github.com/openstack/magnum/blob/8083fc2971cfe460df893ab948e96b6cf5446ebc/magnum/db/sqlalchemy/models.py#L82\n\nhttps://github.com/openstack/magnum/blob/8083fc2971cfe460df893ab948e96b6cf5446ebc/magnum/db/sqlalchemy/models.py#L101","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"3fd2ccf8aeaf3fece59803f5978ad64cebaa1304","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Updates are requested using the UUID of the Template. The latest"},{"line_number":95,"context_line":"TemplateVersion (version N) is duplicated, with the fields in the new"},{"line_number":96,"context_line":"TemplateVersion entry updated as requested. The new TemplateVersion refers to"},{"line_number":97,"context_line":"the same Template entry. The version of the new TemplateVersion is set to"},{"line_number":98,"context_line":"N + 1. The Template\u0027s latest_version is also set to N + 1."},{"line_number":99,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_77c0902b","line":96,"range":{"start_line":96,"start_character":16,"end_line":96,"end_character":21},"updated":"2016-11-13 05:03:49.000000000","message":"It seems diffs between versions are not stored, so it is impossible to trace back the content of previous versions. However, storing the diffs is more complicated, so I am not sure.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"831b8ec0ebfdbad318468558a232796e678dd72a","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Updates are requested using the UUID of the Template. The latest"},{"line_number":95,"context_line":"TemplateVersion (version N) is duplicated, with the fields in the new"},{"line_number":96,"context_line":"TemplateVersion entry updated as requested. The new TemplateVersion refers to"},{"line_number":97,"context_line":"the same Template entry. The version of the new TemplateVersion is set to"},{"line_number":98,"context_line":"N + 1. The Template\u0027s latest_version is also set to N + 1."},{"line_number":99,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a77a97e_d7112cae","line":96,"range":{"start_line":96,"start_character":16,"end_line":96,"end_character":21},"in_reply_to":"7a77a97e_1c93cb5c","updated":"2016-11-15 17:44:44.000000000","message":"I think that storing diffs is useful if we wanted to avoid copying and storing large amounts of data. I don\u0027t think we have that problem though because there isn\u0027t really that much data in a ClusterTemplate. I would be wary of storing diffs because it would have other performance tradeoffs like the one Jaycen mentioned.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"760f8cb610de47c5c0cbdffc9f8085f30117d0d4","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Updates are requested using the UUID of the Template. The latest"},{"line_number":95,"context_line":"TemplateVersion (version N) is duplicated, with the fields in the new"},{"line_number":96,"context_line":"TemplateVersion entry updated as requested. The new TemplateVersion refers to"},{"line_number":97,"context_line":"the same Template entry. The version of the new TemplateVersion is set to"},{"line_number":98,"context_line":"N + 1. The Template\u0027s latest_version is also set to N + 1."},{"line_number":99,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a77a97e_2bcdfb30","line":96,"range":{"start_line":96,"start_character":16,"end_line":96,"end_character":21},"in_reply_to":"7a77a97e_1c93cb5c","updated":"2016-11-18 14:59:22.000000000","message":"No I meant we can just store the diff of the latest and the last version. Seeing at the diff the users can get idea what has been changed from the last version.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"6476ed30fd57712bff7ef94fb8a1ed08d35a9616","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Updates are requested using the UUID of the Template. The latest"},{"line_number":95,"context_line":"TemplateVersion (version N) is duplicated, with the fields in the new"},{"line_number":96,"context_line":"TemplateVersion entry updated as requested. The new TemplateVersion refers to"},{"line_number":97,"context_line":"the same Template entry. The version of the new TemplateVersion is set to"},{"line_number":98,"context_line":"N + 1. The Template\u0027s latest_version is also set to N + 1."},{"line_number":99,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a77a97e_1c93cb5c","line":96,"range":{"start_line":96,"start_character":16,"end_line":96,"end_character":21},"in_reply_to":"7a77a97e_5ea3979e","updated":"2016-11-15 17:19:35.000000000","message":"if i understand correctly this would mean that getting the latest version of the template would require combining all of the diff entries.  How often would knowing the diff be needed? I can see on upgrades but in that case you would just want to compare current version with latest version. That would be easier with only checking 2 entries vs having to combine all of the entries in between.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"ab24709226dfd71705f0bbf5fd14519d9e4c374c","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Updates are requested using the UUID of the Template. The latest"},{"line_number":95,"context_line":"TemplateVersion (version N) is duplicated, with the fields in the new"},{"line_number":96,"context_line":"TemplateVersion entry updated as requested. The new TemplateVersion refers to"},{"line_number":97,"context_line":"the same Template entry. The version of the new TemplateVersion is set to"},{"line_number":98,"context_line":"N + 1. The Template\u0027s latest_version is also set to N + 1."},{"line_number":99,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_a09f4064","line":96,"range":{"start_line":96,"start_character":16,"end_line":96,"end_character":21},"in_reply_to":"9a629dbe_77c0902b","updated":"2016-11-13 14:20:04.000000000","message":"I don\u0027t think that we need to store the diffs explicitly, if in an operation we need the diff of  a specific value we can calculate it. Additionally we might be interested in the diff from version N and N-10, so we can\u0027t have all diffs.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"f1f3927449716271dfacc139b11c9f27c1ccabf8","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Updates are requested using the UUID of the Template. The latest"},{"line_number":95,"context_line":"TemplateVersion (version N) is duplicated, with the fields in the new"},{"line_number":96,"context_line":"TemplateVersion entry updated as requested. The new TemplateVersion refers to"},{"line_number":97,"context_line":"the same Template entry. The version of the new TemplateVersion is set to"},{"line_number":98,"context_line":"N + 1. The Template\u0027s latest_version is also set to N + 1."},{"line_number":99,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a77a97e_5ea3979e","line":96,"range":{"start_line":96,"start_character":16,"end_line":96,"end_character":21},"in_reply_to":"9a629dbe_7caa1187","updated":"2016-11-15 05:48:28.000000000","message":"I think we can only store the diffs of consecutive updates like N and N+1. We can get this diff easily from the update commands.\nAnd for user to know diff between N to N-10 they can see the diffs in in-between versions.\nThoughts?","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"3f357fc0f51b2f77eebb76d1635632b188e54c87","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Updates are requested using the UUID of the Template. The latest"},{"line_number":95,"context_line":"TemplateVersion (version N) is duplicated, with the fields in the new"},{"line_number":96,"context_line":"TemplateVersion entry updated as requested. The new TemplateVersion refers to"},{"line_number":97,"context_line":"the same Template entry. The version of the new TemplateVersion is set to"},{"line_number":98,"context_line":"N + 1. The Template\u0027s latest_version is also set to N + 1."},{"line_number":99,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_7caa1187","line":96,"range":{"start_line":96,"start_character":16,"end_line":96,"end_character":21},"in_reply_to":"9a629dbe_a09f4064","updated":"2016-11-14 15:25:31.000000000","message":"That is fine with me.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"3fd2ccf8aeaf3fece59803f5978ad64cebaa1304","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Delete"},{"line_number":101,"context_line":"------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Only one field is updated - is_deleted is set to True in the Template. The"},{"line_number":104,"context_line":"template will no longer be valid for new resource creation. A check will be"},{"line_number":105,"context_line":"made for each template version and all non-referenced TemplateVersion entries"},{"line_number":106,"context_line":"will be deleted. If all template versions are deleted, then the Template will"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_b7b948ce","line":103,"range":{"start_line":103,"start_character":18,"end_line":103,"end_character":25},"updated":"2016-11-13 05:03:49.000000000","message":"Delete should have an option to delete all versions of that templates.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"3fd2ccf8aeaf3fece59803f5978ad64cebaa1304","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Delete"},{"line_number":101,"context_line":"------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Only one field is updated - is_deleted is set to True in the Template. The"},{"line_number":104,"context_line":"template will no longer be valid for new resource creation. A check will be"},{"line_number":105,"context_line":"made for each template version and all non-referenced TemplateVersion entries"},{"line_number":106,"context_line":"will be deleted. If all template versions are deleted, then the Template will"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_d7aebc80","line":103,"range":{"start_line":103,"start_character":28,"end_line":103,"end_character":38},"updated":"2016-11-13 05:03:49.000000000","message":"I am ok with that. Just want to point out the disadvantage, which is soft deletion might leave out some garbage in DB.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"1d2bf7de3954a587091848ec16558ea0ba3cb940","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Delete"},{"line_number":101,"context_line":"------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Only one field is updated - is_deleted is set to True in the Template. The"},{"line_number":104,"context_line":"template will no longer be valid for new resource creation. A check will be"},{"line_number":105,"context_line":"made for each template version and all non-referenced TemplateVersion entries"},{"line_number":106,"context_line":"will be deleted. If all template versions are deleted, then the Template will"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_a2864411","line":103,"range":{"start_line":103,"start_character":28,"end_line":103,"end_character":38},"in_reply_to":"9a629dbe_c0a434bb","updated":"2016-11-14 15:59:05.000000000","message":"Correct, deleted templates will only have referenced versions in db and no new Clusters/NodeGroups can be created from them. So they will clean up as soon as existing clusters/NodeGroups are deleted.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"ab24709226dfd71705f0bbf5fd14519d9e4c374c","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Delete"},{"line_number":101,"context_line":"------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Only one field is updated - is_deleted is set to True in the Template. The"},{"line_number":104,"context_line":"template will no longer be valid for new resource creation. A check will be"},{"line_number":105,"context_line":"made for each template version and all non-referenced TemplateVersion entries"},{"line_number":106,"context_line":"will be deleted. If all template versions are deleted, then the Template will"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_c0a434bb","line":103,"range":{"start_line":103,"start_character":28,"end_line":103,"end_character":38},"in_reply_to":"9a629dbe_d7aebc80","updated":"2016-11-13 14:20:04.000000000","message":"Delete means delete all versions. We won\u0027t store garbage, only referenced versions will remain in the db.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":9995,"name":"Ricardo Rocha","email":"rocha.porto@gmail.com","username":"rocha"},"change_message_id":"69f2e532efbf83a0f9e393fd3216afda6161f31d","unresolved":false,"context_lines":[{"line_number":105,"context_line":"made for each template version and all non-referenced TemplateVersion entries"},{"line_number":106,"context_line":"will be deleted. If all template versions are deleted, then the Template will"},{"line_number":107,"context_line":"be deleted as well.  This check will be made again on the deletion of any"},{"line_number":108,"context_line":"resource (Cluster/NodeGroup)."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"List"},{"line_number":111,"context_line":"----"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_1fed1eef","line":108,"updated":"2016-11-09 20:21:45.000000000","message":"This is at template deletion time? If a template still has versions in use, it gets marked as deleted. If the referencing clusters get deleted later, does the template get dropped from the db? Alternatively we could put this into an admin operation (in magnum-manage) \u0027a la keystone token-flush. Keeping the history longer is not a bad idea if debugging is needed later.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"1d2bf7de3954a587091848ec16558ea0ba3cb940","unresolved":false,"context_lines":[{"line_number":105,"context_line":"made for each template version and all non-referenced TemplateVersion entries"},{"line_number":106,"context_line":"will be deleted. If all template versions are deleted, then the Template will"},{"line_number":107,"context_line":"be deleted as well.  This check will be made again on the deletion of any"},{"line_number":108,"context_line":"resource (Cluster/NodeGroup)."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"List"},{"line_number":111,"context_line":"----"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_e2c67c48","line":108,"in_reply_to":"9a629dbe_1fed1eef","updated":"2016-11-14 15:59:05.000000000","message":"As soon as there are no references left in existing clusters/Nodegroups the deleted template will be removed from db.  Until then the Template and any referenced versions will remain in the db.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"2f7f009601a413fbd8e76bad3c844169f961a8f5","unresolved":false,"context_lines":[{"line_number":145,"context_line":" - latest_version"},{"line_number":146,"context_line":" - is_deleted"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"TemplateVersion - ClusterTemplateVersion and NodeGroupTemplateVersion"},{"line_number":149,"context_line":" - Rename object to add \"Version\" to object and table name"},{"line_number":150,"context_line":" - Foreign key to Template"},{"line_number":151,"context_line":" - version"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_3d41f3a9","line":148,"range":{"start_line":148,"start_character":18,"end_line":148,"end_character":69},"updated":"2016-11-10 10:32:33.000000000","message":"These will be different tables?\n\nOne ClusterTemplateVersion  and one NodeGroupTemplateVersion?","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"791c7c3640c760758eab63f192d6b91873c7da22","unresolved":false,"context_lines":[{"line_number":145,"context_line":" - latest_version"},{"line_number":146,"context_line":" - is_deleted"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"TemplateVersion - ClusterTemplateVersion and NodeGroupTemplateVersion"},{"line_number":149,"context_line":" - Rename object to add \"Version\" to object and table name"},{"line_number":150,"context_line":" - Foreign key to Template"},{"line_number":151,"context_line":" - version"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_febbe7e2","line":148,"range":{"start_line":148,"start_character":18,"end_line":148,"end_character":69},"in_reply_to":"9a629dbe_3d41f3a9","updated":"2016-11-10 14:24:26.000000000","message":"Yes. The spec is written in a way that the versioning scheme it outlines could be applied to any magnum resource, really. So, it would be applied to ClusterTemplate and NodeGroupTemplate separately.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"84932f4450145ec72813ed8ae42636dad2505041","unresolved":false,"context_lines":[{"line_number":145,"context_line":" - latest_version"},{"line_number":146,"context_line":" - is_deleted"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"TemplateVersion - ClusterTemplateVersion and NodeGroupTemplateVersion"},{"line_number":149,"context_line":" - Rename object to add \"Version\" to object and table name"},{"line_number":150,"context_line":" - Foreign key to Template"},{"line_number":151,"context_line":" - version"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_fe64c722","line":148,"range":{"start_line":148,"start_character":18,"end_line":148,"end_character":69},"in_reply_to":"9a629dbe_febbe7e2","updated":"2016-11-10 14:30:09.000000000","message":"ack","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"78378bd0f0620826c28ee569ef2ec83ac4bf6081","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Alternative Implementation Option"},{"line_number":168,"context_line":"---------------------------------"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"To allow for template versioning the following would be added to Magnum"},{"line_number":171,"context_line":"templates (such as ClusterTemplate):"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_48fe6706","line":168,"updated":"2016-11-14 16:26:26.000000000","message":"I think another alternative is not version the cluster template at all. Each CT is immutable after creation. If user requests to update a CT, Magnum creates a new CT by cloning from the old CT.\n\nAgain, I don\u0027t feel strong at this alternative. Just want to point it out for you/the team to consider.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"2c08ca110d5d97317162de6b5b3a795c76e5dbc1","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Alternative Implementation Option"},{"line_number":168,"context_line":"---------------------------------"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"To allow for template versioning the following would be added to Magnum"},{"line_number":171,"context_line":"templates (such as ClusterTemplate):"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_68088b92","line":168,"in_reply_to":"9a629dbe_48b907ec","updated":"2016-11-14 16:40:31.000000000","message":"OK, make sense.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"587d93545a6ebf6e21802781c58c452e732197d8","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Alternative Implementation Option"},{"line_number":168,"context_line":"---------------------------------"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"To allow for template versioning the following would be added to Magnum"},{"line_number":171,"context_line":"templates (such as ClusterTemplate):"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a629dbe_48b907ec","line":168,"in_reply_to":"9a629dbe_48fe6706","updated":"2016-11-14 16:36:33.000000000","message":"One of the needs for the version is the Upgrade feature that Spyros has a spec for.  Have a link between the template versions allows the Upgrade feature to use the difference between template versions as info for the Upgrade without having to change the template name/uuid the existing cluster is based on.","commit_id":"53450c288e2ebb12572c6299794596bd4c0a0548"},{"author":{"_account_id":15123,"name":"Drago","email":"drago.rosson@rackspace.com","username":"Drago"},"change_message_id":"590569041552d998f9eeca9a7bcfd7ebad6331a2","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Add Cluster and NodeGroup Template Versioning in Magnum"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Launchpad blueprint:"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a77a97e_17000434","line":8,"range":{"start_line":8,"start_character":4,"end_line":8,"end_character":34},"updated":"2016-11-15 17:46:59.000000000","message":"Perhaps being perfectly clear here would be desirable. \"Cluster Template Versioning\" is still more ambiguous than \"ClusterTemplate Versioning\".","commit_id":"bec06c9e344835804f1d48041d6bdcda6f7e9e36"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"ffeb19423f8abbf475d44bc8f2cc37cbe1e946ca","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Magnum currently does not contain any method for versioning the templates"},{"line_number":16,"context_line":"that are used to create resources i.e. ClusterTemplates (CT) and"},{"line_number":17,"context_line":"NodeGroupTemplates (NGT).  Template versions will provide operators better"},{"line_number":18,"context_line":"tools for using and maintaining templates within Magnum."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_f82b8492","line":17,"range":{"start_line":17,"start_character":25,"end_line":17,"end_character":27},"updated":"2016-12-02 19:33:26.000000000","message":"Extra space can be removed.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"6af01655bdb2cd09edc1f096949faaf3a2781d10","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Magnum currently does not contain any method for versioning the templates"},{"line_number":16,"context_line":"that are used to create resources i.e. ClusterTemplates (CT) and"},{"line_number":17,"context_line":"NodeGroupTemplates (NGT).  Template versions will provide operators better"},{"line_number":18,"context_line":"tools for using and maintaining templates within Magnum."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_da45a170","line":17,"range":{"start_line":17,"start_character":25,"end_line":17,"end_character":27},"in_reply_to":"5a74a57a_f82b8492","updated":"2016-12-02 20:27:07.000000000","message":"Done","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"ffeb19423f8abbf475d44bc8f2cc37cbe1e946ca","unresolved":false,"context_lines":[{"line_number":21,"context_line":"-------------------"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Without template versions, operators must keep track of templates that"},{"line_number":24,"context_line":"are used to create resources within Magnum.  Without versions it can be"},{"line_number":25,"context_line":"difficult to ensure updated Templates are used since older templates must"},{"line_number":26,"context_line":"remain if resources created with them exist. Also, future desired features"},{"line_number":27,"context_line":"such as Cluster upgrades want to make use of versioned templates to better"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_1bfe7a05","line":24,"range":{"start_line":24,"start_character":19,"end_line":24,"end_character":28},"updated":"2016-12-02 19:33:26.000000000","message":"resources? does it referes cluster or cluster/nodegroups or anything else. In case of nodegroups also do we need to maintain versions. How version consistency checked between cluster template/nodegroup template.\nDuring upgrade do we need to pass nodegrouptemplates as well?\nIf yes how would they be passed can some example/reference be given.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"2588be148417bd2ab47785666f73cc09b094d87c","unresolved":false,"context_lines":[{"line_number":21,"context_line":"-------------------"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Without template versions, operators must keep track of templates that"},{"line_number":24,"context_line":"are used to create resources within Magnum.  Without versions it can be"},{"line_number":25,"context_line":"difficult to ensure updated Templates are used since older templates must"},{"line_number":26,"context_line":"remain if resources created with them exist. Also, future desired features"},{"line_number":27,"context_line":"such as Cluster upgrades want to make use of versioned templates to better"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_d276fa04","line":24,"range":{"start_line":24,"start_character":19,"end_line":24,"end_character":28},"in_reply_to":"3a71b18c_156a8ab3","updated":"2016-12-06 15:49:35.000000000","message":"Then this can be discussed in upgrade spec only.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"6af01655bdb2cd09edc1f096949faaf3a2781d10","unresolved":false,"context_lines":[{"line_number":21,"context_line":"-------------------"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Without template versions, operators must keep track of templates that"},{"line_number":24,"context_line":"are used to create resources within Magnum.  Without versions it can be"},{"line_number":25,"context_line":"difficult to ensure updated Templates are used since older templates must"},{"line_number":26,"context_line":"remain if resources created with them exist. Also, future desired features"},{"line_number":27,"context_line":"such as Cluster upgrades want to make use of versioned templates to better"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_156a8ab3","line":24,"range":{"start_line":24,"start_character":19,"end_line":24,"end_character":28},"in_reply_to":"5a74a57a_1bfe7a05","updated":"2016-12-02 20:27:07.000000000","message":"resources \u003d actual cluster or Nodegroup that is created.\ntemplate \u003d stored set attributes that represent the resource\n\nI\u0027m not sure yet if NodeGroups will need versioning. My point was just to make this spec generic so that it could be used for any template that wanted/needed versioning. ClusterTemplate is the one that has been requested now.\n\nA nodegroup update would use the nodegroup-update command. As for upgrade, as of now i don\u0027t think there is any attributes in nodegroup that would be \"upgraded\". If so then they could implement and make use of this spec on nodegroups as well.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"ffeb19423f8abbf475d44bc8f2cc37cbe1e946ca","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"1. Operators create a public ClusterTemplate to be used for creating Clusters."},{"line_number":34,"context_line":"   The operators want to be able to update the template without changing the"},{"line_number":35,"context_line":"   name/uuid of the template while also tracking which version are still in"},{"line_number":36,"context_line":"   use."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"2. Operators want to delete a ClusterTemplate so that it cannot be used for new"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_5bdc7246","line":35,"range":{"start_line":35,"start_character":55,"end_line":35,"end_character":62},"updated":"2016-12-02 19:33:26.000000000","message":"versions","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"6af01655bdb2cd09edc1f096949faaf3a2781d10","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"1. Operators create a public ClusterTemplate to be used for creating Clusters."},{"line_number":34,"context_line":"   The operators want to be able to update the template without changing the"},{"line_number":35,"context_line":"   name/uuid of the template while also tracking which version are still in"},{"line_number":36,"context_line":"   use."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"2. Operators want to delete a ClusterTemplate so that it cannot be used for new"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_3565c6e0","line":35,"range":{"start_line":35,"start_character":55,"end_line":35,"end_character":62},"in_reply_to":"5a74a57a_5bdc7246","updated":"2016-12-02 20:27:07.000000000","message":"Done","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"ffeb19423f8abbf475d44bc8f2cc37cbe1e946ca","unresolved":false,"context_lines":[{"line_number":35,"context_line":"   name/uuid of the template while also tracking which version are still in"},{"line_number":36,"context_line":"   use."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"2. Operators want to delete a ClusterTemplate so that it cannot be used for new"},{"line_number":39,"context_line":"   Clusters without having to wait until all existing Clusters that are using"},{"line_number":40,"context_line":"   the template are deleted."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. To manage upgrade scenarios, operators want to version ClusterTemplates to"},{"line_number":43,"context_line":"   upgrade to the latest version."}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_5b82b2c9","line":40,"range":{"start_line":38,"start_character":3,"end_line":40,"end_character":28},"updated":"2016-12-02 19:33:26.000000000","message":"Can\u0027t get how this use case relate to template versioning. It seems independent of versioning, just providing a way to soft delete template so it cannot be used further and deleted when resources dependent on it gets deleted.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"2588be148417bd2ab47785666f73cc09b094d87c","unresolved":false,"context_lines":[{"line_number":35,"context_line":"   name/uuid of the template while also tracking which version are still in"},{"line_number":36,"context_line":"   use."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"2. Operators want to delete a ClusterTemplate so that it cannot be used for new"},{"line_number":39,"context_line":"   Clusters without having to wait until all existing Clusters that are using"},{"line_number":40,"context_line":"   the template are deleted."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. To manage upgrade scenarios, operators want to version ClusterTemplates to"},{"line_number":43,"context_line":"   upgrade to the latest version."}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_1055e3f8","line":40,"range":{"start_line":38,"start_character":3,"end_line":40,"end_character":28},"in_reply_to":"3a71b18c_35da2679","updated":"2016-12-06 15:49:35.000000000","message":"I think keeping this as a seperate \"use case\" is creating confusion, Information like this can be kept but i am not sure where such infomation should be kept.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"6af01655bdb2cd09edc1f096949faaf3a2781d10","unresolved":false,"context_lines":[{"line_number":35,"context_line":"   name/uuid of the template while also tracking which version are still in"},{"line_number":36,"context_line":"   use."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"2. Operators want to delete a ClusterTemplate so that it cannot be used for new"},{"line_number":39,"context_line":"   Clusters without having to wait until all existing Clusters that are using"},{"line_number":40,"context_line":"   the template are deleted."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. To manage upgrade scenarios, operators want to version ClusterTemplates to"},{"line_number":43,"context_line":"   upgrade to the latest version."}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_35da2679","line":40,"range":{"start_line":38,"start_character":3,"end_line":40,"end_character":28},"in_reply_to":"5a74a57a_5b82b2c9","updated":"2016-12-02 20:27:07.000000000","message":"You are right this is completely separate from versioning. It actually is part of the flatten attributes changes. It was included here as reference because adding versioning meant a desire to keep certain versions of a template around as reference. So it is more informational to give justification to some of the features around template-delete.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"056da1072a51f5487c822c4bc493a628bb55c8e3","unresolved":false,"context_lines":[{"line_number":39,"context_line":"   Clusters without having to wait until all existing Clusters that are using"},{"line_number":40,"context_line":"   the template are deleted."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. To manage upgrade scenarios, operators want to version ClusterTemplates to"},{"line_number":43,"context_line":"   upgrade to the latest version."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed Changes"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_978404b2","line":42,"range":{"start_line":42,"start_character":3,"end_line":42,"end_character":30},"updated":"2016-11-30 19:17:10.000000000","message":"My major objection is for this point. Cluster template is not suitable to manage upgrade scenarios (it should be purely used to create cluster). Upgrade scenrios should be managed by drivers.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"f671aca6d3110749cd34eb7d8e44ffef7e7e3f07","unresolved":false,"context_lines":[{"line_number":39,"context_line":"   Clusters without having to wait until all existing Clusters that are using"},{"line_number":40,"context_line":"   the template are deleted."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. To manage upgrade scenarios, operators want to version ClusterTemplates to"},{"line_number":43,"context_line":"   upgrade to the latest version."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed Changes"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_4699db6d","line":42,"range":{"start_line":42,"start_character":3,"end_line":42,"end_character":30},"in_reply_to":"5a74a57a_32ca5ea2","updated":"2016-11-30 20:05:21.000000000","message":"From my understanding the desire is for the ClusterTemplates to simply communicate \"what\" has changed between 2 versions. The versioning provides a way to do this.  cluster-upgrade could be generated to use no templates at all. Like this:\n\ncluster-upgrade clusterA --coe-version 1.2\n\nTemplates just give something for the operator to maintain and easily track the versions. If clusterA is created with templateX v1 and then coe-version is updated to 1.2 then the template become templateX v2. So the upgrade command could be:\n\ncluster-upgrade ClusterA\n\nTo magnum, the comparison of ClusterA attributes to templateX v2 would give a difference of coe-version\u003d1.2. So info sent to the driver would be exactly the same as with cluster-upgrade --coe-version 1.2.  It is just a simplified way to describe the difference instead of the user having to figure out themselves the difference between versions. It is calculated for them.  The underlying implementation of how an upgrade remains the same in both cases. Templates are just another way to feed the parameters to a command.\n\nTemplates just provide a simplified way for operators to maintain templates for cluster creation and life cycle operations.  They are short hand way to describe a set of attributes.  They are in no way required, they just make life easier for the user/operator.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"d58c60f95881e4b624f783d61be306cb9bd291d2","unresolved":false,"context_lines":[{"line_number":39,"context_line":"   Clusters without having to wait until all existing Clusters that are using"},{"line_number":40,"context_line":"   the template are deleted."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. To manage upgrade scenarios, operators want to version ClusterTemplates to"},{"line_number":43,"context_line":"   upgrade to the latest version."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed Changes"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_ff942ae9","line":42,"range":{"start_line":42,"start_character":3,"end_line":42,"end_character":30},"in_reply_to":"5a74a57a_4699db6d","updated":"2016-11-30 21:29:29.000000000","message":"I would argue that using template in this way is very confusing. Basically, here is what you proposed:\n\n* A cluster is upgraded from template version x to template version y\n\nThis is confusing because template version x/y contains a large amount of attributes that are irrelevant to upgrade (i.e. node_count). As a result, the upgrade operation will look very complicated from outside (most of the people are not Magnum developers so they don\u0027t understand how an upgrade is implemented and how the set of attributes are being handled).\n\nHere is what I proposed:\n\n* A cluster is upgraded from driver version x to driver version y\n\nI think this is more intuitive because driver version x/y contains only the attributes that are relevant to upgrade (coe, distro, image, ....). It satisfies all the use cases you wanted (maintain and track versions, simplified way to describe the diff between versions, simplified way for cluster creation), while improves the maintainability of upgrade. I believe operations will appreciate a better way to describe upgrade.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"9b04043d8df1bb8fe7ea4cefbe545209a0a9c891","unresolved":false,"context_lines":[{"line_number":39,"context_line":"   Clusters without having to wait until all existing Clusters that are using"},{"line_number":40,"context_line":"   the template are deleted."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. To manage upgrade scenarios, operators want to version ClusterTemplates to"},{"line_number":43,"context_line":"   upgrade to the latest version."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed Changes"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_9a950442","line":42,"range":{"start_line":42,"start_character":3,"end_line":42,"end_character":30},"in_reply_to":"5a74a57a_7a44a81a","updated":"2016-11-30 21:45:02.000000000","message":"OK. I agree with this. Let\u0027s pull irrelevant attributes (i.e. node_count) out of cluster template. Then, I am happy to revisit this proposal.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"46c5dc5fb12bbe2a216ba52647f2e9a12b6d641e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"   Clusters without having to wait until all existing Clusters that are using"},{"line_number":40,"context_line":"   the template are deleted."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. To manage upgrade scenarios, operators want to version ClusterTemplates to"},{"line_number":43,"context_line":"   upgrade to the latest version."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed Changes"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_32ca5ea2","line":42,"range":{"start_line":42,"start_character":3,"end_line":42,"end_character":30},"in_reply_to":"5a74a57a_978404b2","updated":"2016-11-30 19:27:35.000000000","message":"I mean that is why I lean to separated data model for templates and drivers.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":9995,"name":"Ricardo Rocha","email":"rocha.porto@gmail.com","username":"rocha"},"change_message_id":"e3a1e0947ef0c2d8e679c54d5e2fbc6a8a093f51","unresolved":false,"context_lines":[{"line_number":39,"context_line":"   Clusters without having to wait until all existing Clusters that are using"},{"line_number":40,"context_line":"   the template are deleted."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. To manage upgrade scenarios, operators want to version ClusterTemplates to"},{"line_number":43,"context_line":"   upgrade to the latest version."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed Changes"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_fa2fd885","line":42,"range":{"start_line":42,"start_character":3,"end_line":42,"end_character":30},"in_reply_to":"5a74a57a_978404b2","updated":"2016-11-30 21:35:05.000000000","message":"I still think in our case the cluster template is the suitable piece to manage upgrades. They have fields not related to the drivers - things related to the infrastructure (dns servers, certificates, etc), and things related to the \u0027recommended\u0027 setup of the clusters, including fields that are outside the driver definition.\n\nAs an example in our setup most people rely on our public templates as this is our way to pass the recommended configuration - which suits 90% of the cases up to now. We recently changed our public cluster templates to have docker_volume_size \u003d\u003d 0 (no cinder volume for docker images). If there would be versioning it would have allowed users to upgrade their clusters to this new config without recreating them... without it they had to recreate them from scratch.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"39ed6fc97277a885a63cea0085ea992cbcf09e1d","unresolved":false,"context_lines":[{"line_number":39,"context_line":"   Clusters without having to wait until all existing Clusters that are using"},{"line_number":40,"context_line":"   the template are deleted."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. To manage upgrade scenarios, operators want to version ClusterTemplates to"},{"line_number":43,"context_line":"   upgrade to the latest version."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed Changes"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_daaa1c19","line":42,"range":{"start_line":42,"start_character":3,"end_line":42,"end_character":30},"in_reply_to":"5a74a57a_9a950442","updated":"2016-11-30 21:54:01.000000000","message":"hongbin, you are suggesting a complete change to the data structure of clusters.  That is not even part of scope of this spec. This spec is only about adding versioning to templates as they stand. If you want to change how clusters are represented for upgrades that should be in the upgrade spec.\n\nI don\u0027t agree with this. While node_count might not be a valid attribute for upgrades it is a valid attribute to exist in a ClusterTemplate for cluster creation, updates, and possibly other future operations like \"scale\" that ton mentioned.  If we start creating different data structures for all the attributes around commands we will end up with needing 4-5 db entries just to have all the information we need to create a cluster.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":9995,"name":"Ricardo Rocha","email":"rocha.porto@gmail.com","username":"rocha"},"change_message_id":"730686941ee2e5ef9f6d01f1718c30b2c3e2fe0d","unresolved":false,"context_lines":[{"line_number":39,"context_line":"   Clusters without having to wait until all existing Clusters that are using"},{"line_number":40,"context_line":"   the template are deleted."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. To manage upgrade scenarios, operators want to version ClusterTemplates to"},{"line_number":43,"context_line":"   upgrade to the latest version."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed Changes"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_95af97e2","line":42,"range":{"start_line":42,"start_character":3,"end_line":42,"end_character":30},"in_reply_to":"5a74a57a_daaa1c19","updated":"2016-11-30 22:10:27.000000000","message":"I think Jaycen is right. This is only about versioning templates, and we seem to agree there are use cases to have this. Including for the line we\u0027re debating here, there are concrete use cases to use template versions to manage upgrades. \n\nNot sure i agree with Jaycen\u0027s second paragraph, but it\u0027s out of the spec and we can move the debate elsewhere?","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":9995,"name":"Ricardo Rocha","email":"rocha.porto@gmail.com","username":"rocha"},"change_message_id":"647e9bead36752c8fa174314e37bb55665c1e9cd","unresolved":false,"context_lines":[{"line_number":39,"context_line":"   Clusters without having to wait until all existing Clusters that are using"},{"line_number":40,"context_line":"   the template are deleted."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. To manage upgrade scenarios, operators want to version ClusterTemplates to"},{"line_number":43,"context_line":"   upgrade to the latest version."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed Changes"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_7a44a81a","line":42,"range":{"start_line":42,"start_character":3,"end_line":42,"end_character":30},"in_reply_to":"5a74a57a_ff942ae9","updated":"2016-11-30 21:40:48.000000000","message":"node_count does not fit in the cluster template, it\u0027s a bad example. I understand it\u0027s possible to put it there, but it makes little sense as it\u0027s very much specific to each cluster instance.\n\nAs i mention in the previous comment, there are attributes not related to the driver that as an operator we want to use to trigger upgrades.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"ffeb19423f8abbf475d44bc8f2cc37cbe1e946ca","unresolved":false,"context_lines":[{"line_number":40,"context_line":"   the template are deleted."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. To manage upgrade scenarios, operators want to version ClusterTemplates to"},{"line_number":43,"context_line":"   upgrade to the latest version."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed Changes"},{"line_number":46,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_dbfb2246","line":43,"range":{"start_line":43,"start_character":18,"end_line":43,"end_character":24},"updated":"2016-12-02 19:33:26.000000000","message":"I think not only latest, upgrade can be done to any other higher version. For example there are 3 versions available(1,2,3), currently all clusters are with version 1, some may want to move to version 2 and some to version 3 and some decide not to upgrade at all.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"ffeb19423f8abbf475d44bc8f2cc37cbe1e946ca","unresolved":false,"context_lines":[{"line_number":40,"context_line":"   the template are deleted."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. To manage upgrade scenarios, operators want to version ClusterTemplates to"},{"line_number":43,"context_line":"   upgrade to the latest version."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed Changes"},{"line_number":46,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_5495e8db","line":43,"range":{"start_line":43,"start_character":3,"end_line":43,"end_character":10},"updated":"2016-12-02 19:33:26.000000000","message":"My personal view is to upgrade clusters based on the attributes only(Yes, using template as a medium would help in using it). With v1 proposed approach was making more sense where ct and clusters were more coupled.\n\nIt would be good if all the attributes can be listed in the spec which would be used during upgrade. May be that is out of scope but That\u0027s the major use case i can see here for which template versioning is out.\n\nCluster template is state A, cluster is created and is at state A1(Most of the parameter are changed while creating cluster so keeping reference not making any sense)\nUpgrade cluster by passing attributes(or cluster template). Judge Upgrade based on Current State A1 and passed Attributes, if judgement passed upgrade to State A2.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"2588be148417bd2ab47785666f73cc09b094d87c","unresolved":false,"context_lines":[{"line_number":40,"context_line":"   the template are deleted."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. To manage upgrade scenarios, operators want to version ClusterTemplates to"},{"line_number":43,"context_line":"   upgrade to the latest version."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed Changes"},{"line_number":46,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_e7809a8d","line":43,"range":{"start_line":43,"start_character":18,"end_line":43,"end_character":24},"in_reply_to":"3a71b18c_55a162a2","updated":"2016-12-06 15:49:35.000000000","message":"Then this means cluster upgrade is not dependent on Template versioning but what i can get from etherpad and other discussion is that template versioning is required for cluster upgrade. Did i get somthing wrong?\n\nAlso upgrade can be done to any version so reference of latest can be updated in the spec.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"ec5d55c69ec1d69d9091ff2bbcb9916f7a3b3e39","unresolved":false,"context_lines":[{"line_number":40,"context_line":"   the template are deleted."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. To manage upgrade scenarios, operators want to version ClusterTemplates to"},{"line_number":43,"context_line":"   upgrade to the latest version."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed Changes"},{"line_number":46,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_184df399","line":43,"range":{"start_line":43,"start_character":18,"end_line":43,"end_character":24},"in_reply_to":"3a71b18c_e7809a8d","updated":"2016-12-06 16:16:19.000000000","message":"You are exactly right. Template versioning is not really required for cluster upgrade. It could be done without it. The request though was to provide a easy way for operators to represent the upgrade and track templates. That is how this spec was created. I think template versioning would be useful but i don\u0027t think it is really required for upgrades.  I think that is where this review has gotten sidetracked.  We need to address what we want around upgrade and cluster updates. Then we can see if this the improved template version tracking is still needed on top of that for operators. If not we can lower the priority on this. I think it is still useful, but i think we should decouple it from being required.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"6af01655bdb2cd09edc1f096949faaf3a2781d10","unresolved":false,"context_lines":[{"line_number":40,"context_line":"   the template are deleted."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. To manage upgrade scenarios, operators want to version ClusterTemplates to"},{"line_number":43,"context_line":"   upgrade to the latest version."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed Changes"},{"line_number":46,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_55a162a2","line":43,"range":{"start_line":43,"start_character":18,"end_line":43,"end_character":24},"in_reply_to":"5a74a57a_dbfb2246","updated":"2016-12-02 20:27:07.000000000","message":"Agreed, in my opinion the upgrade command doesn\u0027t need templates at all. Templates and template versions are just one way for the user to describe to the command what changes are desired. Whether that those are direct parameters passed in like: \n\ncluster-upgrade clusterA --coe_version\u003d1.2\n\nOr latest template:\n\ncluster-upgrade ClusterA\n\nOr targeted template\n\ncluster-upgrade ClusterA --target_template_version 3\n\n\nThose are just examples, not what i\u0027m suggesting the options be. It should be up to cluster-upgrade to determine what options it wants.  Templates with versioning just adds an additional way to pass the set of changes. Templates are not required for upgrade, they just make the user experience better for operators and users.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"ffeb19423f8abbf475d44bc8f2cc37cbe1e946ca","unresolved":false,"context_lines":[{"line_number":70,"context_line":" - latest_version"},{"line_number":71,"context_line":" - is_deleted"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"TemplateVersion"},{"line_number":74,"context_line":" - Foreign key to Template"},{"line_number":75,"context_line":" - version"},{"line_number":76,"context_line":" - Other attributes (image, flavor, etc.)"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_b6391ddb","line":73,"range":{"start_line":73,"start_character":0,"end_line":73,"end_character":15},"updated":"2016-12-02 19:33:26.000000000","message":"How These tables are related to Cluster Attributes Table? Don\u0027t we need to put in this spec?\n\nCan\u0027t we reuse cluster_template table proposed in flatten atributes by adding version and is_deleted fields.\n\nAnd template_version table to contain:-\nForeign key to Template\nlatest_version\nOther attributes (image, flavor, etc.) are already in cluster attributes so not needed here.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"2588be148417bd2ab47785666f73cc09b094d87c","unresolved":false,"context_lines":[{"line_number":70,"context_line":" - latest_version"},{"line_number":71,"context_line":" - is_deleted"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"TemplateVersion"},{"line_number":74,"context_line":" - Foreign key to Template"},{"line_number":75,"context_line":" - version"},{"line_number":76,"context_line":" - Other attributes (image, flavor, etc.)"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_927ac2bb","line":73,"range":{"start_line":73,"start_character":0,"end_line":73,"end_character":15},"in_reply_to":"3a71b18c_35a06690","updated":"2016-12-06 15:49:35.000000000","message":"ok","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"6af01655bdb2cd09edc1f096949faaf3a2781d10","unresolved":false,"context_lines":[{"line_number":70,"context_line":" - latest_version"},{"line_number":71,"context_line":" - is_deleted"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"TemplateVersion"},{"line_number":74,"context_line":" - Foreign key to Template"},{"line_number":75,"context_line":" - version"},{"line_number":76,"context_line":" - Other attributes (image, flavor, etc.)"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_35a06690","line":73,"range":{"start_line":73,"start_character":0,"end_line":73,"end_character":15},"in_reply_to":"5a74a57a_b6391ddb","updated":"2016-12-02 20:27:07.000000000","message":"Updating this.  the flatten attribute spec was not approved when i started this.  Now other attributes should be a FK to ClusterAttributes entry.  The etherpad has the new version. I\u0027ll get his updated.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"ffeb19423f8abbf475d44bc8f2cc37cbe1e946ca","unresolved":false,"context_lines":[{"line_number":95,"context_line":"TemplateVersion (version N) is duplicated, with the fields in the new"},{"line_number":96,"context_line":"TemplateVersion entry updated as requested. The new TemplateVersion refers to"},{"line_number":97,"context_line":"the same Template entry. The version of the new TemplateVersion is set to"},{"line_number":98,"context_line":"N + 1. The Template\u0027s latest_version is also set to N + 1."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Delete"},{"line_number":101,"context_line":"------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_aaf7c057","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":58},"updated":"2016-12-02 19:33:26.000000000","message":"Good to Give examples same as Create for more clearity here and in Delete section.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"2588be148417bd2ab47785666f73cc09b094d87c","unresolved":false,"context_lines":[{"line_number":95,"context_line":"TemplateVersion (version N) is duplicated, with the fields in the new"},{"line_number":96,"context_line":"TemplateVersion entry updated as requested. The new TemplateVersion refers to"},{"line_number":97,"context_line":"the same Template entry. The version of the new TemplateVersion is set to"},{"line_number":98,"context_line":"N + 1. The Template\u0027s latest_version is also set to N + 1."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Delete"},{"line_number":101,"context_line":"------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_cd4adf54","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":58},"in_reply_to":"3a71b18c_b5bab6be","updated":"2016-12-06 15:49:35.000000000","message":"Ok will wait for examples.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"6af01655bdb2cd09edc1f096949faaf3a2781d10","unresolved":false,"context_lines":[{"line_number":95,"context_line":"TemplateVersion (version N) is duplicated, with the fields in the new"},{"line_number":96,"context_line":"TemplateVersion entry updated as requested. The new TemplateVersion refers to"},{"line_number":97,"context_line":"the same Template entry. The version of the new TemplateVersion is set to"},{"line_number":98,"context_line":"N + 1. The Template\u0027s latest_version is also set to N + 1."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Delete"},{"line_number":101,"context_line":"------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_b5bab6be","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":58},"in_reply_to":"5a74a57a_aaf7c057","updated":"2016-12-02 20:27:07.000000000","message":"will do.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"ffeb19423f8abbf475d44bc8f2cc37cbe1e946ca","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Only one field is updated - is_deleted is set to True in the Template. The"},{"line_number":104,"context_line":"template will no longer be valid for new resource creation. A check will be"},{"line_number":105,"context_line":"made for each template version and all non-referenced TemplateVersion entries"},{"line_number":106,"context_line":"will be deleted. If all template versions are deleted, then the Template will"},{"line_number":107,"context_line":"be deleted as well.  This check will be made again on the deletion of any"},{"line_number":108,"context_line":"resource (Cluster/NodeGroup)."}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_8d493ed3","line":105,"range":{"start_line":105,"start_character":40,"end_line":105,"end_character":53},"updated":"2016-12-02 19:33:26.000000000","message":"By non-reference does it mean no cluster is created with a particular version.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"2588be148417bd2ab47785666f73cc09b094d87c","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Only one field is updated - is_deleted is set to True in the Template. The"},{"line_number":104,"context_line":"template will no longer be valid for new resource creation. A check will be"},{"line_number":105,"context_line":"made for each template version and all non-referenced TemplateVersion entries"},{"line_number":106,"context_line":"will be deleted. If all template versions are deleted, then the Template will"},{"line_number":107,"context_line":"be deleted as well.  This check will be made again on the deletion of any"},{"line_number":108,"context_line":"resource (Cluster/NodeGroup)."}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_ed5cfb1a","line":105,"range":{"start_line":105,"start_character":40,"end_line":105,"end_character":53},"in_reply_to":"3a71b18c_b5e1d6d2","updated":"2016-12-06 15:49:35.000000000","message":"OK","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"6af01655bdb2cd09edc1f096949faaf3a2781d10","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Only one field is updated - is_deleted is set to True in the Template. The"},{"line_number":104,"context_line":"template will no longer be valid for new resource creation. A check will be"},{"line_number":105,"context_line":"made for each template version and all non-referenced TemplateVersion entries"},{"line_number":106,"context_line":"will be deleted. If all template versions are deleted, then the Template will"},{"line_number":107,"context_line":"be deleted as well.  This check will be made again on the deletion of any"},{"line_number":108,"context_line":"resource (Cluster/NodeGroup)."}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_b5e1d6d2","line":105,"range":{"start_line":105,"start_character":40,"end_line":105,"end_character":53},"in_reply_to":"5a74a57a_8d493ed3","updated":"2016-12-02 20:27:07.000000000","message":"correct, no existing cluster has an attribute referencing this TemplateVersion","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"ffeb19423f8abbf475d44bc8f2cc37cbe1e946ca","unresolved":false,"context_lines":[{"line_number":104,"context_line":"template will no longer be valid for new resource creation. A check will be"},{"line_number":105,"context_line":"made for each template version and all non-referenced TemplateVersion entries"},{"line_number":106,"context_line":"will be deleted. If all template versions are deleted, then the Template will"},{"line_number":107,"context_line":"be deleted as well.  This check will be made again on the deletion of any"},{"line_number":108,"context_line":"resource (Cluster/NodeGroup)."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"List"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_ada8ba78","line":107,"range":{"start_line":107,"start_character":19,"end_line":107,"end_character":21},"updated":"2016-12-02 19:33:26.000000000","message":"Extra space can be removed.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"6af01655bdb2cd09edc1f096949faaf3a2781d10","unresolved":false,"context_lines":[{"line_number":104,"context_line":"template will no longer be valid for new resource creation. A check will be"},{"line_number":105,"context_line":"made for each template version and all non-referenced TemplateVersion entries"},{"line_number":106,"context_line":"will be deleted. If all template versions are deleted, then the Template will"},{"line_number":107,"context_line":"be deleted as well.  This check will be made again on the deletion of any"},{"line_number":108,"context_line":"resource (Cluster/NodeGroup)."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"List"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_b52f16f5","line":107,"range":{"start_line":107,"start_character":19,"end_line":107,"end_character":21},"in_reply_to":"5a74a57a_ada8ba78","updated":"2016-12-02 20:27:07.000000000","message":"Done","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"ffeb19423f8abbf475d44bc8f2cc37cbe1e946ca","unresolved":false,"context_lines":[{"line_number":113,"context_line":"When listing templates, it will also return the latest version number for the"},{"line_number":114,"context_line":"template. This will mean that only the latest version of each template will"},{"line_number":115,"context_line":"show up in the list.  A new flag, --all-versions, will be added to list all"},{"line_number":116,"context_line":"versions of the templates."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Show"},{"line_number":119,"context_line":"----"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_48cab450","line":116,"range":{"start_line":116,"start_character":16,"end_line":116,"end_character":25},"updated":"2016-12-02 19:33:26.000000000","message":"listing versions for a particular template not possible? --all-versions would return list for all templates that would be very large. I think it would be more required if users want to check what all versions are available for particular template.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"2588be148417bd2ab47785666f73cc09b094d87c","unresolved":false,"context_lines":[{"line_number":113,"context_line":"When listing templates, it will also return the latest version number for the"},{"line_number":114,"context_line":"template. This will mean that only the latest version of each template will"},{"line_number":115,"context_line":"show up in the list.  A new flag, --all-versions, will be added to list all"},{"line_number":116,"context_line":"versions of the templates."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Show"},{"line_number":119,"context_line":"----"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_0d85b758","line":116,"range":{"start_line":116,"start_character":16,"end_line":116,"end_character":25},"in_reply_to":"3a71b18c_d50d7291","updated":"2016-12-06 15:49:35.000000000","message":"Ok check with Spyros","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"6af01655bdb2cd09edc1f096949faaf3a2781d10","unresolved":false,"context_lines":[{"line_number":113,"context_line":"When listing templates, it will also return the latest version number for the"},{"line_number":114,"context_line":"template. This will mean that only the latest version of each template will"},{"line_number":115,"context_line":"show up in the list.  A new flag, --all-versions, will be added to list all"},{"line_number":116,"context_line":"versions of the templates."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Show"},{"line_number":119,"context_line":"----"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_d50d7291","line":116,"range":{"start_line":116,"start_character":16,"end_line":116,"end_character":25},"in_reply_to":"5a74a57a_48cab450","updated":"2016-12-02 20:27:07.000000000","message":"Sypros had requested this feature. I\u0027ll double check that this is what they wanted.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"ffeb19423f8abbf475d44bc8f2cc37cbe1e946ca","unresolved":false,"context_lines":[{"line_number":118,"context_line":"Show"},{"line_number":119,"context_line":"----"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"When showing a template, the latest version of the template will be displayed."},{"line_number":122,"context_line":"To view the attributes of a previous version a new --version option will be"},{"line_number":123,"context_line":"added that will return the template attributes for that version."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_e89700e9","line":121,"range":{"start_line":121,"start_character":51,"end_line":121,"end_character":77},"updated":"2016-12-02 19:33:26.000000000","message":"Can all the available versions list be shown?. With this list shown the user can then select a particular version using --version to get details of that version.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"2588be148417bd2ab47785666f73cc09b094d87c","unresolved":false,"context_lines":[{"line_number":118,"context_line":"Show"},{"line_number":119,"context_line":"----"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"When showing a template, the latest version of the template will be displayed."},{"line_number":122,"context_line":"To view the attributes of a previous version a new --version option will be"},{"line_number":123,"context_line":"added that will return the template attributes for that version."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_edb87b13","line":121,"range":{"start_line":121,"start_character":51,"end_line":121,"end_character":77},"in_reply_to":"3a71b18c_b57d56e9","updated":"2016-12-06 15:49:35.000000000","message":"I meant just get version numbers for a particular template.\nMay be --allversions would return lot of not wanted data by the user.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"6af01655bdb2cd09edc1f096949faaf3a2781d10","unresolved":false,"context_lines":[{"line_number":118,"context_line":"Show"},{"line_number":119,"context_line":"----"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"When showing a template, the latest version of the template will be displayed."},{"line_number":122,"context_line":"To view the attributes of a previous version a new --version option will be"},{"line_number":123,"context_line":"added that will return the template attributes for that version."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_b57d56e9","line":121,"range":{"start_line":121,"start_character":51,"end_line":121,"end_character":77},"in_reply_to":"5a74a57a_e89700e9","updated":"2016-12-02 20:27:07.000000000","message":"maybe instead of list above it should be show --allversions and --version x.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"ffeb19423f8abbf475d44bc8f2cc37cbe1e946ca","unresolved":false,"context_lines":[{"line_number":119,"context_line":"----"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"When showing a template, the latest version of the template will be displayed."},{"line_number":122,"context_line":"To view the attributes of a previous version a new --version option will be"},{"line_number":123,"context_line":"added that will return the template attributes for that version."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_ef5e2175","line":122,"range":{"start_line":122,"start_character":0,"end_line":122,"end_character":44},"updated":"2016-12-02 19:33:26.000000000","message":"With large numbers of versions available, user/operator may want to get what exactly is the difference(attributes) between two versions before a upgrade can be initiated.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"ffeb19423f8abbf475d44bc8f2cc37cbe1e946ca","unresolved":false,"context_lines":[{"line_number":126,"context_line":"Cluster/NodeGroup Create"},{"line_number":127,"context_line":"------------------------"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"When using a template to create a resource the latest version of the template"},{"line_number":130,"context_line":"will always be used. A template that is marked is_deleted cannot be used to"},{"line_number":131,"context_line":"create a resource."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_c8624416","line":130,"range":{"start_line":129,"start_character":47,"end_line":130,"end_character":19},"updated":"2016-12-02 19:33:26.000000000","message":"If some one want\u0027s to use non-deleted non-latest version then?","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"2588be148417bd2ab47785666f73cc09b094d87c","unresolved":false,"context_lines":[{"line_number":126,"context_line":"Cluster/NodeGroup Create"},{"line_number":127,"context_line":"------------------------"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"When using a template to create a resource the latest version of the template"},{"line_number":130,"context_line":"will always be used. A template that is marked is_deleted cannot be used to"},{"line_number":131,"context_line":"create a resource."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_0da4d7b7","line":130,"range":{"start_line":129,"start_character":47,"end_line":130,"end_character":19},"in_reply_to":"3a71b18c_15560a5c","updated":"2016-12-06 15:49:35.000000000","message":"Ok, Got It. Then this is the extended use case of this spec.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"6af01655bdb2cd09edc1f096949faaf3a2781d10","unresolved":false,"context_lines":[{"line_number":126,"context_line":"Cluster/NodeGroup Create"},{"line_number":127,"context_line":"------------------------"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"When using a template to create a resource the latest version of the template"},{"line_number":130,"context_line":"will always be used. A template that is marked is_deleted cannot be used to"},{"line_number":131,"context_line":"create a resource."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_15560a5c","line":130,"range":{"start_line":129,"start_character":47,"end_line":130,"end_character":19},"in_reply_to":"5a74a57a_c8624416","updated":"2016-12-02 20:27:07.000000000","message":"Currently there is no way to specify this. Using the template will use the latest version.  We discussed adding the option but in general it was something operators would want blocked.  It could always be added in the future if needed. The information is all there if cluster-create wanted to add this option. It doesn\u0027t really change the versioning, just how it is used.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"ffeb19423f8abbf475d44bc8f2cc37cbe1e946ca","unresolved":false,"context_lines":[{"line_number":157,"context_line":"REST API impact"},{"line_number":158,"context_line":"---------------"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"A new flag, --all-versions, will be added to the template list commands that"},{"line_number":161,"context_line":"will show all templates not just the latest versions of each template."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"A new flag, --version, will be added to the template show commands that will"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_4368d7ba","line":160,"range":{"start_line":160,"start_character":0,"end_line":160,"end_character":26},"updated":"2016-12-02 19:33:26.000000000","message":"Is this not CLI impact?","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"2588be148417bd2ab47785666f73cc09b094d87c","unresolved":false,"context_lines":[{"line_number":157,"context_line":"REST API impact"},{"line_number":158,"context_line":"---------------"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"A new flag, --all-versions, will be added to the template list commands that"},{"line_number":161,"context_line":"will show all templates not just the latest versions of each template."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"A new flag, --version, will be added to the template show commands that will"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_edbebbac","line":160,"range":{"start_line":160,"start_character":0,"end_line":160,"end_character":26},"in_reply_to":"3a71b18c_d5d2d2d1","updated":"2016-12-06 15:49:35.000000000","message":"I meant --all-versions seems to be CLI specific. I think REST API Impact should be what is changed to Request/Response to a Rest API.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"6af01655bdb2cd09edc1f096949faaf3a2781d10","unresolved":false,"context_lines":[{"line_number":157,"context_line":"REST API impact"},{"line_number":158,"context_line":"---------------"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"A new flag, --all-versions, will be added to the template list commands that"},{"line_number":161,"context_line":"will show all templates not just the latest versions of each template."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"A new flag, --version, will be added to the template show commands that will"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_d5d2d2d1","line":160,"range":{"start_line":160,"start_character":0,"end_line":160,"end_character":26},"in_reply_to":"5a74a57a_4368d7ba","updated":"2016-12-02 20:27:07.000000000","message":"Yes, it will be a CLI impact as well.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"ffeb19423f8abbf475d44bc8f2cc37cbe1e946ca","unresolved":false,"context_lines":[{"line_number":161,"context_line":"will show all templates not just the latest versions of each template."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"A new flag, --version, will be added to the template show commands that will"},{"line_number":164,"context_line":"return the specified template version instead of the latest."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Alternative Implementation Option"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a74a57a_c381474f","line":164,"range":{"start_line":164,"start_character":0,"end_line":164,"end_character":6},"updated":"2016-12-02 19:33:26.000000000","message":"What if the specified version doesn\u0027t exist.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"2588be148417bd2ab47785666f73cc09b094d87c","unresolved":false,"context_lines":[{"line_number":161,"context_line":"will show all templates not just the latest versions of each template."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"A new flag, --version, will be added to the template show commands that will"},{"line_number":164,"context_line":"return the specified template version instead of the latest."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Alternative Implementation Option"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_2d31935a","line":164,"range":{"start_line":164,"start_character":0,"end_line":164,"end_character":6},"in_reply_to":"3a71b18c_95969aee","updated":"2016-12-06 15:49:35.000000000","message":"Ok if these needs to be finalized.\nSo, it can be added what happens if version not exist.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"6af01655bdb2cd09edc1f096949faaf3a2781d10","unresolved":false,"context_lines":[{"line_number":161,"context_line":"will show all templates not just the latest versions of each template."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"A new flag, --version, will be added to the template show commands that will"},{"line_number":164,"context_line":"return the specified template version instead of the latest."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Alternative Implementation Option"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_95969aee","line":164,"range":{"start_line":164,"start_character":0,"end_line":164,"end_character":6},"in_reply_to":"5a74a57a_c381474f","updated":"2016-12-02 20:27:07.000000000","message":"It would give an error that the version no longer exists.\n\nThese commands probably need to be finalized.  They are more of examples right now.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"ffeb19423f8abbf475d44bc8f2cc37cbe1e946ca","unresolved":false,"context_lines":[{"line_number":208,"context_line":"Parent version"},{"line_number":209,"context_line":"mark_for_deletion: True"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"Magnum will check if there are any active resources that reference any of the"},{"line_number":212,"context_line":"versions that have the parent_uuid of the template. If the version has no"},{"line_number":213,"context_line":"active resources referencing it then it will be deleted from the db. If all"},{"line_number":214,"context_line":"versions can be deleted then the parent version will be deleted as well. Magnum"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_5ba01491","line":211,"range":{"start_line":211,"start_character":12,"end_line":211,"end_character":51},"updated":"2016-12-02 19:33:26.000000000","message":"Periodic check just like other current periodic check in conductor?","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"6af01655bdb2cd09edc1f096949faaf3a2781d10","unresolved":false,"context_lines":[{"line_number":208,"context_line":"Parent version"},{"line_number":209,"context_line":"mark_for_deletion: True"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"Magnum will check if there are any active resources that reference any of the"},{"line_number":212,"context_line":"versions that have the parent_uuid of the template. If the version has no"},{"line_number":213,"context_line":"active resources referencing it then it will be deleted from the db. If all"},{"line_number":214,"context_line":"versions can be deleted then the parent version will be deleted as well. Magnum"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_75901eed","line":211,"range":{"start_line":211,"start_character":12,"end_line":211,"end_character":51},"in_reply_to":"3a71b18c_5ba01491","updated":"2016-12-02 20:27:07.000000000","message":"It will check on template-delete and on any cluster-delete that has a reference to a template. Don\u0027t think it needs to be periodic.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"2588be148417bd2ab47785666f73cc09b094d87c","unresolved":false,"context_lines":[{"line_number":208,"context_line":"Parent version"},{"line_number":209,"context_line":"mark_for_deletion: True"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"Magnum will check if there are any active resources that reference any of the"},{"line_number":212,"context_line":"versions that have the parent_uuid of the template. If the version has no"},{"line_number":213,"context_line":"active resources referencing it then it will be deleted from the db. If all"},{"line_number":214,"context_line":"versions can be deleted then the parent version will be deleted as well. Magnum"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a71b18c_6d854bcd","line":211,"range":{"start_line":211,"start_character":12,"end_line":211,"end_character":51},"in_reply_to":"3a71b18c_75901eed","updated":"2016-12-06 15:49:35.000000000","message":"Ok.","commit_id":"9343496265a1cd802ed223808b2bdf0333fa5215"},{"author":{"_account_id":7230,"name":"Vijendar Komalla","email":"vijendar.komalla@rackspace.com","username":"vijendar"},"change_message_id":"9cb46ddeab606b6017eee786cd8ef744a676408f","unresolved":false,"context_lines":[{"line_number":104,"context_line":"template will no longer be valid for new resource creation. A check will be"},{"line_number":105,"context_line":"made for each template version and all non-referenced TemplateVersion entries"},{"line_number":106,"context_line":"will be deleted. If all template versions are deleted, then the Template will"},{"line_number":107,"context_line":"be deleted as well. This check will be made again on the deletion of any"},{"line_number":108,"context_line":"resource (Cluster/NodeGroup)."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"List"},{"line_number":111,"context_line":"----"}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_4e270864","line":108,"range":{"start_line":107,"start_character":20,"end_line":108,"end_character":29},"updated":"2017-02-22 18:23:50.000000000","message":"does it mean on a cluster-delete, relevant Template/TemplateVersion will be checked and deleted if no other cluster is referencing it?","commit_id":"50d56f831f6c70e4a2c6978d13285588881994fd"},{"author":{"_account_id":7230,"name":"Vijendar Komalla","email":"vijendar.komalla@rackspace.com","username":"vijendar"},"change_message_id":"9cb46ddeab606b6017eee786cd8ef744a676408f","unresolved":false,"context_lines":[{"line_number":129,"context_line":"When using a template to create a resource the latest version of the template"},{"line_number":130,"context_line":"will always be used. A template that is marked is_deleted cannot be used to"},{"line_number":131,"context_line":"create a resource."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Data model impact"},{"line_number":135,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_0e96f0ef","line":132,"range":{"start_line":132,"start_character":0,"end_line":132,"end_character":0},"updated":"2017-02-22 18:23:50.000000000","message":"I am not sure about any real use cases, but on cluster-create how about having an option to provide --template-version along with --template-name/uuid ?\nWith this, a template can have multiple active versions (with different cluster attributes)!","commit_id":"50d56f831f6c70e4a2c6978d13285588881994fd"},{"author":{"_account_id":7230,"name":"Vijendar Komalla","email":"vijendar.komalla@rackspace.com","username":"vijendar"},"change_message_id":"9cb46ddeab606b6017eee786cd8ef744a676408f","unresolved":false,"context_lines":[{"line_number":213,"context_line":"active resources referencing it then it will be deleted from the db. If all"},{"line_number":214,"context_line":"versions can be deleted then the parent version will be deleted as well. Magnum"},{"line_number":215,"context_line":"will also run this check on after any resource (Cluster/NodeGroup) delete to"},{"line_number":216,"context_line":"see if additional templates that are marked for deletion can be removed."},{"line_number":217,"context_line":""},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_4921c29e","line":216,"range":{"start_line":216,"start_character":4,"end_line":216,"end_character":47},"updated":"2017-02-22 18:23:50.000000000","message":"probably it\u0027s good enough to check, if currently deleted cluster\u0027s template is marked for delete or not. If so, delete it.","commit_id":"50d56f831f6c70e4a2c6978d13285588881994fd"},{"author":{"_account_id":7230,"name":"Vijendar Komalla","email":"vijendar.komalla@rackspace.com","username":"vijendar"},"change_message_id":"9cb46ddeab606b6017eee786cd8ef744a676408f","unresolved":false,"context_lines":[{"line_number":256,"context_line":"Testing"},{"line_number":257,"context_line":"-------"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":""},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"Documentation Impact"},{"line_number":262,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_c91bf219","line":259,"updated":"2017-02-22 18:23:50.000000000","message":"probably you need to add \"Work Items\" section and list CLI changes, API changes etc..","commit_id":"50d56f831f6c70e4a2c6978d13285588881994fd"}]}
