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>
pull/18777/head
Kevin Carter 8 years ago committed by Matt Clay
parent 3e31eaf419
commit eab15da081

@ -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'
for _ in xrange(timeout):
if os.path.exists(lockfile):
time.sleep(1)
else:
return self.module.run_command( return self.module.run_command(
' '.join(build_command), ' '.join(build_command),
use_unsafe_shell=unsafe_shell 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…
Cancel
Save