Migration from Communigate

Hi!

I need to migrate from Communigate, and would like to know the easiest way to copy all the users with passwords etc. to the new Blue Mind installation. (no need to copy the emails themselves, just users/passwords)
I guess using imapcopy is the easiest way, but is there any way to get Blue Mind to update its databases with the new users and passwords?
I havent tried anything yet, but Blue Mind does not add the accounts automatically just becaus i added them to cyrus-imap, or does it?

Best regards
//Oscar

Clearification:

I had it wrong.

I understand it wont be possible to just copy all usernames and passwords.

I can get a list from each domain containig the current usenames and passwords.
I need to build a script to automate the creation of accounts in Blue Mind.
It would be helpful to find the script in the sourcecode thats executed when you create a new account from the adminconsole!
If i just get that script, it will be possible.
We have 2000 accounts in about 40 domains, so to copy all of them one by one would take forever.

Its really hard to follow the sourcecode as it is.
Ill be very thankful for all help i can get to point me in the right direction!

Best regards

You can use our java or SOAP API to write a simple script to parse your files and create corresponding domains and users.

Yes, but to do so, i have to be able to locate how Blue Mind creates a new user.
I have been trying to understand how it works, but i’ve been trying for hours, and havent figured anything out yet, thats why I asked for help :wink:

Apparently, a package named bm-migration-csv_1.17.9574_amd64.deb exists.
That sounds pretty much like something i would need! To get all accounts in a csv-file is not a problem.
Is that something you have to buy?

The only thing i really need to understand is what happens when you press the “Create” button while creating accounts!
The strings parsed to postgresql and cyrus.

Yes, we have some tools to migrate from Lotus, Exchange, import from CSV, but they need you get a subscription. Visit for more informations and pricing.

On the other side, API may be used with or without subscription.

To create a user, do something like:

UserClient userClient = UserLocator.locate(https://bluemind.domain.tld/services);
AccessToken token = userClient.login("admin@domain.tld", "admin_password", "import-user");

User user = readUserProperties(); // Do what you want to read a user from files, DB...
userClient.create(token, user);

You may get a lot of sample in our net.bluemind.core.client.tests plugin available from our git.

Thank you very much for pointing me in the right direction :wink:

I will have a look at the API tomorrow!

I found a python script that i sucessfully modified to import users to domain from .csv .
The only thing that doesnt seem to wörk is special Characters in names, like åäö.


# Before running this you need to:
# aptitude install python-suds
from suds import WebFault
from suds.client import Client
import csv
import sys

#Import users from CSV with Blue Mind SOAP

DOM = 'testdomain.se'

f = open('test.csv', 'r') 
try:
	r = csv.reader(f) 
    	for row in r:

		url = 'https://yourmailserver.com/soap/proxy?wsdl'
		c = Client(url)
		token = c.service.login('admin0@global.virt', 'admin', 'python-test-soap')
	

		dq = c.factory.create('domainQuery')
		dq.name=DOM
		mydom = c.service.findDomains(token,dq)


		lst = c.service.listServiceTags(token)
		print lst
		for tag in lst:
			fth = c.service.findTaggedHosts(token, tag)
			if len(fth) > 0:
				c.service.assignToDomain(token, tag, fth[0], mydom[0].name)


		#create an user into Domain
		u = c.factory.create('user')

		#Start create Email Object	
		mail1 = c.factory.create('email')
		mail1.email=row[0]+'XX@'+DOM
		mail1.default = True
		mail1.allAliases = True

		myEntry = c.factory.create('entry')
		myEntry.key = 'X-BM-ref2' 
		myEntry.value = mail1
	
		em = c.factory.create('emails')
		em.entry = [myEntry]
		#End Email Object
	
		mr = c.factory.create('mailRouting')
		u.mailRouting = mr.INTERNAL

		u.emails = em
		u.password = row[1]
		u.domain = mydom
		u.firstname = row[2]
		u.lastname = row[3]
		u.login = row[0]
		u.perms = 'user'

		c.service.createUser(token,u)


		c.service.logout(token)


finally:
    f.close()

Blue Mind is full UTF8.
Are you sure to read your CSV file using UTF8 ?

Well, the problem is the python lib “csv”, not Blue Mind. But then, when i think about it, it would be a piece of cake to grab the fields from csv direcly with python, without involving the csv lib…
Think im gonna take a look at that actually…

I got everything i want working now. Export of csv from communigate, import of the accounts to Blue Mind and imapsync for all accounts within a domain.
So far, im very satisfied with Blue Mind. Waaaay better than Kolab and Zimbra.
Think im gonna take a look at translating it to Swedish as well.
Where is the translation files located? (way to lazy to look for it right now)

If anyone wants any of the scripts, youre welcome to contact me at oscar AT hogsbynat.se

Thanks, it’s good to read this ! :slight_smile:

Please give a look to our contribution rules page : http://www.blue-mind.net/articles/article/contributions-rules.

If you contribute to languages, you will have to maintain it (and as features increases, there will be new elements to translate). A translation will remain in Blue Mind only if it is complete over time.

If you’re agree with our contibutions rules, print and sign the appropriate document and return it to us (contact at blue-mind dot net). We will create the Swedish language on our translation app.