|
5 | 5 | "strconv" |
6 | 6 | "strings" |
7 | 7 |
|
| 8 | + "github.com/docker/libcompose/utils" |
8 | 9 | "github.com/xeipuuv/gojsonschema" |
9 | 10 | ) |
10 | 11 |
|
@@ -70,55 +71,22 @@ func getValue(val interface{}, context string) string { |
70 | 71 | return "" |
71 | 72 | } |
72 | 73 |
|
73 | | -// Converts map[interface{}]interface{} to map[string]interface{} recursively |
74 | | -// gojsonschema only accepts map[string]interface{} |
75 | 74 | func convertServiceMapKeysToStrings(serviceMap RawServiceMap) RawServiceMap { |
76 | 75 | newServiceMap := make(RawServiceMap) |
77 | | - |
78 | 76 | for k, v := range serviceMap { |
79 | 77 | newServiceMap[k] = convertServiceKeysToStrings(v) |
80 | 78 | } |
81 | | - |
82 | 79 | return newServiceMap |
83 | 80 | } |
84 | 81 |
|
85 | 82 | func convertServiceKeysToStrings(service RawService) RawService { |
86 | 83 | newService := make(RawService) |
87 | | - |
88 | 84 | for k, v := range service { |
89 | | - newService[k] = convertKeysToStrings(v) |
| 85 | + newService[k] = utils.ConvertKeysToStrings(v) |
90 | 86 | } |
91 | | - |
92 | 87 | return newService |
93 | 88 | } |
94 | 89 |
|
95 | | -func convertKeysToStrings(item interface{}) interface{} { |
96 | | - switch typedDatas := item.(type) { |
97 | | - |
98 | | - case map[interface{}]interface{}: |
99 | | - newMap := make(map[string]interface{}) |
100 | | - |
101 | | - for key, value := range typedDatas { |
102 | | - stringKey := key.(string) |
103 | | - newMap[stringKey] = convertKeysToStrings(value) |
104 | | - } |
105 | | - return newMap |
106 | | - |
107 | | - case []interface{}: |
108 | | - // newArray := make([]interface{}, 0) will cause golint to complain |
109 | | - var newArray []interface{} |
110 | | - newArray = make([]interface{}, 0) |
111 | | - |
112 | | - for _, value := range typedDatas { |
113 | | - newArray = append(newArray, convertKeysToStrings(value)) |
114 | | - } |
115 | | - return newArray |
116 | | - |
117 | | - default: |
118 | | - return item |
119 | | - } |
120 | | -} |
121 | | - |
122 | 90 | var dockerConfigHints = map[string]string{ |
123 | 91 | "cpu_share": "cpu_shares", |
124 | 92 | "add_host": "extra_hosts", |
|
0 commit comments