Coverage for manila/privsep/common.py: 28%
18 statements
« prev ^ index » next coverage.py v7.11.0, created at 2026-02-18 22:19 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2026-02-18 22:19 +0000
1# Copyright 2021 Red Hat, Inc
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may
4# not use this file except in compliance with the License. You may obtain
5# a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations
13# under the License.
15from manila import exception
16from manila import utils as manila_utils
17from oslo_log import log
19LOG = log.getLogger(__name__)
22def execute_with_retries(action, action_args, max_retries):
24 @manila_utils.retry(
25 retry_param=exception.ProcessExecutionError, backoff_rate=2,
26 retries=max_retries)
27 def execute():
28 try:
29 action(*action_args)
30 return True
31 except exception.ProcessExecutionError:
32 LOG.exception("Recovering from a failed execute.")
33 raise
35 try:
36 execute()
37 except exception.ProcessExecutionError:
38 LOG.exception("Failed to run command. Tries exhausted.")
39 raise