Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mysql_user: fix parsing privs when a user has roles assigned to it #341

Merged
merged 4 commits into from
May 12, 2022

Conversation

Andersson007
Copy link
Collaborator

@Andersson007 Andersson007 commented May 5, 2022

SUMMARY

Fixes #231

In essence, i think we can ignore the second priv tuple because we use mysql_role module to manipulate roles:

+----------------------------------------------------+
| Grants for user1@localhost                         |
+----------------------------------------------------+
| GRANT USAGE ON *.* TO `user1`@`localhost`          |
| GRANT `admin`@`%` TO `user1`@`localhost`           |
+----------------------------------------------------+
ISSUE TYPE
  • Bugfix Pull Request

@Andersson007
Copy link
Collaborator Author

cc @rsicart @betanummeric @pookey @the02 @hubiongithub

@codecov
Copy link

codecov bot commented May 5, 2022

Codecov Report

Merging #341 (72db4f6) into main (1dcc5ec) will increase coverage by 0.02%.
The diff coverage is 66.66%.

@@            Coverage Diff             @@
##             main     #341      +/-   ##
==========================================
+ Coverage   78.27%   78.30%   +0.02%     
==========================================
  Files          27       27              
  Lines        2251     2254       +3     
  Branches      543      544       +1     
==========================================
+ Hits         1762     1765       +3     
  Misses        333      333              
  Partials      156      156              
Impacted Files Coverage Δ
plugins/module_utils/user.py 87.09% <66.66%> (+0.08%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1dcc5ec...72db4f6. Read the comment docs.

@Andersson007
Copy link
Collaborator Author

ready_for_review

@rsicart
Copy link
Contributor

rsicart commented May 11, 2022

Should we test the use privs from initial issue or is it already covered by the tests?

 - name: Grant full perms for maxscale
   community.mysql.mysql_user:
...
     priv:
       '*.*': 'SHOW DATABASES,REPLICATION SLAVE,REPLICATION SLAVE ADMIN,SLAVE MONITOR'

@Andersson007
Copy link
Collaborator Author

Should we test the use privs from initial issue or is it already covered by the tests?

 - name: Grant full perms for maxscale
   community.mysql.mysql_user:
...
     priv:
       '*.*': 'SHOW DATABASES,REPLICATION SLAVE,REPLICATION SLAVE ADMIN,SLAVE MONITOR'

Not sure if it's essential in this case ..and it reports "Invalid priv string":) Maybe depends on a server version

@Andersson007
Copy link
Collaborator Author

@rsicart what do you think about the logic of the solution?

@rsicart
Copy link
Contributor

rsicart commented May 12, 2022

@rsicart what do you think about the logic of the solution?

It's simple fix that gets de job done. And all tests are green.

LGTM 👍

@Andersson007
Copy link
Collaborator Author

@rsicart thanks for reviewing!:)

@Andersson007 Andersson007 merged commit 8d114c7 into ansible-collections:main May 12, 2022
@patchback
Copy link

patchback bot commented May 12, 2022

Backport to stable-2: 💔 cherry-picking failed — conflicts found

❌ Failed to cleanly apply 8d114c7 on top of patchback/backports/stable-2/8d114c7e39d8ec8b9b3592e6bb9e259db92af6e3/pr-341

Backporting merged PR #341 into main

  1. Ensure you have a local repo clone of your fork. Unless you cloned it
    from the upstream, this would be your origin remote.
  2. Make sure you have an upstream repo added as a remote too. In these
    instructions you'll refer to it by the name upstream. If you don't
    have it, here's how you can add it:
    $ git remote add upstream https://github.com/ansible-collections/community.mysql.git
  3. Ensure you have the latest copy of upstream and prepare a branch
    that will hold the backported code:
    $ git fetch upstream
    $ git checkout -b patchback/backports/stable-2/8d114c7e39d8ec8b9b3592e6bb9e259db92af6e3/pr-341 upstream/stable-2
  4. Now, cherry-pick PR mysql_user: fix parsing privs when a user has roles assigned to it  #341 contents into that branch:
    $ git cherry-pick -x 8d114c7e39d8ec8b9b3592e6bb9e259db92af6e3
    If it'll yell at you with something like fatal: Commit 8d114c7e39d8ec8b9b3592e6bb9e259db92af6e3 is a merge but no -m option was given., add -m 1 as follows intead:
    $ git cherry-pick -m1 -x 8d114c7e39d8ec8b9b3592e6bb9e259db92af6e3
  5. At this point, you'll probably encounter some merge conflicts. You must
    resolve them in to preserve the patch from PR mysql_user: fix parsing privs when a user has roles assigned to it  #341 as close to the
    original as possible.
  6. Push this branch to your fork on GitHub:
    $ git push origin patchback/backports/stable-2/8d114c7e39d8ec8b9b3592e6bb9e259db92af6e3/pr-341
  7. Create a PR, ensure that the CI is green. If it's not — update it so that
    the tests and any other checks pass. This is it!
    Now relax and wait for the maintainers to process your pull request
    when they have some cycles to do reviews. Don't worry — they'll tell you if
    any improvements are necessary when the time comes!

🤖 @patchback
I'm built with octomachinery and
my source is open — https://github.com/sanitizers/patchback-github-app.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

MariaDB, parsing roles failed.
2 participants