+ user_fields = {'endpoint':user_deployment.deployment.auth_url,
+ 'name': user_deployment.user.email,
+ 'email': user_deployment.user.email,
+ 'password': hashlib.md5(user_deployment.user.password).hexdigest()[:6],
+ 'admin_user': user_deployment.deployment.admin_user,
+ 'admin_password': user_deployment.deployment.admin_password,
+ 'roles':roles,
+ 'tenant':tenant_id}
+
+ rendered = template.render(user_fields)
+ res = run_template('sync_user_deployments.yaml', user_fields)
+
+ # results is an array in which each element corresponds to an
+ # "ok" string received per operation. If we get as many oks as
+ # the number of operations we issued, that means a grand success.
+ # Otherwise, the number of oks tell us which operation failed.
+ expected_length = len(roles) + 1
+ if (len(res)==expected_length):
+ user_deployment.save()
+ elif (len(res)):
+ raise Exception('Could not assign roles for user %s'%user_fields['name'])
+ else:
+ raise Exception('Could not create or update user %s'%user_fields['name'])