Ejemplo n.º 1
0
    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_
Ejemplo n.º 2
0
    def get_vnf_policy_by_type(self, context, vnf_id, policy_type=None, fields=None):             # noqa
        policies = self.get_vnf_policies(context,
                                         vnf_id,
                                         filters={'type': policy_type})
        if policies:
            return policies[0]

        raise exceptions.VnfPolicyTypeInvalid(type=constants.POLICY_ALARMING,
                                              vnf_id=vnf_id)
Ejemplo n.º 3
0
    def get_vnf_policy_by_type(self, context, vnf_id, policy_type=None, fields=None):             # noqa
        policies = self.get_vnf_policies(context,
                                         vnf_id,
                                         filters={'type': policy_type})
        if policies:
            return policies[0]

        raise exceptions.VnfPolicyTypeInvalid(
            type=policy_type, policy=None,
            valid_types=constants.VALID_POLICY_TYPES)
Ejemplo n.º 4
0
        def _validate_scaling_policy():
            type = policy['type']

            if type not in constants.POLICY_ACTIONS.keys():
                raise exceptions.VnfPolicyTypeInvalid(
                    type=type,
                    valid_types=constants.POLICY_ACTIONS.keys(),
                    policy=policy['id'])
            action = policy['action']

            if action not in constants.POLICY_ACTIONS[type]:
                raise exceptions.VnfPolicyActionInvalid(
                    action=action,
                    valid_actions=constants.POLICY_ACTIONS[type],
                    policy=policy['id'])

            LOG.debug(_("Policy %s is validated successfully"), policy['id'])