Commit Graph

305 Commits (0dbe20beae315609cac452162fbfdb86933c0b81)

Author SHA1 Message Date
Jonathan Mainguy f0af9b9ed5 Adds all_databases option which allows a user to dump or import all databases at once, identical to mysqldump --all-databases
fix line 132

Update to name=all

cleaned up all_database per abadger's suggestions
10 years ago
Toshio Kuratomi 8b4e201772 Expand tildes and vars in the config file path 10 years ago
Brian Coca 35703caf6f Merge pull request #1101 from willthames/postgresql_reduce_alter_role
Update postgresql users only when necessary
10 years ago
Pascal Borreli f29a6ec54d Fixed typos 10 years ago
Toshio Kuratomi 58c8696fc5 Allow playbook specified login_user and login_password to override config file settings 10 years ago
Julia Kreger 35bcd6a965 Set default for mysql_user config_file
The default value set by the module was a value of None for the
config_file parameter, which propogates into the connect method
call overriding the stated default in the method.

Instead, the default should be set with-in the parameter
specification so the file check is not requested to check None.
10 years ago
Brian Coca 8023c60863 minor doc fixes 10 years ago
Sven Schliesing c53ca2f776 use default value for parameter config_file in connect() 10 years ago
muffl0n 616ac905ff Use MySQLdbs read_default_file 10 years ago
Will Thames c956c65731 Usage is not a valid database or table privilege
Remove `USAGE` from the `VALID_PRIVS` dict for both database and
table because it is not a valid privilege for either (and
breaks the implementation of `has_table_privilege` and
`has_database_privilege`

See http://www.postgresql.org/docs/9.0/static/sql-grant.html
10 years ago
Will Thames 7d66da35a7 Perform privilege grants/revokes only when required
Use `has_table_privileges` and `has_database_privileges`
to test whether a user already has a privilege before
granting it, or whether a user doesn't have  a privilege
before revoking it.
10 years ago
Will Thames b4515c8909 Update postgresql users only when necessary
For read-only databases, users should not change when no changes
are required.

Don't issue ALTER ROLE when role attribute flags, users password
or expiry time is not changing.

In certain cases (hashed passwords in the DB, but the password
argument is not hashed) passlib.hash is required to avoid
running ALTER ROLE.
10 years ago
Brian Coca 6e373ace86 corrected version added 10 years ago
Brian Coca c4a22478c4 Merge pull request #830 from BlackMesh/devel
mysql_user #829: add update_password to mysql_user
10 years ago
Dennis Rowe 539b7744d0 Strip spaces around perms 10 years ago
tedder bffd137edd code review fixes per #957 10 years ago
tedder 472331a53b skip password changes so pg_authid isn't needed
Some places ([AWS RDS](https://forums.aws.amazon.com/thread.jspa?threadID=151248)) don't have, or don't allow, access to the `pg_authid` table. The only reason that is necessary is to check for a password change.

This flag is a workaround so passwords can only be set at creation time. It isn't as elegant as changing the password down the line, but it fixes the longstanding issue #297 that prevented this from being useful on AWS RDS.
10 years ago
Jesse Sandberg fc4c659400 Validate variable, return only the found variable value instead of tuple
Docs imply the mysql_variables is used to operate a single variable therefore
- fail before making any db connections if variable is not set
- validate chars for mysql variable name with re.match(^[a-z0-9_]+)
- use "SHOW VARIABLE WHERE Variable_name" instead of LIKE search
- getvariable() returns only the value or None if variable is not found
- the module returns only the found variable value instead of tuple for easier operation eg. as registere variable in tasks
10 years ago
Toshio Kuratomi b0bc6f1379 Merge pull request #888 from ansible/mysql-port
Fix for int port assignment in a playbook failing
10 years ago
Toshio Kuratomi ec6304d5a0 Merge pull request #824 from Jmainguy/mysql_db_616
Now correctly gzip/bzips file back up in case of import failure
10 years ago
Jonathan Mainguy ee8039ef09 Now correctly gzip/bzips file back up in case of import failure
Removed gunzip and bunzip2 dependency
10 years ago
Toshio Kuratomi a1135f803d Fix for int port assignment in a playbook failing
Ports are integer values but the old code was assuming they were
strings.  When login_port is put into playbook complex_args as an
integer the code would fail.  This update should make the argument
validating make sure we have an integer and then we can send that value
directly to the relevant APIs.

Fixes #818
10 years ago
Toshio Kuratomi addca40604 Fix documentation to have correct param name 10 years ago
Solomon Gifford 35434f9672 mysql_user #829: add update_password to mysql_user 10 years ago
David Hummel 1d92dd31a6 Fix issue #793: mysql_db: for state={absent,present} connections to database mysql fail for users other than root 10 years ago
Brian Coca 02af66d232 Merge pull request #559 from mjschultz/postgres-db-fix
Build the db connection on `"postgres"` instead of `"template1"`
10 years ago
Brian Coca 1394920cd3 Merge pull request #44 from Jmainguy/mysql_db_6860
adds error message if socket does not exist
10 years ago
Johannes Steger 34aa98a99c Fix function identifier quoting 10 years ago
Toshio Kuratomi fbb9dcc69a Also catch mysql errors so we can give the error message back through json rather than tracebacking 10 years ago
Bruce Pennypacker 272bb1fa63 requested changes 10 years ago
Bruce Pennypacker a07873d6a3 Added support for 'REQUIRE SSL' grant option 10 years ago
sysadmin75 00b4f4d543 Fix to revoke privileges for mysql user = ''
Issue #9848
10 years ago
Michael J. Schultz b894bc2b77 Build the db connection on `"postgres"` instead of `"template1"`
According to the postgresql docs[1], you should not have a connection with
`"template1"` when copying multiple databases.

[1]: http://www.postgresql.org/docs/9.1/static/manage-ag-templatedbs.html
10 years ago
Toshio Kuratomi b0c94cd6f6 Merge pull request #281 from kustodian/postgresql_db_fix_for_python_24_checkmode
Fixed postgresql_db failing on Python 2.4 with --check
10 years ago
kustodian 07b98c45df Fixed postgresql_db failing on Python 2.4 with --check
This reverts commit 81cbdb6c8c and adds ignoring of the SystemExit exception because of Python 2.4.
10 years ago
Petros Moisiadis bd7c6dbd3a mysql_user: Added missing privileges
Added missing privileges 'CREATE TABLESPACE' and 'PROXY' (see: http://dev.mysql.com/doc/refman/5.5/en/privileges-provided.html).
10 years ago
Andrew Shults 8396c063a3 Strip white space to support multiline permissions in YAML 10 years ago
Toshio Kuratomi e8edee4166 Fix typo 10 years ago
Toshio Kuratomi b766390ae2 Add USAGE as a valid privilege 10 years ago
Toshio Kuratomi 5af4463823 Gixes to doc formatting 10 years ago
Toshio Kuratomi dda6d89060 Fix typo so docs will build 10 years ago
Toshio Kuratomi 3a80b734e6 Escape % in db+table names before adding to a format string being passed into db.execute()
Fixes #416
10 years ago
Dan 084ccf5a64 Adds a login_unix_socket option to the postgresql_privs module. 10 years ago
Dan 3a3ff1f0e4 Adds a unix_socket/login_unix_socket option to the postgresql_user module. 10 years ago
Dan bf36697a55 Adds a login_unix_socket option to the postgresql_db module. 10 years ago
Toshio Kuratomi 1cab307649 Fix module traceback instead of returning an error 10 years ago
Toshio Kuratomi 2a794fa776 Fix for single role_attr 10 years ago
Toshio Kuratomi 7dd2859f9b Add a bare grant to the list of allowed privileges 10 years ago
Devin Christensen 06f1c1a97e Fix user_alter in postgresql_user 10 years ago
Devin Christensen c77ab67274 Fix user_add in postgresql_user 10 years ago
Devin Christensen 4a3d7473fd Fix syntax error 10 years ago
Toshio Kuratomi 10ebcccedb Escape mysql identifiers 10 years ago
Toshio Kuratomi 06ac459fc5 Correct new function name 10 years ago
Toshio Kuratomi c84ae54294 Normalize privs and flags to uppercase so comparisons against allowed names will work 10 years ago
Toshio Kuratomi fbc4ed7a88 Make sure we quote or confirm good all user provided identifiers 10 years ago
Toshio Kuratomi 51910a1a33 Audit escaping of identifiers in the postgresql_user module 10 years ago
Toshio Kuratomi 1b0afb137c More robust quoting of database identifiers
Note: These aren't database values, those are already using the
appropriate Pyhton DB API method for quoting.
10 years ago
Jonathan Mainguy 16b251d743 adds error message if socket does not exist 10 years ago
kustodian 81cbdb6c8c Fixed postgresql_db failing on Python 2.4 with --check 10 years ago
Michael DeHaan 3ed1378067 Some more module categorization. 10 years ago
Michael DeHaan 385a037cd6 package files 10 years ago
Michael DeHaan c8e1a2077e file extensions! 10 years ago
Michael DeHaan 417309a626 Restructuring. 10 years ago
Michael DeHaan 73123b69fa Move modules into subdirectory. 10 years ago
James Martin 49a5619cc0 Prevents module from failing with "_mysql_exceptions.Warning: Sending passwords in plain text without SSL/TLS is extremely insecure." When not using SSL/TLS. 10 years ago
Michael DeHaan 677709803c Merge pull request #8419 from georgeOsdDev/escape_underscore_in_database_name
mysql_db module: Escape "_" in database name for "SHOW DATABASES" statement
10 years ago
Michael DeHaan 185d5a6221 Merge branch 'spelling' of git://github.com/cgar/ansible into devel
Conflicts:
	docsite/rst/guide_rax.rst
	plugins/callbacks/mail.py
10 years ago
Takeharu Oshida b42ff30505 Escape "_" in database name for "SHOW DATABASES" statement 10 years ago
Wayne Rosario 7cfef577a1 Adding the following Test Coverage:
Use mysql_user module to create, delete users.
Update user password and ensure new password was updated for the correct user.
Assert user has access to multiple databases
Assert user creation, deleting using different user privilege and ensure privilege work correctly.
10 years ago
Wayne Rosario 45d7e53da9 updating doc to include revoke example for mysql_user docs 10 years ago
Jonathan Mainguy 3da1e5ce62 This fixes 8173, if target was not defined it would break, now it wont 10 years ago
James Cammarata 93d862f3f5 Expand target for mysql_db
Fixes #8128
10 years ago
Jonathan Mainguy 2b84ec6b4a Errors out with stderr 1049, unknown database: when importing a database that does not exist 10 years ago
James Cammarata a8368e4dc4 Merge pull request #8092 from ghjm/mysql-exceptions
Added exception handling to database creation and deletion. Fixes #8075.
10 years ago
Graham Mainwaring 8e6e9a12e7 Switched primary and alias names of the name/db parameter, to match documentation. Fixes #8065. 10 years ago
Graham Mainwaring 6e237bed7a Added exception handling to database creation and deletion. Fixes #8075. 10 years ago
Jonathan Mainguy f4690464b4 Makes ansible fail if login_port is defined and login_host is either not defined, or defined as localhost. This is because if login_host is localhost then MySQLdb will use the socket instead of TCP. This leads to confusion for ansible users as, when a port is defined it gets ignored if login_host is localhost. This is to fix the bug reported by wrosario #8070. Info on MysqlDb can be read here http://mysql-python.sourceforge.net/MySQLdb.html 10 years ago
James Cammarata ae37758257 Merge pull request #6766 from Jmainguy/mysql_db_bug
mysql_db module now correctly fails on import if bz2 or gz fails.
11 years ago
Scott Brown 34d960ef20 BUGFIX 1178: Adding better existence check in one place. db_import now fails fast if target does not exist b/c no point going further without the target. 11 years ago
Scott Brown 1853a3f565 BUGFIX 7811: Adding file existence check when performing mysql import on a .gz or .bz2 file, otherwise Ansible will not notice that the underlying *nix command silently died. 11 years ago
James Cammarata 8d0d2831e6 Fixing mysql master replication boolean
Fixes #7528
11 years ago
Josef Špak 1dbc069bcb Fix typo in CHANGE MASTER TO syntax 11 years ago
Mathieu Martin 9589ee2a41 Add example 'Specify grants composed of more than one word' to the mysql_user module. 11 years ago
Scott Sturdivant 40a6a6f911 Clarify that the encrypted param must also be set.
While the encrypted parameter's documentation clearly states that it needs to
be set, if you are focused on the password parameter's documentation, there's
nothing to draw your attention to the fact that encrypted may also need to be
set.
11 years ago
Adam Chainz 29b10ac698 Fix sync_binlog name in mysql_variables example
The previous sync_binary_log is not a real MySQL variable.
11 years ago
Carlos E. Garcia 4dcaa9d9fb multiple spelling error changes 11 years ago
Cove Schneider ae0721d3da re-add idempotency check 11 years ago
Cove Schneider 428dead8cd add replicaset support to mongodb_user module 11 years ago
Michael DeHaan acd89f7a1f Merge pull request #6796 from mistaka0s/mysqldump_fix
Remove extra quote from the mysqldump password argument
11 years ago
Matt Martz a4078a4bf8 Use /usr/bin/python instead of /usr/bin/env python 11 years ago
Chao Luan 749e749c11 Remove extra quote from the mysqldump password argument
The mysqldb Ansible module will fail if the state specified is import or dump with a '1045: Access Denied' mysql error for complex passwords.

This is caused by the extra quote around the '--password' argument to mysqldump, as pipes.quotes already quotes the password string.

>>> "--password='%s'" % pipes.quote('simple')
"--password='simple'"

>>> "--password='%s'" % pipes.quote('c0mplexp@ssword!')
"--password=''c0mplexp@ssword!''"

>>> "--password='%s'" % pipes.quote('password with space')
"--password=''password with space''"
11 years ago
Jonathan Mainguy 17fa8e3c84 Added mpdehaan suggestion to use os.path.splitext. Wise suggestion, does look clearner 11 years ago
Jonathan Mainguy f0b2616bd8 mysql_db module now correctly fails on import if bz2 or gz fails. 11 years ago
Michael DeHaan ff5560f00c Update comments about redis config. 11 years ago
Michael DeHaan fbb15ad52f Merge branch 'devel' of git://github.com/mleventi/ansible into devel 11 years ago
Michael DeHaan d10b3f9257 Merge pull request #5597 from laggyluke/mongodb_user_idempotence
Fix idempotence in mongodb_user module
11 years ago
Cristian Ciupitu 7f681c33a2 Micro-optimization: replace s.find(x)!=-1 with x in s
timeit shows a speedup of ~3x on Python 2.7.5 x86_64.
It also makes the code a bit shorter.
11 years ago
Richard Isaacson 35b4cf001c Merge pull request #6461 from risaacson/modules_make_run_command_safer
Modules make run command safer
11 years ago
Richard C Isaacson 122917019c mysql_db module: typo fix
Tests clean.
11 years ago
Richard C Isaacson d9da5cf084 Shell updates. 11 years ago
James Martin 0a74cb484c Fixes various typos introduced in a9017af2bb.
Fixes odd encoding problem with wait_for_service.
11 years ago
Michael DeHaan 980653f20b More shell fixes 11 years ago
James Cammarata 72217c297d Adding validate_certs to all modules that use fetch_url 11 years ago
Richard C Isaacson 525e811d9b Bulk update of choices=BOOLEANS to type='bool' 11 years ago
James Cammarata b77ea4ed91 Merge pull request #4630 from mmoya/mysql_variables-fix2
Add support for string values
11 years ago
James Cammarata a1b1182662 Validate SSL certs accessed through urllib*
* Adds another module utility file which generalizes the
  access of urls via the urllib* libraries.
* Adds a new spec generator for common arguments.
* Makes the user-agent string configurable.

Fixes #6211
11 years ago
Michael DeHaan 8e9f058214 Merge pull request #6305 from amree/fix-mysql-replication-port
Fixed SQL syntax error when running mysql_replication module
11 years ago
Jimena Cabrera-Notari 86e7555554 Don't use keyword `error` in encode
This is not supported in Python 2.6. Just use positional arguments.
11 years ago
amree 59f954b349 MASTER_PORT variable for CHANGE MASTER TO command can only accept integer value 11 years ago
Guido Kollerie 314e621671 Emphasize target is on remote host. List supported file types.
From the documentation it is not immediately clear that the 'target'
option refers to a location on the remote host. This change emphasizes that.
In addition to .sql files, .bz2 and .gz files are supported for dumps and
restores. This is now documented.
11 years ago
Kyle Kelley 70d8be5cc2 Fix expires 11 years ago
James Martin e312b0e5bf Properly fetching the riak version, and properly setting the python interpreter. 11 years ago
James Cammarata c85b7d868b Merge branch 'fix-postgres_user_to_understand_pg_namespaces' of https://github.com/alanfairless/ansible into alanfairless-fix-postgres_user_to_understand_pg_namespaces 11 years ago
James Cammarata a570280b81 Merge branch 'postgres_alter_role' of https://github.com/jinnko/ansible into jinnko-postgres_alter_role
Conflicts:
	library/database/postgresql_user
11 years ago
Maykel Moya 5da6fcae4d Add support for string values
The SET GLOBAL statement requires properly quoting of values. For example, the
following correct queries will fail if quotes are toggled:

mysql> SET GLOBAL innodb_lru_scan_depth = 2000;
mysql> SET GLOBAL master_info_repository = "TABLE";

`mysql_variable` module doesn't quote the value argument, therefore
string values will fail.

  # this task will pass, 2000 is passed without quotes
  - name: set a numeric value
    mysql_variable: variable=innodb_lru_scan_depth value=2000

  # this task will fail, TABLE is passed without quotes
  - name: set a string value
    mysql_variable: variable=master_info_repository value=TABLE

With this patch prepared statements are used. Proper quoting will be
done automatically based on the type of the variables thus an attempt
to convert to int, then to float is done in first place.

Booleans values, ie: ON, OFF, are not specially handled because they
can be quoted. For example, the following queries are correct and
equivalent, they all set _innodb_file_per_table_ to logical _True_:

mysql> SET GLOBAL innodb_file_per_table = "ON";
mysql> SET GLOBAL innodb_file_per_table = ON;
mysql> SET GLOBAL innodb_file_per_table = 1;

Tested in mysql 5.5 and 5.6.
11 years ago
Arturs Vonda df853fa92e Added port documentation to postgresql_db and postgresql_user 11 years ago
George Miroshnykov 58e34edce3 Add idempotency to mongodb_user module 11 years ago
Matthew Jones 3ddfc8d471 Allow strings containing single and double quotes to be used as passwords for postgres_user 11 years ago
Timur Batyrshin 9ad52632c5 reword "except Error as e:" into "except Error, e:" to be compatible with Python 2.5 (#5852) 11 years ago
Matthew Leventi 1637438298 adding the ability to change redis configuration 11 years ago
jctanner 7bab8656a3 Merge pull request #5435 from jkleckner/fix-mysql-dump-import
mysql_db module: make dump and import to use port argument
11 years ago
David Busby ab8d5c5924 Documentation update to yield example of "WITH GRANT OPTION" which is undocumented previous 11 years ago
Alan Fairless 927a30c404 Fix postgresql_user to understand PG namespaces
Previously postgresql_user quoted user supplied identifers to create
grant statements that look like this:

    GRANT SELECT on "tablename" to "user";

Which only works if the tablename is not in a namespace.  If you supply
a namespaced tabelname like "report.revenue" then it creates this
incorrect statement:

    GRANT SELECT on "report.revenue" to "user";

Which will not find the "revenue" table in the "report" namespace, but
will rather look for a table named "report.revenue" in the current
(default public) namespace.  The correct form is:

    GRANT SELECT on "report"."revenue" to "user";

This approach could have the unfortunate effect that code that
previously relied on the other behavior to grant privileges on tables
with periods in their names may now break.  PostgreSQL users
typically shouldn't name tables as such, and users can still access the
old behavior and use tablenames with periods in the if they must by
supplying their own quoting.
11 years ago
Jim Kleckner 8ba9019797 Add quotes to password argument for dump/import
The password is passed on a command line for dump and import and needs
quoting.

Ideally, this would not be passed on a command line at all - any ideas?
Or at least have a stronger form of quoting so that embedded single
quotes will be escaped.
11 years ago
Jinn Koriech 57dc4fbea2 postgresql_user module: Gracefully handle ALTER ROLE on read-only postgres servers. 11 years ago
Jim Kleckner 59396d38e2 Fix mysql_db dump and import to use port argument
The code for mysql_db did not pass the port argument when state=dump or
state=import.
11 years ago
jctanner 8b925e93e6 Merge pull request #5099 from tartansandal/postgresql_db_check_mode
postgres_db CHECKMODE changed status
11 years ago
Jinn Koriech fbb1018abe Fix postgresql_user documentation render 11 years ago
Jinn Koriech e1aa94896f Add documentation for usage of encrypted postgresql passwords. 11 years ago
James Tanner 4f9aadcc07 Addresses #5023 Fix import comments 11 years ago
James Tanner 38edad70ac Fixes #5023 Convert all modules to use new snippet import pattern 11 years ago
Kahlil (Kal) Hodgson 147783528c postgres_db CHECKMODE changed status
Make the changed status for postgres_db under CHECKMODE match the
status that would be returned normally.
11 years ago
Michael DeHaan 4c35b7f380 There's a cleaner way to do this, commit to module formatter pending.
Revert "No longer need to reference 'version_added' in docs for these, as this was quite a while ago."

This reverts commit ff0a41d446.
11 years ago
Michael DeHaan 9e4d71203d No longer need to reference 'version_added' in docs for these, as this was quite a while ago. 11 years ago
Michael DeHaan 08996d78d6 Add version_added to all modules missing version_added information, the docs formatter will now
raise errors when omitted, updated changelog with new modules.
11 years ago
James Tanner eccbd21a0d Fix typo in postgresql_user module docstrings 11 years ago
jctanner 6336129f59 Merge pull request #4686 from bcoca/postgresql_user_pwds
postgresql_user now supports users w/o a password, encrypted passwords and expiration
11 years ago
James Tanner f7db64d69b Merge pull request #4307 from damianmoore/mysql_gzip_bzip2_support
Add support for compressing mysql dumps and extracting during import.
11 years ago
Steve Tjoa de4b105e09 Changed parameter from 'user' to 'name' in the examples to coincide with the specs. 11 years ago
James Tanner 3370aee870 Fixes #4720 Use mysql command to restore database instead of mysqldump 11 years ago
Brian Coca 9b8b79f1fd updated to make note that password is required before v1.4
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
11 years ago
Brian Coca 0d9a6b63ea updated docs
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
11 years ago
Brian Coca cdec70eeff now supports users w/o a password, encrypted passwords and expiration
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
11 years ago
Maykel Moya 6155bf2c55 Fail if requested variable is not available 11 years ago
James Tanner 251b52bef8 Fixes #4454 Make a temporary clean cnf file if unable to parse existing 11 years ago
Maykel Moya 2d33cf898c Improve change detection in mysql_variables
mysql_variables bindly executes a SET var = value query even when
the variable already has the requested value.

With this patch the query is executed only if the current value is
different to the requested one.
11 years ago
James Tanner f233e29386 mysql_db: if connection is a socket, do not specify hostname 11 years ago
James Tanner 9128862b3b Fixes #4301 Use module_common functions for mysqldump and return better errors 11 years ago
Michael DeHaan c586ed5168 Merge pull request #4342 from pileofrogs/devel
mysql_replication switch to DictCursor for compatibility with more mysql server versions
11 years ago
Michael DeHaan daa005085d Add missing version_added doc to mysql login port parameter. 11 years ago