示例#1
0
 def apply(self):
     self.error('Create ruleset "%s"' % self.name)
     logger = self.getLogger()
     ruleset = Ruleset(self.component, logger, self.netcfg)
     ruleset.create(logger, "ruleset", self.netcfg, base_template=MULTISITE_TEMPLATE_NAME)
     ruleset.saveAs(self.name)
     self.filename = rulesetFilename("ruleset", self.name)
示例#2
0
    def service_rulesetCreate(self, context, filetype, base_template):
        """
        Create a new ruleset based on a template. Use base_template='' to
        ignore the base template.
        """
        self.info(context, 'Create a new ruleset')
        if EDENWALL:
            multisite_type = self.core.getMultisiteType()
            base_template = checkMultisiteTypeValue(multisite_type, filetype, base_template)
        client = self.getClient(context)
        logger = ContextLoggerChild(context, self)

        data = yield self.core.callService(self.ufwi_ruleset_context, 'network', 'getNetconfig')
        netcfg = deserializeNetCfg(data)

        ruleset = Ruleset(self, logger, netcfg, client=client)
        result = ruleset.create(logger, filetype, netcfg, base_template=base_template)
        if not ruleset.read_only:
            self.core.lock_manager.acquire(context, LOCK_RULESET)
        self._saveRuleset(context, ruleset)

        returnValue(result)