@@ -8,16 +8,17 @@ import (
8
8
"github.com/hashicorp/terraform/helper/schema"
9
9
"github.com/hashicorp/terraform/helper/validation"
10
10
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/response"
11
+ "github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/suppress"
11
12
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils"
12
13
)
13
14
14
15
var routeTableResourceName = "azurerm_route_table"
15
16
16
17
func resourceArmRouteTable () * schema.Resource {
17
18
return & schema.Resource {
18
- Create : resourceArmRouteTableCreate ,
19
+ Create : resourceArmRouteTableCreateUpdate ,
19
20
Read : resourceArmRouteTableRead ,
20
- Update : resourceArmRouteTableCreate ,
21
+ Update : resourceArmRouteTableCreateUpdate ,
21
22
Delete : resourceArmRouteTableDelete ,
22
23
23
24
Importer : & schema.ResourceImporter {
@@ -64,7 +65,7 @@ func resourceArmRouteTable() *schema.Resource {
64
65
string (network .RouteNextHopTypeVirtualAppliance ),
65
66
string (network .RouteNextHopTypeNone ),
66
67
}, true ),
67
- DiffSuppressFunc : ignoreCaseDiffSuppressFunc ,
68
+ DiffSuppressFunc : suppress . CaseDifference ,
68
69
},
69
70
70
71
"next_hop_in_ip_address" : {
@@ -95,7 +96,7 @@ func resourceArmRouteTable() *schema.Resource {
95
96
}
96
97
}
97
98
98
- func resourceArmRouteTableCreate (d * schema.ResourceData , meta interface {}) error {
99
+ func resourceArmRouteTableCreateUpdate (d * schema.ResourceData , meta interface {}) error {
99
100
client := meta .(* ArmClient ).routeTablesClient
100
101
ctx := meta .(* ArmClient ).StopContext
101
102
@@ -106,16 +107,11 @@ func resourceArmRouteTableCreate(d *schema.ResourceData, meta interface{}) error
106
107
resGroup := d .Get ("resource_group_name" ).(string )
107
108
tags := d .Get ("tags" ).(map [string ]interface {})
108
109
109
- routes , err := expandRouteTableRoutes (d )
110
- if err != nil {
111
- return fmt .Errorf ("Error Expanding list of Route Table Routes: %+v" , err )
112
- }
113
-
114
110
routeSet := network.RouteTable {
115
111
Name : & name ,
116
112
Location : & location ,
117
113
RouteTablePropertiesFormat : & network.RouteTablePropertiesFormat {
118
- Routes : & routes ,
114
+ Routes : expandRouteTableRoutes ( d ) ,
119
115
DisableBgpRoutePropagation : utils .Bool (d .Get ("disable_bgp_route_propagation" ).(bool )),
120
116
},
121
117
Tags : expandTags (tags ),
@@ -126,8 +122,7 @@ func resourceArmRouteTableCreate(d *schema.ResourceData, meta interface{}) error
126
122
return fmt .Errorf ("Error Creating/Updating Route Table %q (Resource Group %q): %+v" , name , resGroup , err )
127
123
}
128
124
129
- err = future .WaitForCompletionRef (ctx , client .Client )
130
- if err != nil {
125
+ if err = future .WaitForCompletionRef (ctx , client .Client ); err != nil {
131
126
return fmt .Errorf ("Error waiting for completion of Route Table %q (Resource Group %q): %+v" , name , resGroup , err )
132
127
}
133
128
@@ -204,43 +199,36 @@ func resourceArmRouteTableDelete(d *schema.ResourceData, meta interface{}) error
204
199
}
205
200
}
206
201
207
- err = future .WaitForCompletionRef (ctx , client .Client )
208
- if err != nil {
202
+ if err := future .WaitForCompletionRef (ctx , client .Client ); err != nil {
209
203
return fmt .Errorf ("Error waiting for deletion of Route Table %q (Resource Group %q): %+v" , name , resGroup , err )
210
204
}
211
205
212
206
return nil
213
207
}
214
208
215
- func expandRouteTableRoutes (d * schema.ResourceData ) ( []network.Route , error ) {
209
+ func expandRouteTableRoutes (d * schema.ResourceData ) * []network.Route {
216
210
configs := d .Get ("route" ).([]interface {})
217
211
routes := make ([]network.Route , 0 , len (configs ))
218
212
219
213
for _ , configRaw := range configs {
220
214
data := configRaw .(map [string ]interface {})
221
215
222
- addressPrefix := data [ "address_prefix" ].( string )
223
- nextHopType := data ["next_hop_type " ].(string )
224
-
225
- properties := network. RoutePropertiesFormat {
226
- AddressPrefix : & addressPrefix ,
227
- NextHopType : network . RouteNextHopType ( nextHopType ) ,
216
+ route := network. Route {
217
+ Name : utils . String ( data ["name " ].(string )),
218
+ RoutePropertiesFormat : & network. RoutePropertiesFormat {
219
+ AddressPrefix : utils . String ( data [ "address_prefix" ].( string )),
220
+ NextHopType : network . RouteNextHopType ( data [ "next_hop_type" ].( string )) ,
221
+ } ,
228
222
}
229
223
230
224
if v := data ["next_hop_in_ip_address" ].(string ); v != "" {
231
- properties .NextHopIPAddress = & v
232
- }
233
-
234
- name := data ["name" ].(string )
235
- route := network.Route {
236
- Name : & name ,
237
- RoutePropertiesFormat : & properties ,
225
+ route .RoutePropertiesFormat .NextHopIPAddress = & v
238
226
}
239
227
240
228
routes = append (routes , route )
241
229
}
242
230
243
- return routes , nil
231
+ return & routes
244
232
}
245
233
246
234
func flattenRouteTableRoutes (input * []network.Route ) []interface {} {
0 commit comments