)]}'
{"attributes/database.rb":[{"author":{"_account_id":15068,"name":"Christopher M Luciano","email":"cmluciano@us.ibm.com","username":"cmluciano"},"change_message_id":"473c0e6bd29fd1b3386b7fcec555d6c896ca256f","unresolved":false,"context_lines":[{"line_number":177,"context_line":"    default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027nosql\u0027][\u0027port\u0027] \u003d \u002727017\u0027"},{"line_number":178,"context_line":"  end"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"  db_pass \u003d get_password(\u0027db\u0027, service)"},{"line_number":181,"context_line":"  # The SQLAlchemy connection string to use to connect to the database"},{"line_number":182,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027connection\u0027] \u003d db_uri(service, node[\u0027openstack\u0027][\u0027db\u0027][service][\u0027username\u0027], db_pass)"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":1,"id":"dac4157f_1da2b34b","line":180,"range":{"start_line":180,"start_character":7,"end_line":180,"end_character":24},"updated":"2015-04-22 15:01:26.000000000","message":"Wondering if this should just go in the recipe since that is our normal convention.","commit_id":"f6743a798c7a96a9596d7d773870f4cd44654975"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"424d54237e938bd7ff249cf75688bdc2c2cebd99","unresolved":false,"context_lines":[{"line_number":123,"context_line":"end"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"# Database used by the OpenStack services"},{"line_number":126,"context_line":"node[\u0027openstack\u0027][\u0027common\u0027][\u0027service_hash\u0027].each do |service, project|"},{"line_number":127,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027service_type\u0027] \u003d node[\u0027openstack\u0027][\u0027db\u0027][\u0027service_type\u0027]"},{"line_number":128,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027host\u0027] \u003d node[\u0027openstack\u0027][\u0027endpoints\u0027][\u0027db\u0027][\u0027host\u0027]"},{"line_number":129,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027port\u0027] \u003d node[\u0027openstack\u0027][\u0027endpoints\u0027][\u0027db\u0027][\u0027port\u0027]"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"7ad32947_e8e9cd1b","line":126,"updated":"2015-04-28 14:40:07.000000000","message":"Maybe a better name then using the type?   \u0027services\u0027?","commit_id":"05faf8c1d1efa3dc8337102c750771039c9cf2c8"},{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"2ab3c66f6188eb30d9049eb74b24fed69b4eb0a3","unresolved":false,"context_lines":[{"line_number":123,"context_line":"end"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"# Database used by the OpenStack services"},{"line_number":126,"context_line":"node[\u0027openstack\u0027][\u0027common\u0027][\u0027service_hash\u0027].each do |service, project|"},{"line_number":127,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027service_type\u0027] \u003d node[\u0027openstack\u0027][\u0027db\u0027][\u0027service_type\u0027]"},{"line_number":128,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027host\u0027] \u003d node[\u0027openstack\u0027][\u0027endpoints\u0027][\u0027db\u0027][\u0027host\u0027]"},{"line_number":129,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027port\u0027] \u003d node[\u0027openstack\u0027][\u0027endpoints\u0027][\u0027db\u0027][\u0027port\u0027]"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_8ad218d1","line":126,"in_reply_to":"7ad32947_e8e9cd1b","updated":"2015-05-04 05:39:58.000000000","message":"Done","commit_id":"05faf8c1d1efa3dc8337102c750771039c9cf2c8"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"424d54237e938bd7ff249cf75688bdc2c2cebd99","unresolved":false,"context_lines":[{"line_number":133,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027migrate\u0027] \u003d true"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"  # The back end to use for the database"},{"line_number":136,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027backend\u0027] \u003d \u0027sqlalchemy\u0027"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"  # The SQLAlchemy connection string used to connect to the slave database"},{"line_number":139,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027slave_connection\u0027] \u003d \u0027\u0027"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"7ad32947_6896dd4d","line":136,"updated":"2015-04-28 14:40:07.000000000","message":"Why is this needed?  where used?  I don\u0027t see in previous code.","commit_id":"05faf8c1d1efa3dc8337102c750771039c9cf2c8"},{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"2ab3c66f6188eb30d9049eb74b24fed69b4eb0a3","unresolved":false,"context_lines":[{"line_number":133,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027migrate\u0027] \u003d true"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"  # The back end to use for the database"},{"line_number":136,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027backend\u0027] \u003d \u0027sqlalchemy\u0027"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"  # The SQLAlchemy connection string used to connect to the slave database"},{"line_number":139,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027slave_connection\u0027] \u003d \u0027\u0027"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_8ab1f8e3","line":136,"in_reply_to":"7ad32947_6896dd4d","updated":"2015-05-04 05:39:58.000000000","message":"I need to add the all the config options in database section, and sync the section among all cookbooks.","commit_id":"05faf8c1d1efa3dc8337102c750771039c9cf2c8"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"424d54237e938bd7ff249cf75688bdc2c2cebd99","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"  case service"},{"line_number":169,"context_line":"  when \u0027dashboard\u0027"},{"line_number":170,"context_line":"    default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027username\u0027] \u003d \u0027dash\u0027"},{"line_number":171,"context_line":"  when \u0027telemetry\u0027"},{"line_number":172,"context_line":"    default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027nosql\u0027][\u0027used\u0027] \u003d false"},{"line_number":173,"context_line":"    default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027nosql\u0027][\u0027port\u0027] \u003d \u002727017\u0027"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"7ad32947_68a49da5","line":170,"updated":"2015-04-28 14:40:07.000000000","message":"Since this is already defined above, might be cleaner to just add that to the hash, maybe use Nils for when it\u0027s same as projects to make this more data driven.","commit_id":"05faf8c1d1efa3dc8337102c750771039c9cf2c8"},{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"2ab3c66f6188eb30d9049eb74b24fed69b4eb0a3","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"  case service"},{"line_number":169,"context_line":"  when \u0027dashboard\u0027"},{"line_number":170,"context_line":"    default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027username\u0027] \u003d \u0027dash\u0027"},{"line_number":171,"context_line":"  when \u0027telemetry\u0027"},{"line_number":172,"context_line":"    default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027nosql\u0027][\u0027used\u0027] \u003d false"},{"line_number":173,"context_line":"    default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027nosql\u0027][\u0027port\u0027] \u003d \u002727017\u0027"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_8a5b3887","line":170,"in_reply_to":"7ad32947_68a49da5","updated":"2015-05-04 05:39:58.000000000","message":"I don\u0027t know why setting the horizon db username to dash, seems like a history issue. Could we update the username to dashboard? So there will be no if condition and users should handle upgrade by adding this attribute to environment file.","commit_id":"05faf8c1d1efa3dc8337102c750771039c9cf2c8"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"4e8f36ab9f2df5b3e4bae1f5f55d085247278d43","unresolved":false,"context_lines":[{"line_number":128,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027host\u0027] \u003d node[\u0027openstack\u0027][\u0027endpoints\u0027][\u0027db\u0027][\u0027host\u0027]"},{"line_number":129,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027port\u0027] \u003d node[\u0027openstack\u0027][\u0027endpoints\u0027][\u0027db\u0027][\u0027port\u0027]"},{"line_number":130,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027db_name\u0027] \u003d project"},{"line_number":131,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027username\u0027] \u003d project unless service \u003d\u003d \u0027dashboard\u0027"},{"line_number":132,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027options\u0027] \u003d node[\u0027openstack\u0027][\u0027db\u0027][\u0027options\u0027]"},{"line_number":133,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027migrate\u0027] \u003d true"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3acd31a7_2628d4e1","line":131,"updated":"2015-05-04 14:29:34.000000000","message":"I think the unless here is unnecessary since it\u0027s going to be tweaked below.","commit_id":"3b6ec06c953cb3420f01e017117b7ede0f61f821"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"4e8f36ab9f2df5b3e4bae1f5f55d085247278d43","unresolved":false,"context_lines":[{"line_number":165,"context_line":"  # If set, use this value for pool_timeout with sqlalchemy"},{"line_number":166,"context_line":"  default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027pool_timeout\u0027] \u003d 10"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"  case service"},{"line_number":169,"context_line":"  when \u0027dashboard\u0027"},{"line_number":170,"context_line":"    default[\u0027openstack\u0027][\u0027db\u0027][service][\u0027username\u0027] \u003d \u0027dash\u0027"},{"line_number":171,"context_line":"  when \u0027telemetry\u0027"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3acd31a7_c61c80c3","line":168,"updated":"2015-05-04 14:29:34.000000000","message":"Maybe put a comment here that this is where the additional component tweaks are done","commit_id":"3b6ec06c953cb3420f01e017117b7ede0f61f821"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"9139c63e3baea52d4249836024af3f562e76baac","unresolved":false,"context_lines":[{"line_number":190,"context_line":"default[\u0027openstack\u0027][\u0027db\u0027][\u0027dashboard\u0027][\u0027host\u0027] \u003d node[\u0027openstack\u0027][\u0027endpoints\u0027][\u0027db\u0027][\u0027host\u0027]"},{"line_number":191,"context_line":"default[\u0027openstack\u0027][\u0027db\u0027][\u0027dashboard\u0027][\u0027port\u0027] \u003d node[\u0027openstack\u0027][\u0027endpoints\u0027][\u0027db\u0027][\u0027port\u0027]"},{"line_number":192,"context_line":"default[\u0027openstack\u0027][\u0027db\u0027][\u0027dashboard\u0027][\u0027db_name\u0027] \u003d \u0027horizon\u0027"},{"line_number":193,"context_line":"default[\u0027openstack\u0027][\u0027db\u0027][\u0027dashboard\u0027][\u0027username\u0027] \u003d \u0027dash\u0027"},{"line_number":194,"context_line":"default[\u0027openstack\u0027][\u0027db\u0027][\u0027dashboard\u0027][\u0027migrate\u0027] \u003d true"},{"line_number":195,"context_line":"default[\u0027openstack\u0027][\u0027db\u0027][\u0027dashboard\u0027][\u0027options\u0027] \u003d node[\u0027openstack\u0027][\u0027db\u0027][\u0027options\u0027]"},{"line_number":196,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":5,"id":"1aca2d91_c6c47e60","side":"PARENT","line":193,"updated":"2015-05-08 14:35:21.000000000","message":"Did you confirm that changing this from dash to horizon won\u0027t cause any issues?  what about upgrades?","commit_id":"c4d227695332b9bd0023c9d8ab51f13a1335ecad"},{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"69a5321531c443971b9d1ddc4eea472fb4ff7fb1","unresolved":false,"context_lines":[{"line_number":190,"context_line":"default[\u0027openstack\u0027][\u0027db\u0027][\u0027dashboard\u0027][\u0027host\u0027] \u003d node[\u0027openstack\u0027][\u0027endpoints\u0027][\u0027db\u0027][\u0027host\u0027]"},{"line_number":191,"context_line":"default[\u0027openstack\u0027][\u0027db\u0027][\u0027dashboard\u0027][\u0027port\u0027] \u003d node[\u0027openstack\u0027][\u0027endpoints\u0027][\u0027db\u0027][\u0027port\u0027]"},{"line_number":192,"context_line":"default[\u0027openstack\u0027][\u0027db\u0027][\u0027dashboard\u0027][\u0027db_name\u0027] \u003d \u0027horizon\u0027"},{"line_number":193,"context_line":"default[\u0027openstack\u0027][\u0027db\u0027][\u0027dashboard\u0027][\u0027username\u0027] \u003d \u0027dash\u0027"},{"line_number":194,"context_line":"default[\u0027openstack\u0027][\u0027db\u0027][\u0027dashboard\u0027][\u0027migrate\u0027] \u003d true"},{"line_number":195,"context_line":"default[\u0027openstack\u0027][\u0027db\u0027][\u0027dashboard\u0027][\u0027options\u0027] \u003d node[\u0027openstack\u0027][\u0027db\u0027][\u0027options\u0027]"},{"line_number":196,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":5,"id":"1aca2d91_a5d605ef","side":"PARENT","line":193,"in_reply_to":"1aca2d91_c6c47e60","updated":"2015-05-09 03:28:19.000000000","message":"Users should manually override this attribute when upgrade. Maybe I need to add this to commit message.","commit_id":"c4d227695332b9bd0023c9d8ab51f13a1335ecad"}],"attributes/default.rb":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"424d54237e938bd7ff249cf75688bdc2c2cebd99","unresolved":false,"context_lines":[{"line_number":27,"context_line":"\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"default[\u0027openstack\u0027][\u0027common\u0027][\u0027service_hash\u0027] \u003d {"},{"line_number":30,"context_line":"  \u0027identity\u0027 \u003d\u003e \u0027keystone\u0027,"},{"line_number":31,"context_line":"  \u0027image\u0027 \u003d\u003e \u0027glance\u0027,"},{"line_number":32,"context_line":"  \u0027block-storage\u0027 \u003d\u003e \u0027cinder\u0027,"},{"line_number":33,"context_line":"  \u0027compute\u0027 \u003d\u003e \u0027nova\u0027,"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"7ad32947_c8873160","line":30,"updated":"2015-04-28 14:40:07.000000000","message":"alpha ordering?","commit_id":"05faf8c1d1efa3dc8337102c750771039c9cf2c8"},{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"2ab3c66f6188eb30d9049eb74b24fed69b4eb0a3","unresolved":false,"context_lines":[{"line_number":27,"context_line":"\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"default[\u0027openstack\u0027][\u0027common\u0027][\u0027service_hash\u0027] \u003d {"},{"line_number":30,"context_line":"  \u0027identity\u0027 \u003d\u003e \u0027keystone\u0027,"},{"line_number":31,"context_line":"  \u0027image\u0027 \u003d\u003e \u0027glance\u0027,"},{"line_number":32,"context_line":"  \u0027block-storage\u0027 \u003d\u003e \u0027cinder\u0027,"},{"line_number":33,"context_line":"  \u0027compute\u0027 \u003d\u003e \u0027nova\u0027,"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_aa7dd4e8","line":30,"in_reply_to":"7ad32947_c8873160","updated":"2015-05-04 05:39:58.000000000","message":"done","commit_id":"05faf8c1d1efa3dc8337102c750771039c9cf2c8"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"424d54237e938bd7ff249cf75688bdc2c2cebd99","unresolved":false,"context_lines":[{"line_number":67,"context_line":"default[\u0027openstack\u0027][\u0027vault_gem_version\u0027] \u003d \u0027~\u003e 2.3\u0027"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"# Default attributes when not using data bags (use_databags \u003d false)"},{"line_number":70,"context_line":"%w{bare-metal block-storage object-storage compute database dashboard image identity"},{"line_number":71,"context_line":"   telemetry network object-storage orchestration}.each do |service|"},{"line_number":72,"context_line":"  %w{user service db token}.each do |type|"},{"line_number":73,"context_line":"    default[\u0027openstack\u0027][\u0027secret\u0027][service][type] \u003d \"#{service}-#{type}\""}],"source_content_type":"text/x-ruby","patch_set":3,"id":"7ad32947_e882ed51","line":70,"updated":"2015-04-28 14:40:07.000000000","message":"Maybe some DRY with this list would be good.   I think you could use the list above to replace this one.","commit_id":"05faf8c1d1efa3dc8337102c750771039c9cf2c8"},{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"2ab3c66f6188eb30d9049eb74b24fed69b4eb0a3","unresolved":false,"context_lines":[{"line_number":67,"context_line":"default[\u0027openstack\u0027][\u0027vault_gem_version\u0027] \u003d \u0027~\u003e 2.3\u0027"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"# Default attributes when not using data bags (use_databags \u003d false)"},{"line_number":70,"context_line":"%w{bare-metal block-storage object-storage compute database dashboard image identity"},{"line_number":71,"context_line":"   telemetry network object-storage orchestration}.each do |service|"},{"line_number":72,"context_line":"  %w{user service db token}.each do |type|"},{"line_number":73,"context_line":"    default[\u0027openstack\u0027][\u0027secret\u0027][service][type] \u003d \"#{service}-#{type}\""}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_6a87bcd7","line":70,"in_reply_to":"7ad32947_e882ed51","updated":"2015-05-04 05:39:58.000000000","message":"Done","commit_id":"05faf8c1d1efa3dc8337102c750771039c9cf2c8"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"4e8f36ab9f2df5b3e4bae1f5f55d085247278d43","unresolved":false,"context_lines":[{"line_number":26,"context_line":"# Do not edit, changes will be overwritten"},{"line_number":27,"context_line":"\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"default[\u0027openstack\u0027][\u0027common\u0027][\u0027services\u0027] \u003d {"},{"line_number":30,"context_line":"  \u0027bare-metal\u0027 \u003d\u003e \u0027ironic\u0027,"},{"line_number":31,"context_line":"  \u0027block-storage\u0027 \u003d\u003e \u0027cinder\u0027,"},{"line_number":32,"context_line":"  \u0027compute\u0027 \u003d\u003e \u0027nova\u0027,"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3acd31a7_c6736014","line":29,"updated":"2015-05-04 14:29:34.000000000","message":"Maybe add a comment what this is used for and what the second value is for.","commit_id":"3b6ec06c953cb3420f01e017117b7ede0f61f821"}]}
