def __call__(self):
        """Implements the command."""
        
        endpoint = self._endpoint(self.args)
        
        # Work out which days we want to keep 
        # the exact cut off time for backups to keep
        purge_before = self._calc_purge_before()
        # list of full or partial days to keep
        manifest_days = self._manifest_days(purge_before)
        self.log.info("To purge backups older then %s will read "\
            " manifests from %s", purge_before, manifest_days)
        
        # Read the manifests we want to keep. 
        self.log.debug("Reading manifests after %s to keep.", purge_before)
        manifests = []
        for manifest_day in manifest_days:
            for manifest in self._list_manifests(endpoint, 
                self.args.keyspace, self.args.host, manifest_day):
                
                if purge_before >= manifest.timestamp:
                    manifests.append(manifest)
                else:
                    self.log.debug("Will not keep manifest %s", manifest)
        self.log.info("Keeping backups %s", manifests)
        

        # Build a list of the files we want to keep. 
        # We purge everything else so that a failed purge can be fixed.
        keep_components = []
        for manifest in manifests:
            keep_components.extend(manifest.iter_components())
        self.log.info("Keeping sstable files: %s", keep_components)

        # Step 4 - Purge the manifests
        deleted_files = self._purge_manifests(endpoint, manifests)

        # Step 5 - Purge the files that are not referenced from a manifest.
        deleted_files.extend(self._purge_sstables(endpoint, keep_components))

        str_build = ["Purge backups before {purge_before}".format(
            purge_before=dt_util.to_iso(purge_before))
        ]
        if self.args.dry_run:
            str_build.append("DRY RUN: no files deleted, candidate files:")
        else:
            str_build.append("Deleted files:")
        str_build.append("")
        
        if deleted_files:
            str_build.extend(deleted_files)
        else:
            str_build.append("No files")

        return (0, "\n".join(str_build))
dataset/ETHPy150Open amorton/cassback/cassback/subcommands/purge_subcommand.py/PurgeSubCommand.__call__/swapped operands of `>=`