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

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. 

14 

15from manila import exception 

16from manila import utils as manila_utils 

17from oslo_log import log 

18 

19LOG = log.getLogger(__name__) 

20 

21 

22def execute_with_retries(action, action_args, max_retries): 

23 

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 

34 

35 try: 

36 execute() 

37 except exception.ProcessExecutionError: 

38 LOG.exception("Failed to run command. Tries exhausted.") 

39 raise