old_contents: '''
  Utility functions for saltcloud
  '''
  
  # Import python libs
  import os
  import sys
  import shutil
  import tempfile
  
  # Import salt libs
  import salt.crypt
  
  
  def os_script(os_):
      '''
      Return the script as a string for the specific os
      '''
      deploy_path = os.path.join(
              os.path.dirname(os.path.dirname(__file__)),
              'deploy')
      for fn_ in os.listdir(deploy_path):
          full = os.path.join(deploy_path, fn_)
          if not os.path.isfile(full):
              continue
          if os_.lower() == fn_.split('.')[0].lower():
              # found the right script to embed, go for it
              try:
                  with open(full, 'r') as fp_:
                      data = fp_.read()
                  return data
              except (OSError, IOError):
                  continue
      # No deploy script was found, return an empy string
      return ''
  
  
  def gen_keys(keysize=2048):
      '''
      Generate Salt minion keys and return them as PEM file strings
      '''
      tdir = tempfile.mkdtemp()
      salt.crypt.gen_keys(
              tdir,
              'minion',
              keysize)
      priv_path = os.path.join(tdir, 'minion.pem')
      pup_path = os.path.join(tdir, 'minion.pub')
      with open(priv_path) as fp_:
          priv = fp_.read()
      with open(pub_path) as fp_:
          pub = fp_.read()
      shutil.rmtree(tdir)
      return priv, pub
  
  
  def accept_key(pki_dir, pub, id_):
      '''
      If the master config was available then we will have a pki_dir key in
      the opts directory, this method places the pub key in the accepted
      keys dir if that is the case.
      '''
      key = os.path.join(
              pki_dir,
              'minions/{0}.pub'.format(id_)
              )
      with open(key, 'w+') as fp_:
          fp_.write(pub)
  
  
new_contents: '''
  Utility functions for saltcloud
  '''
  
  # Import python libs
  import os
  import sys
  import shutil
  import tempfile
  
  # Import salt libs
  import salt.crypt
  
  
  def os_script(os_):
      '''
      Return the script as a string for the specific os
      '''
      deploy_path = os.path.join(
              os.path.dirname(os.path.dirname(__file__)),
              'deploy')
      for fn_ in os.listdir(deploy_path):
          full = os.path.join(deploy_path, fn_)
          if not os.path.isfile(full):
              continue
          if os_.lower() == fn_.split('.')[0].lower():
              # found the right script to embed, go for it
              try:
                  with open(full, 'r') as fp_:
                      data = fp_.read()
                  return data
              except (OSError, IOError):
                  continue
      # No deploy script was found, return an empy string
      return ''
  
  
  def gen_keys(keysize=2048):
      '''
      Generate Salt minion keys and return them as PEM file strings
      '''
      tdir = tempfile.mkdtemp()
      salt.crypt.gen_keys(
              tdir,
              'minion',
              keysize)
      priv_path = os.path.join(tdir, 'minion.pem')
      pup_path = os.path.join(tdir, 'minion.pub')
      with open(priv_path) as fp_:
          priv = fp_.read()
      with open(pub_path) as fp_:
          pub = fp_.read()
      shutil.rmtree(tdir)
      return priv, pub
  
  
  def accept_key(pki_dir, pub, id_):
      '''
      If the master config was available then we will have a pki_dir key in
      the opts directory, this method places the pub key in the accepted
      keys dir if that is the case.
      '''
      key = os.path.join(
              pki_dir,
              'minions/{0}.pub'.format(id_)
              )
      with open(key, 'w+') as fp_:
          fp_.write(pub)
  
  
  def get_option(option, opts, vm_):
      '''
      Convenience function to return the dominant option to be used. Always
      default to options set in the vm structure, but if the option is not
      present there look for it in the main config file
      '''
      if option in vm_:
          return vm_[options]
      if option in opts:
          return opts[options]
  
  
subject: Add a convenience function for gathering options