@@ -18,8 +18,9 @@ import (
1818
1919var testAccProvider * schema.Provider
2020var testAccProviders map [string ]terraform.ResourceProvider
21- var requiredEnvVars = []string {"tenancy_ocid" , "user_ocid" , "compartment_ocid" , "fingerprint" , "private_key_path" ,
22- "compartment_id_for_create" , "compartment_id_for_update" , "tags_import_if_exists" }
21+ var requiredTestEnvVars = []string {"compartment_ocid" , "compartment_id_for_create" , "compartment_id_for_update" , "tags_import_if_exists" }
22+ var requiredKeyAuthEnvVars = []string {"tenancy_ocid" , "user_ocid" , "fingerprint" , "private_key_path" }
23+ var requiredOboTokenAuthEnvVars = []string {"tenancy_ocid" , "obo_token" }
2324
2425func init () {
2526 testAccProvider = Provider (func (d * schema.ResourceData ) (interface {}, error ) {
@@ -33,23 +34,14 @@ func init() {
3334
3435func testProviderConfig () string {
3536 return `
37+ # Need to have this block even though it's empty; for import testing
3638 provider "oci" {
37- tenancy_ocid = "ocid.tenancy.aaaa"
38- user_ocid = "ocid.user.bbbbb"
39- fingerprint = "xxxxxxxxxx"
40- private_key_path = "/home/foo/private_key.pem"
41- private_key_password = "password"
42- region = "us-phoenix-1"
4339 }
4440
4541 variable "tenancy_ocid" {
4642 default = "` + getEnvSettingWithBlankDefault ("tenancy_ocid" ) + `"
4743 }
4844
49- variable "namespace" {
50- default = "` + getEnvSettingWithDefault ("namespace" , "mustwin" ) + `"
51- }
52-
5345 variable "ssh_public_key" {
5446 default = "ssh-rsa KKKLK3NzaC1yc2EAAAADAQABAAABAQC+UC9MFNA55NIVtKPIBCNw7++ACXhD0hx+Zyj25JfHykjz/QU3Q5FAU3DxDbVXyubgXfb/GJnrKRY8O4QDdvnZZRvQFFEOaApThAmCAM5MuFUIHdFvlqP+0W+ZQnmtDhwVe2NCfcmOrMuaPEgOKO3DOW6I/qOOdO691Xe2S9NgT9HhN0ZfFtEODVgvYulgXuCCXsJs+NUqcHAOxxFUmwkbPvYi0P0e2DT8JKeiOOC8VKUEgvVx+GKmqasm+Y6zHFW7vv3g2GstE1aRs3mttHRoC/JPM86PRyIxeWXEMzyG5wHqUu4XZpDbnWNxi6ugxnAGiL3CrIFdCgRNgHz5qS1l MustWin"
5547 }
@@ -62,7 +54,15 @@ func testProviderConfig() string {
6254}
6355
6456func testAccPreCheck (t * testing.T ) {
65- for _ , envVar := range requiredEnvVars {
57+ envVarChecklist := []string {}
58+ copy (envVarChecklist , requiredTestEnvVars )
59+ if getEnvSettingWithDefault ("use_obo_token" , "false" ) != "false" {
60+ envVarChecklist = append (envVarChecklist , requiredOboTokenAuthEnvVars ... )
61+ } else {
62+ envVarChecklist = append (envVarChecklist , requiredKeyAuthEnvVars ... )
63+ }
64+
65+ for _ , envVar := range envVarChecklist {
6666 assertEnvAvailable (envVar , t )
6767 }
6868
@@ -222,16 +222,20 @@ func GetTestProvider() *OracleClients {
222222 }
223223 d := r .Data (nil )
224224 d .SetId (getEnvSettingWithBlankDefault ("tenancy_ocid" ))
225-
226- d .Set ("auth" , getEnvSettingWithDefault ("auth" , authAPIKeySetting ))
227225 d .Set ("tenancy_ocid" , getEnvSettingWithBlankDefault ("tenancy_ocid" ))
228- d .Set ("user_ocid" , getEnvSettingWithBlankDefault ("user_ocid" ))
229- d .Set ("fingerprint" , getEnvSettingWithBlankDefault ("fingerprint" ))
230- d .Set ("private_key_path" , getEnvSettingWithBlankDefault ("private_key_path" ))
231- d .Set ("private_key_password" , getEnvSettingWithBlankDefault ("private_key_password" ))
232- d .Set ("private_key" , getEnvSettingWithBlankDefault ("private_key" ))
233226 d .Set ("region" , getEnvSettingWithDefault ("region" , "us-phoenix-1" ))
234227
228+ if getEnvSettingWithDefault ("use_obo_token" , "false" ) == "false" {
229+ d .Set ("auth" , getEnvSettingWithDefault ("auth" , authAPIKeySetting ))
230+ d .Set ("user_ocid" , getEnvSettingWithBlankDefault ("user_ocid" ))
231+ d .Set ("fingerprint" , getEnvSettingWithBlankDefault ("fingerprint" ))
232+ d .Set ("private_key_path" , getEnvSettingWithBlankDefault ("private_key_path" ))
233+ d .Set ("private_key_password" , getEnvSettingWithBlankDefault ("private_key_password" ))
234+ d .Set ("private_key" , getEnvSettingWithBlankDefault ("private_key" ))
235+ } else {
236+ d .Set ("auth" , getEnvSettingWithDefault ("auth" , authInstancePrincipalSetting ))
237+ }
238+
235239 client , err := ProviderConfig (d )
236240 if err != nil {
237241 panic (err )
0 commit comments