code: def yum_update(downloadonly=False, dest_dir='/tmp'):
      
      log = logging.getLogger(mod_logger + '.yum_update')
  
      # Type checks on the args
      if not isinstance(dest_dir, basestring):
          msg = 'dest_dir argument must be a string'
          log.error(msg)
          raise CommandError(msg)
      if not isinstance(downloadonly, bool):
          msg = 'downloadonly argument must be a bool'
          log.error(msg)
          raise CommandError(msg)
  
      # If downloadonly was True, download packages to dest_dir
      if downloadonly:
          # Create the destination directory if it does not exist
          log.info('Creating directory: %s', dest_dir)
          try:
              mkdir_p(dest_dir)
          except OSError:
              _, ex, trace = sys.exc_info()
              msg = 'Unable to create destination directory: {d}'.format(
                  d=dest_dir)
              log.error(msg)
              raise CommandError, msg, trace
  
          # Build command string with downloadonly options specified
          command = ['yum', '-y', 'update', '--downloadonly',
                     '--downloaddir={d}'.format(d=dest_dir)]
          log.info('Downloading updates from yum to %s...', dest_dir)
      else:
          # Build command string to update directly
          command = ['yum', '-y', 'update']
          log.info('Installing yum updates from RHN...')
  
      # Run the command
      try:
          result = run_command(command)
      except CommandError:
          raise
      log.info('Yum update completed and exit with code: {c}'.format(
          c=result['code']))
      return result['code']
docs: Run a yum update on this system
  
      This public method runs the yum -y update command to update
      packages from yum. If downloadonly is set to true, the yum
      updates will be downloaded to the specified dest_dir.
  
      :param dest_dir: (str) Full path to the download directory
      :param downloadonly: Boolean
      :return: int exit code from the yum command
      :raises CommandError