Skip to content

Commit f185ebe

Browse files
committed
add list-sensors command to sensor_group_operations example
1 parent c1a46d9 commit f185ebe

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

examples/response/sensor_group_operations.py

+19
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,19 @@ def list_sensor_groups(cb, parser, args):
1616
print("")
1717

1818

19+
def list_sensors(cb, parser, args):
20+
if args.group_name:
21+
group = cb.select(SensorGroup).where("name:{0}".format(args.group_name)).first()
22+
else:
23+
group = min(cb.select(SensorGroup), key=lambda x: x.id)
24+
25+
print("Sensors in group {0} (id {1}):".format(group.name, group.id))
26+
print(" {0:40}{1:18}{2}".format("Hostname", "IP Address", "Last Checkin Time"))
27+
for sensor in group.sensors:
28+
ipaddrs = [iface.ipaddr for iface in sensor.network_interfaces if iface.ipaddr not in ("127.0.0.1", "0.0.0.0")]
29+
print(" {0:40}{1:18}{2}".format(sensor.hostname, ipaddrs[0], sensor.last_checkin_time))
30+
31+
1932
def add_sensor_group(cb, parser, args):
2033
g = cb.create(SensorGroup)
2134

@@ -97,6 +110,10 @@ def main():
97110
del_command.add_argument("--force", help="If NAME matches multiple sensor groups, delete all matching sensor groups",
98111
action="store_true", default=False)
99112

113+
list_sensors_command = commands.add_parser("list-sensors", help="List all sensors in a sensor group")
114+
list_sensors_command.add_argument("-n", "--name", action="store", help="Sensor group name", required=False,
115+
dest="group_name")
116+
100117
args = parser.parse_args()
101118
cb = get_cb_response_object(args)
102119

@@ -106,6 +123,8 @@ def main():
106123
return add_sensor_group(cb, parser, args)
107124
elif args.command_name == "delete":
108125
return delete_sensor_group(cb, parser, args)
126+
elif args.command_name == "list-sensors":
127+
return list_sensors(cb, parser, args)
109128

110129

111130
if __name__ == "__main__":

0 commit comments

Comments
 (0)