async def METHOD_NAME(self):
    def reset(tarinfo):
        tarinfo.uid = tarinfo.gid = 0
        tarinfo.uname = tarinfo.gname = "root"
        return tarinfo
    tar_file_name = ""
    try:
        snapshot_id = str(int(time.time()))
        snapshot_filename = "{}-{}.tar.gz".format(SNAPSHOT_PREFIX, snapshot_id)
        tar_file_name = "{}/{}".format(self._out_file_path, snapshot_filename)
        pyz = tarfile.open(tar_file_name, "w:gz")
        try:
            # files are being added to tarfile with relative path and NOT with absolute path.
            pyz.add("{}/python/fledge/plugins".format(_FLEDGE_ROOT),
                    arcname="python/fledge/plugins", recursive=True)
            # C plugins location is different with "make install" and "make"
            if path.exists("{}/bin".format(_FLEDGE_ROOT)) and path.exists("{}/bin/fledge".format(_FLEDGE_ROOT)):
                pyz.add("{}/plugins".format(_FLEDGE_ROOT), arcname="plugins", recursive=True, filter=reset)
            else:
                pyz.add("{}/C/plugins".format(_FLEDGE_ROOT), arcname="C/plugins", recursive=True)
                pyz.add("{}/plugins".format(_FLEDGE_ROOT), arcname="plugins", recursive=True)
                pyz.add("{}/cmake_build/C/plugins".format(_FLEDGE_ROOT), arcname="cmake_build/C/plugins",
                        recursive=True)
        finally:
            pyz.close()
    except Exception as ex:
        if os.path.isfile(tar_file_name):
            os.remove(tar_file_name)
        _LOGGER.error(ex, "Error in creating Snapshot .tar.gz file.")
        raise RuntimeError(str(ex))
    self.check_and_delete_temp_files(self._interim_file_path)
    self.check_and_delete_plugins_tar_files(self._out_file_path)
    _LOGGER.info("Snapshot %s successfully created.", tar_file_name)
    return snapshot_id, snapshot_filename