Calculate properly required/freed size in transactions.
This commit is contained in:
parent
ff0b9b9b59
commit
1a73b93d63
@ -185,7 +185,7 @@ show_transaction_sizes(struct transaction *trans)
|
||||
"%s\n", strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
printf("Total removed size:\t%6s\n", size);
|
||||
printf("Total freed size:\t%6s\n", size);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
|
@ -75,7 +75,9 @@ compute_transaction_stats(prop_dictionary_t transd)
|
||||
* Count number of pkgs to be removed, configured,
|
||||
* installed and updated.
|
||||
*/
|
||||
prop_dictionary_get_cstring_nocopy(obj, "pkgname", &pkgname);
|
||||
prop_dictionary_get_cstring_nocopy(obj, "transaction", &tract);
|
||||
|
||||
if (strcmp(tract, "install") == 0)
|
||||
inst_pkgcnt++;
|
||||
else if (strcmp(tract, "update") == 0)
|
||||
@ -84,38 +86,7 @@ compute_transaction_stats(prop_dictionary_t transd)
|
||||
cf_pkgcnt++;
|
||||
else if (strcmp(tract, "remove") == 0)
|
||||
rm_pkgcnt++;
|
||||
}
|
||||
|
||||
if (inst_pkgcnt &&
|
||||
!prop_dictionary_set_uint32(transd, "total-install-pkgs",
|
||||
inst_pkgcnt)) {
|
||||
rv = EINVAL;
|
||||
goto out;
|
||||
}
|
||||
if (up_pkgcnt &&
|
||||
!prop_dictionary_set_uint32(transd, "total-update-pkgs",
|
||||
up_pkgcnt)) {
|
||||
rv = EINVAL;
|
||||
goto out;
|
||||
}
|
||||
if (cf_pkgcnt &&
|
||||
!prop_dictionary_set_uint32(transd, "total-configure-pkgs",
|
||||
cf_pkgcnt)) {
|
||||
rv = EINVAL;
|
||||
goto out;
|
||||
}
|
||||
if (rm_pkgcnt &&
|
||||
!prop_dictionary_set_uint32(transd, "total-remove-pkgs",
|
||||
rm_pkgcnt)) {
|
||||
rv = EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
prop_object_iterator_reset(iter);
|
||||
|
||||
while ((obj = prop_object_iterator_next(iter)) != NULL) {
|
||||
prop_dictionary_get_cstring_nocopy(obj, "pkgname", &pkgname);
|
||||
prop_dictionary_get_cstring_nocopy(obj, "transaction", &tract);
|
||||
/*
|
||||
* Only process pkgs to be installed or updated.
|
||||
*/
|
||||
@ -146,9 +117,39 @@ compute_transaction_stats(prop_dictionary_t transd)
|
||||
dlsize += tsize;
|
||||
}
|
||||
}
|
||||
/* installed - removed */
|
||||
if (rmsize > 0 && instsize > 0)
|
||||
|
||||
if (inst_pkgcnt &&
|
||||
!prop_dictionary_set_uint32(transd, "total-install-pkgs",
|
||||
inst_pkgcnt)) {
|
||||
rv = EINVAL;
|
||||
goto out;
|
||||
}
|
||||
if (up_pkgcnt &&
|
||||
!prop_dictionary_set_uint32(transd, "total-update-pkgs",
|
||||
up_pkgcnt)) {
|
||||
rv = EINVAL;
|
||||
goto out;
|
||||
}
|
||||
if (cf_pkgcnt &&
|
||||
!prop_dictionary_set_uint32(transd, "total-configure-pkgs",
|
||||
cf_pkgcnt)) {
|
||||
rv = EINVAL;
|
||||
goto out;
|
||||
}
|
||||
if (rm_pkgcnt &&
|
||||
!prop_dictionary_set_uint32(transd, "total-remove-pkgs",
|
||||
rm_pkgcnt)) {
|
||||
rv = EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (instsize > rmsize) {
|
||||
instsize -= rmsize;
|
||||
rmsize = 0;
|
||||
} else if (rmsize > instsize) {
|
||||
rmsize -= instsize;
|
||||
instsize = 0;
|
||||
}
|
||||
/*
|
||||
* Add object in transaction dictionary with total installed
|
||||
* size that it will take.
|
||||
|
Loading…
Reference in New Issue
Block a user