Skip to content

Commit

Permalink
[ignore] Added multi line property to handle attributes containing mu…
Browse files Browse the repository at this point in the history
…ltiple lines
  • Loading branch information
shrsr committed Apr 2, 2024
1 parent f58162d commit fbb66bb
Show file tree
Hide file tree
Showing 12 changed files with 117 additions and 565 deletions.
92 changes: 10 additions & 82 deletions gen/definitions/properties.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -142,60 +142,17 @@ tagAnnotation:
pkiTP:
overwrites:
cert_chain: "certificate_chain"
multi_line:
- "certificate_chain"
resource_required:
- "certChain"
test_values:
resource_required:
certificate_chain: <<EOT
-----BEGIN CERTIFICATE-----
MIICODCCAaGgAwIBAgIJAIt8XMntue0VMA0GCSqGSIb3DQEBCwUAMDQxDjAMBgNV
BAMMBUFkbWluMRUwEwYDVQQKDAxZb3VyIENvbXBhbnkxCzAJBgNVBAYTAlVTMCAX
DTE4MDEwOTAwNTk0NFoYDzIxMTcxMjE2MDA1OTQ0WjA0MQ4wDAYDVQQDDAVBZG1p
bjEVMBMGA1UECgwMWW91ciBDb21wYW55MQswCQYDVQQGEwJVUzCBnzANBgkqhkiG
9w0BAQEFAAOBjQAwgYkCgYEAohG/7axtt7CbSaMP7r+2mhTKbNgh0Ww36C7Ta14i
v+VmLyKkQHnXinKGhp6uy3Nug+15a+eIu7CrgpBVMQeCiWfsnwRocKcQJWIYDrWl
XHxGQn31yYKR6mylE7Dcj3rMFybnyhezr5D8GcP85YRPmwG9H2hO/0Y1FUnWu9Iw
AQkCAwEAAaNQME4wHQYDVR0OBBYEFD0jLXfpkrU/ChzRvfruRs/fy1VXMB8GA1Ud
IwQYMBaAFD0jLXfpkrU/ChzRvfruRs/fy1VXMAwGA1UdEwQFMAMBAf8wDQYJKoZI
hvcNAQELBQADgYEAOmvre+5tgZ0+F3DgsfxNQqLTrGiBgGCIymPkP/cBXXkNuJyl
3ac7tArHQc7WEA4U2R2rZbEq8FC3UJJm4nUVtCPvEh3G9OhN2xwYev79yt6pIn/l
KU0Td2OpVyo0eLqjoX5u2G90IBWzhyjFbo+CcKMrSVKj1YOdG0E3OuiJf00=
-----END CERTIFICATE-----
EOT
certificate_chain: -----BEGIN CERTIFICATE-----\\nMIICODCCAaGgAwIBAgIJAIt8XMntue0VMA0GCSqGSIb3DQEBCwUAMDQxDjAMBgNV\\nBAMMBUFkbWluMRUwEwYDVQQKDAxZb3VyIENvbXBhbnkxCzAJBgNVBAYTAlVTMCAX\\nDTE4MDEwOTAwNTk0NFoYDzIxMTcxMjE2MDA1OTQ0WjA0MQ4wDAYDVQQDDAVBZG1p\\nbjEVMBMGA1UECgwMWW91ciBDb21wYW55MQswCQYDVQQGEwJVUzCBnzANBgkqhkiG\\n9w0BAQEFAAOBjQAwgYkCgYEAohG/7axtt7CbSaMP7r+2mhTKbNgh0Ww36C7Ta14i\\nv+VmLyKkQHnXinKGhp6uy3Nug+15a+eIu7CrgpBVMQeCiWfsnwRocKcQJWIYDrWl\\nXHxGQn31yYKR6mylE7Dcj3rMFybnyhezr5D8GcP85YRPmwG9H2hO/0Y1FUnWu9Iw\\nAQkCAwEAAaNQME4wHQYDVR0OBBYEFD0jLXfpkrU/ChzRvfruRs/fy1VXMB8GA1Ud\\nIwQYMBaAFD0jLXfpkrU/ChzRvfruRs/fy1VXMAwGA1UdEwQFMAMBAf8wDQYJKoZI\\nhvcNAQELBQADgYEAOmvre+5tgZ0+F3DgsfxNQqLTrGiBgGCIymPkP/cBXXkNuJyl\\n3ac7tArHQc7WEA4U2R2rZbEq8FC3UJJm4nUVtCPvEh3G9OhN2xwYev79yt6pIn/l\\nKU0Td2OpVyo0eLqjoX5u2G90IBWzhyjFbo+CcKMrSVKj1YOdG0E3OuiJf00=\\n-----END CERTIFICATE-----
default:
certificate_chain: <<EOT
-----BEGIN CERTIFICATE-----
MIICODCCAaGgAwIBAgIJAIt8XMntue0VMA0GCSqGSIb3DQEBCwUAMDQxDjAMBgNV
BAMMBUFkbWluMRUwEwYDVQQKDAxZb3VyIENvbXBhbnkxCzAJBgNVBAYTAlVTMCAX
DTE4MDEwOTAwNTk0NFoYDzIxMTcxMjE2MDA1OTQ0WjA0MQ4wDAYDVQQDDAVBZG1p
bjEVMBMGA1UECgwMWW91ciBDb21wYW55MQswCQYDVQQGEwJVUzCBnzANBgkqhkiG
9w0BAQEFAAOBjQAwgYkCgYEAohG/7axtt7CbSaMP7r+2mhTKbNgh0Ww36C7Ta14i
v+VmLyKkQHnXinKGhp6uy3Nug+15a+eIu7CrgpBVMQeCiWfsnwRocKcQJWIYDrWl
XHxGQn31yYKR6mylE7Dcj3rMFybnyhezr5D8GcP85YRPmwG9H2hO/0Y1FUnWu9Iw
AQkCAwEAAaNQME4wHQYDVR0OBBYEFD0jLXfpkrU/ChzRvfruRs/fy1VXMB8GA1Ud
IwQYMBaAFD0jLXfpkrU/ChzRvfruRs/fy1VXMAwGA1UdEwQFMAMBAf8wDQYJKoZI
hvcNAQELBQADgYEAOmvre+5tgZ0+F3DgsfxNQqLTrGiBgGCIymPkP/cBXXkNuJyl
3ac7tArHQc7WEA4U2R2rZbEq8FC3UJJm4nUVtCPvEh3G9OhN2xwYev79yt6pIn/l
KU0Td2OpVyo0eLqjoX5u2G90IBWzhyjFbo+CcKMrSVKj1YOdG0E3OuiJf00=
-----END CERTIFICATE-----
EOT
certificate_chain: -----BEGIN CERTIFICATE-----\\nMIICODCCAaGgAwIBAgIJAIt8XMntue0VMA0GCSqGSIb3DQEBCwUAMDQxDjAMBgNV\\nBAMMBUFkbWluMRUwEwYDVQQKDAxZb3VyIENvbXBhbnkxCzAJBgNVBAYTAlVTMCAX\\nDTE4MDEwOTAwNTk0NFoYDzIxMTcxMjE2MDA1OTQ0WjA0MQ4wDAYDVQQDDAVBZG1p\\nbjEVMBMGA1UECgwMWW91ciBDb21wYW55MQswCQYDVQQGEwJVUzCBnzANBgkqhkiG\\n9w0BAQEFAAOBjQAwgYkCgYEAohG/7axtt7CbSaMP7r+2mhTKbNgh0Ww36C7Ta14i\\nv+VmLyKkQHnXinKGhp6uy3Nug+15a+eIu7CrgpBVMQeCiWfsnwRocKcQJWIYDrWl\\nXHxGQn31yYKR6mylE7Dcj3rMFybnyhezr5D8GcP85YRPmwG9H2hO/0Y1FUnWu9Iw\\nAQkCAwEAAaNQME4wHQYDVR0OBBYEFD0jLXfpkrU/ChzRvfruRs/fy1VXMB8GA1Ud\\nIwQYMBaAFD0jLXfpkrU/ChzRvfruRs/fy1VXMAwGA1UdEwQFMAMBAf8wDQYJKoZI\\nhvcNAQELBQADgYEAOmvre+5tgZ0+F3DgsfxNQqLTrGiBgGCIymPkP/cBXXkNuJyl\\n3ac7tArHQc7WEA4U2R2rZbEq8FC3UJJm4nUVtCPvEh3G9OhN2xwYev79yt6pIn/l\\nKU0Td2OpVyo0eLqjoX5u2G90IBWzhyjFbo+CcKMrSVKj1YOdG0E3OuiJf00=\\n-----END CERTIFICATE-----
all:
certificate_chain: <<EOT
-----BEGIN CERTIFICATE-----
MIICODCCAaGgAwIBAgIJAIt8XMntue0VMA0GCSqGSIb3DQEBCwUAMDQxDjAMBgNV
BAMMBUFkbWluMRUwEwYDVQQKDAxZb3VyIENvbXBhbnkxCzAJBgNVBAYTAlVTMCAX
DTE4MDEwOTAwNTk0NFoYDzIxMTcxMjE2MDA1OTQ0WjA0MQ4wDAYDVQQDDAVBZG1p
bjEVMBMGA1UECgwMWW91ciBDb21wYW55MQswCQYDVQQGEwJVUzCBnzANBgkqhkiG
9w0BAQEFAAOBjQAwgYkCgYEAohG/7axtt7CbSaMP7r+2mhTKbNgh0Ww36C7Ta14i
v+VmLyKkQHnXinKGhp6uy3Nug+15a+eIu7CrgpBVMQeCiWfsnwRocKcQJWIYDrWl
XHxGQn31yYKR6mylE7Dcj3rMFybnyhezr5D8GcP85YRPmwG9H2hO/0Y1FUnWu9Iw
AQkCAwEAAaNQME4wHQYDVR0OBBYEFD0jLXfpkrU/ChzRvfruRs/fy1VXMB8GA1Ud
IwQYMBaAFD0jLXfpkrU/ChzRvfruRs/fy1VXMAwGA1UdEwQFMAMBAf8wDQYJKoZI
hvcNAQELBQADgYEAOmvre+5tgZ0+F3DgsfxNQqLTrGiBgGCIymPkP/cBXXkNuJyl
3ac7tArHQc7WEA4U2R2rZbEq8FC3UJJm4nUVtCPvEh3G9OhN2xwYev79yt6pIn/l
KU0Td2OpVyo0eLqjoX5u2G90IBWzhyjFbo+CcKMrSVKj1YOdG0E3OuiJf00=
-----END CERTIFICATE-----
EOT
certificate_chain: -----BEGIN CERTIFICATE-----\\nMIICODCCAaGgAwIBAgIJAIt8XMntue0VMA0GCSqGSIb3DQEBCwUAMDQxDjAMBgNV\\nBAMMBUFkbWluMRUwEwYDVQQKDAxZb3VyIENvbXBhbnkxCzAJBgNVBAYTAlVTMCAX\\nDTE4MDEwOTAwNTk0NFoYDzIxMTcxMjE2MDA1OTQ0WjA0MQ4wDAYDVQQDDAVBZG1p\\nbjEVMBMGA1UECgwMWW91ciBDb21wYW55MQswCQYDVQQGEwJVUzCBnzANBgkqhkiG\\n9w0BAQEFAAOBjQAwgYkCgYEAohG/7axtt7CbSaMP7r+2mhTKbNgh0Ww36C7Ta14i\\nv+VmLyKkQHnXinKGhp6uy3Nug+15a+eIu7CrgpBVMQeCiWfsnwRocKcQJWIYDrWl\\nXHxGQn31yYKR6mylE7Dcj3rMFybnyhezr5D8GcP85YRPmwG9H2hO/0Y1FUnWu9Iw\\nAQkCAwEAAaNQME4wHQYDVR0OBBYEFD0jLXfpkrU/ChzRvfruRs/fy1VXMB8GA1Ud\\nIwQYMBaAFD0jLXfpkrU/ChzRvfruRs/fy1VXMAwGA1UdEwQFMAMBAf8wDQYJKoZI\\nhvcNAQELBQADgYEAOmvre+5tgZ0+F3DgsfxNQqLTrGiBgGCIymPkP/cBXXkNuJyl\\n3ac7tArHQc7WEA4U2R2rZbEq8FC3UJJm4nUVtCPvEh3G9OhN2xwYev79yt6pIn/l\\nKU0Td2OpVyo0eLqjoX5u2G90IBWzhyjFbo+CcKMrSVKj1YOdG0E3OuiJf00=\\n-----END CERTIFICATE-----

