Пример #1
0
def get_jobflows_for_json(emr_conn, jobflow_ids=None, is_all=False):
    jobflows = []
    if is_all:
        jobflows = emr_conn.describe_jobflows()
    elif jobflow_ids:
        jobflows = emr_conn.describe_jobflows(jobflow_ids=jobflow_ids)
    convert_local_datetime(jobflows)  # FIXME: pass tzinfo
    res_jobflows = map(serialize_emr_obj, jobflows)
    return res_jobflows
Пример #2
0
def serialize_emr_obj(jobflow, attr_names=_SHOW_EMR_OBJECT_ATTRS):
    def serialize(attr_names, steps_or_args):
        return [serialize_emr_obj(attr, attr_names) for attr in steps_or_args]

    data = []
    for name in attr_names:
        attr = getattr(jobflow, name, u"")
        if name == "steps":
            convert_local_datetime(attr)
            attr = serialize(_SHOW_EMR_STEPS_OBJECT_ATTRS, attr)
        elif name == "bootstrapactions":
            attr = serialize(_SHOW_EMR_BOOTSTRAPS_OBJECT_ATTRS, attr)
        elif name == "args":
            args = serialize(_SHOW_EMR_STEP_ARGS_OBJECT_ATTRS, attr)
            attr = u" ".join(map(itemgetter("value"), args))
        data.append((name, attr))
    return dict(data)