mirror of
https://github.com/rancher/os.git
synced 2025-08-09 10:38:25 +00:00
Merge pull request #1493 from joshwget/unquoted-question-marks
Allow question marks in unquoted kernel parameters
This commit is contained in:
commit
190749f6c1
@ -148,15 +148,15 @@ func TestParseCmdline(t *testing.T) {
|
|||||||
|
|
||||||
assert.Equal(map[interface{}]interface{}{
|
assert.Equal(map[interface{}]interface{}{
|
||||||
"rancher": map[interface{}]interface{}{
|
"rancher": map[interface{}]interface{}{
|
||||||
"strArray": []interface{}{"url:http://192.168.1.100/cloud-config"},
|
"strArray": []interface{}{"url:http://192.168.1.100/cloud-config?a=b"},
|
||||||
},
|
},
|
||||||
}, parseCmdline("rancher.strArray=[\"url:http://192.168.1.100/cloud-config\"]"))
|
}, parseCmdline("rancher.strArray=[\"url:http://192.168.1.100/cloud-config?a=b\"]"))
|
||||||
|
|
||||||
assert.Equal(map[interface{}]interface{}{
|
assert.Equal(map[interface{}]interface{}{
|
||||||
"rancher": map[interface{}]interface{}{
|
"rancher": map[interface{}]interface{}{
|
||||||
"strArray": []interface{}{"url:http://192.168.1.100/cloud-config"},
|
"strArray": []interface{}{"url:http://192.168.1.100/cloud-config?a=b"},
|
||||||
},
|
},
|
||||||
}, parseCmdline("rancher.strArray=[url:http://192.168.1.100/cloud-config]"))
|
}, parseCmdline("rancher.strArray=[url:http://192.168.1.100/cloud-config?a=b]"))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGet(t *testing.T) {
|
func TestGet(t *testing.T) {
|
||||||
|
@ -116,11 +116,12 @@ func getOrSetVal(args string, data map[interface{}]interface{}, value interface{
|
|||||||
return "", tData
|
return "", tData
|
||||||
}
|
}
|
||||||
|
|
||||||
// Replace newlines and colons with random strings
|
// Replace newlines, colons, and question marks with random strings
|
||||||
// This is done to avoid YAML treating these as special characters
|
// This is done to avoid YAML treating these as special characters
|
||||||
var (
|
var (
|
||||||
newlineMagicString = "9XsJcx6dR5EERYCC"
|
newlineMagicString = "9XsJcx6dR5EERYCC"
|
||||||
colonMagicString = "V0Rc21pIVknMm2rr"
|
colonMagicString = "V0Rc21pIVknMm2rr"
|
||||||
|
questionMarkMagicString = "FoPL6JLMAaJqKMJT"
|
||||||
)
|
)
|
||||||
|
|
||||||
func reverseReplacement(result interface{}) interface{} {
|
func reverseReplacement(result interface{}) interface{} {
|
||||||
@ -138,6 +139,7 @@ func reverseReplacement(result interface{}) interface{} {
|
|||||||
case string:
|
case string:
|
||||||
val = strings.Replace(val, newlineMagicString, "\n", -1)
|
val = strings.Replace(val, newlineMagicString, "\n", -1)
|
||||||
val = strings.Replace(val, colonMagicString, ":", -1)
|
val = strings.Replace(val, colonMagicString, ":", -1)
|
||||||
|
val = strings.Replace(val, questionMarkMagicString, "?", -1)
|
||||||
return val
|
return val
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -147,6 +149,7 @@ func reverseReplacement(result interface{}) interface{} {
|
|||||||
func unmarshalOrReturnString(value string) (result interface{}) {
|
func unmarshalOrReturnString(value string) (result interface{}) {
|
||||||
value = strings.Replace(value, "\n", newlineMagicString, -1)
|
value = strings.Replace(value, "\n", newlineMagicString, -1)
|
||||||
value = strings.Replace(value, ":", colonMagicString, -1)
|
value = strings.Replace(value, ":", colonMagicString, -1)
|
||||||
|
value = strings.Replace(value, "?", questionMarkMagicString, -1)
|
||||||
if err := yaml.Unmarshal([]byte(value), &result); err != nil {
|
if err := yaml.Unmarshal([]byte(value), &result); err != nil {
|
||||||
result = value
|
result = value
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user