hapi-fhir/vagrant/chef/cookbooks/mysql
Tadgh 8a7b5c1b2f
Multiple improvements (#2997)
* Add failing test

* Tidy test for new tokenparam style

* Add removeByQualifier to SearchParameterMap

* Add new property binder for search terms

* Member move, add test for new parser

* whoops missed an add

* Passing test.

Introduced SearchParamTextWrapper to give a type for the binder.
Enhance FulltextSearchSvcImpl to understand TokenParams as well as StringParams.

* Add more to test, change analyzer for template

* Optimize imports

* Minor refactoring

* added eq and gt test cases

* added missing gt search param tests

* Search all CodeableConcepts

* Extract new LuceneRuntimeSearchParam to mediate indexing and searching.

* Fix up broken test with mock

* Add support for identifier type

* Bump for special maven package

* fix-me to todo

* Prevent version check

* FIx version for test

* DSTU2 does not support fluent path

* Don't accidentally strip SPs in DSTU2

* added lt tests

* Add some high-bound test cases

* More test cases and new compressed format

* More test cases

* More test cases

* Re-order columns for easier reading

* Comments

* Cleanup and comments

* Make support :text for all token SPs

* Make support :text for all token SPs

* Fixed incomplete date issue

* Set to the last millisecond 23:59:59.999

* Disabled 4 failed JVM/TZ related test cases

* add test for failing batch bug, remove bounding on queue

* remove parallelism from non-get batch operations

* Fix count for test

* New index layout

* Notes and cleanup

* Notes and cleanup

* remove the jetbrains

* Demote FIXME to WIP

* Change :text search to be lucene simple search and use standardAnalyzer.

* Change :text to require * for prefix match.

* add prefix negative test

* Bump version

* Added changelog

* Add more search parameters to lucene indexing (#3000)

* dirty the branch

* Add oversight to changelog

* Start using jpa indexing for es

* Correct negative search test

* Update templates, index tokens, write new test. TODO gotta modify SB

* Add test for code token search

* add comment

* Flesh out token search

* minor cleanup and comments

* Extract index handling from FulltextSearchSvcImpl

* D'oh.  Actually use elastic to search.

* Move supported query check closer to query builder

* String search test before activating lucene

* Add string:exact to hibernate search.

* Add string:contains search

* cleanup

* demote fixmes to allow build to run.

* Add unmodified string search.

* empty stubs for quantity and reference

* Ignore magic search params in lucene index

* Support full-text on all FHIR releases

* Include reference lookups in ES

* Fix and/or logic in _text

* Test for string with space

* Cherry-pick the NoFT fix

* Disable advanced indexing in a bunch of tests of emitted sql.

* Stub changelog

* Fix :missing flag

* Move DaoConfig up to BaseJpaTest to share teardown

* Disable new indexing for partition test

* Add a different analyzer and field for default string search vs text

* checkstyle for a pre-build

* Index full prefix for string search when using Lucene

* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/5_6_0/3000-Extend-lucene-indexing.yaml

Co-authored-by: Tadgh <tadgh@cs.toronto.edu>

* Update hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/HibernateSearchQueryBuilder.java

Co-authored-by: Tadgh <tadgh@cs.toronto.edu>

* Review feedback.

Co-authored-by: Tadgh <garygrantgraham@gmail.com>
Co-authored-by: Tadgh <tadgh@cs.toronto.edu>

* Remove double-check

* Version bump

* Fix typo

Co-authored-by: Michael Buckley <michael.buckley@smilecdr.com>
Co-authored-by: Long Ma <longma@Longs-MacBook-Pro.local>
Co-authored-by: Frank Tao <frankjtao@gmail.com>
Co-authored-by: michaelabuckley <michaelabuckley@gmail.com>
2021-10-28 15:13:16 -04:00
..
attributes Moving all Vagrant and Chef files to their own suddirectory as to not pollute the root level. 2014-10-07 11:59:16 -07:00
libraries Multiple improvements (#2997) 2021-10-28 15:13:16 -04:00
recipes Moving all Vagrant and Chef files to their own suddirectory as to not pollute the root level. 2014-10-07 11:59:16 -07:00
templates/default Moving all Vagrant and Chef files to their own suddirectory as to not pollute the root level. 2014-10-07 11:59:16 -07:00
CHANGELOG.md Moving all Vagrant and Chef files to their own suddirectory as to not pollute the root level. 2014-10-07 11:59:16 -07:00
README.md Moving all Vagrant and Chef files to their own suddirectory as to not pollute the root level. 2014-10-07 11:59:16 -07:00
metadata.json Moving all Vagrant and Chef files to their own suddirectory as to not pollute the root level. 2014-10-07 11:59:16 -07:00
metadata.rb Moving all Vagrant and Chef files to their own suddirectory as to not pollute the root level. 2014-10-07 11:59:16 -07:00

README.md

MySQL cookbook

The MySQL cookbook exposes the mysql_service and mysql_client resources. These resources are utilized by the mysql::client and mysql::server recipes, or can be consumed in other recipes by depending on the MySQL cookbook.

This cookbook does its best to follow platform native idioms at all times. This means things like logs, pid files, sockets, and service managers work "as expected" by an administrator familiar with a given platform.

Scope

This cookbook is concerned with the "MySQL Community Server", particularly those shipped with F/OSS Unix and Linux distributions. It does not address forks and value-added repackaged MySQL distributions like Drizzle, MariaDB, or Percona.

This cookbook does not try to encompass every single configuration option available for MySQL. Instead, it provides a "just enough" to get a MySQL server running, then allows the user to specify additional custom configuration.

Requirements

  • Chef 11 or higher
  • Ruby 1.9 (preferably from the Chef full-stack installer)

Resources

The resources that ship in this cookbook are examples of 'singleton resources'. This means that there can only be one instance of them configured on a machine. The providers that handle the implementation of the mysql_service and mysql_client resources do so by following platform native idioms. These usually only allow for one instance of a service to be running at a given time.

mysql_service

The mysql_service resource configures the basic plumbing needed to run a simple mysql_service with a minimal configuration.

Please note that when using notifies or subscribes, the resource is mysql_service. This means that this cookbook does not setup service[mysql].

Example

mysql_service 'default' do
  version '5.1'
  port '3307'
  data_dir '/data'
  template_source 'custom.erb'
  allow_remote_root true
  root_network_acl ['10.9.8.7/6', '1.2.3.4/5']
  remove_anonymous_users false
  remove_test_database false
  server_root_password 'decrypt_me_from_a_databag_maybe'
  server_repl_password 'sync_me_baby_one_more_time'
  action :create
end

The version parameter will allow the user to select from the versions available for the platform, where applicable. When omitted, it will install the default MySQL version for the target platform. Available version numbers are 5.0, 5.1, 5.5, and 5.6, depending on platform. See PLATFORMS.md for details.

The port parameter determines the listen port for the mysqld service. When omitted, it will default to '3306'.

The data_dir parameter determines where the actual data files are kept on the machine. This is useful when mounting external storage. When omitted, it will default to the platform's native location.

The template_source parameter allows the user to override the default minimal template used by the mysql_service resource. When omitted, it will select one shipped with the cookbook based on the MySQL version.

The allow_remote_root parameter allows the user to specify whether remote connections from the mysql root user. When set to true, it is recommended that it be used in combination with the root_network_acl parameter. When omitted, it will default to false.

The remove_anonymous_users parameter allows the user to remove anonymous users often installed by default with during the mysql db initialization. When omitted, it defaults to true.

The remove_test_database parameter allows the user to specify whether or not the test database is removed. When omitted, it defaults to true.

The root_network_acl parameter allows the user to specify a list of subnets to accept connections for the root user from. When omitted, it defaults to none.

The server_root_password parameter allows the user to specify the root password for the mysql database. This can be set explicitly in a recipe, driven from a node attribute, or from data_bags. When omitted, it defaults to ilikerandompasswords. Please be sure to change it.

The server_debian_password parameter allows the user to specify the debian-sys-maint users password, used in log rotations and service management on Debian and Debian derived platforms.

The server_repl_password parameter allows the user to specify the password used by 'repl'@'%', used in clustering scenarios. When omitted, it does not create the repl user or set a password.

The mysql_service resource supports :create, :restart, and :reload actions.

mysql_client

The mysql_client resource installs or removes the MySQL client binaries and development libraries

Recipes

mysql::server

This recipe calls a mysql_service resource, passing parameters from node attributes.

mysql::client

This recipe calls a mysql_client resource, with action :create

Usage

The mysql::server recipe and mysql_service resources are designed to provide a minimal configuration. The default my.cnf dropped off has an !includedir directive. Site-specific configuration should be placed in the platform's native location.

run_list

Include 'recipe[mysql::server]' or 'recipe[mysql::client]' in your run_list.

Wrapper cookbook

node.set['mysql']['server_root_password'] = 'yolo'
node.set['mysql']['port'] = '3308'
node.set['mysql']['data_dir'] = '/data'

include_recipe 'mysql::server'

template '/etc/mysql/conf.d/mysite.cnf' do
  owner 'mysql'
  owner 'mysql'      
  source 'mysite.cnf.erb'
  notifies :restart, 'mysql_service[default]'
end

Used directly in a recipe

template '/etc/mysql/conf.d/mysite.cnf' do
  owner 'mysql'
  owner 'mysql'      
  source 'mysite.cnf.erb'
  notifies :restart, 'mysql_service[default]'
end

mysql_service 'default' do
  version '5.5'
  port '3307'
  data_dir '/data'
  template_source 'custom.erb'
  action :create
end

Attributes

default['mysql']['service_name'] = 'default'
default['mysql']['server_root_password'] = 'ilikerandompasswords'
default['mysql']['server_debian_password'] = 'postinstallscriptsarestupid'
default['mysql']['data_dir'] = '/var/lib/mysql'
default['mysql']['port'] = '3306'

### used in grants.sql
default['mysql']['allow_remote_root'] = false
default['mysql']['remove_anonymous_users'] = true
default['mysql']['root_network_acl'] = nil

License & Authors

Copyright:: 2009-2014 Chef Software, Inc

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

=)