mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-08-02 12:14:25 -07:00
Remove the subsystem lock loop (#2647)
This change removes the loop watching for "/var/lock/subsys/lxc" from the lxc-container module. This change simply runs the command within a container using the lxc CLI tools which should be responcible for locking and unlocking on their own. Closes-Issue: https://github.com/ansible/ansible-modules-extras/issues/690 Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
This commit is contained in:
parent
3e31eaf419
commit
eab15da081
1 changed files with 5 additions and 27 deletions
|
@ -682,45 +682,23 @@ class LxcContainerManagement(object):
|
||||||
else:
|
else:
|
||||||
return return_dict
|
return return_dict
|
||||||
|
|
||||||
def _run_command(self, build_command, unsafe_shell=False, timeout=600):
|
def _run_command(self, build_command, unsafe_shell=False):
|
||||||
"""Return information from running an Ansible Command.
|
"""Return information from running an Ansible Command.
|
||||||
|
|
||||||
This will squash the build command list into a string and then
|
This will squash the build command list into a string and then
|
||||||
execute the command via Ansible. The output is returned to the method.
|
execute the command via Ansible. The output is returned to the method.
|
||||||
This output is returned as `return_code`, `stdout`, `stderr`.
|
This output is returned as `return_code`, `stdout`, `stderr`.
|
||||||
|
|
||||||
Prior to running the command the method will look to see if the LXC
|
|
||||||
lockfile is present. If the lockfile "/var/lock/subsys/lxc" the method
|
|
||||||
will wait upto 10 minutes for it to be gone; polling every 5 seconds.
|
|
||||||
|
|
||||||
:param build_command: Used for the command and all options.
|
:param build_command: Used for the command and all options.
|
||||||
:type build_command: ``list``
|
:type build_command: ``list``
|
||||||
:param unsafe_shell: Enable or Disable unsafe sell commands.
|
:param unsafe_shell: Enable or Disable unsafe sell commands.
|
||||||
:type unsafe_shell: ``bol``
|
:type unsafe_shell: ``bol``
|
||||||
:param timeout: Time before the container create process quites.
|
|
||||||
:type timeout: ``int``
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
lockfile = '/var/lock/subsys/lxc'
|
return self.module.run_command(
|
||||||
|
' '.join(build_command),
|
||||||
for _ in xrange(timeout):
|
use_unsafe_shell=unsafe_shell
|
||||||
if os.path.exists(lockfile):
|
)
|
||||||
time.sleep(1)
|
|
||||||
else:
|
|
||||||
return self.module.run_command(
|
|
||||||
' '.join(build_command),
|
|
||||||
use_unsafe_shell=unsafe_shell
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
message = (
|
|
||||||
'The LXC subsystem is locked and after 5 minutes it never'
|
|
||||||
' became unlocked. Lockfile [ %s ]' % lockfile
|
|
||||||
)
|
|
||||||
self.failure(
|
|
||||||
error='LXC subsystem locked',
|
|
||||||
rc=0,
|
|
||||||
msg=message
|
|
||||||
)
|
|
||||||
|
|
||||||
def _config(self):
|
def _config(self):
|
||||||
"""Configure an LXC container.
|
"""Configure an LXC container.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue