Index: tools/telemetry/telemetry/internal/forwarders/__init__.py |
diff --git a/tools/telemetry/telemetry/internal/forwarders/__init__.py b/tools/telemetry/telemetry/internal/forwarders/__init__.py |
index e05fb3b558b10e38be479bc4d25c90933a8df000..ecaa4a5410e87b9ed88fb8a67716d649f9119d82 100644 |
--- a/tools/telemetry/telemetry/internal/forwarders/__init__.py |
+++ b/tools/telemetry/telemetry/internal/forwarders/__init__.py |
@@ -6,7 +6,27 @@ import collections |
PortPair = collections.namedtuple('PortPair', ['local_port', 'remote_port']) |
-PortPairs = collections.namedtuple('PortPairs', ['http', 'https', 'dns']) |
+PortSet = collections.namedtuple('PortSet', ['http', 'https', 'dns']) |
+ |
+ |
+class PortPairs(collections.namedtuple('PortPairs', ['http', 'https', 'dns'])): |
+ __slots__ = () |
+ |
+ @classmethod |
+ def Make(cls, http, https, dns=None): |
+ """Allow to easily create a PortPairs object from regular tuple pairs.""" |
+ return cls(http=PortPair(*http), https=PortPair(*https), |
+ dns=PortPair(*dns) if dns else None) |
+ |
+ @property |
+ def local_ports(self): |
+ ports = [pair.local_port if pair is not None else None for pair in self] |
+ return PortSet(*ports) |
+ |
+ @property |
+ def remote_ports(self): |
+ ports = [pair.remote_port if pair is not None else None for pair in self] |
+ return PortSet(*ports) |
class ForwarderFactory(object): |