|
6 | 6 | "path/filepath"
|
7 | 7 | "time"
|
8 | 8 |
|
9 |
| - bolt "go.etcd.io/bbolt" |
10 |
| - |
11 | 9 | "github.com/cashapp/hermit/errors"
|
12 | 10 | )
|
13 | 11 |
|
@@ -41,7 +39,7 @@ func (d *DAO) Dump(w io.Writer) error {
|
41 | 39 | func (d *DAO) GetPackage(pkgRef string) (*Package, error) {
|
42 | 40 | r, err := os.Open(d.metadataPath(pkgRef))
|
43 | 41 | if os.IsNotExist(err) {
|
44 |
| - return d.getPackageFromBBolt(pkgRef) |
| 42 | + return nil, nil |
45 | 43 | }
|
46 | 44 | if err != nil {
|
47 | 45 | return nil, errors.WithStack(err)
|
@@ -77,82 +75,3 @@ func (d *DAO) DeletePackage(pkgRef string) error {
|
77 | 75 | func (d *DAO) metadataPath(pkgRef string) string {
|
78 | 76 | return filepath.Join(d.metadataDir, pkgRef+".etag")
|
79 | 77 | }
|
80 |
| - |
81 |
| -// TODO: Remove this BBolt code. |
82 |
| - |
83 |
| -func (d *DAO) db(readonly bool) (*bolt.DB, error) { |
84 |
| - path := filepath.Join(d.stateDir, "hermit.bolt.db") |
85 |
| - db, err := bolt.Open(path, 0600, &bolt.Options{ |
86 |
| - Timeout: 5 * time.Second, |
87 |
| - ReadOnly: readonly, |
88 |
| - }) |
89 |
| - if err != nil { |
90 |
| - return nil, errors.Wrapf(err, "failed to open Hermit state database: %s", path) |
91 |
| - } |
92 |
| - return db, nil |
93 |
| -} |
94 |
| - |
95 |
| -func (d *DAO) view(fn func(tx *bolt.Tx) error) error { |
96 |
| - db, err := d.db(true) |
97 |
| - if err != nil { |
98 |
| - return errors.WithStack(err) |
99 |
| - } |
100 |
| - defer db.Close() |
101 |
| - |
102 |
| - return errors.WithStack(db.View(fn)) |
103 |
| -} |
104 |
| - |
105 |
| -func (d *DAO) getPackageFromBBolt(name string) (*Package, error) { |
106 |
| - var pkg *Package |
107 |
| - err := d.view(func(tx *bolt.Tx) error { |
108 |
| - b := tx.Bucket([]byte(name)) |
109 |
| - pkg = packageAt(b) |
110 |
| - return nil |
111 |
| - }) |
112 |
| - if err != nil { |
113 |
| - return nil, errors.WithStack(err) |
114 |
| - } |
115 |
| - return pkg, nil |
116 |
| -} |
117 |
| - |
118 |
| -const ( |
119 |
| - updateCheckedAtKey = "updateCheckedAt" |
120 |
| - eTagKey = "etag" |
121 |
| - timeformat = time.RFC3339 |
122 |
| -) |
123 |
| - |
124 |
| -func stringAt(bucket *bolt.Bucket, name string) string { |
125 |
| - if bucket == nil { |
126 |
| - return "" |
127 |
| - } |
128 |
| - bytes := bucket.Get([]byte(name)) |
129 |
| - if bytes == nil { |
130 |
| - return "" |
131 |
| - } |
132 |
| - return string(bytes) |
133 |
| -} |
134 |
| - |
135 |
| -func timeAt(bucket *bolt.Bucket, name string) time.Time { |
136 |
| - if bucket == nil { |
137 |
| - return time.Time{} |
138 |
| - } |
139 |
| - bytes := bucket.Get([]byte(name)) |
140 |
| - if bytes == nil { |
141 |
| - return time.Time{} |
142 |
| - } |
143 |
| - t, err := time.Parse(timeformat, string(bytes)) |
144 |
| - if err != nil { |
145 |
| - return time.Time{} |
146 |
| - } |
147 |
| - return t |
148 |
| -} |
149 |
| - |
150 |
| -func packageAt(b *bolt.Bucket) *Package { |
151 |
| - if b == nil { |
152 |
| - return nil |
153 |
| - } |
154 |
| - return &Package{ |
155 |
| - Etag: stringAt(b, eTagKey), |
156 |
| - UpdateCheckedAt: timeAt(b, updateCheckedAtKey), |
157 |
| - } |
158 |
| -} |
0 commit comments