Skip to content

Commit e9462a1

Browse files
committed
Export servers using image name instead of Id (to make it easier to deploy in another data centre).
1 parent 7e3c88d commit e9462a1

File tree

4 files changed

+23
-4
lines changed

4 files changed

+23
-4
lines changed

CHANGES.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Changelog for dd-tf-export
2+
3+
## v0.2-alpha2
4+
5+
Changes:
6+
7+
* ddcloud_server is now exported using source image name instead of ID where possible. This makes it easier when retargeting configurations to other data centres.

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@ test: fmt
3232
go test -v github.com/DimensionDataResearch/dd-tf-export
3333

3434
version:
35-
echo "package main\n\n// ProgramVersion is the current version of the DD Cloud Compute terraform exporter.\nconst ProgramVersion = \"v0.2-alpha1 (`git rev-parse HEAD`)\"" > ./version-info.go
35+
echo "package main\n\n// ProgramVersion is the current version of the DD Cloud Compute terraform exporter.\nconst ProgramVersion = \"v0.2-alpha2 (`git rev-parse HEAD`)\"" > ./version-info.go

export_networkdomain.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,11 @@ func (exporter *Exporter) ExportNetworkDomain(id string, uniquenessKey int, recu
108108
serverUniquenessKey := uniquenessKey + index
109109
serverResourceName := makeServerResourceName(serverUniquenessKey)
110110
serverResourceNamesByPrivateIPv4[serverPrivateIPv4] = serverResourceName
111-
exporter.exportServer(server, networkDomainID, vlanID, serverUniquenessKey)
111+
112+
err = exporter.exportServer(server, networkDomainID, vlanID, serverUniquenessKey)
113+
if err != nil {
114+
return err
115+
}
112116
}
113117

114118
page.Next()

export_server.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ resource "ddcloud_server" "%s" {
2525
dns_primary = "8.8.8.8"
2626
dns_secondary = "8.8.4.4"
2727
28-
osimage_id = "%s"%s%s
28+
osimage_name = "%s"%s%s
2929
}
3030
`
3131

@@ -40,6 +40,14 @@ func (exporter *Exporter) exportServer(server compute.Server, networkDomainID st
4040
return err
4141
}
4242

43+
osImage, err := exporter.APIClient.GetOSImage(server.SourceImageID)
44+
if err != nil {
45+
return err
46+
}
47+
if osImage == nil {
48+
return fmt.Errorf("Cannot find OS image '%s'.", server.SourceImageID)
49+
}
50+
4351
configuration := fmt.Sprintf(configurationTemplateServer,
4452
makeServerResourceName(uniquenessKey),
4553
server.Name,
@@ -49,7 +57,7 @@ func (exporter *Exporter) exportServer(server compute.Server, networkDomainID st
4957
networkDomainID,
5058
primaryVLANResourceName,
5159
*server.Network.PrimaryAdapter.PrivateIPv4Address,
52-
server.SourceImageID,
60+
osImage.Name,
5361
diskConfiguration,
5462
tagConfiguration,
5563
)

0 commit comments

Comments
 (0)