def cli(ctx,
        amount,
        index,
        stage):
    """Push data to  Target Service Client"""

    if not ctx.bubble:
        ctx.say_yellow('There is no bubble present, will not push')
        raise click.Abort()

    TGT = None
    transformed = True
    STAGE = None

    if stage in STAGES and  stage in ctx.cfg.CFG:
        STAGE = ctx.cfg.CFG[stage]
    if not STAGE:
        ctx.say_red('There is no STAGE in CFG:' + stage)
        ctx.say_yellow('please check configuration in ' +
                        ctx.home + '/config/config.yaml')
        raise click.Abort()


    if 'TARGET' in STAGE:
        TGT = STAGE.TARGET
    if 'TRANSFORM' in STAGE:
        transformed = True
    else:
        transformed = False

    if not transformed:
        ctx.say_yellow("""There is no transform defined in the configuration, will not transform,
using the results of step 'pulled' instead of 'push'
""")

    if not TGT:
        ctx.say_red('There is no TARGET in: ' + stage)
        ctx.say_yellow('please check configuration in ' +
                       ctx.home + '/config/config.yaml')
        raise click.Abort()

    tgt_client = get_client(ctx.gbc, TGT.CLIENT, ctx.home)

    try:
        tclient = tgt_client.BubbleClient(cfg=TGT)
        tclient.set_parent(ctx.gbc)
        tclient.set_verbose(ctx.get_verbose())
    except Exception as e:
        ctx.say_red('cannot create bubble client:' + TGT.CLIENT)
        ctx.say_red(str(e))
        raise click.Abort('can not push')

    step_to_load = 'push'
    if not transformed:
        step_to_load = 'pulled'
    data_gen = bubble_lod_load(ctx, step_to_load, stage)

    full_data = False
    if amount == -1 and index == -1:
        full_data = True
    to_push = get_gen_slice(ctx.gbc, data_gen, amount, index)

    error_count = Counter()
    total_count = Counter()

    pushres = do_yielding_push(ctx=ctx,
                               to_push=to_push,
                               tclient=tclient,
                               total_counter=total_count,
                               error_counter=error_count)
    pfr = bubble_lod_dump(ctx=ctx,
                          step='pushed',
                          stage=stage,
                          full_data=full_data,
                          reset=True,
                          data_gen=pushres)

    ctx.say('pushed [%d] objects' % pfr['total'])

    stats = {}
    stats['pushed_stat_error_count'] = error_count.get_total()
    stats['pushed_stat_total_count'] = total_count.get_total()
    update_stats(ctx, stage, stats)

    return True
def cli ( ctx , amount , index , stage ) : if not ctx . bubble : ctx . say_yellow ( 'There is no bubble present, will not push' ) raise click . Abort ( ) TGT = None transformed = True STAGE = None if stage in STAGES and stage in ctx . cfg . CFG : STAGE = ctx . cfg . CFG [ stage ] if not STAGE : ctx . say_red ( 'There is no STAGE in CFG:' + stage ) ctx . say_yellow ( 'please check configuration in ' + ctx . home + '/config/config.yaml' ) raise click . Abort ( ) if 'TARGET' in STAGE : TGT = STAGE . TARGET if 'TRANSFORM' in STAGE : transformed = True else : transformed = False if not transformed : ctx . say_yellow ( """There is no transform defined in the configuration, will not transform,
using the results of step 'pulled' instead of 'push'
""" ) if not TGT : ctx . say_red ( 'There is no TARGET in: ' + stage ) ctx . say_yellow ( 'please check configuration in ' + ctx . home + '/config/config.yaml' ) raise click . Abort ( ) tgt_client = get_client ( ctx . gbc , TGT . CLIENT , ctx . home ) try : tclient = tgt_client . BubbleClient ( cfg = TGT ) tclient . set_parent ( ctx . gbc ) tclient . set_verbose ( ctx . get_verbose ( ) ) except Exception as e : ctx . say_red ( 'cannot create bubble client:' + TGT . CLIENT ) ctx . say_red ( str ( e ) ) raise click . Abort ( 'can not push' ) step_to_load = 'push' if not transformed : step_to_load = 'pulled' data_gen = bubble_lod_load ( ctx , step_to_load , stage ) full_data = False if amount == - 1 and index == - 1 : full_data = True to_push = get_gen_slice ( ctx . gbc , data_gen , amount , index ) error_count = Counter ( ) total_count = Counter ( ) pushres = do_yielding_push ( ctx = ctx , to_push = to_push , tclient = tclient , total_counter = total_count , error_counter = error_count ) pfr = bubble_lod_dump ( ctx = ctx , step = 'pushed' , stage = stage , full_data = full_data , reset = True , data_gen = pushres ) ctx . say ( 'pushed [%d] objects' % pfr [ 'total' ] ) stats = { } stats [ 'pushed_stat_error_count' ] = error_count . get_total ( ) stats [ 'pushed_stat_total_count' ] = total_count . get_total ( ) update_stats ( ctx , stage , stats ) return True
Push data to  Target Service Client