Hi all

I'm testing Juju with Mongo 2.6 to evaluate how that affects our remaining
intermittent unit test failures.

I've compiled a copy of Mongo 2.6 and have been able to bootstrap an environment
with no issues. Great so far.

However, the tests aren't happy. eg the tests in agent/mongo fail as do a bunch
of others.

It seems Mongo 2.4 -> 2.6 has changed he way admin users are created. In Juju,
we have a EnsureAdminUser() function. It does this:

session.DB("admin").AddUser(p.User, p.Password, false)

That fails with:

not authorized for upsert on admin.system.users

Fine, so the AddUser API doc in the mgo driver says to use UpsertUser for mongo
2.4 or greater:

session.DB("admin").UpsertUser(
        &mgo.User{Username: p.User, Password: p.Password,
        Roles:[]mgo.Role{mgo.RoleUserAdminAny}})

It still fails the same way.

So I reverted to calling the createUser command directly as per the Mongo 2.6 
docs:

session.DB("admin").Run(bson.D{
        {"createUser", p.User},
        {"pwd", p.Password},
        {"roles", []mgo.Role{mgo.RoleUserAdminAny}}},
        nil)

The above works for the initially failing tests in agent/mongo. I haven't re-run
the entire suite again though. It may be further tweaks are required.

I can easily continue using the last construct above, but it *seems* that the
mgo driver may need updating? Am I missing something?

-- 
Juju-dev mailing list
Juju-dev@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju-dev

Reply via email to