Ejemplo n.º 1
0
def createRules(rules):
    logger.info("Rule creation started...")
    rulesClass=supermod.rulesType()
    ruleClass=supermod.ruleType()
    if len(rules.values) > 0:
        names = rules['Rule Name'].drop_duplicates().values.tolist()
        names = [name for name in names if str(name) != 'nan']
        modules = rules['Module'].values.tolist()
        modules = [module for module in modules if str(module) != 'nan']
        generatedByGuis = rules['Generated by GUI'].values.tolist()
        generatedByGuis = [generatedByGui for generatedByGui in generatedByGuis if str(generatedByGui) != 'nan']
        # The condition to fill the data with N/A values was wrong (with value: backfill) .The correct one is with ffill.
        index=rules['Rule Name'].fillna(method="ffill")
        rules=rules.fillna("")
        
        conditionColumns=["Condition Name", "Condition Value", "Condition Field"]
        actionColumns=["Action Name", "Action Value", "Action Project"]
        total=conditionColumns
        total.extend(actionColumns)
        data=rules[total]
        data=pd.concat([index, data], axis=1)
        for name, module, generatedByGui in zip(names, modules, generatedByGuis):
            
            ruleObj = ruleClass.factory(name=name, module=module, generatedByGui=generatedByGui, content="")
            createConditions(ruleObj, data.loc[data['Rule Name']==name])
            createActions(ruleObj, data.loc[data['Rule Name']==name])
            rulesClass.add_rule(ruleObj)
            logger.info("Rule created: '%s'" %name)
    else:
        logger.info("No rules found!")
    return rulesClass
Ejemplo n.º 2
0
def createProject(scObject, productProperties, componentDefinitions,
                  supportedStandards, rules):
    libName = productProperties['Library Name']['Values']
    libRef = productProperties['Library Ref']['Values']
    libDesc = productProperties['Library Desc']['Values']

    logger.info("Creating library with Name: " + libName + " and Reference: " +
                libRef)
    rootClass = supermod.libraryType()
    udtsClass = supermod.udtsType()
    dataflowsClass = supermod.dataflowsType()
    componentDefinitionsClass = supermod.componentDefinitionsType()
    supportedStandardsClass = supermod.supportedStandardsType()
    componentsLibraryClass = supermod.componentsLibraryType()
    rulesClass = supermod.rulesType()

    categoryComponentsClass = createCategoryComponents(componentDefinitions)
    componentDefinitionsClass = createComponentDefinitions(
        componentDefinitions)
    supportedStandardsClass = createSupportedStandards(supportedStandards)

    componentsLibraryClass = createComponents(scObject)
    rulesClass = createRules(rules)

    rootClass.set_udts(udtsClass)
    rootClass.set_dataflows(dataflowsClass)
    rootClass.set_categoryComponents(categoryComponentsClass)
    rootClass.set_supportedStandards(supportedStandardsClass)
    rootClass.set_components(componentsLibraryClass)
    rootClass.set_rules(rulesClass)

    rootObj = rootClass.factory(name=libName,
                                ref=libRef,
                                revision=1,
                                type_='LIBRARY',
                                status='OPEN',
                                enabled='true',
                                priority=0,
                                tags='',
                                workflowState='',
                                desc=libDesc,
                                udts=udtsClass,
                                dataflows=dataflowsClass,
                                categoryComponents=categoryComponentsClass,
                                componentDefinitions=componentDefinitionsClass,
                                supportedStandards=supportedStandardsClass,
                                components=componentsLibraryClass,
                                rules=rulesClass)

    return rootObj
Ejemplo n.º 3
0
def removeRules(rootClass, libProps):
    #newRootClass = sl.libraryType()
    rules = rootClass.get_rules()
    rulesClass = sl.rulesType()
    if 'rulesToRemove' in libProps.keys():
        rulesToRemove = libProps['rulesToRemove']
        for rule in rules.get_rule():
            found=False            
            for ruleToRemove in rulesToRemove:
                if rule.name in rulesToRemove[ruleToRemove]:
                    found=True                    
            if not found:
                rulesClass.add_rule(rule)
            else:
                logger.info("|--> Rule removed: %s" % rule.name)
        rootClass.set_rules(rulesClass)
def createRules(rootClass, libProps):
    ruleClass = sl.ruleType()
    rules = rootClass.get_rules()
    rulesClass = sl.rulesType()

    if 'rulesToCreate' in libProps.keys():
        rulesToCreate = libProps['rulesToCreate']
        for rule in rulesToCreate:
            rule = rulesToCreate[rule]
            ruleObj = ruleClass.factory(name=rule['name'],
                                        module=rule['module'],
                                        generatedByGui=True,
                                        content="")
            addConditions(ruleObj, rule['conditions'])
            addActions(ruleObj, rule['actions'])

            rules.add_rule(ruleObj)
            logger.info("|--> Rule created: %s" % rule['name'])
        rootClass.set_rules(rules)