Example #1
0
        else:
            resid[step_vals['reference_res_id']] = step_obj.create(step_vals)

    # parse transition
    logger.info('Update transitions')
    for node in transition:
        trans_vals = {}
        for key, item in node.items():
            if key in ['to_id', 'from_id']:
                item = resid[item]
            trans_vals[key] = item
        # create or update
        trans_ids = trans_obj.search(
            [('reference_res_id', '=', trans_vals['reference_res_id'])], 0,
            None, None, {'active_test': False})
        if trans_ids:
            all_transition_ids -= set(trans_ids)
            del trans_vals['reference_res_id']
            trans_obj.write(trans_ids, trans_vals)
        else:
            trans_obj.create(trans_vals)

    # Remove deleted steps and transitions
    logger.info('Delete old steps and transitions')
    step_obj.unlink(list(all_step_ids))
    trans_obj.unlink(list(all_transition_ids))

logger.info('Import scenario done!')

# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: