Skip to content

Commit

Permalink
mysql_info: Add parameter for __collect method (#136)
Browse files Browse the repository at this point in the history
* [Add] Add parameter for __collect method

Add parameter for `__collect` method

By default the class `MySQL_Info` get all MySQL instance information,
add  parameter for `__collect` to  get only what wants to know(information)

Feature Pull Request

lib/ansible/modules/database/mysql/mysql_info.py

* typo

* [add] add changelog

- bugfixes:
  - mysql_info - add parameter for __collect to get only what are wanted (#136).
  • Loading branch information
lyvivian0077 authored Apr 11, 2020
1 parent eb485c5 commit 5fbe8a1
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 10 deletions.
2 changes: 2 additions & 0 deletions changelogs/fragments/mysql_info_add_parameter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
bugfixes:
- mysql_info - add parameter for __collect to get only what are wanted (https://github.com/ansible-collections/community.general/pull/136).
40 changes: 30 additions & 10 deletions plugins/modules/database/mysql/mysql_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,6 @@ def get_info(self, filter_, exclude_fields, return_empty_dbs):
filter_ (list): List of collected subsets (e.g., databases, users, etc.),
when it is empty, return all available information.
"""
self.__collect(exclude_fields, return_empty_dbs)

inc_list = []
exc_list = []
Expand All @@ -277,30 +276,51 @@ def get_info(self, filter_, exclude_fields, return_empty_dbs):
inc_list.append(fi)

if inc_list:
self.__collect(exclude_fields, return_empty_dbs, set(inc_list))

for i in self.info:
if i in inc_list:
partial_info[i] = self.info[i]

else:
not_in_exc_list = list(set(self.info) - set(exc_list))
self.__collect(exclude_fields, return_empty_dbs, set(not_in_exc_list))

for i in self.info:
if i not in exc_list:
partial_info[i] = self.info[i]

return partial_info

else:
self.__collect(exclude_fields, return_empty_dbs, set(self.info))
return self.info

def __collect(self, exclude_fields, return_empty_dbs):
def __collect(self, exclude_fields, return_empty_dbs, wanted):
"""Collect all possible subsets."""
self.__get_databases(exclude_fields, return_empty_dbs)
self.__get_global_variables()
self.__get_global_status()
self.__get_engines()
self.__get_users()
self.__get_master_status()
self.__get_slave_status()
self.__get_slaves()
if 'version' in wanted or 'settings' in wanted:
self.__get_global_variables()

if 'databases' in wanted:
self.__get_databases(exclude_fields, return_empty_dbs)

if 'global_status' in wanted:
self.__get_global_status()

if 'engines' in wanted:
self.__get_engines()

if 'users' in wanted:
self.__get_users()

if 'master_status' in wanted:
self.__get_master_status()

if 'slave_status' in wanted:
self.__get_slave_status()

if 'slave_hosts' in wanted:
self.__get_slaves()

def __get_engines(self):
"""Get storage engines info."""
Expand Down

0 comments on commit 5fbe8a1

Please sign in to comment.