@cryptotaxi247 / infra / commits / 8b6e7161

importer: drop support for the host key being submitted to the event API without a wrapping document

Graham Christensen committed Jun 3, 2022 at 10:35 UTC 8b6e71614533e6ad4a1f6bc40bac17e67999e7a6
1 file changed +20 -48
hydra-packet-importer/import.py
+20 -48
@@ -27,7 +27,7 @@ class Builder(TypedDict):
27 hostname: str
28 address: str
29 type: str
30 - remote_builder_info: Union[RemoteBuilder, str]
30 + remote_builder_info: RemoteBuilder
31
32
33 class HostKey(TypedDict):
@@ -96,7 +96,7 @@ def get_builders(manager: Any) -> List[Builder]:
96 return builders
97
98
99 -def get_remote_builder_info(manager, device_id: str) -> Union[RemoteBuilder, str, None]:
99 +def get_remote_builder_info(manager, device_id: str) -> Optional[RemoteBuilder]:
100 # ... 50 is probably enough.
101 try:
102 events_url = "devices/{}/events?per_page=50".format(device_id)
@@ -122,13 +122,9 @@ def get_remote_builder_info(manager, device_id: str) -> Union[RemoteBuilder, str
122 # will return None because we never reach this message.
123 if host_key is not None:
124 key = strip_ssh_key_comment(host_key["key"])
125 - if key is not None:
126 - if metadata is not None:
127 - return {"metadata": metadata, "ssh_key": key}
128 - else:
129 - return key
130 - else:
131 - return ssh_key
125 + if key is not None and metadata is not None:
126 + return {"metadata": metadata, "ssh_key": key}
127 + return None
128 if event["type"] == "user.1001":
129 try:
130 host_keys: List[HostKey] = [
@@ -136,7 +132,7 @@ def get_remote_builder_info(manager, device_id: str) -> Union[RemoteBuilder, str
132 ]
133 host_key = host_keys[0]
134 except:
139 - ssh_key = strip_ssh_key_comment(event["body"])
135 + pass
136 if event["type"] == "user.1002":
137 metadata = json.loads(event["body"])
138
@@ -181,45 +177,21 @@ def main(config: Dict[str, Any]) -> None:
177 lambda key, default: default if not lookup(key) else lookup(key)
178 )
179
184 - if isinstance(builder_info, str):
185 - key = builder_info
186 - # root@address system,list /var/lib/ssh.key maxJobs speedFactor feature,list mandatory,features public-host-key
187 - rows.append(
188 - " ".join(
189 - [
190 - "{user}@{host}".format(
191 - user=lookup("user"), host=lookup("address")
192 - ),
193 - ",".join(lookup("system_types")),
194 - str(lookup("ssh_key")),
195 - str(lookup("max_jobs")),
196 - str(lookup("speed_factor")),
197 - ",".join(lookup_default("features", ["-"])),
198 - ",".join(lookup_default("mandatory_features", ["-"])),
199 - base64.b64encode(key.encode()).decode("utf-8"),
200 - ]
201 - )
202 - )
203 - else:
204 - # root@address system,list /var/lib/ssh.key maxJobs speedFactor feature,list mandatory,features public-host-key
205 - rows.append(
206 - " ".join(
207 - [
208 - "{user}@{host}".format(
209 - user=lookup("user"), host=lookup("address")
210 - ),
211 - ",".join(builder_info["metadata"]["system_types"]),
212 - str(lookup("ssh_key")),
213 - str(builder_info["metadata"]["max_jobs"]),
214 - str(lookup("speed_factor")),
215 - ",".join(builder_info["metadata"]["features"]),
216 - ",".join(lookup_default("mandatory_features", ["-"])),
217 - base64.b64encode(builder_info["ssh_key"].encode()).decode(
218 - "utf-8"
219 - ),
220 - ]
221 - )
180 + # root@address system,list /var/lib/ssh.key maxJobs speedFactor feature,list mandatory,features public-host-key
181 + rows.append(
182 + " ".join(
183 + [
184 + "{user}@{host}".format(user=lookup("user"), host=lookup("address")),
185 + ",".join(builder_info["metadata"]["system_types"]),
186 + str(lookup("ssh_key")),
187 + str(builder_info["metadata"]["max_jobs"]),
188 + str(lookup("speed_factor")),
189 + ",".join(builder_info["metadata"]["features"]),
190 + ",".join(lookup_default("mandatory_features", ["-"])),
191 + base64.b64encode(builder_info["ssh_key"].encode()).decode("utf-8"),
192 + ]
193 )
194 + )
195
196 debug("# {} / {}".format(len(rows), found))
197 print("\n".join(rows))