Browse code

Fix node yaml config serialization, unify config reading helper methods

Jordan Liggitt authored on 2015/04/01 14:12:44
Showing 6 changed files
... ...
@@ -38,6 +38,49 @@ func ReadAndResolveMasterConfig(filename string) (*configapi.MasterConfig, error
38 38
 	return masterConfig, nil
39 39
 }
40 40
 
41
+func ReadNodeConfig(filename string) (*configapi.NodeConfig, error) {
42
+	data, err := ioutil.ReadFile(filename)
43
+	if err != nil {
44
+		return nil, err
45
+	}
46
+
47
+	config := &configapi.NodeConfig{}
48
+	data, err = kyaml.ToJSON(data)
49
+	if err != nil {
50
+		return nil, err
51
+	}
52
+
53
+	if err := Codec.DecodeInto(data, config); err != nil {
54
+		return nil, err
55
+	}
56
+
57
+	return config, nil
58
+}
59
+
60
+func ReadAndResolveNodeConfig(filename string) (*configapi.NodeConfig, error) {
61
+	nodeConfig, err := ReadNodeConfig(filename)
62
+	if err != nil {
63
+		return nil, err
64
+	}
65
+
66
+	configapi.ResolveNodeConfigPaths(nodeConfig, path.Dir(filename))
67
+	return nodeConfig, nil
68
+}
69
+
70
+// WriteMaster serializes the config to yaml.
71
+func WriteMaster(config *configapi.MasterConfig) ([]byte, error) {
72
+	json, err := Codec.Encode(config)
73
+	if err != nil {
74
+		return nil, err
75
+	}
76
+
77
+	content, err := yaml.JSONToYAML(json)
78
+	if err != nil {
79
+		return nil, err
80
+	}
81
+	return content, err
82
+}
83
+
41 84
 // WriteNode serializes the config to yaml.
