@@ -6,17 +6,18 @@ import (
66 "log"
77 "strings"
88
9+ "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
910 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1011)
1112
1213func resourceGithubEnterpriseCostCenter () * schema.Resource {
1314 return & schema.Resource {
14- Create : resourceGithubEnterpriseCostCenterCreate ,
15- Read : resourceGithubEnterpriseCostCenterRead ,
16- Update : resourceGithubEnterpriseCostCenterUpdate ,
17- Delete : resourceGithubEnterpriseCostCenterDelete ,
15+ CreateContext : resourceGithubEnterpriseCostCenterCreate ,
16+ ReadContext : resourceGithubEnterpriseCostCenterRead ,
17+ UpdateContext : resourceGithubEnterpriseCostCenterUpdate ,
18+ DeleteContext : resourceGithubEnterpriseCostCenterDelete ,
1819 Importer : & schema.ResourceImporter {
19- State : resourceGithubEnterpriseCostCenterImport ,
20+ StateContext : resourceGithubEnterpriseCostCenterImport ,
2021 },
2122
2223 Schema : map [string ]* schema.Schema {
@@ -63,33 +64,33 @@ func resourceGithubEnterpriseCostCenter() *schema.Resource {
6364 }
6465}
6566
66- func resourceGithubEnterpriseCostCenterCreate (d * schema.ResourceData , meta any ) error {
67+ func resourceGithubEnterpriseCostCenterCreate (ctx context. Context , d * schema.ResourceData , meta any ) diag. Diagnostics {
6768 client := meta .(* Owner ).v3client
6869 enterpriseSlug := d .Get ("enterprise_slug" ).(string )
6970 name := d .Get ("name" ).(string )
7071
71- ctx : = context .WithValue (context . Background () , ctxId , fmt .Sprintf ("%s/%s" , enterpriseSlug , name ))
72+ ctx = context .WithValue (ctx , ctxId , fmt .Sprintf ("%s/%s" , enterpriseSlug , name ))
7273 log .Printf ("[INFO] Creating enterprise cost center: %s (%s)" , name , enterpriseSlug )
7374
7475 cc , err := enterpriseCostCenterCreate (ctx , client , enterpriseSlug , name )
7576 if err != nil {
76- return err
77+ return diag . FromErr ( err )
7778 }
7879
7980 if cc == nil || cc .ID == "" {
80- return fmt .Errorf ("failed to create cost center: missing id in response" )
81+ return diag . FromErr ( fmt .Errorf ("failed to create cost center: missing id in response" ) )
8182 }
8283
8384 d .SetId (cc .ID )
84- return resourceGithubEnterpriseCostCenterRead (d , meta )
85+ return resourceGithubEnterpriseCostCenterRead (ctx , d , meta )
8586}
8687
87- func resourceGithubEnterpriseCostCenterRead (d * schema.ResourceData , meta any ) error {
88+ func resourceGithubEnterpriseCostCenterRead (ctx context. Context , d * schema.ResourceData , meta any ) diag. Diagnostics {
8889 client := meta .(* Owner ).v3client
8990 enterpriseSlug := d .Get ("enterprise_slug" ).(string )
9091 costCenterID := d .Id ()
9192
92- ctx : = context .WithValue (context . Background () , ctxId , fmt .Sprintf ("%s/%s" , enterpriseSlug , costCenterID ))
93+ ctx = context .WithValue (ctx , ctxId , fmt .Sprintf ("%s/%s" , enterpriseSlug , costCenterID ))
9394
9495 cc , err := enterpriseCostCenterGet (ctx , client , enterpriseSlug , costCenterID )
9596 if err != nil {
@@ -98,7 +99,7 @@ func resourceGithubEnterpriseCostCenterRead(d *schema.ResourceData, meta any) er
9899 d .SetId ("" )
99100 return nil
100101 }
101- return err
102+ return diag . FromErr ( err )
102103 }
103104
104105 _ = d .Set ("name" , cc .Name )
@@ -122,53 +123,53 @@ func resourceGithubEnterpriseCostCenterRead(d *schema.ResourceData, meta any) er
122123 return nil
123124}
124125
125- func resourceGithubEnterpriseCostCenterUpdate (d * schema.ResourceData , meta any ) error {
126+ func resourceGithubEnterpriseCostCenterUpdate (ctx context. Context , d * schema.ResourceData , meta any ) diag. Diagnostics {
126127 client := meta .(* Owner ).v3client
127128 enterpriseSlug := d .Get ("enterprise_slug" ).(string )
128129 costCenterID := d .Id ()
129130
130- ctx : = context .WithValue (context . Background () , ctxId , fmt .Sprintf ("%s/%s" , enterpriseSlug , costCenterID ))
131+ ctx = context .WithValue (ctx , ctxId , fmt .Sprintf ("%s/%s" , enterpriseSlug , costCenterID ))
131132
132133 cc , err := enterpriseCostCenterGet (ctx , client , enterpriseSlug , costCenterID )
133134 if err != nil {
134- return err
135+ return diag . FromErr ( err )
135136 }
136137 if strings .EqualFold (cc .State , "deleted" ) {
137- return fmt .Errorf ("cannot update cost center %q because it is archived" , costCenterID )
138+ return diag . FromErr ( fmt .Errorf ("cannot update cost center %q because it is archived" , costCenterID ) )
138139 }
139140
140141 if d .HasChange ("name" ) {
141142 name := d .Get ("name" ).(string )
142143 log .Printf ("[INFO] Updating enterprise cost center: %s/%s" , enterpriseSlug , costCenterID )
143144 _ , err := enterpriseCostCenterUpdate (ctx , client , enterpriseSlug , costCenterID , name )
144145 if err != nil {
145- return err
146+ return diag . FromErr ( err )
146147 }
147148 }
148149
149- return resourceGithubEnterpriseCostCenterRead (d , meta )
150+ return resourceGithubEnterpriseCostCenterRead (ctx , d , meta )
150151}
151152
152- func resourceGithubEnterpriseCostCenterDelete (d * schema.ResourceData , meta any ) error {
153+ func resourceGithubEnterpriseCostCenterDelete (ctx context. Context , d * schema.ResourceData , meta any ) diag. Diagnostics {
153154 client := meta .(* Owner ).v3client
154155 enterpriseSlug := d .Get ("enterprise_slug" ).(string )
155156 costCenterID := d .Id ()
156157
157- ctx : = context .WithValue (context . Background () , ctxId , fmt .Sprintf ("%s/%s" , enterpriseSlug , costCenterID ))
158+ ctx = context .WithValue (ctx , ctxId , fmt .Sprintf ("%s/%s" , enterpriseSlug , costCenterID ))
158159 log .Printf ("[INFO] Archiving enterprise cost center: %s/%s" , enterpriseSlug , costCenterID )
159160
160161 _ , err := enterpriseCostCenterArchive (ctx , client , enterpriseSlug , costCenterID )
161162 if err != nil {
162163 if is404 (err ) {
163164 return nil
164165 }
165- return err
166+ return diag . FromErr ( err )
166167 }
167168
168169 return nil
169170}
170171
171- func resourceGithubEnterpriseCostCenterImport (d * schema.ResourceData , meta any ) ([]* schema.ResourceData , error ) {
172+ func resourceGithubEnterpriseCostCenterImport (ctx context. Context , d * schema.ResourceData , meta any ) ([]* schema.ResourceData , error ) {
172173 parts := strings .Split (d .Id (), "/" )
173174 if len (parts ) != 2 {
174175 return nil , fmt .Errorf ("invalid import specified: supplied import must be written as <enterprise_slug>/<cost_center_id>" )
0 commit comments