LDAP - Skipping update of plugin:vcs:mercurial:anyVcsRoot*

I have recently updated our ldap-config.properties file to pull custom usernames for all of our vsc's since they do not match ldap usernames.  After making this change and running ldap sync no usernames got updated.  I enabled debug logging and see this for each user:

jetbrains.buildServer.LDAP - Skipping update of plugin:vcs:mercurial:anyVcsRoot of user 'jennifer' (Jennifer, Stanton) {id=23}: current value 'jennifer' does not match previous LDAP sync value 'jennifer stanton <jennifer@domain.com>'

My assumption here is TC is for some reason prefering to not override the old value.  How can I force LDAP to take presidence over the old values? Do I somehow have to purge all users and start over? While it wont be often these username values change it is possible and would be nice if TC kept up with LDAP and did not ignore it.  I have many users so I do not want everyone to have to go and make these changes to their accounts, and without the fix "My Changes" and notifications do not properly work.

Thanks,
Scott

5 comments
Comment actions Permalink

Hi Scott,

In order to synchronize the values, but allow users to amend them manually when needed, TeamCity holds not only the current value, but also the previous synched one.
If they are different, TeamCity thinks that they were changed by user (or by administrator), and the current value takes precedence.

Could you please describe how the current value (like "jennifer") appeared? Did you previously synched to another property in LDAP?


--
Maxim

0
Comment actions Permalink

Maxin,
Thanks for the reply.  Previously the username field for mercurial was left as default (commented out) so then ldap username was used.  I then uncommitted and it is now reading a custom ldap property which properly reflects our mercurial username.  So the 'Jennifer' value is the actual ldap username while the new one which includes the email is the desired value to be used.
Thanks,
Scott

0
Comment actions Permalink

Scott,

OK. Please correct if I'm wrong: before that you didn't use LDAP sync for that value and every user filled it in by hand.
But now you want to forget the current settings and use values from the LDAP only.

I don't think there is a possibility to forget current VCS username out of the box (though I suppose that will be a useful feature).
If you have access to the DB, I can say how to delete the old values. Or you can ask everyone simply to fill the field empty.
After that sync will do the job.


--
Maxim

0
Comment actions Permalink

Previous the property: teamcity.users.property.plugin was unset.  In this state TeamCity used everyones username (since using LDAP its also the users LDAP username) as the default mercurial login.  No user manually entered the value, its what TeamCity used by default.  I imagine any new users added from this point on would be fine.

I do have access to the database - since I have TeamCity configured to auto-create accounts based on LDAP I assume we can just purge the users and they will get re-created.  If you have instructions for this I would be appreciative.

Thanks,
Scott

0
Comment actions Permalink

Hi Scott,

I see. TeamCity is trying to guess and fill the values for you, sometimes it guesses wrong =)
You're right: if the sync is configured, users will be recreated. But please note that notification rules, UI properties of users (not groups!) will be lost.
If you're sure you want to follow this way, I can give the instructions.

BTW I have created the issue: http://youtrack.jetbrains.com/issue/TW-21310
It is fixed in 7.1. If by chance you're using 7.0.x, it might work.


--
Maxim

0

Please sign in to leave a comment.