def register_rules(): # Register ruletypes and rules. pack_dir = cfg.CONF.register.pack fail_on_failure = not cfg.CONF.register.no_fail_on_failure registered_count = 0 try: LOG.info('=========================================================') LOG.info('############## Registering rules ########################') LOG.info('=========================================================') rule_types_registrar.register_rule_types() except Exception as e: LOG.warning('Failed to register rule types: %s', e, exc_info=True) return try: registered_count = rules_registrar.register_rules(pack_dir=pack_dir, fail_on_failure=fail_on_failure) except Exception as e: exc_info = not fail_on_failure LOG.warning('Failed to register rules: %s', e, exc_info=exc_info) if fail_on_failure: raise e LOG.info('Registered %s rules.', registered_count)
def register_rules(): # Register ruletypes and rules. pack_dir = cfg.CONF.register.pack fail_on_failure = not cfg.CONF.register.no_fail_on_failure registered_count = 0 overridden_count = 0 try: LOG.info("=========================================================") LOG.info("############## Registering rules ########################") LOG.info("=========================================================") rule_types_registrar.register_rule_types() except Exception as e: LOG.warning("Failed to register rule types: %s", e, exc_info=True) return try: with Timer(key="st2.register.rules"): registered_count, overridden_count = rules_registrar.register_rules( pack_dir=pack_dir, fail_on_failure=fail_on_failure) except Exception as e: exc_info = not fail_on_failure LOG.warning("Failed to register rules: %s", e, exc_info=exc_info) if fail_on_failure: raise e LOG.info("Registered %s rules.", registered_count) LOG.info("%s rules had their metadata overridden." % (overridden_count))
def register_rules(): # Register ruletypes and rules. pack_dir = cfg.CONF.register.pack fail_on_failure = not cfg.CONF.register.no_fail_on_failure registered_count = 0 try: LOG.info('=========================================================') LOG.info('############## Registering rules ########################') LOG.info('=========================================================') rule_types_registrar.register_rule_types() except Exception as e: LOG.warning('Failed to register rule types: %s', e, exc_info=True) return try: registered_count = rules_registrar.register_rules( pack_dir=pack_dir, fail_on_failure=fail_on_failure) except Exception as e: exc_info = not fail_on_failure LOG.warning('Failed to register rules: %s', e, exc_info=exc_info) if fail_on_failure: raise e LOG.info('Registered %s rules.', registered_count)
def post(self, pack_register_request): if pack_register_request and hasattr(pack_register_request, 'types'): types = pack_register_request.types if 'all' in types: types = PackRegisterController.CONTENT_TYPES else: types = PackRegisterController.CONTENT_TYPES if pack_register_request and hasattr(pack_register_request, 'packs'): packs = list(set(pack_register_request.packs)) else: packs = None result = defaultdict(int) # Register depended resources (actions depend on runners, rules depend on rule types, etc) if ('runner' in types or 'runners' in types) or ('action' in types or 'actions' in types): result['runners'] = runners_registrar.register_runners( experimental=True) if ('rule_type' in types or 'rule_types' in types) or \ ('rule' in types or 'rules' in types): result['rule_types'] = rule_types_registrar.register_rule_types() if ('policy_type' in types or 'policy_types' in types) or \ ('policy' in types or 'policies' in types): result['policy_types'] = policies_registrar.register_policy_types( st2common) use_pack_cache = False fail_on_failure = getattr(pack_register_request, 'fail_on_failure', True) for type, (Registrar, name) in six.iteritems(ENTITIES): if type in types or name in types: registrar = Registrar(use_pack_cache=use_pack_cache, fail_on_failure=fail_on_failure) if packs: for pack in packs: pack_path = content_utils.get_pack_base_path(pack) try: registered_count = registrar.register_from_pack( pack_dir=pack_path) result[name] += registered_count except ValueError as e: # Throw more user-friendly exception if requsted pack doesn't exist if re.match('Directory ".*?" doesn\'t exist', str(e)): msg = 'Pack "%s" not found on disk: %s' % ( pack, str(e)) raise ValueError(msg) raise e else: packs_base_paths = content_utils.get_packs_base_paths() registered_count = registrar.register_from_packs( base_dirs=packs_base_paths) result[name] += registered_count return result
def register_rules(): # Register ruletypes and rules. registered_count = 0 try: LOG.info('=========================================================') LOG.info('############## Registering rules ########################') LOG.info('=========================================================') rule_types_registrar.register_rule_types() except Exception as e: LOG.warning('Failed to register rule types: %s', e, exc_info=True) else: try: registered_count = rules_registrar.register_rules(pack_dir=cfg.CONF.register.pack) except Exception as e: LOG.warning('Failed to register rules: %s', e, exc_info=True) LOG.info('Registered %s rules.', registered_count)
def register_rules(): # Register ruletypes and rules. registered_count = 0 try: LOG.info('=========================================================') LOG.info('############## Registering rules ########################') LOG.info('=========================================================') rule_types_registrar.register_rule_types() except Exception as e: LOG.warning('Failed to register rule types: %s', e, exc_info=True) else: try: registered_count = rules_registrar.register_rules( pack_dir=cfg.CONF.register.pack) except Exception as e: LOG.warning('Failed to register rules: %s', e, exc_info=True) LOG.info('Registered %s rules.', registered_count)
def post(self, pack_register_request): if pack_register_request and hasattr(pack_register_request, 'types'): types = pack_register_request.types if 'all' in types: types = PackRegisterController.CONTENT_TYPES else: types = PackRegisterController.CONTENT_TYPES if pack_register_request and hasattr(pack_register_request, 'packs'): packs = list(set(pack_register_request.packs)) else: packs = None result = defaultdict(int) # Register depended resources (actions depend on runners, rules depend on rule types, etc) if ('runner' in types or 'runners' in types) or ('action' in types or 'actions' in types): result['runners'] = runners_registrar.register_runners(experimental=True) if ('rule_type' in types or 'rule_types' in types) or \ ('rule' in types or 'rules' in types): result['rule_types'] = rule_types_registrar.register_rule_types() if ('policy_type' in types or 'policy_types' in types) or \ ('policy' in types or 'policies' in types): result['policy_types'] = policies_registrar.register_policy_types(st2common) use_pack_cache = False fail_on_failure = getattr(pack_register_request, 'fail_on_failure', True) for type, (Registrar, name) in six.iteritems(ENTITIES): if type in types or name in types: registrar = Registrar(use_pack_cache=use_pack_cache, use_runners_cache=True, fail_on_failure=fail_on_failure) if packs: for pack in packs: pack_path = content_utils.get_pack_base_path(pack) try: registered_count = registrar.register_from_pack(pack_dir=pack_path) result[name] += registered_count except ValueError as e: # Throw more user-friendly exception if requsted pack doesn't exist if re.match('Directory ".*?" doesn\'t exist', six.text_type(e)): msg = 'Pack "%s" not found on disk: %s' % (pack, six.text_type(e)) raise ValueError(msg) raise e else: packs_base_paths = content_utils.get_packs_base_paths() registered_count = registrar.register_from_packs(base_dirs=packs_base_paths) result[name] += registered_count return result
def post(self, pack_register_request): if pack_register_request and hasattr(pack_register_request, 'types'): types = pack_register_request.types else: types = [ 'runner', 'action', 'trigger', 'sensor', 'rule', 'rule_type', 'alias', 'policy_type', 'policy', 'config' ] if pack_register_request and hasattr(pack_register_request, 'packs'): packs = pack_register_request.packs else: packs = None result = {} if 'runner' in types or 'action' in types: result['runners'] = runners_registrar.register_runners( experimental=True) if 'rule_type' in types or 'rule' in types: result['rule_types'] = rule_types_registrar.register_rule_types() if 'policy_type' in types or 'policy' in types: result['policy_types'] = policies_registrar.register_policy_types( st2common) use_pack_cache = False for type, (Registrar, name) in six.iteritems(ENTITIES): if type in types: registrar = Registrar(use_pack_cache=use_pack_cache, fail_on_failure=False) if packs: for pack in packs: pack_path = content_utils.get_pack_base_path(pack) result[name] = registrar.register_from_pack( pack_dir=pack_path) else: packs_base_paths = content_utils.get_packs_base_paths() result[name] = registrar.register_from_packs( base_dirs=packs_base_paths) return result
def post(self, pack_register_request): if pack_register_request and hasattr(pack_register_request, 'types'): types = pack_register_request.types else: types = ['runner', 'action', 'trigger', 'sensor', 'rule', 'rule_type', 'alias', 'policy_type', 'policy', 'config'] if pack_register_request and hasattr(pack_register_request, 'packs'): packs = pack_register_request.packs else: packs = None result = {} if 'runner' in types or 'action' in types: result['runners'] = runners_registrar.register_runners(experimental=True) if 'rule_type' in types or 'rule' in types: result['rule_types'] = rule_types_registrar.register_rule_types() if 'policy_type' in types or 'policy' in types: result['policy_types'] = policies_registrar.register_policy_types(st2common) use_pack_cache = False for type, (Registrar, name) in six.iteritems(ENTITIES): if type in types: registrar = Registrar(use_pack_cache=use_pack_cache, fail_on_failure=False) if packs: for pack in packs: pack_path = content_utils.get_pack_base_path(pack) result[name] = registrar.register_from_pack(pack_dir=pack_path) else: packs_base_paths = content_utils.get_packs_base_paths() result[name] = registrar.register_from_packs(base_dirs=packs_base_paths) return result
def setUpClass(cls): super(TestRuleTypesController, cls).setUpClass() # Register rule types fixtures ruletypes_registrar.register_rule_types()
def setUpClass(cls): super(TestRuleTypesController, cls).setUpClass() # Register rule types fixtures ruletypes_registrar.register_rule_types()
def post(self, pack_register_request): if pack_register_request and hasattr(pack_register_request, "types"): types = pack_register_request.types if "all" in types: types = PackRegisterController.CONTENT_TYPES else: types = PackRegisterController.CONTENT_TYPES if pack_register_request and hasattr(pack_register_request, "packs"): packs = list(set(pack_register_request.packs)) else: packs = None result = defaultdict(int) # Register depended resources (actions depend on runners, rules depend on rule types, etc) if ("runner" in types or "runners" in types) or ("action" in types or "actions" in types): result["runners"] = runners_registrar.register_runners( experimental=True) if ("rule_type" in types or "rule_types" in types) or ("rule" in types or "rules" in types): result["rule_types"] = rule_types_registrar.register_rule_types() if ("policy_type" in types or "policy_types" in types) or ("policy" in types or "policies" in types): result["policy_types"] = policies_registrar.register_policy_types( st2common) use_pack_cache = False # TODO: To speed up this operation since it's mostli IO bound we could use green thread # pool here and register different resources concurrently fail_on_failure = getattr(pack_register_request, "fail_on_failure", True) for type, (Registrar, name) in six.iteritems(ENTITIES): if type in types or name in types: registrar = Registrar( use_pack_cache=use_pack_cache, use_runners_cache=True, fail_on_failure=fail_on_failure, ) if packs: for pack in packs: pack_path = content_utils.get_pack_base_path(pack) try: registered_count = registrar.register_from_pack( pack_dir=pack_path) result[name] += registered_count except ValueError as e: # Throw more user-friendly exception if requsted pack doesn't exist if re.match('Directory ".*?" doesn\'t exist', six.text_type(e)): msg = 'Pack "%s" not found on disk: %s' % ( pack, six.text_type(e), ) raise ValueError(msg) raise e else: packs_base_paths = content_utils.get_packs_base_paths() registered_count = registrar.register_from_packs( base_dirs=packs_base_paths) result[name] += registered_count return result