Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
k8s-crt-dnldr
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
k8s
k8s-crt-dnldr
Commits
f5b0d159
Commit
f5b0d159
authored
Jul 28, 2020
by
Geoff Simmons
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add a modification time to the metadta in pem.Files.
parent
af58fdd3
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
60 additions
and
0 deletions
+60
-0
pem.go
pkg/pem/pem.go
+10
-0
pem_test.go
pkg/pem/pem_test.go
+50
-0
No files found.
pkg/pem/pem.go
View file @
f5b0d159
...
...
@@ -103,6 +103,7 @@ type Files struct {
Files
map
[
string
]
*
File
Base
string
Gid
int
mtime
time
.
Time
mtx
*
sync
.
RWMutex
crtGetter
*
crt
.
Getter
}
...
...
@@ -132,6 +133,7 @@ func NewFiles(base string, gid int, crtGetter *crt.Getter) (*Files, error) {
Files
:
make
(
map
[
string
]
*
File
),
mtx
:
new
(
sync
.
RWMutex
),
crtGetter
:
crtGetter
,
mtime
:
time
.
Now
(),
}
if
gid
>=
0
{
files
.
Gid
=
gid
...
...
@@ -156,6 +158,12 @@ func (pemfiles *Files) Path(pem *File) string {
return
filepath
.
Join
(
pemfiles
.
Base
,
pem
.
Basename
())
}
func
(
pemfiles
*
Files
)
ModTime
()
time
.
Time
{
pemfiles
.
mtx
.
RLock
()
defer
pemfiles
.
mtx
.
RUnlock
()
return
pemfiles
.
mtime
}
// Have returns true iff the Secret designated by namespace and name,
// and optionally uid and/or version, is present in the current
// metadata.
...
...
@@ -329,6 +337,7 @@ func (pemfiles *Files) Write(
pemfile
.
ModTime
=
info
.
ModTime
()
pemfile
.
Hash
=
sha512
.
Sum512
(
pem
)
pemfiles
.
Files
[
ns
+
"/"
+
name
]
=
pemfile
pemfiles
.
mtime
=
time
.
Now
()
return
found
,
valid
,
nil
}
...
...
@@ -359,6 +368,7 @@ func (pemfiles *Files) Delete(namespace, name string) (bool, error) {
return
!
os
.
IsNotExist
(
err
),
err
}
delete
(
pemfiles
.
Files
,
key
)
pemfiles
.
mtime
=
time
.
Now
()
return
true
,
nil
}
...
...
pkg/pem/pem_test.go
View file @
f5b0d159
...
...
@@ -480,6 +480,7 @@ func TestWrite(t *testing.T) {
t
.
Fatalf
(
"NewFiles(): %v"
,
err
)
}
b4
:=
files
.
ModTime
()
found
,
valid
,
err
:=
files
.
Write
(
"namespace"
,
"name"
,
"73e880f3-d7ca-447f-b95e-88f220d4820e"
,
"654321"
)
if
!
found
{
...
...
@@ -495,6 +496,10 @@ func TestWrite(t *testing.T) {
"73e880f3-d7ca-447f-b95e-88f220d4820e"
,
"654321"
)
{
t
.
Error
(
"Check() after Write(): got false want true"
)
}
if
!
files
.
ModTime
()
.
After
(
b4
)
{
t
.
Errorf
(
"ModTime()=%s after Write() not after previous=%s"
,
files
.
ModTime
(),
b4
)
}
// repeat the checks from Check() manually, diagnoses the error
// if Check() returned false.
...
...
@@ -551,6 +556,7 @@ func TestWrite(t *testing.T) {
t
.
Error
(
"File contents hash mismatch after Write()"
)
}
b4
=
files
.
ModTime
()
found
,
valid
,
err
=
files
.
Write
(
"namespace"
,
"name"
,
""
,
""
)
if
!
found
{
t
.
Error
(
"Write() found: got false want true"
)
...
...
@@ -565,6 +571,10 @@ func TestWrite(t *testing.T) {
"73e880f3-d7ca-447f-b95e-88f220d4820e"
,
"654321"
)
{
t
.
Error
(
"Check() after Write(): got false want true"
)
}
if
!
files
.
ModTime
()
.
After
(
b4
)
{
t
.
Errorf
(
"ModTime()=%s after Write() not after previous=%s"
,
files
.
ModTime
(),
b4
)
}
found
,
valid
,
err
=
files
.
Write
(
"namespace"
,
"name"
,
"73e880f3-d7ca-447f-b95e-88f220d4820e"
,
""
)
...
...
@@ -597,11 +607,17 @@ func TestWrite(t *testing.T) {
t
.
Error
(
"Check() after Write(): got false want true"
)
}
b4
=
files
.
ModTime
()
found
,
valid
,
err
=
files
.
Write
(
"foo"
,
"bar"
,
""
,
""
)
if
found
{
t
.
Error
(
"Write() found: got true want false"
)
}
if
!
files
.
ModTime
()
.
Equal
(
b4
)
{
t
.
Errorf
(
"ModTime() after Write() got %s want %s"
,
files
.
ModTime
(),
b4
)
}
b4
=
files
.
ModTime
()
found
,
valid
,
err
=
files
.
Write
(
"missing"
,
"crtField"
,
""
,
""
)
if
!
found
{
t
.
Error
(
"Write() found: got false want true"
)
...
...
@@ -615,7 +631,12 @@ func TestWrite(t *testing.T) {
t
.
Errorf
(
"err msg: want
\"
required field missing
\"
got %s"
,
err
.
Error
())
}
if
!
files
.
ModTime
()
.
Equal
(
b4
)
{
t
.
Errorf
(
"ModTime() after Write() got %s want %s"
,
files
.
ModTime
(),
b4
)
}
b4
=
files
.
ModTime
()
found
,
valid
,
err
=
files
.
Write
(
"missing"
,
"keyField"
,
""
,
""
)
if
!
found
{
t
.
Error
(
"Write() found: got false want true"
)
...
...
@@ -629,7 +650,12 @@ func TestWrite(t *testing.T) {
t
.
Errorf
(
"err msg: want
\"
required field missing
\"
got %s"
,
err
.
Error
())
}
if
!
files
.
ModTime
()
.
Equal
(
b4
)
{
t
.
Errorf
(
"ModTime() after Write() got %s want %s"
,
files
.
ModTime
(),
b4
)
}
b4
=
files
.
ModTime
()
found
,
valid
,
err
=
files
.
Write
(
"empty"
,
"crtField"
,
""
,
""
)
if
!
found
{
t
.
Error
(
"Write() found: got false want true"
)
...
...
@@ -643,7 +669,12 @@ func TestWrite(t *testing.T) {
t
.
Errorf
(
"err msg: want
\"
required field empty
\"
got %s"
,
err
.
Error
())
}
if
!
files
.
ModTime
()
.
Equal
(
b4
)
{
t
.
Errorf
(
"ModTime() after Write() got %s want %s"
,
files
.
ModTime
(),
b4
)
}
b4
=
files
.
ModTime
()
found
,
valid
,
err
=
files
.
Write
(
"empty"
,
"keyField"
,
""
,
""
)
if
!
found
{
t
.
Error
(
"Write() found: got false want true"
)
...
...
@@ -657,7 +688,12 @@ func TestWrite(t *testing.T) {
t
.
Errorf
(
"err msg: want
\"
required field empty
\"
got %s"
,
err
.
Error
())
}
if
!
files
.
ModTime
()
.
Equal
(
b4
)
{
t
.
Errorf
(
"ModTime() after Write() got %s want %s"
,
files
.
ModTime
(),
b4
)
}
b4
=
files
.
ModTime
()
found
,
valid
,
err
=
files
.
Write
(
"invalid"
,
"typeField"
,
""
,
""
)
if
!
found
{
t
.
Error
(
"Write() found: got false want true"
)
...
...
@@ -671,6 +707,10 @@ func TestWrite(t *testing.T) {
t
.
Errorf
(
"err msg: want
\"
invalid type value
\"
got %s"
,
err
.
Error
())
}
if
!
files
.
ModTime
()
.
Equal
(
b4
)
{
t
.
Errorf
(
"ModTime() after Write() got %s want %s"
,
files
.
ModTime
(),
b4
)
}
}
func
TestDelete
(
t
*
testing
.
T
)
{
...
...
@@ -725,6 +765,7 @@ func TestDelete(t *testing.T) {
file
.
ModTime
=
info
.
ModTime
()
file
.
Hash
=
sha512
.
Sum512
(
bytes
)
b4
:=
files
.
ModTime
()
existed
,
err
:=
files
.
Delete
(
"test"
,
"deleteme"
)
if
!
existed
{
t
.
Error
(
"Deleted() existed: got false want true"
)
...
...
@@ -743,7 +784,12 @@ func TestDelete(t *testing.T) {
t
.
Errorf
(
"os.Stat(%s) error: got %+v want os.IsNotExist()=true"
,
path
,
err
)
}
if
!
files
.
ModTime
()
.
After
(
b4
)
{
t
.
Errorf
(
"ModTime()=%s after Delete() not later than before=%s"
,
files
.
ModTime
(),
b4
)
}
b4
=
files
.
ModTime
()
existed
,
err
=
files
.
Delete
(
"doesnot"
,
"exist"
)
if
existed
{
t
.
Error
(
"Delete() existed: got true want false"
)
...
...
@@ -751,6 +797,10 @@ func TestDelete(t *testing.T) {
if
err
!=
nil
{
t
.
Errorf
(
"Delete() error: got %+v want nil"
,
err
)
}
if
!
files
.
ModTime
()
.
Equal
(
b4
)
{
t
.
Errorf
(
"ModTime() after Delete() got %s want %s"
,
files
.
ModTime
(),
b4
)
}
// file entry is in the map, but the file does not exist
files
.
Files
[
"test/deleteme"
]
=
file
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment