code: def _runParasol(self, command, autoRetry=True):
          
          command = list(concat(self.parasolCommand, command))
          while True:
              logger.debug('Running %r', command)
              process = subprocess.Popen(command,
                                         stdout=subprocess.PIPE,
                                         stderr=subprocess.PIPE,
                                         bufsize=-1)
              stdout, stderr = process.communicate()
              status = process.wait()
              for line in stderr.decode('utf-8').split('\n'):
                  if line: logger.warn(line)
              if status == 0:
                  return 0, stdout.decode('utf-8').split('\n')
              message = 'Command %r failed with exit status %i' % (command, status)
              if autoRetry:
                  logger.warn(message)
              else:
                  logger.error(message)
                  return status, None
              logger.warn('Waiting for a 10s, before trying again')
              time.sleep(10)
docs: Issues a parasol command using popen to capture the output. If the command fails then it
          will try pinging parasol until it gets a response. When it gets a response it will
          recursively call the issue parasol command, repeating this pattern for a maximum of N
          times. The final exit value will reflect this.