def load_users_and_roles(working_directory): with open(os.path.join(working_directory, '_User.json'), 'r') as f: users = json.load(f).get('results', []) logger.info('Loaded [%s] Users' % len(users)) for i, parse_user in enumerate(users): logger.info('Loading user [%s]: [%s / %s]' % (i, parse_user['username'], parse_user['objectId'])) usergrid_user, connections = convert_parse_entity('users', parse_user) res = usergrid_user.save() if res.ok: logger.info('Saved user [%s]: [%s / %s]' % (i, parse_user['username'], parse_user['objectId'])) if 'uuid' in usergrid_user.entity_data: parse_id_to_uuid_map[ parse_user['objectId']] = usergrid_user.get('uuid') else: logger.error( 'Error saving user [%s]: [%s / %s] - %s' % (i, parse_user['username'], parse_user['objectId'], res)) with open(os.path.join(working_directory, '_Role.json'), 'r') as f: roles = json.load(f).get('results', []) logger.info('Loaded [%s] Roles' % len(roles)) for i, parse_role in enumerate(roles): logger.info('Loading role [%s]: [%s / %s]' % (i, parse_role['name'], parse_role['objectId'])) usergrid_role, connections = convert_parse_entity('roles', parse_role) res = usergrid_role.save() if res.ok: logger.info('Saved role [%s]: [%s / %s]' % (i, parse_role['name'], parse_role['objectId'])) if 'uuid' in usergrid_role.entity_data: parse_id_to_uuid_map[ parse_role['objectId']] = usergrid_role.get('uuid') else: logger.error('Error saving role [%s]: [%s / %s] - %s' % (i, parse_role['name'], parse_role['objectId'], res)) join_file = os.path.join(working_directory, '_Join:users:_Role.json') if os.path.isfile(join_file) and os.path.getsize(join_file) > 0: with open(join_file, 'r') as f: users_to_roles = json.load(f).get('results', []) logger.info('Loaded [%s] User->Roles' % len(users_to_roles)) for user_to_role in users_to_roles: role_id = user_to_role['owningId'] role_uuid = parse_id_to_uuid_map.get(role_id) target_role_id = user_to_role['relatedId'] target_role_uuid = parse_id_to_uuid_map.get(target_role_id) if role_uuid is None or target_role_uuid is None: logger.error('Failed on assigning role [%s] to user [%s]' % (role_uuid, target_role_uuid)) continue target_role_entity = build_usergrid_entity( 'user', target_role_uuid) res = Usergrid.assign_role(role_uuid, target_role_entity) if res.ok: logger.info('Assigned role [%s] to user [%s]' % (role_uuid, target_role_uuid)) else: logger.error('Failed on assigning role [%s] to user [%s]' % (role_uuid, target_role_uuid)) else: logger.info('No Users -> Roles to load') join_file = os.path.join(working_directory, '_Join:roles:_Role.json') if os.path.isfile(join_file) and os.path.getsize(join_file) > 0: with open(join_file, 'r') as f: users_to_roles = json.load(f).get('results', []) logger.info('Loaded [%s] Roles->Roles' % len(users_to_roles)) for user_to_role in users_to_roles: role_id = user_to_role['owningId'] role_uuid = parse_id_to_uuid_map.get(role_id) target_role_id = user_to_role['relatedId'] target_role_uuid = parse_id_to_uuid_map.get(target_role_id) if role_uuid is None or target_role_uuid is None: logger.error('Failed on assigning role [%s] to role [%s]' % (role_uuid, target_role_uuid)) continue target_role_entity = build_usergrid_entity( 'role', target_role_uuid) res = Usergrid.assign_role(role_uuid, target_role_entity) if res.ok: logger.info('Assigned role [%s] to role [%s]' % (role_uuid, target_role_uuid)) else: logger.error('Failed on assigning role [%s] to role [%s]' % (role_uuid, target_role_uuid)) else: logger.info('No Roles -> Roles to load')
def load_users_and_roles(working_directory): with open(os.path.join(working_directory, '_User.json'), 'r') as f: users = json.load(f).get('results', []) logger.info('Loaded [%s] Users' % len(users)) for i, parse_user in enumerate(users): logger.info('Loading user [%s]: [%s / %s]' % (i, parse_user['username'], parse_user['objectId'])) usergrid_user, connections = convert_parse_entity('users', parse_user) res = usergrid_user.save() if res.ok: logger.info('Saved user [%s]: [%s / %s]' % (i, parse_user['username'], parse_user['objectId'])) if 'uuid' in usergrid_user.entity_data: parse_id_to_uuid_map[parse_user['objectId']] = usergrid_user.get('uuid') else: logger.error( 'Error saving user [%s]: [%s / %s] - %s' % (i, parse_user['username'], parse_user['objectId'], res)) with open(os.path.join(working_directory, '_Role.json'), 'r') as f: roles = json.load(f).get('results', []) logger.info('Loaded [%s] Roles' % len(roles)) for i, parse_role in enumerate(roles): logger.info('Loading role [%s]: [%s / %s]' % (i, parse_role['name'], parse_role['objectId'])) usergrid_role, connections = convert_parse_entity('roles', parse_role) res = usergrid_role.save() if res.ok: logger.info('Saved role [%s]: [%s / %s]' % (i, parse_role['name'], parse_role['objectId'])) if 'uuid' in usergrid_role.entity_data: parse_id_to_uuid_map[parse_role['objectId']] = usergrid_role.get('uuid') else: logger.error( 'Error saving role [%s]: [%s / %s] - %s' % (i, parse_role['name'], parse_role['objectId'], res)) join_file = os.path.join(working_directory, '_Join:users:_Role.json') if os.path.isfile(join_file) and os.path.getsize(join_file) > 0: with open(join_file, 'r') as f: users_to_roles = json.load(f).get('results', []) logger.info('Loaded [%s] User->Roles' % len(users_to_roles)) for user_to_role in users_to_roles: role_id = user_to_role['owningId'] role_uuid = parse_id_to_uuid_map.get(role_id) target_role_id = user_to_role['relatedId'] target_role_uuid = parse_id_to_uuid_map.get(target_role_id) if role_uuid is None or target_role_uuid is None: logger.error('Failed on assigning role [%s] to user [%s]' % (role_uuid, target_role_uuid)) continue target_role_entity = build_usergrid_entity('user', target_role_uuid) res = Usergrid.assign_role(role_uuid, target_role_entity) if res.ok: logger.info('Assigned role [%s] to user [%s]' % (role_uuid, target_role_uuid)) else: logger.error('Failed on assigning role [%s] to user [%s]' % (role_uuid, target_role_uuid)) else: logger.info('No Users -> Roles to load') join_file = os.path.join(working_directory, '_Join:roles:_Role.json') if os.path.isfile(join_file) and os.path.getsize(join_file) > 0: with open(join_file, 'r') as f: users_to_roles = json.load(f).get('results', []) logger.info('Loaded [%s] Roles->Roles' % len(users_to_roles)) for user_to_role in users_to_roles: role_id = user_to_role['owningId'] role_uuid = parse_id_to_uuid_map.get(role_id) target_role_id = user_to_role['relatedId'] target_role_uuid = parse_id_to_uuid_map.get(target_role_id) if role_uuid is None or target_role_uuid is None: logger.error('Failed on assigning role [%s] to role [%s]' % (role_uuid, target_role_uuid)) continue target_role_entity = build_usergrid_entity('role', target_role_uuid) res = Usergrid.assign_role(role_uuid, target_role_entity) if res.ok: logger.info('Assigned role [%s] to role [%s]' % (role_uuid, target_role_uuid)) else: logger.error('Failed on assigning role [%s] to role [%s]' % (role_uuid, target_role_uuid)) else: logger.info('No Roles -> Roles to load')