@@ -420,7 +420,10 @@ func (s *InstanceResourceCrud) Create() error {
420420 }
421421
422422 if rawExtendedMetadata , ok := s .D .GetOkExists ("extended_metadata" ); ok {
423- extendedMetadata := mapToExtendedMetadata (rawExtendedMetadata .(map [string ]interface {}))
423+ extendedMetadata , err := mapToExtendedMetadata (rawExtendedMetadata .(map [string ]interface {}))
424+ if err != nil {
425+ return err
426+ }
424427 request .ExtendedMetadata = extendedMetadata
425428 }
426429
@@ -690,7 +693,7 @@ func (s *InstanceResourceCrud) SetData() error {
690693 }
691694 }
692695
693- err := s .D .Set ("create_vnic_details" , []interface {}{vnicDetailsToMap (vnic , createVnicDetails )})
696+ err := s .D .Set ("create_vnic_details" , []interface {}{CreateVnicDetailsToMap (vnic , createVnicDetails )})
694697 if err != nil {
695698 log .Printf ("[WARN] create_vnic_details could not be set: %q" , err )
696699 }
@@ -713,11 +716,11 @@ func (s *InstanceResourceCrud) mapToCreateVnicDetailsInstance(fieldKeyFormat str
713716 }
714717
715718 if definedTags , ok := s .D .GetOkExists (fmt .Sprintf (fieldKeyFormat , "defined_tags" )); ok {
716- convertedDefinedTags , err := mapToDefinedTags (definedTags .(map [string ]interface {}))
719+ tmp , err := mapToDefinedTags (definedTags .(map [string ]interface {}))
717720 if err != nil {
718- return result , err
721+ return result , fmt . Errorf ( "unable to convert defined_tags, encountered error: %v" , err )
719722 }
720- result .DefinedTags = convertedDefinedTags
723+ result .DefinedTags = tmp
721724 }
722725
723726 if displayName , ok := s .D .GetOkExists (fmt .Sprintf (fieldKeyFormat , "display_name" )); ok {
@@ -752,40 +755,7 @@ func (s *InstanceResourceCrud) mapToCreateVnicDetailsInstance(fieldKeyFormat str
752755 return result , nil
753756}
754757
755- func (s * InstanceResourceCrud ) mapToUpdateVnicDetailsInstance (fieldKeyFormat string ) (oci_core.UpdateVnicDetails , error ) {
756- result := oci_core.UpdateVnicDetails {}
757-
758- if definedTags , ok := s .D .GetOkExists (fmt .Sprintf (fieldKeyFormat , "defined_tags" )); ok {
759- convertedDefinedTags , err := mapToDefinedTags (definedTags .(map [string ]interface {}))
760- if err != nil {
761- return result , err
762- }
763- result .DefinedTags = convertedDefinedTags
764- }
765-
766- if displayName , ok := s .D .GetOkExists (fmt .Sprintf (fieldKeyFormat , "display_name" )); ok {
767- tmp := displayName .(string )
768- result .DisplayName = & tmp
769- }
770-
771- if freeformTags , ok := s .D .GetOkExists (fmt .Sprintf (fieldKeyFormat , "freeform_tags" )); ok {
772- result .FreeformTags = objectMapToStringMap (freeformTags .(map [string ]interface {}))
773- }
774-
775- if hostnameLabel , ok := s .D .GetOkExists (fmt .Sprintf (fieldKeyFormat , "hostname_label" )); ok {
776- tmp := hostnameLabel .(string )
777- result .HostnameLabel = & tmp
778- }
779-
780- if skipSourceDestCheck , ok := s .D .GetOkExists (fmt .Sprintf (fieldKeyFormat , "skip_source_dest_check" )); ok {
781- tmp := skipSourceDestCheck .(bool )
782- result .SkipSourceDestCheck = & tmp
783- }
784-
785- return result , nil
786- }
787-
788- func vnicDetailsToMap (obj * oci_core.Vnic , createVnicDetails map [string ]interface {}) map [string ]interface {} {
758+ func CreateVnicDetailsToMap (obj * oci_core.Vnic , createVnicDetails map [string ]interface {}) map [string ]interface {} {
789759 result := map [string ]interface {}{}
790760
791761 // "assign_public_ip" isn't part of the VNIC's state & is only useful at creation time (and
@@ -808,9 +778,7 @@ func vnicDetailsToMap(obj *oci_core.Vnic, createVnicDetails map[string]interface
808778 result ["display_name" ] = string (* obj .DisplayName )
809779 }
810780
811- if obj .FreeformTags != nil {
812- result ["freeform_tags" ] = obj .FreeformTags
813- }
781+ result ["freeform_tags" ] = obj .FreeformTags
814782
815783 if obj .HostnameLabel != nil {
816784 result ["hostname_label" ] = string (* obj .HostnameLabel )
@@ -831,6 +799,39 @@ func vnicDetailsToMap(obj *oci_core.Vnic, createVnicDetails map[string]interface
831799 return result
832800}
833801
802+ func (s * InstanceResourceCrud ) mapToUpdateVnicDetailsInstance (fieldKeyFormat string ) (oci_core.UpdateVnicDetails , error ) {
803+ result := oci_core.UpdateVnicDetails {}
804+
805+ if definedTags , ok := s .D .GetOkExists (fmt .Sprintf (fieldKeyFormat , "defined_tags" )); ok {
806+ convertedDefinedTags , err := mapToDefinedTags (definedTags .(map [string ]interface {}))
807+ if err != nil {
808+ return result , err
809+ }
810+ result .DefinedTags = convertedDefinedTags
811+ }
812+
813+ if displayName , ok := s .D .GetOkExists (fmt .Sprintf (fieldKeyFormat , "display_name" )); ok {
814+ tmp := displayName .(string )
815+ result .DisplayName = & tmp
816+ }
817+
818+ if freeformTags , ok := s .D .GetOkExists (fmt .Sprintf (fieldKeyFormat , "freeform_tags" )); ok {
819+ result .FreeformTags = objectMapToStringMap (freeformTags .(map [string ]interface {}))
820+ }
821+
822+ if hostnameLabel , ok := s .D .GetOkExists (fmt .Sprintf (fieldKeyFormat , "hostname_label" )); ok {
823+ tmp := hostnameLabel .(string )
824+ result .HostnameLabel = & tmp
825+ }
826+
827+ if skipSourceDestCheck , ok := s .D .GetOkExists (fmt .Sprintf (fieldKeyFormat , "skip_source_dest_check" )); ok {
828+ tmp := skipSourceDestCheck .(bool )
829+ result .SkipSourceDestCheck = & tmp
830+ }
831+
832+ return result , nil
833+ }
834+
834835func (s * InstanceResourceCrud ) mapToInstanceSourceDetails (fieldKeyFormat string ) (oci_core.InstanceSourceDetails , error ) {
835836 var baseObject oci_core.InstanceSourceDetails
836837 //discriminator
@@ -904,7 +905,7 @@ func InstanceSourceDetailsToMap(obj *oci_core.InstanceSourceDetails, bootVolume
904905 return result
905906}
906907
907- func mapToExtendedMetadata (rm map [string ]interface {}) map [string ]interface {} {
908+ func mapToExtendedMetadata (rm map [string ]interface {}) ( map [string ]interface {}, error ) {
908909 result := make (map [string ]interface {})
909910 for k , v := range rm {
910911 val := make (map [string ]interface {})
@@ -915,7 +916,7 @@ func mapToExtendedMetadata(rm map[string]interface{}) map[string]interface{} {
915916 result [k ] = v .(string )
916917 }
917918 }
918- return result
919+ return result , nil
919920}
920921
921922func (s * InstanceResourceCrud ) getPrimaryVnic () (* oci_core.Vnic , error ) {
0 commit comments