tagTag:
documentation:
Expand All @@ -221,6 +178,9 @@ pkiKeyRing:
regen: "regenerate"
ecc_curve: "elliptic_curve"
tp: "certificate_authority"
multi_line:
- "certificate"
- "key"
documentation:
key: "The private key of the certificate. This sensitive value is excluded from the resource's lifecycle configuration and is not tracked by Terraform."
eccCurve: "The elliptic curve used by the provided key."
Expand All @@ -236,38 +196,6 @@ pkiKeyRing:
regenerate : "no"
elliptic_curve: "none"
key_type: "RSA"
certificate: <<EOT
-----BEGIN CERTIFICATE-----
MIICODCCAaGgAwIBAgIJAIt8XMntue0VMA0GCSqGSIb3DQEBCwUAMDQxDjAMBgNV
BAMMBUFkbWluMRUwEwYDVQQKDAxZb3VyIENvbXBhbnkxCzAJBgNVBAYTAlVTMCAX
DTE4MDEwOTAwNTk0NFoYDzIxMTcxMjE2MDA1OTQ0WjA0MQ4wDAYDVQQDDAVBZG1p
bjEVMBMGA1UECgwMWW91ciBDb21wYW55MQswCQYDVQQGEwJVUzCBnzANBgkqhkiG
9w0BAQEFAAOBjQAwgYkCgYEAohG/7axtt7CbSaMP7r+2mhTKbNgh0Ww36C7Ta14i
v+VmLyKkQHnXinKGhp6uy3Nug+15a+eIu7CrgpBVMQeCiWfsnwRocKcQJWIYDrWl
XHxGQn31yYKR6mylE7Dcj3rMFybnyhezr5D8GcP85YRPmwG9H2hO/0Y1FUnWu9Iw
AQkCAwEAAaNQME4wHQYDVR0OBBYEFD0jLXfpkrU/ChzRvfruRs/fy1VXMB8GA1Ud
IwQYMBaAFD0jLXfpkrU/ChzRvfruRs/fy1VXMAwGA1UdEwQFMAMBAf8wDQYJKoZI
hvcNAQELBQADgYEAOmvre+5tgZ0+F3DgsfxNQqLTrGiBgGCIymPkP/cBXXkNuJyl
3ac7tArHQc7WEA4U2R2rZbEq8FC3UJJm4nUVtCPvEh3G9OhN2xwYev79yt6pIn/l
KU0Td2OpVyo0eLqjoX5u2G90IBWzhyjFbo+CcKMrSVKj1YOdG0E3OuiJf00=
-----END CERTIFICATE-----
EOT
key: <<EOT
-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKIRv+2sbbewm0mj
D+6/tpoUymzYIdFsN+gu02teIr/lZi8ipEB514pyhoaerstzboPteWvniLuwq4KQ
VTEHgoln7J8EaHCnECViGA61pVx8RkJ99cmCkepspROw3I96zBcm58oXs6+Q/BnD
/OWET5sBvR9oTv9GNRVJ1rvSMAEJAgMBAAECgYByu3QO0qF9h7X3JEu0Ld4cKBnB
giQ2uJC/et7KxIJ/LOvw9GopBthyt27KwG1ntBkJpkTuAaQHkyNns7vLkNB0S0IR
+owVFEcKYq9VCHTaiQU8TDp24gN+yPTrpRuH8YhDVq5SfVdVuTMgHVQdj4ya4VlF
Gj+a7+ipxtGiLsVGrQJBAM7p0Fm0xmzi+tBOASUAcVrPLcteFIaTBFwfq16dm/ON
00Khla8Et5kMBttTbqbukl8mxFjBEEBlhQqb6EdQQ0sCQQDIhHx1a9diG7y/4DQA
4KvR3FCYwP8PBORlSamegzCo+P1OzxiEo0amX7yQMA5UyiP/kUsZrme2JBZgna8S
p4R7AkEAr7rMhSOPUnMD6V4WgsJ5g1Jp5kqkzBaYoVUUSms5RASz4+cwJVCwTX91
Y1jcpVIBZmaaY3a0wrx13ajEAa0dOQJBAIpjnb4wqpsEh7VpmJqOdSdGxb1XXfFQ
sA0T1OQYqQnFppWwqrxIL+d9pZdiA1ITnNqyvUFBNETqDSOrUHwwb2cCQGArE+vu
ffPUWQ0j+fiK+covFG8NL7H+26NSGB5+Xsn9uwOGLj7K/YT6CbBtr9hJiuWjM1Al
0V4ltlTuu2mTMaw=
-----END PRIVATE KEY-----
EOT
certificate: -----BEGIN CERTIFICATE-----\\nMIICODCCAaGgAwIBAgIJAIt8XMntue0VMA0GCSqGSIb3DQEBCwUAMDQxDjAMBgNV\\nBAMMBUFkbWluMRUwEwYDVQQKDAxZb3VyIENvbXBhbnkxCzAJBgNVBAYTAlVTMCAX\\nDTE4MDEwOTAwNTk0NFoYDzIxMTcxMjE2MDA1OTQ0WjA0MQ4wDAYDVQQDDAVBZG1p\\nbjEVMBMGA1UECgwMWW91ciBDb21wYW55MQswCQYDVQQGEwJVUzCBnzANBgkqhkiG\\n9w0BAQEFAAOBjQAwgYkCgYEAohG/7axtt7CbSaMP7r+2mhTKbNgh0Ww36C7Ta14i\\nv+VmLyKkQHnXinKGhp6uy3Nug+15a+eIu7CrgpBVMQeCiWfsnwRocKcQJWIYDrWl\\nXHxGQn31yYKR6mylE7Dcj3rMFybnyhezr5D8GcP85YRPmwG9H2hO/0Y1FUnWu9Iw\\nAQkCAwEAAaNQME4wHQYDVR0OBBYEFD0jLXfpkrU/ChzRvfruRs/fy1VXMB8GA1Ud\\nIwQYMBaAFD0jLXfpkrU/ChzRvfruRs/fy1VXMAwGA1UdEwQFMAMBAf8wDQYJKoZI\\nhvcNAQELBQADgYEAOmvre+5tgZ0+F3DgsfxNQqLTrGiBgGCIymPkP/cBXXkNuJyl\\n3ac7tArHQc7WEA4U2R2rZbEq8FC3UJJm4nUVtCPvEh3G9OhN2xwYev79yt6pIn/l\\nKU0Td2OpVyo0eLqjoX5u2G90IBWzhyjFbo+CcKMrSVKj1YOdG0E3OuiJf00=\\n-----END CERTIFICATE-----
key: -----BEGIN PRIVATE KEY-----\\nMIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKIRv+2sbbewm0mj\\nD+6/tpoUymzYIdFsN+gu02teIr/lZi8ipEB514pyhoaerstzboPteWvniLuwq4KQ\\nVTEHgoln7J8EaHCnECViGA61pVx8RkJ99cmCkepspROw3I96zBcm58oXs6+Q/BnD\\n/OWET5sBvR9oTv9GNRVJ1rvSMAEJAgMBAAECgYByu3QO0qF9h7X3JEu0Ld4cKBnB\\ngiQ2uJC/et7KxIJ/LOvw9GopBthyt27KwG1ntBkJpkTuAaQHkyNns7vLkNB0S0IR\\n+owVFEcKYq9VCHTaiQU8TDp24gN+yPTrpRuH8YhDVq5SfVdVuTMgHVQdj4ya4VlF\\nGj+a7+ipxtGiLsVGrQJBAM7p0Fm0xmzi+tBOASUAcVrPLcteFIaTBFwfq16dm/ON\\n00Khla8Et5kMBttTbqbukl8mxFjBEEBlhQqb6EdQQ0sCQQDIhHx1a9diG7y/4DQA\\n4KvR3FCYwP8PBORlSamegzCo+P1OzxiEo0amX7yQMA5UyiP/kUsZrme2JBZgna8S\\np4R7AkEAr7rMhSOPUnMD6V4WgsJ5g1Jp5kqkzBaYoVUUSms5RASz4+cwJVCwTX91\\nY1jcpVIBZmaaY3a0wrx13ajEAa0dOQJBAIpjnb4wqpsEh7VpmJqOdSdGxb1XXfFQ\\nsA0T1OQYqQnFppWwqrxIL+d9pZdiA1ITnNqyvUFBNETqDSOrUHwwb2cCQGArE+vu\\nffPUWQ0j+fiK+covFG8NL7H+26NSGB5+Xsn9uwOGLj7K/YT6CbBtr9hJiuWjM1Al\\n0V4ltlTuu2mTMaw=\\n-----END PRIVATE KEY-----
certificate_authority: "test_name"
76 changes: 36 additions & 40 deletions gen/generator.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,7 @@ var templateFuncs = template.FuncMap{
"getResourceNameAsDescription": GetResourceNameAsDescription,
"capitalize": Capitalize,
"getDevnetDocForClass": GetDevnetDocForClass,
"spaceToNewLine": SpaceToNewline,
"contains": strings.Contains,
"appendNewLine": AppendNewline,
"hasKey": HasKey,
"definedInList": DefinedInList,
}
Expand All @@ -126,42 +124,6 @@ func GetDevnetDocForClass(className string) string {
return fmt.Sprintf("[%s](%s/app/index.html#/objects/%s/overview)", className, pubhupDevnetBaseUrl, className)
}

// This template function parses the certificate from properties.yaml for formatted inclusion in resource configs contained in the test files.
func SpaceToNewline(s string) string {
exceptions := []string{"BEGIN CERTIFICATE", "BEGIN PRIVATE KEY", "END CERTIFICATE", "END PRIVATE KEY"}
placeholder := "&&PLACEHOLDER&&"
for _, e := range exceptions {
s = strings.ReplaceAll(s, e, strings.ReplaceAll(e, " ", placeholder))
}
s = strings.ReplaceAll(s, " ", "\n")
s = strings.ReplaceAll(s, placeholder, " ")

return s
}

// This template function parses certificate from properties.yaml by removing EOT markers, converting spaces to newline escapes, and formatting for APIC test equivalence.
func AppendNewline(s string) string {
s = strings.ReplaceAll(s, "<<EOT", "")
s = strings.ReplaceAll(s, "EOT", "")
exceptions := []string{"BEGIN CERTIFICATE", "BEGIN PRIVATE KEY", "END CERTIFICATE", "END PRIVATE KEY"}
placeholder := "&&PLACEHOLDER&&"
for _, e := range exceptions {
s = strings.ReplaceAll(s, e, strings.ReplaceAll(e, " ", placeholder))
}
trimmed := strings.TrimSpace(s)
words := strings.Split(trimmed, " ")
replaced := strings.Join(words, "\\n")
if strings.HasPrefix(s, " ") {
replaced = "" + replaced
}
if strings.HasSuffix(s, " ") {
replaced = replaced + "\\n"
}
s = strings.ReplaceAll(replaced, placeholder, " ")

return s
}

func HasKey(dict map[interface{}]interface{}, key string) bool {
_, ok := dict[key]
return ok
Expand Down Expand Up @@ -212,6 +174,32 @@ func ListToString(stringList []string) string {
return fmt.Sprintf("%s", strings.Join(stringList, ","))
}

func isMultiLine(propertyName, classPkgName string, definitions Definitions) bool {
precedenceList := []string{classPkgName, "global"}
for _, precedence := range precedenceList {
if classDetails, ok := definitions.Properties[precedence]; ok {
for key, value := range classDetails.(map[interface{}]interface{}) {
if key.(string) == "multi_line" {
for _, v := range value.([]interface{}) {
if v.(string) == propertyName {
return true
}
}
}
}
}
}
return false
}

func processMultiLine(multiLineValue string) string {
cert := strings.ReplaceAll(multiLineValue, "\\n", "\n")
return fmt.Sprintf(
`<<EOT
%s
EOT`, cert)
}

// Creates a parent dn value for the resources and datasources in the example files
func CreateParentDnValue(className, caller string, definitions Definitions) string {
resourceName := GetResourceName(className, definitions)
Expand All @@ -227,15 +215,23 @@ func LookupTestValue(classPkgName, propertyName string, testVars map[string]inte
if allVars, ok := testVars["all"].(map[interface{}]interface{}); ok {
if val, ok := allVars[propertyName]; ok {
if strVal, ok := val.(string); ok {
lookupValue = strVal
if isMultiLine(propertyName, classPkgName, definitions) {
lookupValue = processMultiLine(strVal)
} else {
lookupValue = fmt.Sprintf(`"%s"`, strVal)
}
}
}
}

if resourceVars, ok := testVars["resource_required"].(map[interface{}]interface{}); ok {
if val, ok := resourceVars[propertyName]; ok {
if strVal, ok := val.(string); ok {
lookupValue = strVal
if isMultiLine(propertyName, classPkgName, definitions) {
lookupValue = processMultiLine(strVal)
} else {
lookupValue = fmt.Sprintf(`"%s"`, strVal)
}
}
}
}
Expand Down
6 changes: 3 additions & 3 deletions gen/templates/datasource_example.tf.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ data "aci_{{ $topContext.ResourceName }}" {{- if ne $formatValue.ContainedBy "po
{{- if ne .NamedPropertyClass "" }}
{{ overwriteProperty .PkgName .SnakeCaseName $topContext.Definitions }} = aci_{{getResourceName .NamedPropertyClass $.Definitions}}.example.name
{{- else }}
{{ overwriteProperty .PkgName .SnakeCaseName $topContext.Definitions }} = "{{ lookupTestValue .PkgName .SnakeCaseName $topContext.TestVars $topContext.Definitions }}"
{{ overwriteProperty .PkgName .SnakeCaseName $topContext.Definitions }} = {{ lookupTestValue .PkgName .SnakeCaseName $topContext.TestVars $topContext.Definitions }}
{{- end }}
{{- end }}
{{- end }}
Expand All @@ -34,7 +34,7 @@ data "aci_{{$.ResourceName}}" "example_{{getResourceName $key $.Definitions}}" {
{{- range $.Properties}}{{- if .IsNaming}}{{- if ne .NamedPropertyClass ""}}
{{overwriteProperty .PkgName .SnakeCaseName $.Definitions}} = aci_{{getResourceName .NamedPropertyClass $.Definitions}}.example.name
{{- else}}
{{overwriteProperty .PkgName .SnakeCaseName $.Definitions}} = "{{lookupTestValue .PkgName .SnakeCaseName $.TestVars $.Definitions}}"{{- end}}{{- end}}
{{overwriteProperty .PkgName .SnakeCaseName $.Definitions}} = {{lookupTestValue .PkgName .SnakeCaseName $.TestVars $.Definitions}}{{- end}}{{- end}}
{{- end}}
}
{{ end}}
Expand All @@ -47,7 +47,7 @@ data "aci_{{$.ResourceName}}" "example" {
{{- range $.Properties}}{{- if .IsNaming}}{{- if ne .NamedPropertyClass ""}}
{{overwriteProperty .PkgName .SnakeCaseName $.Definitions}} = aci_{{getResourceName .NamedPropertyClass $.Definitions}}.example.name
{{- else}}
{{overwriteProperty .PkgName .SnakeCaseName $.Definitions}} = "{{lookupTestValue .PkgName .SnakeCaseName $.TestVars $.Definitions}}"{{- end}}{{- end}}
{{overwriteProperty .PkgName .SnakeCaseName $.Definitions}} = {{lookupTestValue .PkgName .SnakeCaseName $.TestVars $.Definitions}}{{- end}}{{- end}}
{{- end}}
}
{{ end}}
Expand Down
16 changes: 0 additions & 16 deletions gen/templates/datasource_test.go.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -35,23 +35,15 @@ func TestAccDataSource{{$.resourceClassName}}With{{capitalize .class_name}} (t *
waitForApicBeforeRefresh,
{{- end}}
{{- range $key, $value := $.datasource_required}}
{{- if contains $value "<<EOT -----BEGIN CERTIFICATE-----" }}
resource.TestCheckResourceAttr("data.aci_{{$.resourceName}}.test", "{{$key}}", "{{ $value | appendNewLine }}" ),
{{- else}}
{{- if not (definedInList $.exclude_attributes $key) }}
resource.TestCheckResourceAttr("data.aci_{{$.resourceName}}.test", "{{$key}}", "{{$value}}"),
{{- end}}
{{- end}}
{{- end}}
{{- range $key, $value := $.default}}
{{- if contains $value "<<EOT -----BEGIN CERTIFICATE-----" }}
resource.TestCheckResourceAttr("data.aci_{{$.resourceName}}.test", "{{$key}}", "{{ $value | appendNewLine }}" ),
{{- else}}
{{- if not (definedInList $.exclude_attributes $key) }}
resource.TestCheckResourceAttr("data.aci_{{$.resourceName}}.test", "{{$key}}", "{{$value}}"),
{{- end}}
{{- end}}
{{- end}}
),
},
{
Expand Down Expand Up @@ -82,23 +74,15 @@ func TestAccDataSource{{.resourceClassName}}(t *testing.T) {
waitForApicBeforeRefresh,
{{- end}}
{{- range $key, $value := .min}}
{{- if contains $value "<<EOT -----BEGIN CERTIFICATE-----" }}
resource.TestCheckResourceAttr("data.aci_{{$.resourceName}}.test", "{{$key}}", "{{ $value | appendNewLine }}" ),
{{- else}}
{{- if not (definedInList $.exclude_attributes $key) }}
resource.TestCheckResourceAttr("data.aci_{{$.resourceName}}.test", "{{$key}}", "{{$value}}"),
{{- end}}
{{- end}}
{{- end}}
{{- range $key, $value := .all}}
{{- if contains $value "<<EOT -----BEGIN CERTIFICATE-----" }}
resource.TestCheckResourceAttr("data.aci_{{$.resourceName}}.test", "{{$key}}", "{{ $value | appendNewLine }}" ),
{{- else}}
{{- if not (definedInList $.exclude_attributes $key) }}
resource.TestCheckResourceAttr("data.aci_{{$.resourceName}}.test", "{{$key}}", "{{$value}}"),
{{- end}}
{{- end}}
{{- end}}
),
},
{
Expand Down
Loading

0 comments on commit fbb66bb

Please sign in to comment.