code: def restore(mongo_user, mongo_password, backup_tbz_path,
              backup_directory_output_path="/tmp/mongo_dump",
              drop_database=False, cleanup=True, silent=False,
              skip_system_and_user_files=False):
      
      if not path.exists(backup_tbz_path):
          raise Exception("the provided tar file %s does not exist." % (backup_tbz_path))
      
      untarbz(backup_tbz_path, backup_directory_output_path, silent=silent)
      
      if skip_system_and_user_files:
          system_and_users_path = "%s/admin" % backup_directory_output_path
          if path.exists(system_and_users_path):
              rmtree(system_and_users_path)
      
      mongorestore(mongo_user, mongo_password, backup_directory_output_path,
                   drop_database=drop_database, silent=silent)
      if cleanup:
          rmtree(backup_directory_output_path)
docs: Runs mongorestore with source data from the provided .tbz backup, using
      the provided username and password.
      The contents of the .tbz will be dumped into the provided backup directory,
      and that folder will be deleted after a successful mongodb restore unless
      cleanup is set to False.
      
      Note: the skip_system_and_user_files is intended for use with the changes
      in user architecture introduced in mongodb version 2.6.
      
      Warning: Setting drop_database to True will drop the ENTIRE
      CURRENTLY RUNNING DATABASE before restoring.
      
      Mongorestore requires a running mongod process, in addition the provided
      user must have restore permissions for the database.  A mongolia superuser
      will have more than adequate permissions, but a regular user may not.
      By default this function will clean up the output of the untar operation.