Spec-Zone.ru › Chef 16

Ресурс mysql_session

[править на GitHub]

Используйте ресурс проверки аудита Chef InSpec mysql_session, чтобы проверить SQL-команды, выполняемые на базе данных MySQL.

Доступность

Установка

Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.

Версия

Этот ресурс стал доступен в версии InSpec v1.0.0.

Синтаксис

Блок ресурса mysql_session объявляет имя пользователя и пароль для сессии, а затем команду, которая должна быть выполнена:

describe mysql_session('username', 'password').query('QUERY') do
  its('output') { should match(/expected-result/) }
end

где

  • mysql_session объявляет имя пользователя и пароль, подключается локально, с разрешением на выполнение запроса
  • query('QUERY') содержит запрос, который нужно выполнить
  • its('output') { should eq(/expected-result/) } сравнивает результаты запроса с ожидаемым результатом в тесте

Примеры

В следующих примерах показано, как использовать этот ресурс проверки аудита Chef InSpec.

Тестирование соответствия баз данных

sql = mysql_session('my_user','password')

describe sql.query('show databases like \'test\';') do
  its('output') { should_not match(/test/) }
end

Альтернативное подключение: Разный хост

sql = mysql_session('my_user','password','db.example.com')

Альтернативное подключение: Разный порт

sql = mysql_session('my_user','password','localhost',3307)

Альтернативное подключение: Использование сокета

sql = mysql_session('my_user','password', nil, nil, '/var/lib/mysql-default/mysqld.sock')

Проверка успешного выполнения запроса

describe mysql_session('my_user','password').query('show tables in existing_database;') do
  its('exit_status') { should eq(0) }
end

Проверка неудачного выполнения запроса

describe mysql_session('my_user','password').query('show tables in non_existent_database;') do
  its('exit_status') { should_not eq(0) }
end

Проверка определенного сообщения об ошибке

describe mysql_session('my_user','password').query('show tables in non_existent_database;') do
  its('stderr') { should match(/Unknown database/) }
end

Матчеры

Этот ресурс проверки аудита Chef InSpec создает объект command и возвращает объект результата. Полный список доступных матчеров см. на странице matchers.

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/mysql_session/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API