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

puppet-mongodb module doesn't show Mongo shell errors in puppet-agent run #651

Closed
makhovaa opened this issue Oct 31, 2022 · 1 comment · Fixed by #663
Closed

puppet-mongodb module doesn't show Mongo shell errors in puppet-agent run #651

makhovaa opened this issue Oct 31, 2022 · 1 comment · Fixed by #663

Comments

@makhovaa
Copy link

Affected Puppet, Ruby, OS and module versions/distributions

  • Puppet: 6.20.0-1stretch
  • Ruby: 2.3.3
  • Distribution: Debian11
  • Module version: 6.28.0-1buster

How to reproduce (e.g Puppet code you use)

Create a new database. Hiera code:

tele2_mongodb::mongodb_db:
  'unixtest_db':  # DB name
    user     : unixtest
    password : >
      ENC[PKCS7,....]  
    auth_mechanism : scram_sha_1
    roles    :
      - dbOwner

Run puppet-agent on the client side. There is a notification in the agent output:
Notice: /Stage[main]/Tele2_mongodb/Mongodb::Db[unixtest_db]/Mongodb_database[unixtest_db]/ensure: created
Check list of databases:

PRIMARY> show dbs
admin         0.000GB
config        0.000GB
local         0.017GB
unixtest_db   0.000GB

Change DB name to all capital letters:

tele2_mongodb::mongodb_db:
  'UNIXTEST_DB':  # DB name
    user     : unixtest
    etc...

Run puppet-agent ton the client again. See in the agent output:
Notice: /Stage[main]/Tele2_mongodb/Mongodb::Db[UNIXTEST_DB]/Mongodb_database[UNIXTEST_DB]/ensure: created
So the module reported the DB with all capital laters is created.
Check list of DBs:

PRIMARY> show dbs
admin         0.000GB
config        0.000GB
local         0.017GB
unixtest_db   0.000GB

What are you seeing

The puppet run doesn't report any errors and just send the notification the DB with the new name is created.
In the same time the list of DBs doesn't have any changes.

What behavior did you expect instead

Error "db already exists with different case already have: [unixtest_db] trying to create [UNIXTEST_DB]"
or at least any massage the operation went wrong.

Output log

In the puppet agent debug mode we see the command which are executing during the puppet run.
Debug: Executing: '/usr/bin/mongo UNIXTEST_DB --quiet --host 127.0.0.1:27017 --eval load('/root/.mongorc.js'); db.dummyData.insert({"created_by_puppet": 1})'

If we make a Linux terminal command based on command running in puppet and run it in the terminal, we see:

# /usr/bin/mongo UNIXTEST_DB  --host 127.0.0.1:27017 --eval " load('/root/.mongorc.js'); db.dummyData.insert({"created_by_puppet": 1})"                                                     
MongoDB shell version v5.0.9
connecting to: mongodb://127.0.0.1:27017/UNIXTEST_DB?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("38f99799-d656-4483-b39a-a17f2c743d37") }
MongoDB server version: 5.0.9
WriteResult({
        "nInserted" : 0,
        "writeError" : {
                "code" : 13297,
                "errmsg" : "db already exists with different case already have: [unixtest_db] trying to create [UNIXTEST_DB]"                                                                                      
        }
})

So the command result is the error, but we just don't see it in the output.

Any additional information you'd like to impart

I have the same problem for DB changes, users and passwords. If something went wrong we never know that from the puppet output.

@bastelfreak
Copy link
Member

@makhovaa we merged #663, does that fix your problem?

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

Successfully merging a pull request may close this issue.

2 participants