Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nexpie-grafana-theme
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Registry
Registry
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kornkitt Poolsup
nexpie-grafana-theme
Commits
464f3f73
Unverified
Commit
464f3f73
authored
Sep 27, 2018
by
Carl Bergquist
Committed by
GitHub
Sep 27, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #13360 from sapcc/symlinks
resolve symlink on each run
parents
dbec2ded
1355c00c
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
32 additions
and
26 deletions
+32
-26
pkg/services/provisioning/dashboards/file_reader.go
+26
-22
pkg/services/provisioning/dashboards/file_reader_linux_test.go
+4
-3
pkg/services/provisioning/dashboards/file_reader_test.go
+2
-1
No files found.
pkg/services/provisioning/dashboards/file_reader.go
View file @
464f3f73
...
...
@@ -43,26 +43,6 @@ func NewDashboardFileReader(cfg *DashboardsAsConfig, log log.Logger) (*fileReade
log
.
Warn
(
"[Deprecated] The folder property is deprecated. Please use path instead."
)
}
if
_
,
err
:=
os
.
Stat
(
path
);
os
.
IsNotExist
(
err
)
{
log
.
Error
(
"Cannot read directory"
,
"error"
,
err
)
}
copy
:=
path
path
,
err
:=
filepath
.
Abs
(
path
)
if
err
!=
nil
{
log
.
Error
(
"Could not create absolute path "
,
"path"
,
path
)
}
path
,
err
=
filepath
.
EvalSymlinks
(
path
)
if
err
!=
nil
{
log
.
Error
(
"Failed to read content of symlinked path: %s"
,
path
)
}
if
path
==
""
{
path
=
copy
log
.
Info
(
"falling back to original path due to EvalSymlink/Abs failure"
)
}
return
&
fileReader
{
Cfg
:
cfg
,
Path
:
path
,
...
...
@@ -99,7 +79,8 @@ func (fr *fileReader) ReadAndListen(ctx context.Context) error {
}
func
(
fr
*
fileReader
)
startWalkingDisk
()
error
{
if
_
,
err
:=
os
.
Stat
(
fr
.
Path
);
err
!=
nil
{
resolvedPath
:=
fr
.
resolvePath
(
fr
.
Path
)
if
_
,
err
:=
os
.
Stat
(
resolvedPath
);
err
!=
nil
{
if
os
.
IsNotExist
(
err
)
{
return
err
}
...
...
@@ -116,7 +97,7 @@ func (fr *fileReader) startWalkingDisk() error {
}
filesFoundOnDisk
:=
map
[
string
]
os
.
FileInfo
{}
err
=
filepath
.
Walk
(
fr
.
Path
,
createWalkFn
(
filesFoundOnDisk
))
err
=
filepath
.
Walk
(
resolved
Path
,
createWalkFn
(
filesFoundOnDisk
))
if
err
!=
nil
{
return
err
}
...
...
@@ -344,6 +325,29 @@ func (fr *fileReader) readDashboardFromFile(path string, lastModified time.Time,
},
nil
}
func
(
fr
*
fileReader
)
resolvePath
(
path
string
)
string
{
if
_
,
err
:=
os
.
Stat
(
path
);
os
.
IsNotExist
(
err
)
{
fr
.
log
.
Error
(
"Cannot read directory"
,
"error"
,
err
)
}
copy
:=
path
path
,
err
:=
filepath
.
Abs
(
path
)
if
err
!=
nil
{
fr
.
log
.
Error
(
"Could not create absolute path "
,
"path"
,
path
)
}
path
,
err
=
filepath
.
EvalSymlinks
(
path
)
if
err
!=
nil
{
fr
.
log
.
Error
(
"Failed to read content of symlinked path: %s"
,
path
)
}
if
path
==
""
{
path
=
copy
fr
.
log
.
Info
(
"falling back to original path due to EvalSymlink/Abs failure"
)
}
return
path
}
type
provisioningMetadata
struct
{
uid
string
title
string
...
...
pkg/services/provisioning/dashboards/file_reader_linux_test.go
View file @
464f3f73
...
...
@@ -30,10 +30,11 @@ func TestProvsionedSymlinkedFolder(t *testing.T) {
want
,
err
:=
filepath
.
Abs
(
containingId
)
if
err
!=
nil
{
t
.
Errorf
(
"expected err to be nil
l
"
)
t
.
Errorf
(
"expected err to be nil"
)
}
if
reader
.
Path
!=
want
{
t
.
Errorf
(
"got %s want %s"
,
reader
.
Path
,
want
)
resolvedPath
:=
reader
.
resolvePath
(
reader
.
Path
)
if
resolvedPath
!=
want
{
t
.
Errorf
(
"got %s want %s"
,
resolvedPath
,
want
)
}
}
pkg/services/provisioning/dashboards/file_reader_test.go
View file @
464f3f73
...
...
@@ -67,7 +67,8 @@ func TestCreatingNewDashboardFileReader(t *testing.T) {
reader
,
err
:=
NewDashboardFileReader
(
cfg
,
log
.
New
(
"test-logger"
))
So
(
err
,
ShouldBeNil
)
So
(
filepath
.
IsAbs
(
reader
.
Path
),
ShouldBeTrue
)
resolvedPath
:=
reader
.
resolvePath
(
reader
.
Path
)
So
(
filepath
.
IsAbs
(
resolvedPath
),
ShouldBeTrue
)
})
})
}
...
...
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