def translateVistrail(_vistrail): """ Translate new DBVistrailVariable based vistrail variables to old annotation based type """ global id_scope def update_workflow(old_obj, trans_dict): return DBWorkflow.update_version(old_obj.db_workflow, trans_dict, DBWorkflow()) def update_operations(old_obj, trans_dict): new_ops = [] for obj in old_obj.db_operations: if obj.vtType == 'delete': new_ops.append(DBDelete.update_version(obj, trans_dict)) elif obj.vtType == 'add': new_op = DBAdd.update_version(obj, trans_dict) new_ops.append(new_op) elif obj.vtType == 'change': new_op = DBChange.update_version(obj, trans_dict) new_ops.append(new_op) return new_ops vistrail = DBVistrail() id_scope = vistrail.idScope translate_dict = { 'DBAction': { 'operations': update_operations }, 'DBGroup': { 'workflow': update_workflow } } if _vistrail.db_controlParameters: debug.warning( ("Vistrail contains %s control parameters that " "cannot be converted") % len(_vistrail.db_controlParameters)) vistrail = DBVistrail.update_version(_vistrail, translate_dict, vistrail) vistrail.db_version = '1.0.3' return vistrail
def translateVistrail(_vistrail): """ Translate new DBVistrailVariable based vistrail variables to old annotation based type """ global id_scope def update_workflow(old_obj, trans_dict): return DBWorkflow.update_version(old_obj.db_workflow, trans_dict, DBWorkflow()) def update_operations(old_obj, trans_dict): new_ops = [] for obj in old_obj.db_operations: if obj.vtType == 'delete': new_ops.append(DBDelete.update_version(obj, trans_dict)) elif obj.vtType == 'add': new_op = DBAdd.update_version(obj, trans_dict) new_ops.append(new_op) elif obj.vtType == 'change': new_op = DBChange.update_version(obj, trans_dict) new_ops.append(new_op) return new_ops vistrail = DBVistrail() id_scope = vistrail.idScope translate_dict = {'DBAction': {'operations': update_operations}, 'DBGroup': {'workflow': update_workflow} } if _vistrail.db_control_parameters: debug.warning(("Vistrail contains %s control parameters that " "cannot be converted") % len(_vistrail.db_control_parameters)) vistrail = DBVistrail.update_version(_vistrail, translate_dict, vistrail) vistrail.db_version = '1.0.3' return vistrail
def translateVistrail(_vistrail): """ Translate old annotation based vistrail variables to new DBVistrailVariable class """ global id_scope new_vistrail_vars = [] new_param_exps = [] def update_workflow(old_obj, trans_dict): return DBWorkflow.update_version(old_obj.db_workflow, trans_dict, DBWorkflow()) def update_operations(old_obj, trans_dict): new_ops = [] for obj in old_obj.db_operations: if obj.vtType == "delete": new_ops.append(DBDelete.update_version(obj, trans_dict)) elif obj.vtType == "add": if obj.db_what == "portSpec": trans_dict["DBAdd"] = {"data": update_portSpec_op} new_op = DBAdd.update_version(obj, trans_dict) new_ops.append(new_op) del trans_dict["DBAdd"] else: new_op = DBAdd.update_version(obj, trans_dict) new_ops.append(new_op) elif obj.vtType == "change": if obj.db_what == "portSpec": trans_dict["DBChange"] = {"data": update_portSpec_op} new_op = DBChange.update_version(obj, trans_dict) new_ops.append(new_op) del trans_dict["DBChange"] else: new_op = DBChange.update_version(obj, trans_dict) new_ops.append(new_op) return new_ops def update_annotations(old_obj, trans_dict): new_annotations = [] for a in old_obj.db_annotations: if a.db_key == "__vistrail_vars__": for name, data in dict(eval(a.db_value)).iteritems(): uuid, identifier, value = data package, module, namespace = identifier var = DBVistrailVariable(name, uuid, package, module, namespace, value) new_vistrail_vars.append(var) else: new_a = DBAnnotation.update_version(a, trans_dict) new_annotations.append(new_a) return new_annotations def update_actionAnnotations(old_obj, trans_dict): new_actionAnnotations = [] for aa in old_obj.db_actionAnnotations: if aa.db_key == "__paramexp__": pe = createParameterExploration(aa.db_action_id, aa.db_value, vistrail) new_param_exps.append(pe) else: new_aa = DBActionAnnotation.update_version(aa, trans_dict) new_actionAnnotations.append(new_aa) return new_actionAnnotations translate_dict = { "DBModule": {"portSpecs": update_portSpecs}, "DBModuleDescriptor": {"portSpecs": update_portSpecs}, "DBAction": {"operations": update_operations}, "DBGroup": {"workflow": update_workflow}, "DBVistrail": {"annotations": update_annotations, "actionAnnotations": update_actionAnnotations}, } vistrail = DBVistrail() id_scope = vistrail.idScope vistrail = DBVistrail.update_version(_vistrail, translate_dict, vistrail) for v in new_vistrail_vars: vistrail.db_add_vistrailVariable(v) for pe in new_param_exps: vistrail.db_add_parameter_exploration(pe) vistrail.db_version = "1.0.3" return vistrail
def translateVistrail(_vistrail): """ Translate old annotation based vistrail variables to new DBVistrailVariable class """ global id_scope new_vistrail_vars = [] new_param_exps = [] def update_workflow(old_obj, trans_dict): return DBWorkflow.update_version(old_obj.db_workflow, trans_dict, DBWorkflow()) def update_operations(old_obj, trans_dict): new_ops = [] for obj in old_obj.db_operations: if obj.vtType == 'delete': new_ops.append(DBDelete.update_version(obj, trans_dict)) elif obj.vtType == 'add': if obj.db_what == 'portSpec': trans_dict['DBAdd'] = {'data': update_portSpec_op} new_op = DBAdd.update_version(obj, trans_dict) new_ops.append(new_op) del trans_dict['DBAdd'] else: new_op = DBAdd.update_version(obj, trans_dict) new_ops.append(new_op) elif obj.vtType == 'change': if obj.db_what == 'portSpec': trans_dict['DBChange'] = {'data': update_portSpec_op} new_op = DBChange.update_version(obj, trans_dict) new_ops.append(new_op) del trans_dict['DBChange'] else: new_op = DBChange.update_version(obj, trans_dict) new_ops.append(new_op) return new_ops def update_annotations(old_obj, trans_dict): new_annotations = [] for a in old_obj.db_annotations: if a.db_key == '__vistrail_vars__': for name, data in dict(eval(a.db_value)).iteritems(): uuid, identifier, value = data package, module, namespace = identifier var = DBVistrailVariable(name, uuid, package, module, namespace, value) new_vistrail_vars.append(var) else: new_a = DBAnnotation.update_version(a, trans_dict) new_annotations.append(new_a) return new_annotations def update_actionAnnotations(old_obj, trans_dict): new_actionAnnotations = [] for aa in old_obj.db_actionAnnotations: if aa.db_key == '__paramexp__': pe = createParameterExploration(aa.db_action_id, aa.db_value, vistrail) new_param_exps.append(pe) else: new_aa = DBActionAnnotation.update_version(aa, trans_dict) new_actionAnnotations.append(new_aa) return new_actionAnnotations translate_dict = {'DBModule': {'portSpecs': update_portSpecs}, 'DBModuleDescriptor': {'portSpecs': update_portSpecs}, 'DBAction': {'operations': update_operations}, 'DBGroup': {'workflow': update_workflow}, 'DBVistrail': {'annotations': update_annotations, 'actionAnnotations': \ update_actionAnnotations} } vistrail = DBVistrail() id_scope = vistrail.idScope vistrail = DBVistrail.update_version(_vistrail, translate_dict, vistrail) for v in new_vistrail_vars: vistrail.db_add_vistrailVariable(v) for pe in new_param_exps: vistrail.db_add_parameter_exploration(pe) vistrail.db_version = '1.0.3' return vistrail
def translateVistrail(_vistrail): """ Translate old annotation based vistrail variables to new DBVistrailVariable class """ global id_scope new_vistrail_vars = [] new_param_exps = [] def update_workflow(old_obj, trans_dict): return DBWorkflow.update_version(old_obj.db_workflow, trans_dict, DBWorkflow()) def update_operations(old_obj, trans_dict): new_ops = [] for obj in old_obj.db_operations: if obj.vtType == 'delete': new_ops.append(DBDelete.update_version(obj, trans_dict)) elif obj.vtType == 'add': if obj.db_what == 'portSpec': trans_dict['DBAdd'] = {'data': update_portSpec_op} new_op = DBAdd.update_version(obj, trans_dict) new_ops.append(new_op) del trans_dict['DBAdd'] else: new_op = DBAdd.update_version(obj, trans_dict) new_ops.append(new_op) elif obj.vtType == 'change': if obj.db_what == 'portSpec': trans_dict['DBChange'] = {'data': update_portSpec_op} new_op = DBChange.update_version(obj, trans_dict) new_ops.append(new_op) del trans_dict['DBChange'] else: new_op = DBChange.update_version(obj, trans_dict) new_ops.append(new_op) return new_ops def update_annotations(old_obj, trans_dict): new_annotations = [] for a in old_obj.db_annotations: if a.db_key == '__vistrail_vars__': for name, data in dict(literal_eval(a.db_value)).iteritems(): uuid, identifier, value = data package, module, namespace = identifier var = DBVistrailVariable(name, uuid, package, module, namespace, value) new_vistrail_vars.append(var) else: new_a = DBAnnotation.update_version(a, trans_dict) new_annotations.append(new_a) return new_annotations def update_actionAnnotations(old_obj, trans_dict): new_actionAnnotations = [] for aa in old_obj.db_actionAnnotations: if aa.db_key == '__paramexp__': pe = createParameterExploration(aa.db_action_id, aa.db_value, vistrail) new_param_exps.append(pe) else: new_aa = DBActionAnnotation.update_version(aa, trans_dict) new_actionAnnotations.append(new_aa) return new_actionAnnotations translate_dict = {'DBModule': {'portSpecs': update_portSpecs}, 'DBModuleDescriptor': {'portSpecs': update_portSpecs}, 'DBAction': {'operations': update_operations}, 'DBGroup': {'workflow': update_workflow}, 'DBVistrail': {'annotations': update_annotations, 'actionAnnotations': \ update_actionAnnotations} } vistrail = DBVistrail() id_scope = vistrail.idScope vistrail = DBVistrail.update_version(_vistrail, translate_dict, vistrail) for v in new_vistrail_vars: vistrail.db_add_vistrailVariable(v) for pe in new_param_exps: vistrail.db_add_parameter_exploration(pe) vistrail.db_version = '1.0.3' return vistrail