Skip to content

Commit efe6e6a

Browse files
authored
Merge pull request #153 from covexo/issue-140
Issue 140
2 parents 08ee6a3 + 6a8fc43 commit efe6e6a

26 files changed

Lines changed: 1132 additions & 874 deletions

File tree

Gopkg.lock

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Gopkg.toml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
[[constraint]]
22
name = "github.com/juju/errors"
33
branch = "master"
4-
5-
[[constraint]]
6-
name = "github.com/docker/cli"
7-
revision = "37eebe5cb6eff08bde94d17111caa8fc099d7a94"
84

95
[[constraint]]
106
name = "github.com/docker/docker"
@@ -110,3 +106,11 @@
110106
[prune]
111107
go-tests = true
112108
unused-packages = true
109+
110+
[[constraint]]
111+
revision = "ee51b09a773c7e7e4e32168cbec4d47a014161b4"
112+
name = "github.com/covexo/yamlq"
113+
114+
[[constraint]]
115+
name = "github.com/imdario/mergo"
116+
version = "v0.3.6"

cmd/add.go

Lines changed: 41 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"strconv"
66
"strings"
77

8-
"github.com/covexo/devspace/pkg/devspace/config"
8+
"github.com/covexo/devspace/pkg/devspace/config/configutil"
99
"github.com/covexo/devspace/pkg/devspace/config/v1"
1010
"github.com/covexo/devspace/pkg/util/log"
1111
"github.com/spf13/cobra"
@@ -116,10 +116,10 @@ func init() {
116116

117117
// RunAddSync executes the add sync command logic
118118
func (cmd *AddCmd) RunAddSync(cobraCmd *cobra.Command, args []string) {
119-
loadConfig(&cmd.workdir, &cmd.privateConfig, &cmd.dsConfig)
119+
config := configutil.GetConfig(false)
120120

121121
if cmd.syncFlags.Selector == "" {
122-
cmd.syncFlags.Selector = "release=" + cmd.privateConfig.Release.Name
122+
cmd.syncFlags.Selector = "release=" + *config.DevSpace.Release.Name
123123
}
124124

125125
labelSelectorMap, err := parseSelectors(cmd.syncFlags.Selector)
@@ -128,25 +128,26 @@ func (cmd *AddCmd) RunAddSync(cobraCmd *cobra.Command, args []string) {
128128
log.Fatalf("Error parsing selectors: %s", err.Error())
129129
}
130130

131-
excludedPaths := make([]string, 0, 0)
131+
excludedPaths := make([]*string, 0, 0)
132132

133133
if cmd.syncFlags.ExcludedPaths != "" {
134-
excludedPaths = strings.Split(cmd.syncFlags.ExcludedPaths, ",")
134+
excludedPathStrings := strings.Split(cmd.syncFlags.ExcludedPaths, ",")
135135

136-
for k, v := range excludedPaths {
137-
excludedPaths[k] = strings.TrimSpace(v)
136+
for _, v := range excludedPathStrings {
137+
excludedPath := strings.TrimSpace(v)
138+
excludedPaths = append(excludedPaths, &excludedPath)
138139
}
139140
}
140141

141-
cmd.dsConfig.SyncPaths = append(cmd.dsConfig.SyncPaths, &v1.SyncPath{
142-
ResourceType: cmd.syncFlags.ResourceType,
142+
config.DevSpace.Sync = append(config.DevSpace.Sync, &v1.SyncConfig{
143+
ResourceType: configutil.String(cmd.syncFlags.ResourceType),
143144
LabelSelector: labelSelectorMap,
144-
ContainerPath: cmd.syncFlags.ContainerPath,
145-
LocalSubPath: cmd.syncFlags.LocalPath,
145+
ContainerPath: configutil.String(cmd.syncFlags.ContainerPath),
146+
LocalSubPath: configutil.String(cmd.syncFlags.LocalPath),
146147
ExcludeRegex: excludedPaths,
147148
})
148149

149-
err = config.SaveConfig(cmd.dsConfig)
150+
err = configutil.SaveConfig()
150151

151152
if err != nil {
152153
log.Fatalf("Couldn't save config file: %s", err.Error())
@@ -155,10 +156,10 @@ func (cmd *AddCmd) RunAddSync(cobraCmd *cobra.Command, args []string) {
155156

156157
// RunAddPort executes the add port command logic
157158
func (cmd *AddCmd) RunAddPort(cobraCmd *cobra.Command, args []string) {
158-
loadConfig(&cmd.workdir, &cmd.privateConfig, &cmd.dsConfig)
159+
config := configutil.GetConfig(false)
159160

160161
if cmd.portFlags.Selector == "" {
161-
cmd.portFlags.Selector = "release=" + cmd.privateConfig.Release.Name
162+
cmd.portFlags.Selector = "release=" + *config.DevSpace.Release.Name
162163
}
163164

164165
labelSelectorMap, err := parseSelectors(cmd.portFlags.Selector)
@@ -175,37 +176,39 @@ func (cmd *AddCmd) RunAddPort(cobraCmd *cobra.Command, args []string) {
175176

176177
cmd.insertOrReplacePortMapping(labelSelectorMap, portMappings)
177178

178-
err = config.SaveConfig(cmd.dsConfig)
179+
err = configutil.SaveConfig()
179180

180181
if err != nil {
181182
log.Fatalf("Couldn't save config file: %s", err.Error())
182183
}
183184
}
184185

185-
func (cmd *AddCmd) insertOrReplacePortMapping(labelSelectorMap map[string]string, portMappings []*v1.PortMapping) {
186+
func (cmd *AddCmd) insertOrReplacePortMapping(labelSelectorMap map[string]*string, portMappings []*v1.PortMapping) {
187+
config := configutil.GetConfig(false)
188+
186189
// Check if we should add to existing port mapping
187-
for _, v := range cmd.dsConfig.PortForwarding {
188-
if v.ResourceType == cmd.portFlags.ResourceType && isMapEqual(v.LabelSelector, labelSelectorMap) {
190+
for _, v := range config.DevSpace.PortForwarding {
191+
if *v.ResourceType == cmd.portFlags.ResourceType && isMapEqual(v.LabelSelector, labelSelectorMap) {
189192
v.PortMappings = append(v.PortMappings, portMappings...)
190193

191194
return
192195
}
193196
}
194197

195-
cmd.dsConfig.PortForwarding = append(cmd.dsConfig.PortForwarding, &v1.PortForwarding{
196-
ResourceType: cmd.portFlags.ResourceType,
198+
config.DevSpace.PortForwarding = append(config.DevSpace.PortForwarding, &v1.PortForwardingConfig{
199+
ResourceType: configutil.String(cmd.portFlags.ResourceType),
197200
LabelSelector: labelSelectorMap,
198201
PortMappings: portMappings,
199202
})
200203
}
201204

202-
func isMapEqual(map1 map[string]string, map2 map[string]string) bool {
205+
func isMapEqual(map1 map[string]*string, map2 map[string]*string) bool {
203206
if len(map1) != len(map2) {
204207
return false
205208
}
206209

207210
for k, v := range map1 {
208-
if map2[k] != v {
211+
if *map2[k] != *v {
209212
return false
210213
}
211214
}
@@ -214,8 +217,6 @@ func isMapEqual(map1 map[string]string, map2 map[string]string) bool {
214217
}
215218

216219
func parsePortMappings(portMappingsString string) ([]*v1.PortMapping, error) {
217-
var err error
218-
219220
portMappings := make([]*v1.PortMapping, 0, 1)
220221
portMappingsSplitted := strings.Split(portMappingsString, ",")
221222

@@ -227,27 +228,25 @@ func parsePortMappings(portMappingsString string) ([]*v1.PortMapping, error) {
227228
}
228229

229230
portMappingStruct := &v1.PortMapping{}
231+
firstPort, err := strconv.Atoi(portMapping[0])
230232

231-
if len(portMapping) == 1 {
232-
portMappingStruct.LocalPort, err = strconv.Atoi(portMapping[0])
233+
if err != nil {
234+
return nil, err
235+
}
233236

234-
if err != nil {
235-
return nil, err
236-
}
237+
if len(portMapping) == 1 {
238+
portMappingStruct.LocalPort = &firstPort
237239

238240
portMappingStruct.RemotePort = portMappingStruct.LocalPort
239241
} else {
240-
portMappingStruct.LocalPort, err = strconv.Atoi(portMapping[0])
241-
242-
if err != nil {
243-
return nil, err
244-
}
242+
portMappingStruct.LocalPort = &firstPort
245243

246-
portMappingStruct.RemotePort, err = strconv.Atoi(portMapping[1])
244+
secondPort, err := strconv.Atoi(portMapping[1])
247245

248246
if err != nil {
249247
return nil, err
250248
}
249+
portMappingStruct.RemotePort = &secondPort
251250
}
252251

253252
portMappings = append(portMappings, portMappingStruct)
@@ -256,23 +255,23 @@ func parsePortMappings(portMappingsString string) ([]*v1.PortMapping, error) {
256255
return portMappings, nil
257256
}
258257

259-
func parseSelectors(selector string) (map[string]string, error) {
260-
selectorMap := make(map[string]string)
258+
func parseSelectors(selectorString string) (map[string]*string, error) {
259+
selectorMap := make(map[string]*string)
261260

262-
if selector == "" {
261+
if selectorString == "" {
263262
return selectorMap, nil
264263
}
265264

266-
selectors := strings.Split(selector, ",")
265+
selectors := strings.Split(selectorString, ",")
267266

268267
for _, v := range selectors {
269268
keyValue := strings.Split(v, "=")
270269

271270
if len(keyValue) != 2 {
272-
return nil, fmt.Errorf("Wrong selector format: %s", selector)
271+
return nil, fmt.Errorf("Wrong selector format: %s", selectorString)
273272
}
274-
275-
selectorMap[strings.TrimSpace(keyValue[0])] = strings.TrimSpace(keyValue[1])
273+
selector := strings.TrimSpace(keyValue[1])
274+
selectorMap[strings.TrimSpace(keyValue[0])] = &selector
276275
}
277276

278277
return selectorMap, nil

cmd/down.go

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ package cmd
33
import (
44
helmClient "github.com/covexo/devspace/pkg/devspace/clients/helm"
55
"github.com/covexo/devspace/pkg/devspace/clients/kubectl"
6-
"github.com/covexo/devspace/pkg/devspace/config"
6+
"github.com/covexo/devspace/pkg/devspace/config/configutil"
77
"github.com/covexo/devspace/pkg/util/log"
88

9-
"github.com/covexo/devspace/pkg/devspace/config/v1"
10-
119
"github.com/spf13/cobra"
1210
)
1311

@@ -46,14 +44,9 @@ your project, use: devspace reset
4644
func (cmd *DownCmd) Run(cobraCmd *cobra.Command, args []string) {
4745
log.StartFileLogging()
4846

49-
privateConfig := &v1.PrivateConfig{}
50-
err := config.LoadConfig(privateConfig)
51-
52-
if err != nil {
53-
log.Fatalf("Unable to load release name: %s. Does the file .devspace/private.yaml exist?", err.Error())
54-
}
47+
config := configutil.GetConfig(false)
5548

56-
releaseName := privateConfig.Release.Name
49+
releaseName := *config.DevSpace.Release.Name
5750
kubectl, err := kubectl.NewClient()
5851

5952
if err != nil {

0 commit comments

Comments
 (0)