diff --git a/hitachi-vsp/agent_hitachivsp b/hitachi-vsp/agent_hitachivsp index 13f198a..d09b8ab 100755 --- a/hitachi-vsp/agent_hitachivsp +++ b/hitachi-vsp/agent_hitachivsp @@ -124,6 +124,114 @@ def get_storage_ldevs(): url = "https://%(address)s/ConfigurationManager/v1/objects/ldevs" % args_dict return query(url) +def get_storage_parity_groups(): + if opt_demo: + raw_json = storage_parity_groups + return raw_json + url = "https://%(address)s/ConfigurationManager/v1/objects/parity-groups" %args_dict + return query(url) + + +def get_storage_hardware_status(): + if opt_demo: + raw_json = storage_hardware_status + return raw_json + url = "https://%(address)s/ConfigurationManager/v1/objects/components/instance" %args_dict + return query(url) + + +def process_storage_hardware_status(): + raw_json = get_storage_hardware_status() + full_data = json.loads(raw_json) + system = full_data["system"] + output("<<>>") + output("powerConsumption\t%s" % (system["powerConsumption"])) + ctls = full_data["ctls"] + output("<<>>") + output("location\tstatus\ttemperature\ttemperatureStatus\tcharge") + for ctl in ctls: + output("%s\t%s\t%s\t%s\t%s" % ( ctl["location"], ctl["status"], ctl["temperature"], ctl["temperatureStatus"], + ctl["charge"] )) + + cachememories = full_data["cacheMemories"] + output("<<>>") + output("location\tstatus\tcacheSize") + for cachemem in cachememories: + output("%s\t%s\t%s" % (cachemem["location"], cachemem["status"], cachemem["cacheSize"])) + + channelsboards=full_data["chbs"] + output("<<>>") + output("location\tstatus\ttype") + for channelboard in channelsboards: + output("%s\t%s\t%s" % (channelboard["location"], channelboard["status"], channelboard["type"])) + + cacheFlashMemories=full_data["chbs"] + output("<<>>") + output("location\tstatus\ttype") + for cacheFlashMemory in cacheFlashMemories: + output("%s\t%s\t%s" % (cacheFlashMemory["location"], cacheFlashMemory["status"], cacheFlashMemory["type"])) + + disk_boards = full_data["dkbs"] + output("<<>>") + output("location\tstatus\ttype") + for dkb in disk_boards: + output("%s\t%s\t%s" % (dkb["location"], dkb["status"], dkb["type"])) + + sfps = full_data["sfps"] + output("<<>>") + output("portId\tstatus\ttype\tspeed\tportCondition") + for sfp in sfps: + output("%s\t%s\t%s\t%s\t%s" % (sfp["portId"], sfp["status"], sfp["type"], sfp["speed"], sfp["portCondition"] )) + + backup_modules = full_data["bkmfs"] + output("<<>>") + output("location\tstatus\tbat_location\tbat_status\tbat_life") + for backup_module in backup_modules: + if backup_module["batteries"]: + battery = backup_module["batteries"][0] + output("%s\t%s\t%s\t%s\t%s" % (backup_module["location"], backup_module["status"], + battery["location"], + battery["status"], + battery["life"])) + else: + output("%s\t%s\t\t\t" % (backup_module["location"], backup_module["status"])) + + driveboxes = full_data["driveBoxes"] + output("<<>>") + output("drivebox_location\tdrive_location\tdrive_status\tdrive_recomend_Replacement") + for drivebox in driveboxes: + drives=drivebox["drives"] + for drive in drives: + output("%s\t%s\t%s\t%s" % (drivebox["location"], drive["location"], drive["status"], + drive["recomendReplacement"])) + + output("<<>>") + output("drivebox_location\tenc_location\tenc_status") + for drivebox in driveboxes: + encs=drivebox["encs"] + for enc in encs: + output("%s\t%s\t%s" % (drivebox["location"], enc["location"], enc["status"] )) + + output("<<>>") + output("drivebox_location\tdbps_location\tdbps_status") + for drivebox in driveboxes: + dbps=drivebox["dbps"] + for power_supply in dbps: + output("%s\t%s\t%s" % (drivebox["location"], power_supply["location"], power_supply["status"] )) + +def process_storage_parity_groups(): + output("<<>>") + raw_json = get_storage_parity_groups() + full_data = json.loads(raw_json) + data = full_data["data"] + output("parityGroupId\tnumOfLdevs\tusedCapacityRate\tclprId\tavailableVolumeCapacity\t" + "totalCapacity\tphysicalCapacity") + for parity_group in data: + output("%s\t%s\t%s\t%s\t%s\t%s\t%s" % (parity_group["parityGroupId"], parity_group["numOfLdevs"], + parity_group["usedCapacityRate"], parity_group["clprId"], + parity_group["availableVolumeCapacity"], parity_group["totalCapacity"], + parity_group["physicalCapacity"] )) + def process_storage_ldevs(): output("<<>>") @@ -174,6 +282,8 @@ def main(): process_storage_pools() process_storage_clprs() process_storage_ldevs() + process_storage_parity_groups() + process_storage_hardware_status() sys.stdout.write("\n".join(output_lines) + "\n") except Exception as e: sys.stderr.write("Connection error: %s" % e) @@ -212,6 +322,624 @@ storage_clprs="""{ }""" +storage_hardware_status = """{ + "system": { + "powerConsumption": 1357 + }, + "ctls": [ + { + "location": "CTL1", + "status": "Normal", + "temperature": 23, + "temperatureStatus": "Normal", + "charge": 100, + "type": "-" + }, + { + "location": "CTL2", + "status": "Normal", + "temperature": 23, + "temperatureStatus": "Normal", + "charge": 100, + "type": "-" + } + ], + "cacheMemories": [ + { + "location": "CTL1 CMG0", + "status": "Normal", + "cacheSize": 256 + }, + { + "location": "CTL1 CMG1", + "status": "Normal", + "cacheSize": 256 + }, + { + "location": "CTL2 CMG0", + "status": "Normal", + "cacheSize": 256 + }, + { + "location": "CTL2 CMG1", + "status": "Normal", + "cacheSize": 256 + } + ], + "chbs": [ + { + "location": "CHB-1A", + "status": "Normal", + "type": "32G Ready 4Port FC" + }, + { + "location": "CHB-1B", + "status": "Normal", + "type": "32G Ready 4Port FC" + }, + { + "location": "CHB-2A", + "status": "Normal", + "type": "32G Ready 4Port FC" + }, + { + "location": "CHB-2B", + "status": "Normal", + "type": "32G Ready 4Port FC" + } + ], + "cacheFlashMemories": [ + { + "location": "CFM-10", + "status": "Normal", + "type": "BM45" + }, + { + "location": "CFM-11", + "status": "Normal", + "type": "BM45" + }, + { + "location": "CFM-20", + "status": "Normal", + "type": "BM45" + }, + { + "location": "CFM-21", + "status": "Normal", + "type": "BM45" + } + ], + "dkbs": [ + { + "location": "DKB-1G", + "status": "Normal", + "type": "Disk Board" + }, + { + "location": "DKB-1H", + "status": "Normal", + "type": "Disk Board" + }, + { + "location": "DKB-2G", + "status": "Normal", + "type": "Disk Board" + }, + { + "location": "DKB-2H", + "status": "Normal", + "type": "Disk Board" + } + ], + "lanbs": [ + { + "location": "LAN1", + "status": "Normal" + }, + { + "location": "LAN2", + "status": "Normal" + } + ], + "sfps": [ + { + "portId": "1A", + "status": "Normal", + "type": "Short Wave", + "speed": "16 Gbps", + "portCondition": "Available (Connected)" + }, + { + "portId": "3A", + "status": "Normal", + "type": "Short Wave", + "speed": "16 Gbps", + "portCondition": "Available (Connected)" + }, + { + "portId": "5A", + "status": "Normal", + "type": "Short Wave", + "speed": "16 Gbps", + "portCondition": "Available (Connected)" + }, + { + "portId": "7A", + "status": "Normal", + "type": "Short Wave", + "speed": "16 Gbps", + "portCondition": "Available (Connected)" + }, + { + "portId": "1B", + "status": "Normal", + "type": "Short Wave", + "speed": "16 Gbps", + "portCondition": "Available (Connected)" + }, + { + "portId": "3B", + "status": "Normal", + "type": "Short Wave", + "speed": "16 Gbps", + "portCondition": "Available (Connected)" + }, + { + "portId": "5B", + "status": "Normal", + "type": "Short Wave", + "speed": "16 Gbps", + "portCondition": "Available (Connected)" + }, + { + "portId": "7B", + "status": "Normal", + "type": "Short Wave", + "speed": "16 Gbps", + "portCondition": "Available (Connected)" + }, + { + "portId": "2A", + "status": "Normal", + "type": "Short Wave", + "speed": "16 Gbps", + "portCondition": "Available (Connected)" + }, + { + "portId": "4A", + "status": "Normal", + "type": "Short Wave", + "speed": "16 Gbps", + "portCondition": "Available (Connected)" + }, + { + "portId": "6A", + "status": "Normal", + "type": "Short Wave", + "speed": "16 Gbps", + "portCondition": "Available (Connected)" + }, + { + "portId": "8A", + "status": "Normal", + "type": "Short Wave", + "speed": "16 Gbps", + "portCondition": "Available (Connected)" + }, + { + "portId": "2B", + "status": "Normal", + "type": "Short Wave", + "speed": "16 Gbps", + "portCondition": "Available (Connected)" + }, + { + "portId": "4B", + "status": "Normal", + "type": "Short Wave", + "speed": "16 Gbps", + "portCondition": "Available (Connected)" + }, + { + "portId": "6B", + "status": "Normal", + "type": "Short Wave", + "speed": "16 Gbps", + "portCondition": "Available (Connected)" + }, + { + "portId": "8B", + "status": "Normal", + "type": "Short Wave", + "speed": "16 Gbps", + "portCondition": "Available (Connected)" + } + ], + "bkmfs": [ + { + "location": "BKMF-10", + "status": "Normal", + "batteries": [] + }, + { + "location": "BKMF-11", + "status": "Normal", + "batteries": [ + { + "location": "BAT-B11", + "status": "Normal", + "life": 90 + } + ] + }, + { + "location": "BKMF-12", + "status": "Normal", + "batteries": [ + { + "location": "BAT-B12", + "status": "Normal", + "life": 90 + } + ] + }, + { + "location": "BKMF-13", + "status": "Normal", + "batteries": [ + { + "location": "BAT-B13", + "status": "Normal", + "life": 90 + } + ] + }, + { + "location": "BKMF-20", + "status": "Normal", + "batteries": [] + }, + { + "location": "BKMF-21", + "status": "Normal", + "batteries": [ + { + "location": "BAT-B21", + "status": "Normal", + "life": 90 + } + ] + }, + { + "location": "BKMF-22", + "status": "Normal", + "batteries": [ + { + "location": "BAT-B22", + "status": "Normal", + "life": 90 + } + ] + }, + { + "location": "BKMF-23", + "status": "Normal", + "batteries": [ + { + "location": "BAT-B23", + "status": "Normal", + "life": 90 + } + ] + } + ], + "dkcpss": [ + { + "location": "DKCPS1", + "status": "Normal" + }, + { + "location": "DKCPS2", + "status": "Normal" + } + ], + "driveBoxes": [ + { + "location": "DB-00", + "type": "DBF", + "led": "OFF", + "drives": [ + { + "location": "HDD00-00", + "modelCode": "NFHAJ-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD00-01", + "modelCode": "NFHAJ-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD00-02", + "modelCode": "NFHAJ-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD00-03", + "modelCode": "NFHAJ-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD00-04", + "modelCode": "NFHAJ-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD00-05", + "modelCode": "NFHAJ-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD00-11", + "modelCode": "NFHAJ-Q13RSS", + "status": "Normal", + "usage": "Spare", + "recomendReplacement": 0 + } + ], + "encs": [ + { + "location": "ENC00-1", + "status": "Normal" + }, + { + "location": "ENC00-2", + "status": "Normal" + } + ], + "dbps": [ + { + "location": "DBPS00-1", + "status": "Normal" + }, + { + "location": "DBPS00-2", + "status": "Normal" + } + ] + }, + { + "location": "DB-01", + "type": "DBF", + "led": "OFF", + "drives": [ + { + "location": "HDD01-00", + "modelCode": "NFHAK-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD01-01", + "modelCode": "NFHAK-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD01-02", + "modelCode": "NFHAK-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD01-03", + "modelCode": "NFHAK-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD01-04", + "modelCode": "NFHAK-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD01-05", + "modelCode": "NFHAK-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + } + ], + "encs": [ + { + "location": "ENC01-1", + "status": "Normal" + }, + { + "location": "ENC01-2", + "status": "Normal" + } + ], + "dbps": [ + { + "location": "DBPS01-1", + "status": "Normal" + }, + { + "location": "DBPS01-2", + "status": "Normal" + } + ] + }, + { + "location": "DB-02", + "type": "DBF", + "led": "OFF", + "drives": [ + { + "location": "HDD02-00", + "modelCode": "NFHAJ-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD02-01", + "modelCode": "NFHAJ-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD02-02", + "modelCode": "NFHAJ-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD02-03", + "modelCode": "NFHAJ-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD02-04", + "modelCode": "NFHAJ-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD02-05", + "modelCode": "NFHAJ-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + } + ], + "encs": [ + { + "location": "ENC02-1", + "status": "Normal" + }, + { + "location": "ENC02-2", + "status": "Normal" + } + ], + "dbps": [ + { + "location": "DBPS02-1", + "status": "Normal" + }, + { + "location": "DBPS02-2", + "status": "Normal" + } + ] + }, + { + "location": "DB-03", + "type": "DBF", + "led": "OFF", + "drives": [ + { + "location": "HDD03-00", + "modelCode": "NFHAK-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD03-01", + "modelCode": "NFHAK-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD03-02", + "modelCode": "NFHAK-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD03-03", + "modelCode": "NFHAK-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD03-04", + "modelCode": "NFHAK-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + }, + { + "location": "HDD03-05", + "modelCode": "NFHAK-Q13RSS", + "status": "Normal", + "usage": "DATA", + "recomendReplacement": 0 + } + ], + "encs": [ + { + "location": "ENC03-1", + "status": "Normal" + }, + { + "location": "ENC03-2", + "status": "Normal" + } + ], + "dbps": [ + { + "location": "DBPS03-1", + "status": "Normal" + }, + { + "location": "DBPS03-2", + "status": "Normal" + } + ] + } + ], + "fans": [], + "upsMode": "Standard Mode", + "pecbs": [], + "chbb": {}, + "pcps": [], + "swpks": [], + "chbbfans": [], + "chbbpss": [] +}""" + + storage_pools = """ { "data" : [ { @@ -559,5 +1287,100 @@ storage_ldevs = """ { "isAluaEnabled" : false } ] }""" + +storage_parity_groups = """ { + "data": [ + { + "parityGroupId": "1-1", + "numOfLdevs": 26, + "usedCapacityRate": 44, + "availableVolumeCapacity": 87245, + "raidLevel": "RAID5", + "raidType": "3D+1P", + "clprId": 0, + "driveType": "NFHAF-Q13RSS", + "driveTypeName": "SSD(FMC)", + "totalCapacity": 157286, + "physicalCapacity": 39321, + "isAcceleratedCompressionEnabled": true, + "availableVolumeCapacityInKB": 91483790592 + }, + { + "parityGroupId": "1-2", + "numOfLdevs": 51, + "usedCapacityRate": 93, + "availableVolumeCapacity": 10448, + "raidLevel": "RAID5", + "raidType": "3D+1P", + "clprId": 0, + "driveType": "NFHAF-Q13RSS", + "driveTypeName": "SSD(FMC)", + "totalCapacity": 157286, + "physicalCapacity": 39321, + "isAcceleratedCompressionEnabled": true, + "availableVolumeCapacityInKB": 10955611392 + }, + { + "parityGroupId": "1-3", + "numOfLdevs": 25, + "usedCapacityRate": 42, + "availableVolumeCapacity": 90317, + "raidLevel": "RAID5", + "raidType": "3D+1P", + "clprId": 0, + "driveType": "NFHAF-Q13RSS", + "driveTypeName": "SSD(FMC)", + "totalCapacity": 157286, + "physicalCapacity": 39321, + "isAcceleratedCompressionEnabled": true, + "availableVolumeCapacityInKB": 94704917760 + }, + { + "parityGroupId": "1-4", + "numOfLdevs": 52, + "usedCapacityRate": 95, + "availableVolumeCapacity": 7376, + "raidLevel": "RAID5", + "raidType": "3D+1P", + "clprId": 0, + "driveType": "NFHAF-Q13RSS", + "driveTypeName": "SSD(FMC)", + "totalCapacity": 157286, + "physicalCapacity": 39321, + "isAcceleratedCompressionEnabled": true, + "availableVolumeCapacityInKB": 7734484224 + }, + { + "parityGroupId": "1-5", + "numOfLdevs": 54, + "usedCapacityRate": 99, + "availableVolumeCapacity": 1232, + "raidLevel": "RAID5", + "raidType": "3D+1P", + "clprId": 0, + "driveType": "NFHAF-Q13RSS", + "driveTypeName": "SSD(FMC)", + "totalCapacity": 157286, + "physicalCapacity": 39321, + "isAcceleratedCompressionEnabled": true, + "availableVolumeCapacityInKB": 1292229888 + }, + { + "parityGroupId": "1-6", + "numOfLdevs": 25, + "usedCapacityRate": 42, + "availableVolumeCapacity": 90317, + "raidLevel": "RAID5", + "raidType": "3D+1P", + "clprId": 0, + "driveType": "NFHAF-Q13RSS", + "driveTypeName": "SSD(FMC)", + "totalCapacity": 157286, + "physicalCapacity": 39321, + "isAcceleratedCompressionEnabled": true, + "availableVolumeCapacityInKB": 94704917760 + } + ] +}""" if __name__ == "__main__": main()