예제 #1
0
def splice_sync(options):
    """
    Syncs data from katello to splice
    """
    _LOG.info("Started syncing system data to splice")
    # now pull put out of katello, and into rcs!
    katello_consumers = get_katello_consumers()
    dt = transforms.DataTransforms()
    sps = splice_push.SplicePushSync()
    _LOG.info("calculating marketing product usage")

    # create the base marketing usage list
    mpu_list = []
    for katello_consumer in katello_consumers:
        mpu_list.append(dt.transform_to_rcs(katello_consumer, sps.get_splice_server_uuid()))
    # strip out blank values that we don't want to send to splice
    mpu_list = filter(None, mpu_list)

    # enrich with product usage info
    kps = KatelloPushSync(katello_client=KatelloConnection(), num_threads=CONFIG.getint('main', 'num_threads'))
    enriched_mpu = kps.enrich_mpu(mpu_list)

    _LOG.info("fetching deleted systems...")
    deletion_mpus = dt.transform_deletions_to_rcs(sps.get_splice_server_uuid(), get_katello_deletions())
    for deletion_mpu in deletion_mpus:
        enriched_mpu.append(deletion_mpu)
    _LOG.info("uploading to splice...")
    sps.upload_to_rcs(mpu_data=sps.build_rcs_data(enriched_mpu), sample_json=options.sample_json)
    _LOG.info("Upload was successful")