@@ -16,15 +16,9 @@ func resourceNsxtPolicySegmentPortBinding() *schema.Resource {
1616 Delete : func (d * schema.ResourceData , m interface {}) error { return nil },
1717 Schema : map [string ]* schema.Schema {
1818 "context" : getContextSchema (false , false , false ),
19- "segment_port_id " : {
19+ "segment_port_path " : {
2020 Type : schema .TypeString ,
21- Description : "ID of the segment port" ,
22- Required : true ,
23- ForceNew : true ,
24- },
25- "segment_path" : {
26- Type : schema .TypeString ,
27- Description : "Path of the segment" ,
21+ Description : "Policy path of the segment port" ,
2822 Required : true ,
2923 ForceNew : true ,
3024 },
@@ -56,8 +50,12 @@ func resourceNsxtPolicySegmentPortBinding() *schema.Resource {
5650func resourceNsxtPolicySegmentPortBindingCreate (d * schema.ResourceData , m interface {}) error {
5751 connector := getPolicyConnector (m )
5852 context := getSessionContext (d , m )
59- segmentPortID := d .Get ("segment_port_id" ).(string )
60- segmentPath := d .Get ("segment_path" ).(string )
53+ segmentPortPath := d .Get ("segment_port_path" ).(string )
54+ segmentPortID := getPolicyIDFromPath (segmentPortPath )
55+ segmentPath , err := getPolicySegmentPathFromPortPath (segmentPortPath )
56+ if err != nil {
57+ return fmt .Errorf ("Error parsing Segment Port Path: %v" , err )
58+ }
6159
6260 segmentPort , err := getSegmentPort (segmentPath , segmentPortID , context , connector )
6361 if err != nil {
@@ -81,10 +79,14 @@ func resourceNsxtPolicySegmentPortBindingCreate(d *schema.ResourceData, m interf
8179
8280func resourceNsxtPolicySegmentPortBindingRead (d * schema.ResourceData , m interface {}) error {
8381 connector := getPolicyConnector (m )
84- segmentPortID := d .Get ("segment_port_id" ).(string )
85- segmentPath := d .Get ("segment_path" ).(string )
82+ segmentPortPath := d .Get ("segment_port_path" ).(string )
83+ segmentPortID := getPolicyIDFromPath (segmentPortPath )
84+ segmentPath , err := getPolicySegmentPathFromPortPath (segmentPortPath )
85+ if err != nil {
86+ return fmt .Errorf ("Error parsing Segment Port Path: %v" , err )
87+ }
8688
87- _ , err : = getSegmentPort (segmentPath , segmentPortID , getSessionContext (d , m ), connector )
89+ _ , err = getSegmentPort (segmentPath , segmentPortID , getSessionContext (d , m ), connector )
8890 if err != nil {
8991 if isNotFoundError (err ) {
9092 d .SetId ("" )
@@ -105,8 +107,12 @@ func resourceNsxtPolicySegmentPortBindingUpdate(d *schema.ResourceData, m interf
105107 connector := getPolicyConnector (m )
106108 context := getSessionContext (d , m )
107109
108- segmentPortID := d .Get ("segment_port_id" ).(string )
109- segmentPath := d .Get ("segment_path" ).(string )
110+ segmentPortPath := d .Get ("segment_port_path" ).(string )
111+ segmentPortID := getPolicyIDFromPath (segmentPortPath )
112+ segmentPath , err := getPolicySegmentPathFromPortPath (segmentPortPath )
113+ if err != nil {
114+ return fmt .Errorf ("Error parsing Segment Port Path: %v" , err )
115+ }
110116 segmentPort , err := getSegmentPort (segmentPath , segmentPortID , context , connector )
111117 if err != nil {
112118 return fmt .Errorf ("Error getting Segment Port: %v" , err )
@@ -126,9 +132,13 @@ func resourceNsxtPolicySegmentPortBindingUpdate(d *schema.ResourceData, m interf
126132}
127133
128134func policySegmentPortBindingResourceToInfraStruct (segmentPort model.SegmentPort , d * schema.ResourceData , isDestroy bool ) (model.Infra , error ) {
129- segmentPath := d .Get ("segment_path" ).(string )
135+ segmentPortPath := d .Get ("segment_port_path" ).(string )
136+ segmentPath , err := getParameterFromPolicyPath ("/segments/" , "/ports/" , segmentPortPath )
137+ if err != nil {
138+ return model.Infra {}, err
139+ }
130140
131- err : = nsxtPolicySegmentPortProfilesSetInStruct (d , & segmentPort )
141+ err = nsxtPolicySegmentPortProfilesSetInStruct (d , & segmentPort )
132142 if err != nil {
133143 return model.Infra {}, err
134144 }
0 commit comments