import glob
import logging
from typing import List

from im360.model.global_whitelist import GlobalWhitelist

CUSTOM_WHITELIST_MASK = "/etc/imunify360/whitelist/*.txt"
CUSTOM_BLACKLIST_MASK = "/etc/imunify360/blacklist/*.txt"

logger = logging.getLogger(__name__)


class CustomWhitelist(GlobalWhitelist):
    _LIST_PATH = CUSTOM_WHITELIST_MASK

    @classmethod
    async def load(cls, group=None) -> List[str]:
        result = []  # type: List[str]

        for f in glob.glob(cls._LIST_PATH):
            logger.info("Loading %s to %s", f, cls.__name__)
            result.extend(cls._load_file(f, log_error=logger.warning))

        return result


class CustomBlacklist(CustomWhitelist):
    _LIST_PATH = CUSTOM_BLACKLIST_MASK
