|
42 | 42 | db_get_keys, db_insert_report, db_get_recent_results2, db_patch_approval2, db_get_report, |
43 | 43 | db_ensure_schema, db_get_apikeys, db_update_apikey, db_filter_apikeys, db_clear_delegates, |
44 | 44 | db_find_subjects, db_insert_result2, db_get_relevant_results2, db_add_delegate, db_get_group, |
| 45 | + db_filter_accounts, |
45 | 46 | ) |
46 | 47 |
|
47 | 48 |
|
@@ -225,17 +226,20 @@ def import_bootstrap(bootstrap_path, conn): |
225 | 226 | if not accounts and not subjects: |
226 | 227 | return |
227 | 228 | with conn.cursor() as cur: |
| 229 | + accountids = [] |
228 | 230 | for account in accounts: |
229 | 231 | roles = sum(ROLES[r] for r in account.get('roles', ())) |
230 | 232 | acc_record = {'subject': account['subject'], 'roles': roles, 'group': account.get('group')} |
231 | 233 | accountid = db_update_account(cur, acc_record) |
| 234 | + accountids.append(accountid) |
232 | 235 | db_clear_delegates(cur, accountid) |
233 | 236 | for delegate in account.get('delegates', ()): |
234 | 237 | db_add_delegate(cur, accountid, delegate) |
235 | 238 | keyids = set(db_update_apikey(cur, accountid, h) for h in account.get("api_keys", ())) |
236 | 239 | db_filter_apikeys(cur, accountid, lambda keyid, *_: keyid in keyids) |
237 | 240 | keyids = set(db_update_publickey(cur, accountid, key) for key in account.get("keys", ())) |
238 | 241 | db_filter_publickeys(cur, accountid, lambda keyid, *_: keyid in keyids) |
| 242 | + db_filter_accounts(cur, lambda accountid, *_: accountid in accountids) |
239 | 243 | conn.commit() |
240 | 244 |
|
241 | 245 |
|
|
0 commit comments