Skip to content

Commit

Permalink
Merge pull request #51502 from shiywang/fixDNSerror
Browse files Browse the repository at this point in the history
Automatic merge from submit-queue (batch tested with PRs 49865, 53731, 54013, 54513, 51502). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Fix Federation: Google Cloud DNS provider does not handle missing dom…

Fixes #51139
Not sure how to fix provider code, submit a pr to google could dns or something ?
also I'm still learning how to setup a federation cluster, will test my code after it finished : )
/assign @quinton-hoole 
@kubernetes/sig-federation-bugs @kubernetes/huawei
  • Loading branch information
Kubernetes Submit Queue committed Oct 26, 2017
2 parents 9ec88d0 + 167934d commit f9e6142
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 2 deletions.
2 changes: 1 addition & 1 deletion federation/pkg/dnsprovider/dns.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ type Interface interface {
}

type Zones interface {
// List returns the managed Zones, or an error if the list operation failed.
// List returns the (possibly empty) list of managed Zones, or an error if the list operation failed.
List() ([]Zone, error)
// Add creates and returns a new managed zone, or an error if the operation failed
Add(Zone) (Zone, error)
Expand Down
1 change: 1 addition & 0 deletions federation/pkg/dnsprovider/providers/aws/route53/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ go_library(
"//federation/pkg/dnsprovider/providers/aws/route53/stubs:go_default_library",
"//federation/pkg/dnsprovider/rrstype:go_default_library",
"//vendor/github.com/aws/aws-sdk-go/aws:go_default_library",
"//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library",
"//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library",
"//vendor/github.com/aws/aws-sdk-go/aws/session:go_default_library",
"//vendor/github.com/aws/aws-sdk-go/service/route53:go_default_library",
Expand Down
7 changes: 7 additions & 0 deletions federation/pkg/dnsprovider/providers/aws/route53/zones.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ limitations under the License.
package route53

import (
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/service/route53"

"k8s.io/apimachinery/pkg/util/uuid"
Expand All @@ -41,6 +42,12 @@ func (zones Zones) List() ([]dnsprovider.Zone, error) {
return true
})
if err != nil {
if apiErr, ok := err.(awserr.Error); ok &&
apiErr.Code() == "DelegationSetNotReusable" ||
apiErr.Code() == "NoSuchDelegationSet" ||
apiErr.Code() == "InvalidInput" {
return []dnsprovider.Zone{}, nil
}
return []dnsprovider.Zone{}, err
}
return zoneList, nil
Expand Down
1 change: 1 addition & 0 deletions federation/pkg/dnsprovider/providers/google/clouddns/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ go_library(
"//vendor/golang.org/x/oauth2/google:go_default_library",
"//vendor/google.golang.org/api/compute/v1:go_default_library",
"//vendor/google.golang.org/api/dns/v1:go_default_library",
"//vendor/google.golang.org/api/googleapi:go_default_library",
"//vendor/gopkg.in/gcfg.v1:go_default_library",
],
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ limitations under the License.
package clouddns

import (
"google.golang.org/api/googleapi"
"k8s.io/kubernetes/federation/pkg/dnsprovider"
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
)
Expand All @@ -30,12 +31,16 @@ type Zones struct {
}

func (zones Zones) List() ([]dnsprovider.Zone, error) {
var zoneList []dnsprovider.Zone
response, err := zones.impl.List(zones.project()).Do()
if err != nil {
if apiErr, ok := err.(*googleapi.Error); ok && apiErr.Code == 404 {
return zoneList, nil
}
return nil, err
}
managedZones := response.ManagedZones()
zoneList := make([]dnsprovider.Zone, len(managedZones))
zoneList = make([]dnsprovider.Zone, len(managedZones))
for i, zone := range managedZones {
zoneList[i] = &Zone{zone, &zones}
}
Expand Down

0 comments on commit f9e6142

Please sign in to comment.