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))