)]}'
{"CHANGELOG.md":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"770e384be512a8ed23ad1f8e1ec618b48234a648","unresolved":false,"context_lines":[{"line_number":1,"context_line":"openstack-ops-database Cookbook CHANGELG"},{"line_number":2,"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"},{"line_number":3,"context_line":"This file is used to list changes made in each version of the openstack-ops-database cookbook."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":6,"id":"ba7be1f8_48ab061e","line":1,"updated":"2015-03-02 17:30:05.000000000","message":"This file is being deleted for kilo, remove from patch","commit_id":"ce7f19cc7ad0a83b6e6584d9284f2295b0f42cf8"}],"attributes/mariadb.rb":[{"author":{"_account_id":8112,"name":"Ma Wen Cheng","email":"wenchma@cn.ibm.com","username":"wenchma"},"change_message_id":"edbfc7c6a3f196063ffb4b4dcc9db823469cee39","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# encoding: UTF-8"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Cookbook Name:: openstack-ops-database"},{"line_number":4,"context_line":"# Recipe:: mariadb-server"},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":7,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-ruby","patch_set":2,"id":"da86d52c_db8a001a","line":4,"updated":"2015-02-12 15:12:00.000000000","message":"please modify this line","commit_id":"3607189045c738040667892d065051922a0caba2"},{"author":{"_account_id":8112,"name":"Ma Wen Cheng","email":"wenchma@cn.ibm.com","username":"wenchma"},"change_message_id":"edbfc7c6a3f196063ffb4b4dcc9db823469cee39","unresolved":false,"context_lines":[{"line_number":15,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":16,"context_line":"# limitations under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"default[\u0027openstack\u0027][\u0027mariadb\u0027][\u0027innodb_thread_concurrency\u0027] \u003d \u00270\u0027"},{"line_number":19,"context_line":"default[\u0027openstack\u0027][\u0027mariadb\u0027][\u0027innodb_commit_concurrency\u0027] \u003d \u00270\u0027"},{"line_number":20,"context_line":"default[\u0027openstack\u0027][\u0027mariadb\u0027][\u0027innodb_read_io_threads\u0027] \u003d \u00274\u0027"},{"line_number":21,"context_line":"default[\u0027openstack\u0027][\u0027mariadb\u0027][\u0027innodb_flush_log_at_trx_commit\u0027] \u003d \u00272\u0027"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"da86d52c_1be658e8","line":18,"updated":"2015-02-12 15:12:00.000000000","message":"shouldn\u0027t the value be integer ?\n\nthe followings are same.","commit_id":"3607189045c738040667892d065051922a0caba2"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"19604e22278829c64ce48f30d59fb19505d8c9f0","unresolved":false,"context_lines":[{"line_number":15,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":16,"context_line":"# limitations under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"default[\u0027openstack\u0027][\u0027mariadb\u0027][\u0027innodb_thread_concurrency\u0027] \u003d \u00270\u0027"},{"line_number":19,"context_line":"default[\u0027openstack\u0027][\u0027mariadb\u0027][\u0027innodb_commit_concurrency\u0027] \u003d \u00270\u0027"},{"line_number":20,"context_line":"default[\u0027openstack\u0027][\u0027mariadb\u0027][\u0027innodb_read_io_threads\u0027] \u003d \u00274\u0027"},{"line_number":21,"context_line":"default[\u0027openstack\u0027][\u0027mariadb\u0027][\u0027innodb_flush_log_at_trx_commit\u0027] \u003d \u00272\u0027"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"da86d52c_802d6c00","line":18,"in_reply_to":"da86d52c_1be658e8","updated":"2015-02-12 17:19:20.000000000","message":"I think these are correct if we want to line up with the (old) attributes that were available from the 5.x mysql cookbook:  see:\nhttps://github.com/stackforge/cookbook-openstack-ops-database/blob/master/recipes/mysql-server.rb#L38","commit_id":"3607189045c738040667892d065051922a0caba2"}],"metadata.rb":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"8caf8152060d109dc27ed1ac90209d3c40782d83","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"depends \u0027mysql\u0027, \u0027\u003e\u003d 6.0.13\u0027, \u0027\u003c 7.0.0\u0027"},{"line_number":23,"context_line":"depends \u0027mysql2_chef_gem\u0027, \u0027\u003e\u003d 1.0.1\u0027, \u0027\u003c 2.0.0\u0027"},{"line_number":24,"context_line":"depends \u0027mariadb\u0027, \u0027~\u003e 0.2\u0027"},{"line_number":25,"context_line":"depends \u0027postgresql\u0027, \u0027\u003e\u003d 3.3.0\u0027, \u0027\u003c 4.0.0\u0027"},{"line_number":26,"context_line":"depends \u0027database\u0027, \u0027\u003e\u003d 4.0.2\u0027, \u0027\u003c 5.0.0\u0027"},{"line_number":27,"context_line":"depends \u0027openstack-common\u0027, \u0027\u003e\u003d 10.3.1\u0027"}],"source_content_type":"text/x-ruby","patch_set":6,"id":"da86d52c_9ff63d8f","line":24,"updated":"2015-02-16 16:04:21.000000000","message":"Probably bump to 0.3 now, os packages are important for some folks.\n\nAnd maybe for these openstack cookbooks, since we generally prefer os packages, should we make [\u0027mariadb\u0027][\u0027install\u0027][\u0027prefer_os_package\u0027] \u003d true our default?","commit_id":"ce7f19cc7ad0a83b6e6584d9284f2295b0f42cf8"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"c5380d852d90fc5b51e31b58b9ef5fb84d208444","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"depends \u0027mysql\u0027, \u0027\u003e\u003d 6.0.13\u0027, \u0027\u003c 7.0.0\u0027"},{"line_number":23,"context_line":"depends \u0027mysql2_chef_gem\u0027, \u0027\u003e\u003d 1.0.1\u0027, \u0027\u003c 2.0.0\u0027"},{"line_number":24,"context_line":"depends \u0027mariadb\u0027, \u0027~\u003e 0.2\u0027"},{"line_number":25,"context_line":"depends \u0027postgresql\u0027, \u0027\u003e\u003d 3.3.0\u0027, \u0027\u003c 4.0.0\u0027"},{"line_number":26,"context_line":"depends \u0027database\u0027, \u0027\u003e\u003d 4.0.2\u0027, \u0027\u003c 5.0.0\u0027"},{"line_number":27,"context_line":"depends \u0027openstack-common\u0027, \u0027\u003e\u003d 10.3.1\u0027"}],"source_content_type":"text/x-ruby","patch_set":6,"id":"ba7be1f8_0dab7c89","line":24,"in_reply_to":"da86d52c_9ff63d8f","updated":"2015-02-26 03:46:53.000000000","message":"I agree, we want os packages by default.","commit_id":"ce7f19cc7ad0a83b6e6584d9284f2295b0f42cf8"}],"recipes/mariadb-server.rb":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"19604e22278829c64ce48f30d59fb19505d8c9f0","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  notifies :restart, \u0027service[mysql]\u0027"},{"line_number":46,"context_line":"end"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"mysql_connection_info \u003d {"},{"line_number":49,"context_line":"  host: \u0027localhost\u0027,"},{"line_number":50,"context_line":"  username: \u0027root\u0027,"},{"line_number":51,"context_line":"  password: super_password"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"da86d52c_c058448c","line":48,"updated":"2015-02-12 17:19:20.000000000","message":"Is any of this really needed any more, this was put in for a bug in mysql long ago, and I don\u0027t think we need any of it (here to end).","commit_id":"3607189045c738040667892d065051922a0caba2"},{"author":{"_account_id":9492,"name":"Yi Ming Yin","email":"yinym@cn.ibm.com","username":"yym"},"change_message_id":"49d7488974845bb52f530e3214579d55770c2620","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  notifies :restart, \u0027service[mysql]\u0027"},{"line_number":46,"context_line":"end"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"mysql_connection_info \u003d {"},{"line_number":49,"context_line":"  host: \u0027localhost\u0027,"},{"line_number":50,"context_line":"  username: \u0027root\u0027,"},{"line_number":51,"context_line":"  password: super_password"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"da86d52c_94583b32","line":48,"in_reply_to":"da86d52c_c058448c","updated":"2015-02-13 03:23:48.000000000","message":"Actually, these code to end is copied from existing mysql-server. I guess they\u0027re no long useful at all for RHEL6.x. This is because in original mysql-server, we do not specify the database_name for all the \u0027mysql_database\u0027 resource. In this case, it will assume the resource is update-to-date, which means these SQL query never happened.\n\nHowever, I do find an issue here if we do not drop empty localhost user on RHEL7. After installation, the mysql database will have a user \u0027root@hostname\u0027 with empty password. This user will prevent any access from this hostname WITH password. For mariadb and mysql, both found this issue. But for a RHEL6.5 OS, it also has such user, and it allows \u0027root@hostname\u0027 to access with a password. Interesting.","commit_id":"3607189045c738040667892d065051922a0caba2"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"8caf8152060d109dc27ed1ac90209d3c40782d83","unresolved":false,"context_lines":[{"line_number":47,"context_line":"end"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"# Current mariadb cookbook does not handle deleting anonymous users and default"},{"line_number":50,"context_line":"# users. We need to delete them here."},{"line_number":51,"context_line":"mysql_connection_info \u003d {"},{"line_number":52,"context_line":"  host: \u0027localhost\u0027,"},{"line_number":53,"context_line":"  username: \u0027root\u0027,"}],"source_content_type":"text/x-ruby","patch_set":6,"id":"da86d52c_bf4dc1c7","line":50,"updated":"2015-02-16 16:04:21.000000000","message":"Humm, maybe I pulled this from the mysql side to soon, how to you determine/confirm the anonymous and default users?    Need to double check that for the mysql side.","commit_id":"ce7f19cc7ad0a83b6e6584d9284f2295b0f42cf8"},{"author":{"_account_id":9492,"name":"Yi Ming Yin","email":"yinym@cn.ibm.com","username":"yym"},"change_message_id":"84903de80252642ac0f4935e37617f384287a891","unresolved":false,"context_lines":[{"line_number":47,"context_line":"end"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"# Current mariadb cookbook does not handle deleting anonymous users and default"},{"line_number":50,"context_line":"# users. We need to delete them here."},{"line_number":51,"context_line":"mysql_connection_info \u003d {"},{"line_number":52,"context_line":"  host: \u0027localhost\u0027,"},{"line_number":53,"context_line":"  username: \u0027root\u0027,"}],"source_content_type":"text/x-ruby","patch_set":6,"id":"ba7be1f8_cdbde4d9","line":50,"in_reply_to":"da86d52c_bf4dc1c7","updated":"2015-02-26 03:41:19.000000000","message":"The logic here to determine anonymous and default users are compatible with the logic used in mysql cookbook (https://github.com/chef-cookbooks/mysql/blob/master/libraries/helpers.rb#L121)\n\nIn mysql cookbook v6, it goes further to delete all the existing users.\n\nI cannot find an issue from mysql site to support this operation. But if we do not delete default users and we set mariadb bind-host to non-localhost ip address (e.g. 10.x.x.x/aa.bb.com), existing user with empty password \u0027root@aa.bb.com\u0027 will prevent root access WITH password.\n\nYou will get: \"Access denied for user \u0027root\u0027@\u0027aa.bb.com\u0027 (using password: YES)\" at https://github.com/stackforge/cookbook-openstack-common/blob/master/libraries/database.rb#L31\n\nI don\u0027t think this is an issue for mysql/mariadb. If you use root@aa.bb.com WITHOUT password, it works fine. But in openstack-common, we DO use password to perform operations, and we should not leave default users without password there.\n\nIn sum, we have to delete all of these \"odd\" users here for mariadb.","commit_id":"ce7f19cc7ad0a83b6e6584d9284f2295b0f42cf8"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"fa5b54ddf5a39abb13f2446a9e1af1d0f556351b","unresolved":false,"context_lines":[{"line_number":27,"context_line":"node.override[\u0027mariadb\u0027][\u0027server_root_password\u0027] \u003d super_password"},{"line_number":28,"context_line":"node.override[\u0027mariadb\u0027][\u0027mysqld\u0027][\u0027bind_address\u0027] \u003d db_endpoint.host"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"unless db_endpoint.host \u003d\u003d \u0027127.0.0.1\u0027 || db_endpoint.host \u003d\u003d \u0027localhost\u0027"},{"line_number":31,"context_line":"  node.override[\u0027mariadb\u0027][\u0027forbid_remote_root\u0027] \u003d false"},{"line_number":32,"context_line":"end"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":7,"id":"1a6ced46_7545196f","line":30,"updated":"2015-03-24 16:38:33.000000000","message":"Spec test for this logic?","commit_id":"f85b7aa18ffa90502d0bad0f297777c2e15bdf7f"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"fa5b54ddf5a39abb13f2446a9e1af1d0f556351b","unresolved":false,"context_lines":[{"line_number":54,"context_line":"  password: super_password"},{"line_number":55,"context_line":"}"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"mysql_database \u0027drop empty and default users\u0027 do"},{"line_number":58,"context_line":"  database_name \u0027mysql\u0027"},{"line_number":59,"context_line":"  sql \"DELETE FROM mysql.user WHERE User \u003d \u0027\u0027 OR Password \u003d \u0027\u0027\""},{"line_number":60,"context_line":"  connection mysql_connection_info"}],"source_content_type":"text/x-ruby","patch_set":7,"id":"1a6ced46_502aeb7e","line":57,"updated":"2015-03-24 16:38:33.000000000","message":"Spec for this?","commit_id":"f85b7aa18ffa90502d0bad0f297777c2e15bdf7f"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"fa5b54ddf5a39abb13f2446a9e1af1d0f556351b","unresolved":false,"context_lines":[{"line_number":61,"context_line":"  action :query"},{"line_number":62,"context_line":"end"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"mysql_database \u0027test\u0027 do"},{"line_number":65,"context_line":"  connection mysql_connection_info"},{"line_number":66,"context_line":"  action :drop"},{"line_number":67,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":7,"id":"1a6ced46_304e4f70","line":64,"updated":"2015-03-24 16:38:33.000000000","message":"spec for this?   I think there are easy matchers to use here","commit_id":"f85b7aa18ffa90502d0bad0f297777c2e15bdf7f"}],"spec/mariadb-server-redhat_spec.rb":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"8caf8152060d109dc27ed1ac90209d3c40782d83","unresolved":false,"context_lines":[{"line_number":27,"context_line":"       /^innodb_flush_log_at_trx_commit \u003d 2$/,"},{"line_number":28,"context_line":"       /^skip-name-resolve$/,"},{"line_number":29,"context_line":"       /^character-set-server \u003d utf8$/].each do |line|"},{"line_number":30,"context_line":"        expect(chef_run).to render_file(file.name).with_content(line)"},{"line_number":31,"context_line":"      end"},{"line_number":32,"context_line":"    end"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":6,"id":"da86d52c_1f940de7","line":30,"updated":"2015-02-16 16:04:21.000000000","message":"would be nicer to use the new Common .with_section_content, since this is within the [mysqld] section.","commit_id":"ce7f19cc7ad0a83b6e6584d9284f2295b0f42cf8"}],"spec/mariadb-server_spec.rb":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"8caf8152060d109dc27ed1ac90209d3c40782d83","unresolved":false,"context_lines":[{"line_number":39,"context_line":"       /^innodb_flush_log_at_trx_commit \u003d 2$/,"},{"line_number":40,"context_line":"       /^skip-name-resolve$/,"},{"line_number":41,"context_line":"       /^character-set-server \u003d utf8$/,"},{"line_number":42,"context_line":"       /^max_connections \u003d 1024$/].each do |line|"},{"line_number":43,"context_line":"        expect(chef_run).to render_file(file.name).with_content(line)"},{"line_number":44,"context_line":"      end"},{"line_number":45,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":6,"id":"da86d52c_df9195f2","line":42,"updated":"2015-02-16 16:04:21.000000000","message":"Again use   .with_section_content.","commit_id":"ce7f19cc7ad0a83b6e6584d9284f2295b0f42cf8"}]}
