The R003 analyzer reports likely extraneous uses of Exists
functions for a resource. Exists
logic can be handled inside the Read
function
to prevent logic duplication.
func resourceExampleThingExists(d *schema.ResourceData, meta interface{}) (bool, error) { /* ... */ }
func resourceExampleThingRead(d *schema.ResourceData, meta interface{}) error { /* ... */ }
&schema.Resource{
Exists: resourceExampleThingExists,
Read: resourceExampleThingRead,
/* ... */
}
func resourceExampleThingRead(d *schema.ResourceData, meta interface{}) error { /* ... */ }
&schema.Resource{
Read: resourceExampleThingRead,
/* ... */
}
Singular reports can be ignored by adding the a //lintignore:R003
Go code comment at the end of the offending line or on the line immediately proceding, e.g.
&schema.Resource{
//lintignore:R003
Exists: resourceExampleThingExists,
Read: resourceExampleThingRead,
/* ... */
}