def _validate_alarming_policy(self, context, vnf_id, trigger): # validate alarm status # Trigger will contain only one action in trigger['trigger'] as it # filtered in _get_vnf_triggers(). # Getting action from trigger to decide which process_alarm_for_vnf # method will be called. if list(trigger['trigger'])[0]\ in constants.RESERVATION_POLICY_ACTIONS: if not self._vnf_reservation_monitor.process_alarm_for_vnf( vnf_id, trigger): raise exceptions.AlarmUrlInvalid(vnf_id=vnf_id) else: if not self._vnf_alarm_monitor.process_alarm_for_vnf( vnf_id, trigger): raise exceptions.AlarmUrlInvalid(vnf_id=vnf_id) # validate policy action. if action is composite, split it. # ex: respawn%notify action = trigger['action_name'] action_list = action.split('%') pl_action_dict = dict() pl_action_dict['policy_actions'] = dict() pl_action_dict['policy_actions']['def_actions'] = list() pl_action_dict['policy_actions']['custom_actions'] = dict() for action in action_list: # validate policy action. if action is composite, split it. # ex: SP1-in, SP1-out action_ = None if action in constants.DEFAULT_ALARM_ACTIONS: pl_action_dict['policy_actions']['def_actions'].append(action) policy_ = self.get_vnf_policy(context, action, vnf_id) if not policy_: sp_action = action.split('-') if len(sp_action) == 2: bk_policy_name = sp_action[0] bk_policy_action = sp_action[1] policies_ = self.get_vnf_policies( context, vnf_id, filters={'name': bk_policy_name}) if policies_: policy_ = policies_[0] action_ = bk_policy_action if policy_: pl_action_dict['policy_actions']['custom_actions'].update({ policy_['id']: { 'bckend_policy': policy_, 'bckend_action': action_ } }) LOG.debug("Trigger %s is validated successfully", trigger) return pl_action_dict
def _validate_alarming_policy(self, context, vnf_id, trigger): # validate alarm status if not self._vnf_alarm_monitor.process_alarm_for_vnf(vnf_id, trigger): raise exceptions.AlarmUrlInvalid(vnf_id=vnf_id) policy_ = None action_ = None # validate policy action. if action is composite, split it. # ex: SP1-in, SP1-out action = trigger['action_name'] sp_action = action.split('-') if len(sp_action) == 2: bk_policy_name = sp_action[0] bk_policy_action = sp_action[1] policies_ = self.get_vnf_policies(context, vnf_id, filters={'name': bk_policy_name}) if policies_: policy_ = policies_[0] action_ = bk_policy_action if not policy_: if action not in constants.DEFAULT_ALARM_ACTIONS: policy_ = self.get_vnf_policy(context, action, vnf_id) LOG.debug(_("Trigger %s is validated successfully"), trigger) return policy_, action_
def _validate_alarming_policy(self, context, policy): vnf_id = policy['vnf']['id'] # validate policy type type = policy['type'] if type not in constants.POLICY_ALARMING: raise exceptions.VnfPolicyTypeInvalid( type=type, valid_types=constants.POLICY_ALARMING, policy=policy['id'] ) # validate alarm status if not self._vnf_alarm_monitor.process_alarm_for_vnf(policy): raise exceptions.AlarmUrlInvalid(vnf_id=vnf_id) # validate policy action action = policy['action_name'] policy_ = None if action not in (constants.DEFAULT_ALARM_ACTIONS + constants.CLUSTER_ALARM_ACTIONS): policy_ = self.get_vnf_policy(context, action, vnf_id) if not policy_: raise exceptions.VnfPolicyNotFound( vnf_id=action, policy=policy['id'] ) LOG.debug(_("Policy %s is validated successfully") % policy) return policy_
def _validate_alarming_policy(self, context, vnf_id, trigger): # validate alarm status if not self._vnf_alarm_monitor.process_alarm_for_vnf(vnf_id, trigger): raise exceptions.AlarmUrlInvalid(vnf_id=vnf_id) # validate policy action. if action is composite, split it. # ex: respawn%notify action = trigger['action_name'] action_list = action.split('%') pl_action_dict = dict() pl_action_dict['policy_actions'] = dict() pl_action_dict['policy_actions']['def_actions'] = list() pl_action_dict['policy_actions']['custom_actions'] = dict() for action in action_list: # validate policy action. if action is composite, split it. # ex: SP1-in, SP1-out action_ = None if action in constants.DEFAULT_ALARM_ACTIONS: pl_action_dict['policy_actions']['def_actions'].append(action) policy_ = self.get_vnf_policy(context, action, vnf_id) if not policy_: sp_action = action.split('-') if len(sp_action) == 2: bk_policy_name = sp_action[0] bk_policy_action = sp_action[1] policies_ = self.get_vnf_policies( context, vnf_id, filters={'name': bk_policy_name}) if policies_: policy_ = policies_[0] action_ = bk_policy_action if policy_: pl_action_dict['policy_actions']['custom_actions'].update({ policy_['id']: { 'bckend_policy': policy_, 'bckend_action': action_ } }) LOG.debug("Trigger %s is validated successfully", trigger) return pl_action_dict