move code dealing with node ports into a separate function

Signed-off-by: Shubheksha Jalan <jshubheksha@gmail.com>
This commit is contained in:
Shubheksha Jalan
2018-09-25 18:08:57 +05:30
committed by Steve Kriss
parent e62afa8b61
commit ccfef26ef3

View File

@@ -59,29 +59,10 @@ func (a *serviceAction) Execute(obj runtime.Unstructured, restore *api.Restore)
delete(spec, "clusterIP")
}
preservedPorts, err := getPreservedPorts(obj)
err = deleteNodePorts(obj, &spec)
if err != nil {
return nil, nil, err
}
ports, err := collections.GetSlice(obj.UnstructuredContent(), "spec.ports")
serviceType, _ := collections.GetString(spec, "type")
if err != nil && serviceType != "ExternalName" {
return nil, nil, err
}
for _, port := range ports {
p := port.(map[string]interface{})
var name string
if nameVal, ok := p["name"]; ok {
name = nameVal.(string)
}
if preservedPorts[name] {
continue
}
delete(p, "nodePort")
}
return obj, nil, nil
}
@@ -104,3 +85,29 @@ func getPreservedPorts(obj runtime.Unstructured) (map[string]bool, error) {
}
return preservedPorts, nil
}
func deleteNodePorts(obj runtime.Unstructured, spec *map[string]interface{}) error {
preservedPorts, err := getPreservedPorts(obj)
if err != nil {
return err
}
ports, err := collections.GetSlice(obj.UnstructuredContent(), "spec.ports")
serviceType, _ := collections.GetString(*spec, "type")
if err != nil && serviceType != "ExternalName" {
return err
}
for _, port := range ports {
p := port.(map[string]interface{})
var name string
if nameVal, ok := p["name"]; ok {
name = nameVal.(string)
}
if preservedPorts[name] {
continue
}
delete(p, "nodePort")
}
return nil
}