Merge "Ignore prlimit argument on Windows"
This commit is contained in:
commit
14f103960e
@ -327,11 +327,16 @@ def execute(*cmd, **kwargs):
|
||||
cmd = [str(c) for c in cmd]
|
||||
|
||||
if prlimit:
|
||||
args = [sys.executable, '-m', 'oslo_concurrency.prlimit']
|
||||
args.extend(prlimit.prlimit_args())
|
||||
args.append('--')
|
||||
args.extend(cmd)
|
||||
cmd = args
|
||||
if os.name == 'nt':
|
||||
LOG.log(loglevel,
|
||||
_('Process resource limits are ignored as '
|
||||
'this feature is not supported on Windows.'))
|
||||
else:
|
||||
args = [sys.executable, '-m', 'oslo_concurrency.prlimit']
|
||||
args.extend(prlimit.prlimit_args())
|
||||
args.append('--')
|
||||
args.extend(cmd)
|
||||
cmd = args
|
||||
|
||||
sanitized_cmd = strutils.mask_password(' '.join(cmd))
|
||||
|
||||
|
@ -895,3 +895,25 @@ class PrlimitTestCase(test_base.BaseTestCase):
|
||||
self.assertIn(expected, exc.stderr)
|
||||
else:
|
||||
self.fail("ProcessExecutionError not raised")
|
||||
|
||||
@mock.patch.object(os, 'name', 'nt')
|
||||
@mock.patch.object(processutils.subprocess, "Popen")
|
||||
def test_prlimit_windows(self, mock_popen):
|
||||
# We want to ensure that process resource limits are
|
||||
# ignored on Windows, in which case this feature is not
|
||||
# supported. We'll just check the command passed to Popen,
|
||||
# which is expected to be unaltered.
|
||||
prlimit = self.limit_address_space()
|
||||
mock_popen.return_value.communicate.return_value = None
|
||||
|
||||
processutils.execute(
|
||||
*self.SIMPLE_PROGRAM,
|
||||
prlimit=prlimit,
|
||||
check_exit_code=False)
|
||||
|
||||
mock_popen.assert_called_once_with(
|
||||
self.SIMPLE_PROGRAM,
|
||||
stdin=mock.ANY, stdout=mock.ANY,
|
||||
stderr=mock.ANY, close_fds=mock.ANY,
|
||||
preexec_fn=mock.ANY, shell=mock.ANY,
|
||||
cwd=mock.ANY, env=mock.ANY)
|
||||
|
Loading…
x
Reference in New Issue
Block a user