42 85
 func WriteNode(config *configapi.NodeConfig) ([]byte, error) {
43 86
 	json, err := Codec.Encode(config)
... ...
@@ -13,6 +13,7 @@ import (
13 13
 	utilerrors "github.com/GoogleCloudPlatform/kubernetes/pkg/util/errors"
14 14
 
15 15
 	configapi "github.com/openshift/origin/pkg/cmd/server/api"
16
+	configapilatest "github.com/openshift/origin/pkg/cmd/server/api/latest"
16 17
 	"github.com/openshift/origin/pkg/cmd/server/api/validation"
17 18
 )
18 19
 
... ...
@@ -361,8 +362,8 @@ func executeAllInOneCommandWithConfigs(args []string) (*MasterArgs, *configapi.M
361 361
 	root.SetArgs(argsToUse)
362 362
 	root.Execute()
363 363
 
364
-	masterCfg, masterErr := ReadMasterConfig(fakeMasterConfigFile.Name())
365
-	nodeCfg, nodeErr := ReadNodeConfig(fakeNodeConfigFile.Name())
364
+	masterCfg, masterErr := configapilatest.ReadAndResolveMasterConfig(fakeMasterConfigFile.Name())
365
+	nodeCfg, nodeErr := configapilatest.ReadAndResolveNodeConfig(fakeNodeConfigFile.Name())
366 366
 
367 367
 	return cfg.MasterArgs, masterCfg, masterErr, cfg.NodeArgs, nodeCfg, nodeErr
368 368
 }
... ...
@@ -7,7 +7,6 @@ import (
7 7
 	"strconv"
8 8
 
9 9
 	"code.google.com/p/go-uuid/uuid"
10
-	"github.com/ghodss/yaml"
11 10
 	"github.com/golang/glog"
12 11
 	"github.com/spf13/pflag"
13 12
 
... ...
@@ -18,7 +17,6 @@ import (
18 18
 	"github.com/openshift/origin/pkg/cmd/flagtypes"
19 19
 	"github.com/openshift/origin/pkg/cmd/server/admin"
20 20
 	configapi "github.com/openshift/origin/pkg/cmd/server/api"
21
-	latestconfigapi "github.com/openshift/origin/pkg/cmd/server/api/latest"
22 21
 	"github.com/openshift/origin/pkg/cmd/server/bootstrappolicy"
23 22
 	cmdutil "github.com/openshift/origin/pkg/cmd/util"
24 23
 )
... ...
@@ -566,17 +564,3 @@ func getPort(theURL url.URL) int {
566 566
 	intport, _ := strconv.Atoi(port)
567 567
 	return intport
568 568
 }
569
-
570
-// WriteMaster serializes the config to yaml.
571
-func WriteMaster(config *configapi.MasterConfig) ([]byte, error) {
572
-	json, err := latestconfigapi.Codec.Encode(config)
573
-	if err != nil {
574
-		return nil, err
575
-	}
576
-
577
-	content, err := yaml.JSONToYAML(json)
578
-	if err != nil {
579
-		return nil, err
580
-	}
581
-	return content, err
582
-}
... ...
@@ -14,7 +14,6 @@ import (
14 14
 
15 15
 	"github.com/openshift/origin/pkg/cmd/server/admin"
16 16
 	configapi "github.com/openshift/origin/pkg/cmd/server/api"
17
-	latestconfigapi "github.com/openshift/origin/pkg/cmd/server/api/latest"
18 17
 	cmdutil "github.com/openshift/origin/pkg/cmd/util"
19 18
 )
20 19
 
... ...
@@ -104,15 +103,6 @@ func (args NodeArgs) BuildSerializeableNodeConfig() (*configapi.NodeConfig, erro
104 104
 	return config, nil
105 105
 }
106 106
 
107
-// WriteNode serializes the config to yaml.
108
-func WriteNode(config *configapi.NodeConfig) ([]byte, error) {
109
-	json, err := latestconfigapi.Codec.Encode(config)
110
-	if err != nil {
111
-		return nil, err
112
-	}
113
-	return json, err
114
-}
115
-
116 107
 // defaultHostname returns the default hostname for this system.
117 108
 func defaultHostname() (string, error) {
118 109
 
... ...
@@ -16,7 +16,6 @@ import (
16 16
 	"github.com/GoogleCloudPlatform/kubernetes/pkg/capabilities"
17 17
 	"github.com/GoogleCloudPlatform/kubernetes/pkg/client/record"
18 18
 	"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
19
-	kyaml "github.com/GoogleCloudPlatform/kubernetes/pkg/util/yaml"
20 19
 
21 20
 	"github.com/openshift/origin/pkg/cmd/server/admin"
22 21
 	configapi "github.com/openshift/origin/pkg/cmd/server/api"
... ...
@@ -180,7 +179,7 @@ func (o MasterOptions) RunMaster() error {
180 180
 	var masterConfig *configapi.MasterConfig
181 181
 	var err error
182 182
 	if startUsingConfigFile {
183
-		masterConfig, err = ReadMasterConfig(o.ConfigFile)
183
+		masterConfig, err = configapilatest.ReadAndResolveMasterConfig(o.ConfigFile)
184 184
 	} else {
185 185
 		masterConfig, err = o.MasterArgs.BuildSerializeableMasterConfig()
186 186
 	}
... ...
@@ -207,7 +206,7 @@ func (o MasterOptions) RunMaster() error {
207 207
 			return err
208 208
 		}
209 209
 
210
-		content, err := WriteMaster(masterConfig)
210
+		content, err := configapilatest.WriteMaster(masterConfig)
211 211
 		if err != nil {
212 212
 			return err
213 213
 		}
... ...
@@ -271,29 +270,6 @@ func (o MasterOptions) CreateCerts() error {
271 271
 	return nil
272 272
 }
273 273
 
274
-func ReadMasterConfig(filename string) (*configapi.MasterConfig, error) {
275
-	data, err := ioutil.ReadFile(filename)
276
-	if err != nil {
277
-		return nil, err
278
-	}
279
-
280
-	config := &configapi.MasterConfig{}
281
-	data, err = kyaml.ToJSON(data)
282
-	if err := configapilatest.Codec.DecodeInto(data, config); err != nil {
283
-		return nil, err
284
-	}
285
-
286
-	base, err := cmdutil.MakeAbs(filepath.Dir(filename), "")
287
-	if err != nil {
288
-		return nil, err
289
-	}
290
-	if err := configapi.ResolveMasterConfigPaths(config, base); err != nil {
291
-		return nil, err
292
-	}
293
-
294
-	return config, nil
295
-}
296
-
297 274
 func StartMaster(openshiftMasterConfig *configapi.MasterConfig) error {
298 275
 	glog.Infof("Starting an OpenShift master, reachable at %s (etcd: %v)", openshiftMasterConfig.ServingInfo.BindAddress, openshiftMasterConfig.EtcdClientInfo.URLs)
299 276
 	glog.Infof("OpenShift master public address is %s", openshiftMasterConfig.AssetConfig.MasterPublicURL)
... ...
@@ -140,7 +140,7 @@ func (o NodeOptions) RunNode() error {
140 140
 	var nodeConfig *configapi.NodeConfig
141 141
 	var err error
142 142
 	if startUsingConfigFile {
143
-		nodeConfig, err = ReadNodeConfig(o.ConfigFile)
143
+		nodeConfig, err = configapilatest.ReadAndResolveNodeConfig(o.ConfigFile)
144 144
 	} else {
145 145
 		nodeConfig, err = o.NodeArgs.BuildSerializeableNodeConfig()
146 146
 	}
... ...
@@ -167,7 +167,7 @@ func (o NodeOptions) RunNode() error {
167 167
 			return err
168 168
 		}
169 169
 
170
-		content, err := WriteNode(nodeConfig)
170
+		content, err := configapilatest.WriteNode(nodeConfig)
171 171
 		if err != nil {
172 172
 			return err
173 173
 		}
... ...
@@ -255,29 +255,6 @@ func (o NodeOptions) CreateCerts() error {
255 255
 	return nil
256 256
 }
257 257
 
258
-func ReadNodeConfig(filename string) (*configapi.NodeConfig, error) {
259
-	data, err := ioutil.ReadFile(filename)
260
-	if err != nil {
261
-		return nil, err
262
-	}
263
-
264
-	config := &configapi.NodeConfig{}
265
-
266
-	if err := configapilatest.Codec.DecodeInto(data, config); err != nil {
267
-		return nil, err
268
-	}
269
-
270
-	base, err := cmdutil.MakeAbs(filepath.Dir(filename), "")
271
-	if err != nil {
272
-		return nil, err
273
-	}
274
-	if err := configapi.ResolveNodeConfigPaths(config, base); err != nil {
275
-		return nil, err
276
-	}
277
-
278
-	return config, nil
279
-}
280
-
281 258
 func StartNode(config configapi.NodeConfig) error {
282 259
 	nodeConfig, err := kubernetes.BuildKubernetesNodeConfig(config)
283 260
 	if err != nil {