#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright (C) 2019 tribe29 GmbH - License: GNU General Public License v2
# This file is part of Checkmk (https://checkmk.com). It is subject to the terms and
# conditions defined in the file COPYING, which is part of this source code package.

# Example output
# <<<win_os>>>
# WIN2003|Microsoft(R) Windows(R) Server 2003 Standard Edition|5.2.3790||2|0|20100620230628.000000+120


def inv_win_os(info):
    node = inv_tree("software.os.")

    # Some information come eg. from esx and we delete these
    # because basic os is windows
    for what in ["vendor", "name", "version", "type", "arch"]:
        if what in node:
            del node[what]

    node["type"] = "Windows"
    node["vendor"] = "Microsoft"

    line = info[0]
    if len(line) == 7:
        node["name"] = line[1]

        node["kernel_version"] = line[2]

        if line[3]:
            if line[3].lower() == "64-bit":
                node["arch"] = "x86_64"
            else:
                node["arch"] = "i386"

        node["service_pack"] = line[4] + "." + line[5]

        if "+" in line[6]:
            datestr, tz = line[6].split("+")
            tz = int(tz)
        elif "-" in line[6]:
            datestr, tz = line[6].split("-")
            tz = int(tz) * -1
        else:
            datestr, tz = line[6], 0

        node["install_date"] = int(time.mktime(time.strptime(datestr, "%Y%m%d%H%M%S.%f"))) - tz * 60


inv_info["win_os"] = {
    "inv_function": inv_win_os,
}
