Server IP : 173.249.157.85 / Your IP : 3.141.196.30 Web Server : Apache System : Linux server.frogzhost.com 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 User : econtech ( 1005) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /lib/python2.7/site-packages/cloudinit/ |
Upload File : |
# This file is part of cloud-init. See LICENSE file for license information. """Common utility functions for interacting with subprocess.""" # TODO move subp shellify and runparts related functions out of util.py import logging LOG = logging.getLogger(__name__) def prepend_base_command(base_command, commands): """Ensure user-provided commands start with base_command; warn otherwise. Each command is either a list or string. Perform the following: - If the command is a list, pop the first element if it is None - If the command is a list, insert base_command as the first element if not present. - When the command is a string not starting with 'base-command', warn. Allow flexibility to provide non-base-command environment/config setup if needed. @commands: List of commands. Each command element is a list or string. @return: List of 'fixed up' commands. @raise: TypeError on invalid config item type. """ warnings = [] errors = [] fixed_commands = [] for command in commands: if isinstance(command, list): if command[0] is None: # Avoid warnings by specifying None command = command[1:] elif command[0] != base_command: # Automatically prepend command.insert(0, base_command) elif isinstance(command, str): if not command.startswith('%s ' % base_command): warnings.append(command) else: errors.append(str(command)) continue fixed_commands.append(command) if warnings: LOG.warning( 'Non-%s commands in %s config:\n%s', base_command, base_command, '\n'.join(warnings)) if errors: raise TypeError( 'Invalid {name} config.' ' These commands are not a string or list:\n{errors}'.format( name=base_command, errors='\n'.join(errors))) return fixed_commands # vi: ts=4 expandtab