Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
1105 Внедрение механизмов обеспечения безопасности цепочки поставки программных проектов
Legacy
scanned-projects
helm
Commits
f4b7eb5b
Commit
f4b7eb5b
authored
8 years ago
by
Matt Butcher
Committed by
GitHub
8 years ago
Browse files
Options
Download
Plain Diff
Merge pull request #2000 from yuvipanda/add-tojson
Add ToJson and FromJson template functions
parents
28fbd42c
cd727506
main
Release
add-codeql
dependabot/go_modules/github.com/docker/distribution-2.8.2incompatible
dependabot/go_modules/github.com/lib/pq-1.10.9
dependabot/go_modules/github.com/rubenv/sql-migrate-1.4.0
dependabot/go_modules/golang.org/x/crypto-0.9.0
dependabot/go_modules/golang.org/x/term-0.8.0
dependabot/go_modules/k8s.io/klog/v2-2.100.1
dev-v2
feat-v3/event-emitter-lua
release-2.10
release-2.11
release-2.12
release-2.13
release-2.14
release-2.15
release-2.16
release-2.17
release-2.3
release-2.4
release-2.5
release-2.6
release-2.7
release-2.8
release-2.9
release-3.0
release-3.1
release-3.10
release-3.11
release-3.12
release-3.2
release-3.3
release-3.4
release-3.5
release-3.6
release-3.6.1
release-3.6.2
release-3.7
release-3.8
release-3.9
release-v3.0.0-beta.4
v3.12.0
v3.12.0-rc.1
v3.12.0-dev.1
v3.11.3
v3.11.2
v3.11.1
v3.11.0
v3.11.0-rc.2
v3.11.0-rc.1
v3.10.3
v3.10.2
v3.10.1
v3.10.0
v3.10.0-rc.1
v3.9.4
v3.9.3
v3.9.2
v3.9.1
v3.9.0
v3.9.0-rc.1
v3.8.2
v3.8.1
v3.8.0
v3.8.0-rc.2
v3.8.0-rc.1
v3.7.2
v3.7.1
v3.7.0
v3.7.0-rc.3
v3.7.0-rc.2
v3.7.0-rc.1
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.6.0-rc.1
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.5.0-rc.2
v3.5.0-rc.1
v3.4.2
v3.4.1
v3.4.0
v3.4.0-rc.1
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.3.0-rc.2
v3.3.0-rc.1
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.2.0-rc.1
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.1.0-rc.3
v3.1.0-rc.2
v3.1.0-rc.1
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v3.0.0-rc.4
v3.0.0-rc.3
v3.0.0-rc.2
v3.0.0-rc.1
v3.0.0-beta.5
v3.0.0-beta.4
v3.0.0-beta.3
v3.0.0-beta.2
v3.0.0-beta.1
v3.0.0-alpha.2
v3.0.0-alpha.1
v2.17.0
v2.17.0-rc.1
v2.16.12
v2.16.11
v2.16.10
v2.16.9
v2.16.8
v2.16.7
v2.16.6
v2.16.5
v2.16.4
v2.16.3
v2.16.2
v2.16.1
v2.16.0
v2.16.0-rc.2
v2.16.0-rc.1
v2.15.2
v2.15.1
v2.15.0
v2.15.0-rc.2
v2.15.0-rc.1
v2.14.3
v2.14.2
v2.14.1
v2.14.0
v2.14.0-rc.2
v2.14.0-rc.1
v2.13.1
v2.13.1-rc.1
v2.13.0
v2.13.0-rc.2
v2.13.0-rc.1
v2.12.3
v2.12.2
v2.12.1
v2.12.0
v2.12.0-rc.2
v2.12.0-rc.1
v2.11.0
v2.11.0-rc.4
v2.11.0-rc.3
v2.11.0-rc.2
v2.11.0-rc.1
v2.10.0
v2.10.0-rc.3
v2.10.0-rc.2
v2.10.0-rc.1
v2.9.1
v2.9.0
v2.9.0-rc5
v2.9.0-rc4
v2.9.0-rc3
v2.9.0-rc2
v2.9.0-rc1
v2.8.2
v2.8.2-rc1
v2.8.1
v2.8.0
v2.8.0-rc.1
v2.7.2
v2.7.1
v2.7.0
v2.7.0-rc1
v2.6.2
v2.6.1
v2.6.0
v2.5.1
v2.5.0
v2.4.2
v2.4.1
v2.4.0
v2.3.1
v2.3.0
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
pkg/chartutil/files.go
+29
-0
pkg/chartutil/files.go
pkg/chartutil/files_test.go
+49
-0
pkg/chartutil/files_test.go
pkg/engine/engine.go
+2
-0
pkg/engine/engine.go
with
80 additions
and
0 deletions
+80
-0
pkg/chartutil/files.go
+
29
−
0
View file @
f4b7eb5b
...
...
@@ -17,6 +17,7 @@ package chartutil
import
(
"encoding/base64"
"encoding/json"
"path"
"strings"
...
...
@@ -189,3 +190,31 @@ func FromYaml(str string) map[string]interface{} {
}
return
m
}
// ToJson takes an interface, marshals it to json, and returns a string. It will
// always return a string, even on marshal error (empty string).
//
// This is designed to be called from a template.
func
ToJson
(
v
interface
{})
string
{
data
,
err
:=
json
.
Marshal
(
v
)
if
err
!=
nil
{
// Swallow errors inside of a template.
return
""
}
return
string
(
data
)
}
// FromJson converts a YAML document into a map[string]interface{}.
//
// This is not a general-purpose JSON parser, and will not parse all valid
// YAML documents. Additionally, because its intended use is within templates
// it tolerates errors. It will insert the returned error message string into
// m["error"] in the returned map.
func
FromJson
(
str
string
)
map
[
string
]
interface
{}
{
m
:=
map
[
string
]
interface
{}{}
if
err
:=
json
.
Unmarshal
([]
byte
(
str
),
&
m
);
err
!=
nil
{
m
[
"Error"
]
=
err
.
Error
()
}
return
m
}
This diff is collapsed.
Click to expand it.
pkg/chartutil/files_test.go
+
49
−
0
View file @
f4b7eb5b
...
...
@@ -141,3 +141,52 @@ one:
t
.
Fatal
(
"Expected parser error"
)
}
}
func
TestToJson
(
t
*
testing
.
T
)
{
expect
:=
`{"foo":"bar"}`
v
:=
struct
{
Foo
string
`json:"foo"`
}{
Foo
:
"bar"
,
}
if
got
:=
ToJson
(
v
);
got
!=
expect
{
t
.
Errorf
(
"Expected %q, got %q"
,
expect
,
got
)
}
}
func
TestFromJson
(
t
*
testing
.
T
)
{
doc
:=
`{
"hello": "world",
"one": {
"two": "three"
}
}
`
dict
:=
FromJson
(
doc
)
if
err
,
ok
:=
dict
[
"Error"
];
ok
{
t
.
Fatalf
(
"Parse error: %s"
,
err
)
}
if
len
(
dict
)
!=
2
{
t
.
Fatal
(
"expected two elements."
)
}
world
:=
dict
[
"hello"
]
if
world
.
(
string
)
!=
"world"
{
t
.
Fatal
(
"Expected the world. Is that too much to ask?"
)
}
// This should fail because we don't currently support lists:
doc2
:=
`
[
"one",
"two",
"three"
]
`
dict
=
FromJson
(
doc2
)
if
_
,
ok
:=
dict
[
"Error"
];
!
ok
{
t
.
Fatal
(
"Expected parser error"
)
}
}
This diff is collapsed.
Click to expand it.
pkg/engine/engine.go
+
2
−
0
View file @
f4b7eb5b
...
...
@@ -72,6 +72,8 @@ func FuncMap() template.FuncMap {
extra
:=
template
.
FuncMap
{
"toYaml"
:
chartutil
.
ToYaml
,
"fromYaml"
:
chartutil
.
FromYaml
,
"toJson"
:
chartutil
.
ToJson
,
"fromJson"
:
chartutil
.
FromJson
,
// This is a placeholder for the "include" function, which is
// late-bound to a template. By declaring it here, we preserve the
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets