Skip to content
This repository was archived by the owner on Mar 27, 2024. It is now read-only.

Enhances size output #34

Merged
merged 2 commits into from
Aug 21, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion differs/aptDiff.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"bufio"
"os"
"path/filepath"
"strconv"
"strings"

"github.com/GoogleCloudPlatform/container-diff/utils"
Expand Down Expand Up @@ -81,7 +82,15 @@ func parseLine(text string, currPackage string, packages map[string]utils.Packag
if !ok {
currPackageInfo = utils.PackageInfo{}
}
currPackageInfo.Size = value
var size int64
var err error
size, err = strconv.ParseInt(value, 10, 64)
if err != nil {
glog.Errorf("Could not get size for %s: %s", currPackage, err)
size = -1
}
// Installed-Size is in KB, so we convert it to bytes to keep consistent with the tool's size units
currPackageInfo.Size = size * 1024
packages[currPackage] = currPackageInfo
return currPackage
default:
Expand Down
8 changes: 4 additions & 4 deletions differs/aptDiff_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,19 +49,19 @@ func TestParseLine(t *testing.T) {
},
{
descrip: "Size line",
line: "Installed-Size: 12floz",
line: "Installed-Size: 12",
packages: map[string]utils.PackageInfo{},
currPackage: "La-Croix",
expPackage: "La-Croix",
expected: map[string]utils.PackageInfo{"La-Croix": {Size: "12floz"}},
expected: map[string]utils.PackageInfo{"La-Croix": {Size: 12288}},
},
{
descrip: "Pre-existing PackageInfo struct",
line: "Installed-Size: 12floz",
line: "Installed-Size: 12",
packages: map[string]utils.PackageInfo{"La-Croix": {Version: "Lime"}},
currPackage: "La-Croix",
expPackage: "La-Croix",
expected: map[string]utils.PackageInfo{"La-Croix": {Version: "Lime", Size: "12floz"}},
expected: map[string]utils.PackageInfo{"La-Croix": {Version: "Lime", Size: 12288}},
},
}

Expand Down
4 changes: 1 addition & 3 deletions differs/nodeDiff.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"io/ioutil"
"os"
"path/filepath"
"strconv"
"strings"

"github.com/GoogleCloudPlatform/container-diff/utils"
Expand Down Expand Up @@ -55,8 +54,7 @@ func (a NodeAnalyzer) getPackages(image utils.Image) (map[string]map[string]util
var currInfo utils.PackageInfo
currInfo.Version = packageJSON.Version
packagePath := strings.TrimSuffix(currPackage, "package.json")
size := utils.GetSize(packagePath)
currInfo.Size = strconv.FormatInt(size, 10)
currInfo.Size = utils.GetSize(packagePath)
mapPath := strings.Replace(packagePath, path, "", 1)
// Check if other package version already recorded
if _, ok := packages[packageJSON.Name]; !ok {
Expand Down
12 changes: 6 additions & 6 deletions differs/nodeDiff_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,17 @@ func TestGetNodePackages(t *testing.T) {
descrip: "all packages in one layer",
path: "testDirs/packageOne",
expected: map[string]map[string]utils.PackageInfo{
"pac1": {"/node_modules/pac1/": {Version: "1.0", Size: "41"}},
"pac2": {"/usr/local/lib/node_modules/pac2/": {Version: "2.0", Size: "41"}},
"pac3": {"/node_modules/pac3/": {Version: "3.0", Size: "41"}}},
"pac1": {"/node_modules/pac1/": {Version: "1.0", Size: 41}},
"pac2": {"/usr/local/lib/node_modules/pac2/": {Version: "2.0", Size: 41}},
"pac3": {"/node_modules/pac3/": {Version: "3.0", Size: 41}}},
},
{
descrip: "Multi version packages",
path: "testDirs/packageMulti",
expected: map[string]map[string]utils.PackageInfo{
"pac1": {"/node_modules/pac1/": {Version: "1.0", Size: "41"}},
"pac2": {"/node_modules/pac2/": {Version: "2.0", Size: "41"},
"/usr/local/lib/node_modules/pac2/": {Version: "3.0", Size: "41"}}},
"pac1": {"/node_modules/pac1/": {Version: "1.0", Size: 41}},
"pac2": {"/node_modules/pac2/": {Version: "2.0", Size: 41},
"/usr/local/lib/node_modules/pac2/": {Version: "3.0", Size: 41}}},
},
}

Expand Down
8 changes: 3 additions & 5 deletions differs/pipDiff.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"path/filepath"
"reflect"
"regexp"
"strconv"
"strings"

