Skip to content

Commit

Permalink
include DNSAddresses in input parameters for DeleteBinding
Browse files Browse the repository at this point in the history
[#162703055]

Signed-off-by: Winna Bridgewater <wbridgewater@pivotal.io>
Co-authored-by: Winna Bridgewater <wbridgewater@pivotal.io>
  • Loading branch information
Kieron Browne and Winna Bridgewater committed Jan 25, 2019
1 parent 3da8983 commit be5e27c
Show file tree
Hide file tree
Showing 7 changed files with 31 additions and 6 deletions.
4 changes: 2 additions & 2 deletions serviceadapter/command_line_handler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ var _ = Describe("CommandLineHandler", func() {
Expect(params.Manifest).To(Equal(previousManifest))
Expect(params.RequestParams).To(Equal(requestParams))
Expect(params.Secrets).To(BeNil())
Expect(params.DnsAddresses).To(BeNil())
Expect(params.DNSAddresses).To(BeNil())

Expect(outputBuffer).To(gbytes.Say(toJson(expectedBinding)))
})
Expand Down Expand Up @@ -261,7 +261,7 @@ var _ = Describe("CommandLineHandler", func() {
Expect(params.Manifest).To(Equal(previousManifest))
Expect(params.RequestParams).To(Equal(requestParams))
Expect(params.Secrets).To(BeNil())
Expect(params.DnsAddresses).To(Equal(dnsAddresses))
Expect(params.DNSAddresses).To(Equal(dnsAddresses))

Expect(outputBuffer).To(gbytes.Say(toJson(expectedBinding)))
})
Expand Down
2 changes: 1 addition & 1 deletion serviceadapter/create_binding.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ func (a *CreateBindingAction) Execute(inputParams InputParams, outputWriter io.W
Manifest: manifest,
RequestParams: reqParams,
Secrets: secrets,
DnsAddresses: dnsAddresses,
DNSAddresses: dnsAddresses,
}
binding, err := a.bindingCreator.CreateBinding(params)
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion serviceadapter/create_binding_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ var _ = Describe("CreateBinding", func() {
Expect(params.DeploymentTopology).To(Equal(boshVMs))
Expect(params.Manifest).To(Equal(manifest))
Expect(params.RequestParams).To(Equal(requestParams))
Expect(params.DnsAddresses).To(Equal(dnsAddresses))
Expect(params.DNSAddresses).To(Equal(dnsAddresses))
Expect(params.Secrets).To(Equal(serviceadapter.ManifestSecrets{
"/foo": `{ "status": "bar" }`,
}))
Expand Down
8 changes: 8 additions & 0 deletions serviceadapter/delete_binding.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,12 +84,20 @@ func (d *DeleteBindingAction) Execute(inputParams InputParams, outputWriter io.W
}
}

var dnsAddresses DNSAddresses
if inputParams.DeleteBinding.DNSAddresses != "" {
if err := json.Unmarshal([]byte(inputParams.DeleteBinding.DNSAddresses), &dnsAddresses); err != nil {
return errors.Wrap(err, "unmarshalling DNS addresses")
}
}

params := DeleteBindingParams{
BindingID: inputParams.DeleteBinding.BindingId,
DeploymentTopology: boshVMs,
Manifest: manifest,
RequestParams: reqParams,
Secrets: secrets,
DNSAddresses: dnsAddresses,
}
err := d.unbinder.DeleteBinding(params)
if err != nil {
Expand Down
13 changes: 12 additions & 1 deletion serviceadapter/delete_binding_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ var _ = Describe("DeleteBinding", func() {
boshVMs bosh.BoshVMs
requestParams serviceadapter.RequestParameters
secrets serviceadapter.ManifestSecrets
dnsAddresses serviceadapter.DNSAddresses
manifest bosh.BoshManifest

expectedInputParams serviceadapter.InputParams
Expand All @@ -32,6 +33,7 @@ var _ = Describe("DeleteBinding", func() {
boshVMs = bosh.BoshVMs{}
requestParams = defaultRequestParams()
secrets = defaultSecretParams()
dnsAddresses = defaultDNSParams()
manifest = defaultManifest()
outputBuffer = gbytes.NewBuffer()

Expand Down Expand Up @@ -61,7 +63,8 @@ var _ = Describe("DeleteBinding", func() {
Describe("ParseArgs", func() {
When("giving arguments in stdin", func() {
It("can parse arguments from stdin", func() {
expectedInputParams.DeleteBinding.Secrets = toJson(defaultSecretParams())
expectedInputParams.DeleteBinding.Secrets = toJson(secrets)
expectedInputParams.DeleteBinding.DNSAddresses = toJson(dnsAddresses)
input := bytes.NewBuffer([]byte(toJson(expectedInputParams)))
actualInputParams, err := action.ParseArgs(input, []string{})

Expand Down Expand Up @@ -116,6 +119,7 @@ var _ = Describe("DeleteBinding", func() {
fakeBinder.DeleteBindingReturns(nil)

expectedInputParams.DeleteBinding.Secrets = toJson(secrets)
expectedInputParams.DeleteBinding.DNSAddresses = toJson(dnsAddresses)
err := action.Execute(expectedInputParams, outputBuffer)

Expect(err).NotTo(HaveOccurred())
Expand All @@ -128,6 +132,7 @@ var _ = Describe("DeleteBinding", func() {
Expect(params.Manifest).To(Equal(manifest))
Expect(params.RequestParams).To(Equal(requestParams))
Expect(params.Secrets).To(Equal(secrets))
Expect(params.DNSAddresses).To(Equal(dnsAddresses))
})

Context("error handling", func() {
Expand Down Expand Up @@ -155,6 +160,12 @@ var _ = Describe("DeleteBinding", func() {
Expect(err).To(MatchError(ContainSubstring("unmarshalling secrets")))
})

It("returns an error when DNS addresses cannot be unmarshalled", func() {
expectedInputParams.DeleteBinding.DNSAddresses = "not-json"
err := action.Execute(expectedInputParams, outputBuffer)
Expect(err).To(MatchError(ContainSubstring("unmarshalling DNS addresses")))
})

It("returns an error when binder returns an error", func() {
fakeBinder.DeleteBindingReturns(errors.New("something went wrong"))
err := action.Execute(expectedInputParams, outputBuffer)
Expand Down
4 changes: 3 additions & 1 deletion serviceadapter/domain.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ type CreateBindingParams struct {
Manifest bosh.BoshManifest
RequestParams RequestParameters
Secrets ManifestSecrets
DnsAddresses DNSAddresses
DNSAddresses DNSAddresses
}

type DeleteBindingParams struct {
Expand All @@ -59,6 +59,7 @@ type DeleteBindingParams struct {
Manifest bosh.BoshManifest
RequestParams RequestParameters
Secrets ManifestSecrets
DNSAddresses DNSAddresses
}

//go:generate counterfeiter -o fakes/binder.go . Binder
Expand Down Expand Up @@ -143,6 +144,7 @@ type DeleteBindingJSONParams struct {
Manifest string `json:"manifest"`
RequestParameters string `json:"request_parameters"`
Secrets string `json:"secrets"`
DNSAddresses string `json:"dns_addresses"`
}

type GeneratePlanSchemasJSONParams struct {
Expand Down
4 changes: 4 additions & 0 deletions serviceadapter/serviceadapter_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,10 @@ func defaultSecretParams() serviceadapter.ManifestSecrets {
return serviceadapter.ManifestSecrets{"((/a/secret/path))": "some r34||y s3cr3t v41", "((another))": "one"}
}

func defaultDNSParams() serviceadapter.DNSAddresses {
return serviceadapter.DNSAddresses{"foo": "a.b.c", "bar": "d.e.f"}
}

func defaultPlan() serviceadapter.Plan {
return serviceadapter.Plan{
InstanceGroups: []serviceadapter.InstanceGroup{{
Expand Down

0 comments on commit be5e27c

Please sign in to comment.