Example #1
0
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')