
class Status:
    @staticmethod
    def get_status():
        return {
            "Dataplane": {
                "Counters": {
                    "f1fast": {
                        "ethA": Status._eth_a_counters(),
                        "numInPacs": "0",
                        "numPacsOut": "0",
                        "numPacsToDrop": "0",
                        "numPacsToHW": "0",
                        "numPacsToSW": "0",
                        "timestamp": "1970-01-01 00:00:00"
                    },
                    "f1slow": {
                        "gateway": "192.168.0.1",
                        "ip": "192.168.0.10",
                        "sn": "255.255.255.0",
                        "timestamp": "1970-01-01 00:00:00",
                        "uptime": "11",
                        "ver": "0.0.0_rc0"
                    },
                    "f2fast": {
                        "numBMPPacs": "0",
                        "numEncPacs": "0",
                        "numInPacs": "0",
                        "numOutPacs": "0",
                        "numSISLPacs": "0",
                        "timestamp": "1970-01-01 00:00:00"
                    },
                    "f2slow": {
                        "coreid": "3",
                        "timestamp": "1970-01-01 00:00:00",
                        "uptime": "10",
                        "ver": "0.0.0_rc0"
                    },
                    "f3fast": {
                        "ethA": Status._eth_a_counters(),
                        "numInPacs": "0",
                        "numPacsExtRxDrop": "0",
                        "numPacsExtRxSW": "0",
                        "numPacsF3Out": "0",
                        "numPacsHWOut": "0",
                        "numPacsSWOut": "0",
                        "timestamp": "1970-01-01 00:00:00"
                    },
                    "f3slow": {
                        "gateway": "192.168.1.1",
                        "ip": "192.168.1.10",
                        "sn": "255.255.255.0",
                        "timestamp": "1970-01-01 00:00:00",
                        "uptime": "11",
                        "ver": "0.0.0_rc0"
                    }
                },
                "Status": {
                    "F1": {
                        "temperatures": Status._fpga_temps(),
                        "voltages": Status._fpga_voltages()
                    },
                    "F2": {
                        "temperatures": Status._fpga_temps(),
                        "voltages": Status._fpga_voltages()
                    },
                    "F3": {
                        "temperatures": Status._fpga_temps(),
                        "voltages": Status._fpga_voltages()
                    },
                    "timestamp": "1970-01-01 00:00:00"
                }
            },
            "Management": {
                "Status": {
                    "alerts": {
                        "PSU_ALERT": "1"
                    },
                    "temperatures": {
                        "SOM": "39",
                        "TP100": "27"
                    },
                    "timestamp": "1970-01-01 00:00:00"
                }
            }
        }

    @staticmethod
    def _eth_a_counters():
        return {
            "rxFramesCRCErr": "0",
            "rxFramesErr": "0",
            "rxFramesOk": "0",
            "txFramesErr": "0",
            "txFramesOk": "0"
        }

    @staticmethod
    def _fpga_voltages():
        return {
            "0V9": "0.90",
            "1V03": "1.01",
            "1V35": "1.36",
            "1V8": "1.79",
            "3V0": "2.99",
            "3V3": "3.28",
            "5V0": "4.93"
        }

    @staticmethod
    def _fpga_temps():
        return {
            "DIE": "32.23",
            "PCB": "31.13"
        }

class Status:
    @staticmethod
    def get_status():
        return {
            "Dataplane": {
                "Counters": {
                    "f1fast": {
                        "ethA": Status._eth_a_counters(),
                        "numInPacs": "0",
                        "numPacsOut": "0",
                        "numPacsToDrop": "0",
                        "numPacsToHW": "0",
                        "numPacsToSW": "0",
                        "timestamp": "1970-01-01 00:00:00"
                    },
                    "f1slow": {
                        "gateway": "192.168.0.1",
                        "ip": "192.168.0.10",
                        "sn": "255.255.255.0",
                        "timestamp": "1970-01-01 00:00:00",
                        "uptime": "11",
                        "ver": "0.0.0_rc0"
                    },
                    "f2fast": {
                        "numBMPPacs": "0",
                        "numEncPacs": "0",
                        "numInPacs": "0",
                        "numOutPacs": "0",
                        "numSISLPacs": "0",
                        "timestamp": "1970-01-01 00:00:00"
                    },
                    "f2slow": {
                        "coreid": "3",
                        "timestamp": "1970-01-01 00:00:00",
                        "uptime": "10",
                        "ver": "0.0.0_rc0"
                    },
                    "f3fast": {
                        "ethA": Status._eth_a_counters(),
                        "numInPacs": "0",
                        "numPacsExtRxDrop": "0",
                        "numPacsExtRxSW": "0",
                        "numPacsF3Out": "0",
                        "numPacsHWOut": "0",
                        "numPacsSWOut": "0",
                        "timestamp": "1970-01-01 00:00:00"
                    },
                    "f3slow": {
                        "gateway": "192.168.1.1",
                        "ip": "192.168.1.10",
                        "sn": "255.255.255.0",
                        "timestamp": "1970-01-01 00:00:00",
                        "uptime": "11",
                        "ver": "0.0.0_rc0"
                    }
                },
                "Status": {
                    "F1": {
                        "temperatures": Status._fpga_temps(),
                        "voltages": Status._fpga_voltages()
                    },
                    "F2": {
                        "temperatures": Status._fpga_temps(),
                        "voltages": Status._fpga_voltages()
                    },
                    "F3": {
                        "temperatures": Status._fpga_temps(),
                        "voltages": Status._fpga_voltages()
                    },
                    "timestamp": "1970-01-01 00:00:00"
                }
            },
            "Management": {
                "Status": {
                    "alerts": {
                        "PSU_ALERT": "1"
                    },
                    "temperatures": {
                        "SOM": "39",
                        "TP100": "27"
                    },
                    "timestamp": "1970-01-01 00:00:00"
                }
            }
        }

    @staticmethod
    def _eth_a_counters():
        return {
            "rxFramesCRCErr": "0",
            "rxFramesErr": "0",
            "rxFramesOk": "0",
            "txFramesErr": "0",
            "txFramesOk": "0"
        }

    @staticmethod
    def _fpga_voltages():
        return {
            "0V9": "0.90",
            "1V03": "1.01",
            "1V35": "1.36",
            "1V8": "1.79",
            "3V0": "2.99",
            "3V3": "3.28",
            "5V0": "4.93"
        }

    @staticmethod
    def _fpga_temps():
        return {
            "DIE": "32.23",
            "PCB": "31.13"
        }