"github.com/GoogleCloudPlatform/container-diff/utils"
Expand Down Expand Up @@ -66,13 +65,12 @@ func (a PipAnalyzer) getPackages(image utils.Image) (map[string]map[string]utils

// Retrieves size for actual package/script corresponding to each dist-info metadata directory
// by taking the file entry alphabetically before it (for a package) or after it (for a script)
var size string
var size int64
if i-1 >= 0 && contents[i-1].Name() == packageName {
packagePath := filepath.Join(pythonPath, packageName)
intSize := utils.GetSize(packagePath)
size = strconv.FormatInt(intSize, 10)
size = utils.GetSize(packagePath)
} else if i+1 < len(contents) && contents[i+1].Name() == packageName+".py" {
size = strconv.FormatInt(contents[i+1].Size(), 10)
size = contents[i+1].Size()

} else {
glog.Errorf("Could not find Python package %s for corresponding metadata info", packageName)
Expand Down
34 changes: 17 additions & 17 deletions differs/pipDiff_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,13 +78,13 @@ func TestGetPythonPackages(t *testing.T) {
},
expectedPackages: map[string]map[string]utils.PackageInfo{
"packageone": {
"/usr/local/lib/python3.6/site-packages": {Version: "3.6.9", Size: "0"},
"/usr/local/lib/python2.7/site-packages": {Version: "0.1.1", Size: "0"},
"/usr/local/lib/python3.6/site-packages": {Version: "3.6.9", Size: 0},
"/usr/local/lib/python2.7/site-packages": {Version: "0.1.1", Size: 0},
},
"packagetwo": {"/usr/local/lib/python3.6/site-packages": {Version: "4.6.2", Size: "0"}},
"script1": {"/usr/local/lib/python3.6/site-packages": {Version: "1.0", Size: "0"}},
"script2": {"/usr/local/lib/python3.6/site-packages": {Version: "2.0", Size: "0"}},
"script3": {"/usr/local/lib/python2.7/site-packages": {Version: "3.0", Size: "0"}},
"packagetwo": {"/usr/local/lib/python3.6/site-packages": {Version: "4.6.2", Size: 0}},
"script1": {"/usr/local/lib/python3.6/site-packages": {Version: "1.0", Size: 0}},
"script2": {"/usr/local/lib/python3.6/site-packages": {Version: "2.0", Size: 0}},
"script3": {"/usr/local/lib/python2.7/site-packages": {Version: "3.0", Size: 0}},
},
},
{
Expand All @@ -93,10 +93,10 @@ func TestGetPythonPackages(t *testing.T) {
FSPath: "testDirs/pipTests/packagesSingleVersion",
},
expectedPackages: map[string]map[string]utils.PackageInfo{
"packageone": {"/usr/local/lib/python3.6/site-packages": {Version: "3.6.9", Size: "0"}},
"packagetwo": {"/usr/local/lib/python3.6/site-packages": {Version: "4.6.2", Size: "0"}},
"script1": {"/usr/local/lib/python3.6/site-packages": {Version: "1.0", Size: "0"}},
"script2": {"/usr/local/lib/python3.6/site-packages": {Version: "2.0", Size: "0"}},
"packageone": {"/usr/local/lib/python3.6/site-packages": {Version: "3.6.9", Size: 0}},
"packagetwo": {"/usr/local/lib/python3.6/site-packages": {Version: "4.6.2", Size: 0}},
"script1": {"/usr/local/lib/python3.6/site-packages": {Version: "1.0", Size: 0}},
"script2": {"/usr/local/lib/python3.6/site-packages": {Version: "2.0", Size: 0}},
},
},
{
Expand All @@ -110,11 +110,11 @@ func TestGetPythonPackages(t *testing.T) {
},
},
expectedPackages: map[string]map[string]utils.PackageInfo{
"packageone": {"/usr/local/lib/python3.6/site-packages": {Version: "3.6.9", Size: "0"}},
"packagetwo": {"/usr/local/lib/python3.6/site-packages": {Version: "4.6.2", Size: "0"}},
"packagefive": {"/pythonPath2/subdir": {Version: "3.6.9", Size: "0"}},
"packagesix": {"/pythonPath1": {Version: "3.6.9", Size: "0"}},
"packageseven": {"/pythonPath1": {Version: "4.6.2", Size: "0"}},
"packageone": {"/usr/local/lib/python3.6/site-packages": {Version: "3.6.9", Size: 0}},
"packagetwo": {"/usr/local/lib/python3.6/site-packages": {Version: "4.6.2", Size: 0}},
"packagefive": {"/pythonPath2/subdir": {Version: "3.6.9", Size: 0}},
"packagesix": {"/pythonPath1": {Version: "3.6.9", Size: 0}},
"packageseven": {"/pythonPath1": {Version: "4.6.2", Size: 0}},
},
},
{
Expand All @@ -128,8 +128,8 @@ func TestGetPythonPackages(t *testing.T) {
},
},
expectedPackages: map[string]map[string]utils.PackageInfo{
"packageone": {"/usr/local/lib/python3.6/site-packages": {Version: "3.6.9", Size: "0"}},
"packagetwo": {"/usr/local/lib/python3.6/site-packages": {Version: "4.6.2", Size: "0"}},
"packageone": {"/usr/local/lib/python3.6/site-packages": {Version: "3.6.9", Size: 0}},
"packagetwo": {"/usr/local/lib/python3.6/site-packages": {Version: "4.6.2", Size: 0}},
},
},
}
Expand Down
Loading