Skip to content

fix(service): Copy the libzypp caches and credentials to the installed system#1357

Merged
lslezak merged 4 commits intomasterfrom
copy_zypp_cache
Jun 19, 2024
Merged

fix(service): Copy the libzypp caches and credentials to the installed system#1357
lslezak merged 4 commits intomasterfrom
copy_zypp_cache

Conversation

@lslezak
Copy link
Copy Markdown
Contributor

@lslezak lslezak commented Jun 19, 2024

Problem

  • The libzypp caches and credentials are not copied to the installed system
  • Installing any package or even simple zypper refresh triggers full repository reload

Solution

  • Just copy the files from the Live ISO zypp repository to the installed system

Testing

  • Added a new unit test
  • Tested manually, after installation all caches are copied and zypper refresh does nothing

@coveralls
Copy link
Copy Markdown

Coverage Status

coverage: 70.921% (+0.04%) from 70.877%
when pulling ce28b91 on copy_zypp_cache
into 043f87d on master.

allow(Dir).to receive(:exist?).and_call_original

# copying the raw cache
expect(Dir).to receive(:exist?).with("/run/agama/zypp/var/cache/zypp/raw").and_return(true)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

np: Although we might consider it good enough, this test just makes sure that you call the expected methods. What about a test that actually performs the copy and checks the result?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be honest I do not like unit tests which really touch the system. For integration tests it is OK but for unit tests I'd rather avoid that if not necessary. And it actually means you are testing the Ruby functionality, not our code.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can understand that, but I would say that we are not writing unit tests "by the book" and abusing mocks can produce tests that are not that useful after all. Actually, that test knows a lot about implementation details, which looks wrong to me.

However, as said, I will not block this PR just because of that.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see your point. In such case the test just tests the mocks themselves.

But if we test the real result then we are actually testing the external code and the test is more fragile. If the code basically only calls external code and nothing else then I think it is acceptable.

@coveralls
Copy link
Copy Markdown

Coverage Status

coverage: 70.921% (+0.04%) from 70.877%
when pulling 32946d5 on copy_zypp_cache
into 043f87d on master.

system package management (gh#openSUSE/agama#1329)
- Properly delete the libzypp cache when changing the products
(gh#openSUSE/agama#1349)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK so shouldn't there be an entry for this PR too?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, it is actually a fix up for #1329 so I do not think it needs any special entry.

@lslezak lslezak merged commit 3a77a14 into master Jun 19, 2024
@lslezak lslezak deleted the copy_zypp_cache branch June 19, 2024 12:42
@imobachgs imobachgs added this to the Agama 9 milestone Jun 25, 2024
@imobachgs imobachgs mentioned this pull request Jun 27, 2024
imobachgs added a commit that referenced this pull request Jun 27, 2024
Prepare for releasing Agama 9. It includes the following pull requests:

- #1101
- #1202
- #1228
- #1231
- #1236
- #1238
- #1239
- #1240
- #1242
- #1243
- #1244
- #1245
- #1246
- #1247
- #1248
- #1249
- #1250
- #1251
- #1252
- #1253
- #1254
- #1255
- #1256
- #1257
- #1258
- #1259
- #1260
- #1261
- #1264
- #1265
- #1267
- #1268
- #1269
- #1270
- #1271
- #1272
- #1273
- #1274
- #1279
- #1280
- #1284
- #1285
- #1286
- #1287
- #1288
- #1289
- #1290
- #1291
- #1292
- #1293
- #1294
- #1295
- #1296
- #1298
- #1299
- #1300
- #1301
- #1302
- #1303
- #1304
- #1305
- #1306
- #1307
- #1308
- #1309
- #1310
- #1311
- #1312
- #1313
- #1314
- #1315
- #1316
- #1317
- #1318
- #1319
- #1320
- #1321
- #1322
- #1323
- #1324
- #1325
- #1326
- #1328
- #1329
- #1331
- #1332
- #1334
- #1338
- #1340
- #1341
- #1342
- #1343
- #1344
- #1345
- #1348
- #1349
- #1351
- #1352
- #1353
- #1354
- #1355
- #1356
- #1357
- #1358
- #1359
- #1360
- #1361
- #1362
- #1363
- #1365
- #1366
- #1367
- #1368
- #1371
- #1372
- #1374
- #1375
- #1376
- #1379
- #1380
- #1381
- #1383
- #1384
- #1385
- #1386
- #1387
- #1388
- #1389
- #1391
- #1392
- #1394
- #1395
- #1397
- #1398
- #1399
- #1400
- #1403
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants