@@ -349,30 +349,56 @@ func resourceCloudStackNetworkOfferingRead(d *schema.ResourceData, meta interfac
349349 d .Set ("display_text" , n .Displaytext )
350350 d .Set ("guest_ip_type" , n .Guestiptype )
351351 d .Set ("traffic_type" , n .Traffictype )
352- d .Set ("network_rate" , n .Networkrate )
353- d .Set ("network_mode" , n .Networkmode )
354- d .Set ("conserve_mode" , n .Conservemode )
355- d .Set ("enable" , n .State == "Enabled" )
356- d .Set ("for_vpc" , n .Forvpc )
357- d .Set ("for_nsx" , n .Fornsx )
358- d .Set ("specify_vlan" , n .Specifyvlan )
359- d .Set ("specify_ip_ranges" , n .Specifyipranges )
360- d .Set ("specify_as_number" , n .Specifyasnumber )
361- d .Set ("internet_protocol" , n .Internetprotocol )
362- d .Set ("routing_mode" , n .Routingmode )
363- d .Set ("max_connections" , n .Maxconnections )
364-
365- // Set supported services
366- if len (n .Service ) > 0 {
352+
353+ // Only set optional attributes if they were specified in the configuration
354+ if _ , ok := d .GetOk ("network_rate" ); ok {
355+ d .Set ("network_rate" , n .Networkrate )
356+ }
357+ if _ , ok := d .GetOk ("network_mode" ); ok {
358+ d .Set ("network_mode" , n .Networkmode )
359+ }
360+ if _ , ok := d .GetOk ("conserve_mode" ); ok {
361+ d .Set ("conserve_mode" , n .Conservemode )
362+ }
363+ if _ , ok := d .GetOk ("enable" ); ok {
364+ d .Set ("enable" , n .State == "Enabled" )
365+ }
366+ if _ , ok := d .GetOk ("for_vpc" ); ok {
367+ d .Set ("for_vpc" , n .Forvpc )
368+ }
369+ if _ , ok := d .GetOk ("for_nsx" ); ok {
370+ d .Set ("for_nsx" , n .Fornsx )
371+ }
372+ if _ , ok := d .GetOk ("specify_vlan" ); ok {
373+ d .Set ("specify_vlan" , n .Specifyvlan )
374+ }
375+ if _ , ok := d .GetOk ("specify_ip_ranges" ); ok {
376+ d .Set ("specify_ip_ranges" , n .Specifyipranges )
377+ }
378+ if _ , ok := d .GetOk ("specify_as_number" ); ok {
379+ d .Set ("specify_as_number" , n .Specifyasnumber )
380+ }
381+ if _ , ok := d .GetOk ("internet_protocol" ); ok {
382+ d .Set ("internet_protocol" , n .Internetprotocol )
383+ }
384+ if _ , ok := d .GetOk ("routing_mode" ); ok {
385+ d .Set ("routing_mode" , n .Routingmode )
386+ }
387+ if _ , ok := d .GetOk ("max_connections" ); ok {
388+ d .Set ("max_connections" , n .Maxconnections )
389+ }
390+
391+ // Set supported services if specified
392+ if _ , ok := d .GetOk ("supported_services" ); ok && len (n .Service ) > 0 {
367393 services := make ([]string , len (n .Service ))
368394 for i , service := range n .Service {
369395 services [i ] = service .Name
370396 }
371397 d .Set ("supported_services" , services )
372398 }
373399
374- // Set service provider list
375- if len (n .Service ) > 0 {
400+ // Set service provider list if specified
401+ if _ , ok := d . GetOk ( "service_provider_list" ); ok && len (n .Service ) > 0 {
376402 serviceProviders := make (map [string ]string )
377403 for _ , service := range n .Service {
378404 if len (service .Provider ) > 0 {
0 commit comments