# -*- coding: UTF-8 -*-
# Bacula(R) - The Network Backup Solution
#
#   Copyright (C) 2000-2022 Kern Sibbald
#
#   The original author of Bacula is Kern Sibbald, with contributions
#   from many others, a complete list can be found in the file AUTHORS.
#
#   You may use this file and others of this release according to the
#   license defined in the LICENSE file, which includes the Affero General
#   Public License, v3.0 ("AGPLv3") and some additional permissions and
#   terms pursuant to its AGPLv3 Section 7.
#
#   This notice must be preserved when any source code is
#   conveyed and/or propagated.
#
#   Bacula(R) is a registered trademark of Kern Sibbald.


def k8s_size_to_int(res):
    if isinstance(res, str):
        if res.endswith("Ki"):
            return int(res[:-2]) * 1024
        if res.endswith("Mi"):
            return int(res[:-2]) * 1024 * 1024
        if res.endswith("Gi"):
            return int(res[:-2]) * 1024 * 1024 * 1024
        if res.endswith("Pi"):
            return int(res[:-2]) * 1024 * 1024 * 1024 * 1024
        if res.endswith("Ti"):
            return int(res[:-2]) * 1024 * 1024 * 1024 * 1024 * 1024
        if res.endswith("K"):
            return int(res[:-1]) * 1000
        if res.endswith("M"):
            return int(res[:-1]) * 1000000
        if res.endswith("G"):
            return int(res[:-1]) * 1000000000
        if res.endswith("P"):
            return int(res[:-1]) * 1000000000000
        if res.endswith("T"):
            return int(res[:-1]) * 1000000000000000
        if res.endswith("m"):
            return int(res[:-1]) / 1000.0
        return 0
    return res
