diff options
Diffstat (limited to 'src/main/resources')
-rw-r--r-- | src/main/resources/META-INF/resources/swagger.html | 2 | ||||
-rw-r--r-- | src/main/resources/application-noaaf.properties | 19 | ||||
-rw-r--r-- | src/main/resources/application.properties | 2 | ||||
-rw-r--r-- | src/main/resources/clds/aaf/ssl/clamp.key | 32 | ||||
-rw-r--r-- | src/main/resources/clds/aaf/ssl/clamp.pem | 64 | ||||
-rw-r--r-- | src/main/resources/clds/camel/routes/dcae-flows.xml | 51 | ||||
-rw-r--r-- | src/main/resources/clds/camel/routes/loop-flows.xml | 166 | ||||
-rw-r--r-- | src/main/resources/clds/camel/routes/policy-flows.xml | 128 | ||||
-rw-r--r-- | src/main/resources/clds/camel/routes/utils-flows.xml | 19 | ||||
-rw-r--r-- | src/main/resources/clds/json-schema/operational_policies/operational_policy.json | 362 |
10 files changed, 670 insertions, 175 deletions
diff --git a/src/main/resources/META-INF/resources/swagger.html b/src/main/resources/META-INF/resources/swagger.html index 4809ffabb..8257d87d5 100644 --- a/src/main/resources/META-INF/resources/swagger.html +++ b/src/main/resources/META-INF/resources/swagger.html @@ -4509,7 +4509,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> <div id="footer"> <div id="footer-text"> -Last updated 2018-07-06 11:58:45 CEST +Last updated 2019-08-12 03:34:46 PDT </div> </div> </body> diff --git a/src/main/resources/application-noaaf.properties b/src/main/resources/application-noaaf.properties index 52f79bef4..cec02579a 100644 --- a/src/main/resources/application-noaaf.properties +++ b/src/main/resources/application-noaaf.properties @@ -2,7 +2,7 @@ # ============LICENSE_START======================================================= # ONAP CLAMP # ================================================================================ -# Copyright (C) 2017-2018 AT&T Intellectual Property. All rights +# Copyright (C) 2017-2019 AT&T Intellectual Property. All rights # reserved. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); @@ -51,7 +51,21 @@ info.build.version=@project.version@ ### server.ssl.key-store=file:/tmp/mykey.jks ### server.ssl.key-store-password=mypass ### server.ssl.key-password=mypass -server.port=8080 +server.port=8443 +## Config part for Server certificates +# Can be a classpath parameter instead of file:/ +server.ssl.key-store=classpath:/clds/aaf/org.onap.clamp.p12 +server.ssl.key-store-password=China in the Spring +server.ssl.key-password=China in the Spring +server.ssl.key-store-type=PKCS12 +server.ssl.key-alias=clamp@clamp.onap.org + +## Config part for Client certificates +server.ssl.client-auth=want +server.ssl.trust-store=classpath:/clds/aaf/truststoreONAPall.jks +server.ssl.trust-store-password=changeit + +#server.http-to-https-redirection.port=8080 server.servlet.context-path=/ #Modified engine-rest applicationpath @@ -141,6 +155,7 @@ clamp.config.policy.api.password=zb!XztG34 clamp.config.policy.pap.url=http4://policy.api.simpledemo.onap.org:6969 clamp.config.policy.pap.userName=healthcheck clamp.config.policy.pap.password=zb!XztG34 + clamp.config.policy.pdpUrl1=http://policy.api.simpledemo.onap.org:8081/pdp/ , testpdp, alpha123 clamp.config.policy.pdpUrl2=http://policy.api.simpledemo.onap.org:8081/pdp/ , testpdp, alpha123 clamp.config.policy.papUrl=http://policy.api.simpledemo.onap.org:8081/pap/ , testpap, alpha123 diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 534dc4818..dcad32ed9 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -255,5 +255,5 @@ clamp.config.cadi.cadiTruststorePassword=enc:Mj0YQqNCUKbKq2lPp1kTFQWeqLxaBXKNwd5 #clamp.config.cadi.oauthTokenUrl=https://AAF_LOCATE_URL/AAF_NS.token:2.0/token #clamp.config.cadi.oauthIntrospectUrll=https://AAF_LOCATE_URL/AAF_NS.introspect:2.0/introspect clamp.config.cadi.aafEnv=DEV -clamp.config.cadi.aafUrl=https://AAF_LOCATE_URL/AAF_NS.service:2.0 +clamp.config.cadi.aafUrl=https://AAF_LOCATE_URL/onap.org.osaaf.aaf.service:2.1 clamp.config.cadi.cadiX509Issuers=CN=intermediateCA_9, OU=OSAAF, O=ONAP, C=US:CN=intermediateCA_1, OU=OSAAF, O=ONAP, C=US diff --git a/src/main/resources/clds/aaf/ssl/clamp.key b/src/main/resources/clds/aaf/ssl/clamp.key new file mode 100644 index 000000000..fcf68bfa2 --- /dev/null +++ b/src/main/resources/clds/aaf/ssl/clamp.key @@ -0,0 +1,32 @@ +Bag Attributes + friendlyName: clamp@clamp.onap.org + localKeyID: 54 69 6D 65 20 31 35 35 33 37 38 37 35 31 38 33 30 33 +Key Attributes: <No Attributes> +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC4nLg3HAYzgJTr +C9WdZypwz0UzcQcCFXwEUUA8StwtMwx0OahJiEJRdFY6fmydq4MzFgZ6HQt/M7dY +0l8phLHpGTVdrFMgW8yZer8bwNcSSiPVRy8j0s8lBHdR+KofG+yA19xg6lCYDX78 +yfeA2jZ52FhVWavyGHS4whWlw8T1EGbZZqXZCFgc7zHjUXuG1mo2ropppJkouf9g +WEH2Vx16YiosgZzftRW1N3KJ7JozcEtS/j4w/pNyS7HOQDWWGTDk6Us4bt8Zg4gd +1FeID0FmnEEGRKP+XscsGNwMd06MBsCAOutHkpFtS+UT3cr8xIKewL7uPq24X3ke +W148togFAgMBAAECggEATncV+R5pKFS7dteV2IvzxvTh1cZxkxoslu0t3zJ2OKPc +5D1pYK+QeGx5Be2cHru6TOlMoXRc4ZjKke8AUXY74/Y573GB91vtL0KznYkuIHDw +oALcb153eqVWTbniHMzSjcSxv2N4E9iQo8L39oVI6CrjCIvPgFuSqMCdUNJPkVTI +4nsarTfLK4fzi7IbWzi9JdE1QRNIxcCMcYJRnLZMdneMLBleR0UL82Xc2KOy5SEt +zyKYCQ8zS247FKolnOrDkhKxXI5fzdDpRK5AQSsAykUPWlYq7pzKjY/dU9rMRohx +YSltFjPZ3sQ3UKqqIqhZS+GoVuZoc925WyhViPsqtQKBgQDsL4LFfPWN8nnsusQp +VR3T7HvvwXuEVAydlaJMwZU0cRYN+L7RHHjDoXZZrNJDIDzNoWnBLKRGx3mtLmgJ +9Pa6SxN6Oc8oo6jzv2D59g1PVjNOMOYTCTb/2Xum4LMLaeeF57HkWxzeA3Ws47++ +gXwzQpbE90tp1Ys4uXD3JoivvwKBgQDIGZTwLGhLSegdAjG83WEgmdtzT1kjvx0Q +A8IR2jkgkTJHdKiuslJ8Z3/XufHEwWMWwfs1XLwxYluoo1y9eNvNeHZXjLqjL62c +I3034F9IvvTUqFcxam2WdoklXbAiSvLUo/9exPgOuVxok6Zv1imRgGb/vYV9vyG7 +86MRuQu5OwKBgQC9E3fcA6JMpY3H3uhEsngzfMDm+fyYvfRvfyezzNFWbyWZv8V6 +gBGJg0vMlFarGDa044BW/hbw9qXI5zqwpeOS1aFdGsRlo0cRAuduk/Spy7c85FZ7 +bMgT4BZmTMHo5DpNb2NxDSO59AkThCuvJde47ZjnS5WavzI6EfKGWNnZ3wKBgQCF +QiwjCp/mS/DtqLFxAsmVSYGROG231aXILYiIFRloa+ndFn7j4NP4D4FfLHErRFL2 +K/ddIUYfaU57b1fqwts26ht90LXWyYDH9AaHOMCcFLe+C+INgcA7rPNG1C7hl6JC +JHmEJo7AV4eICZSU9D44rRdrB08oYCpaHjYiLmb1UwKBgQCWCDJ4p2DrNL9hzj3K +kzvM5saXrfI4aVBXVt9rw9s1d/WG8JOpnmHcnLPb6Tj59rDktrLCLv0sVstMwNVJ +sOO+qsgn1VoZalcVhhjdONm5YvhJQgz0F7Y2xkr6g/AuMPz2YigGfm7fe/z7rc+L +q9Ua2HmUS8DDBy7W89MNZJNkDQ== +-----END PRIVATE KEY----- diff --git a/src/main/resources/clds/aaf/ssl/clamp.pem b/src/main/resources/clds/aaf/ssl/clamp.pem new file mode 100644 index 000000000..ccb0097df --- /dev/null +++ b/src/main/resources/clds/aaf/ssl/clamp.pem @@ -0,0 +1,64 @@ +Bag Attributes + friendlyName: clamp@clamp.onap.org + localKeyID: 54 69 6D 65 20 31 35 35 33 37 38 37 35 31 38 33 30 33 +subject=CN = clamp, emailAddress = , OU = clamp@clamp.onap.org, OU = OSAAF, O = ONAP, C = US + +issuer=C = US, O = ONAP, OU = OSAAF, CN = intermediateCA_9 + +-----BEGIN CERTIFICATE----- +MIIEKDCCAxCgAwIBAgIIWY+5kgf/UG4wDQYJKoZIhvcNAQELBQAwRzELMAkGA1UE +BhMCVVMxDTALBgNVBAoMBE9OQVAxDjAMBgNVBAsMBU9TQUFGMRkwFwYDVQQDDBBp +bnRlcm1lZGlhdGVDQV85MB4XDTE5MDMyMTE2MTY1OFoXDTIwMDMyMTE2MTY1OFow +bDEOMAwGA1UEAwwFY2xhbXAxDzANBgkqhkiG9w0BCQEWADEdMBsGA1UECwwUY2xh +bXBAY2xhbXAub25hcC5vcmcxDjAMBgNVBAsMBU9TQUFGMQ0wCwYDVQQKDARPTkFQ +MQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALic +uDccBjOAlOsL1Z1nKnDPRTNxBwIVfARRQDxK3C0zDHQ5qEmIQlF0Vjp+bJ2rgzMW +BnodC38zt1jSXymEsekZNV2sUyBbzJl6vxvA1xJKI9VHLyPSzyUEd1H4qh8b7IDX +3GDqUJgNfvzJ94DaNnnYWFVZq/IYdLjCFaXDxPUQZtlmpdkIWBzvMeNRe4bWajau +immkmSi5/2BYQfZXHXpiKiyBnN+1FbU3consmjNwS1L+PjD+k3JLsc5ANZYZMOTp +Szhu3xmDiB3UV4gPQWacQQZEo/5exywY3Ax3TowGwIA660eSkW1L5RPdyvzEgp7A +vu4+rbhfeR5bXjy2iAUCAwEAAaOB8jCB7zAJBgNVHRMEAjAAMA4GA1UdDwEB/wQE +AwIF4DAgBgNVHSUBAf8EFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwVAYDVR0jBE0w +S4AUgfeZWxC5yIze81Je6k5poEM+rN2hMKQuMCwxDjAMBgNVBAsMBU9TQUFGMQ0w +CwYDVQQKDARPTkFQMQswCQYDVQQGEwJVU4IBBzAdBgNVHQ4EFgQU+GZ6wmWDPrmq +Wd1/NtMYiCQ8Dg4wOwYDVR0RBDQwMoIFY2xhbXCCHWNsYW1wLmFwaS5zaW1wbGVk +ZW1vLm9uYXAub3JnggpjbGFtcC5vbmFwMA0GCSqGSIb3DQEBCwUAA4IBAQCFZdhB +U6xm6l0vj4q89onLx4opTPvwGNRc0n402lifkPYXseFtphZSHIf2Sg0mFTH4KHb4 +FdMyBzq1+f5WLU+xRC1nT4eGJ0FvRR6204/fGVrzJTS67phnRnxr2WZzLPW0wPJe +K8SzN6tkUgE7/a/s0T/htE/blDxWh75+tA2jQlgj1Ri0y9A1J8wx++REKjGlHjFN +53aiipsB+wC/oEMzYL4qEPiYPI0Lr3Lsay1F7f6cvDT4+EYzBLMFuwCvpcnHgSMS +4fFj2ROmUG2+CC23B88Q0WNxjLPq/CrmHZZBsqwruPJ0cSuCQxfshTQ6uZhcjtu8 +6TRYkIcL0x9r/AHP +-----END CERTIFICATE----- +Bag Attributes + friendlyName: CN=intermediateCA_9,OU=OSAAF,O=ONAP,C=US +subject=C = US, O = ONAP, OU = OSAAF, CN = intermediateCA_9 + +issuer=OU = OSAAF, O = ONAP, C = US + +-----BEGIN CERTIFICATE----- +MIIEdTCCAl2gAwIBAgIBBzANBgkqhkiG9w0BAQsFADAsMQ4wDAYDVQQLDAVPU0FB +RjENMAsGA1UECgwET05BUDELMAkGA1UEBhMCVVMwHhcNMTgwODE3MTg1MTM3WhcN +MjMwODE3MTg1MTM3WjBHMQswCQYDVQQGEwJVUzENMAsGA1UECgwET05BUDEOMAwG +A1UECwwFT1NBQUYxGTAXBgNVBAMMEGludGVybWVkaWF0ZUNBXzkwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCv0HHUkba3uNtNI3jPKimUcd6RNwmhSCJL +neMWpnjqp5/A+HCKyNsEaT4y177hNLmCm/aMm1u2JIfikc+8wEqLCSBBPz+P0h+d +o+sZ7U+4oeQizdYYpEdzHJ2SieHHa8vtu80rU3nO2NEIkuYC20HcKSEtl8fFKsk3 +nqlhY+tGfYJPTXcDOQAO40BTcgat3C3uIJHkWJJ4RivunE4LEuRv9QyKgAw7rkJV +v+f7guqpZlXy6dzAkuU7XULWcgo55MkZlssoiErMvEZJad5aWKvRY3g7qUjaQ6wO +15wOAUoRBW96eeZZbytgn8kybcBy++Ue49gPtgm1MF/KlAsp0MD5AgMBAAGjgYYw +gYMwHQYDVR0OBBYEFIH3mVsQuciM3vNSXupOaaBDPqzdMB8GA1UdIwQYMBaAFFNV +M/JL69BRscF4msEoMXvv6u1JMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/ +BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0B +AQsFAAOCAgEADxNymiCNr2e37iLReoaxKmZvwox0cTiNAaj7iafRzmwIoY3VXO8Q +ix5IYcp4FaQ7fV1jyp/AmaSnyHf6Osl0sx8PxsQkO7ALttxKUrjfbvNSVUA2C/vl +u5m7UVJLIUtFDZBWanzUSmkTsYLHpiANFQKd2c/cU1qXcyzgJVFEFVyyHNkF7Is+ ++pjG9M1hwQHOoTnEuU013P7X1mHek+RXEfhJWwe7UsZnBKZaZKbQZu7hEtqKWYp/ +QsHgnjoLYXsh0WD5rz/mBxdTdDLGpFqWDzDqb8rsYnqBzoowvsasV8X8OSkov0Ht +8Yka0ckFH9yf8j1Cwmbl6ttuonOhky3N/gwLEozuhy7TPcZGVyzevF70kXy7g1CX +kpFGJyEHXoprlNi8FR4I+NFzbDe6a2cFow1JN19AJ9Z5Rk5m7M0mQPaQ4RcikjB3 +aoLsASCJTm1OpOFHfxEKiBW4Lsp3Uc5/Rb9ZNbfLrwqWZRM7buW1e3ekLqntgbky +uKKISHqVJuw/vXHl1jNibEo9+JuQ88VNuAcm7WpGUogeCa2iAlPTckPZei+MwZ8w +tpvxTyYlZEC8DWzY1VC29+W2N5cvh01e2E3Ql08W1zL63dqrgdEZ3VWjzooYi4ep +BmMXTvouW+Flyvcw/0oTcfN0biDIt0mCkZ5CQVjfGL9DTOYteR5hw+k= +-----END CERTIFICATE----- diff --git a/src/main/resources/clds/camel/routes/dcae-flows.xml b/src/main/resources/clds/camel/routes/dcae-flows.xml index 395077a8e..469358190 100644 --- a/src/main/resources/clds/camel/routes/dcae-flows.xml +++ b/src/main/resources/clds/camel/routes/dcae-flows.xml @@ -2,19 +2,16 @@ <route id="deploy-loop"> <from uri="direct:deploy-loop" /> <doTry> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Deploying the loop: ${exchangeProperty[loopObject].getName()}" /> <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Deploying the loop')" /> <setBody> - <method - ref="org.onap.clamp.loop.components.external.DcaeComponent" + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" method="getDeployPayload(${exchangeProperty[loopObject]})" /> </setBody> <setProperty propertyName="dcaeDeploymentId"> - <method - ref="org.onap.clamp.loop.components.external.DcaeComponent" + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" method="generateDeploymentId()" /> </setProperty> <setHeader headerName="CamelHttpMethod"> @@ -35,20 +32,17 @@ <simple>${exchangeProperty[X-ONAP-PartnerName]} </simple> </setHeader> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Endpoint to deploy loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}"></log> <toD uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.dcae.deployment.userName}}&authPassword={{clamp.config.dcae.deployment.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=300000&authenticationPreemptive=true&connectionClose=true" /> <convertBodyTo type="java.lang.String" /> <setProperty propertyName="dcaeResponse"> - <method - ref="org.onap.clamp.loop.components.external.DcaeComponent" + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" method="convertDcaeResponse(${body})" /> </setProperty> <setProperty propertyName="dcaeStatusUrl"> - <method - ref="org.onap.clamp.loop.components.external.DcaeComponent" + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" method="getStatusUrl(${exchangeProperty[dcaeResponse]})" /> </setProperty> <to @@ -63,6 +57,9 @@ StatusUrl:${exchangeProperty[dcaeStatusUrl]}) </simple> </setProperty> + <setProperty propertyName="logComponent"> + <simple>DCAE</simple> + </setProperty> <to uri="direct:dump-loop-log-http-response" /> </doFinally> </doTry> @@ -70,8 +67,7 @@ <route id="undeploy-loop"> <from uri="direct:undeploy-loop" /> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Undeploying the loop: ${exchangeProperty[loopObject].getName()} : ${exchangeProperty[loopObject].getDcaeDeploymentId()}" /> <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Undeploying the loop')" /> @@ -82,8 +78,7 @@ </simple> <doTry> <setBody> - <method - ref="org.onap.clamp.loop.components.external.DcaeComponent" + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" method="getUndeployPayload(${exchangeProperty[loopObject]})" /> </setBody> <setHeader headerName="CamelHttpMethod"> @@ -105,20 +100,17 @@ <simple>${exchangeProperty[X-ONAP-PartnerName]} </simple> </setHeader> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Endpoint to undeploy loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[loopObject].getDcaeDeploymentId()}"></log> <toD uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[loopObject].getDcaeDeploymentId()}?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.dcae.deployment.userName}}&authPassword={{clamp.config.dcae.deployment.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=300000&authenticationPreemptive=true&connectionClose=true" /> <convertBodyTo type="java.lang.String" /> <setProperty propertyName="dcaeResponse"> - <method - ref="org.onap.clamp.loop.components.external.DcaeComponent" + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" method="convertDcaeResponse(${body})" /> </setProperty> <setProperty propertyName="dcaeStatusUrl"> - <method - ref="org.onap.clamp.loop.components.external.DcaeComponent" + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" method="getStatusUrl(${exchangeProperty[dcaeResponse]})" /> </setProperty> <to @@ -130,13 +122,15 @@ <setProperty propertyName="logMessage"> <simple>UNDEPLOY loop status</simple> </setProperty> + <setProperty propertyName="logComponent"> + <simple>DCAE</simple> + </setProperty> <to uri="direct:dump-loop-log-http-response" /> </doFinally> </doTry> </when> <otherwise> - <log - loggingLevel="WARNING" + <log loggingLevel="WARNING" message="Cannot Undeploy for the loop: ${exchangeProperty[loopObject].getName()}, the Deployment ID does not exist !" /> <to uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Cannot Undeploy for the loop: ${exchangeProperty[loopObject].getName()}, the Deployment ID does not exist !','WARNING',${exchangeProperty[loopObject]})" /> @@ -146,8 +140,7 @@ </route> <route id="get-dcae-deployment-status"> <from uri="direct:get-dcae-deployment-status" /> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Getting DCAE deployment status for loop: ${exchangeProperty[loopObject].getName()}" /> <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting Deployment status')" /> @@ -167,8 +160,7 @@ <simple>${exchangeProperty[X-ONAP-PartnerName]} </simple> </setHeader> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Endpoint to query Closed Loop status: ${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}"></log> <toD uri="${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.dcae.deployment.userName}}&authPassword={{clamp.config.dcae.deployment.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=30000&authenticationPreemptive=true&connectionClose=true" /> @@ -179,6 +171,9 @@ <setProperty propertyName="logMessage"> <simple>DCAE deployment status</simple> </setProperty> + <setProperty propertyName="logComponent"> + <simple>DCAE</simple> + </setProperty> <to uri="direct:dump-loop-log-http-response" /> </doFinally> </doTry> diff --git a/src/main/resources/clds/camel/routes/loop-flows.xml b/src/main/resources/clds/camel/routes/loop-flows.xml index ede899e71..036e8efc8 100644 --- a/src/main/resources/clds/camel/routes/loop-flows.xml +++ b/src/main/resources/clds/camel/routes/loop-flows.xml @@ -5,9 +5,7 @@ <simple>${header.loopName}</simple> </setBody> <setProperty propertyName="loopObject"> - <method - ref="org.onap.clamp.loop.LoopService" - method="getLoop" /> + <method ref="org.onap.clamp.loop.LoopService" method="getLoop" /> </setProperty> <when> @@ -15,26 +13,24 @@ <setHeader headerName="CamelHttpResponseCode"> <constant>404</constant> </setHeader> - <log - loggingLevel="WARNING" - message="Loop not found in database: ${body}" /> + <log loggingLevel="WARN" message="Loop not found in database: ${body}" /> <stop /> </when> </route> + <route id="update-policy-status-for-loop"> <from uri="direct:update-policy-status-for-loop" /> - <setProperty propertyName="atLeastOnePolicyNotFound"> - <simple resultType="java.lang.Boolean">false</simple> - </setProperty> - <setProperty propertyName="atLeastOnePolicyNotDeployed"> - <simple resultType="java.lang.Boolean">false</simple> - </setProperty> <setProperty propertyName="policyComponent"> <simple>${exchangeProperty[loopObject].getComponent('POLICY')} </simple> </setProperty> - <log - loggingLevel="INFO" + <setProperty propertyName="policyFound"> + <simple resultType="java.lang.Boolean">true</simple> + </setProperty> + <setProperty propertyName="policyDeployed"> + <simple resultType="java.lang.Boolean">true</simple> + </setProperty> + <log loggingLevel="INFO" message="Processing all MICRO-SERVICES policies defined in loop ${exchangeProperty[loopObject].getName()}" /> <split> <simple>${exchangeProperty[loopObject].getMicroServicePolicies()} @@ -45,32 +41,17 @@ <setProperty propertyName="policyType"> <simple>${body.getModelType()}</simple> </setProperty> + <setProperty propertyName="policyVersion"> + <simple>1.0.0</simple> + </setProperty> <setBody> <constant>null</constant> </setBody> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Processing Micro Service Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" /> - <setProperty propertyName="raiseHttpExceptionFlag"> - <simple resultType="java.lang.Boolean">false</simple> - </setProperty> - <to uri="direct:get-policy" /> - <when> - <simple> ${header.CamelHttpResponseCode} != 200 </simple> - <setProperty propertyName="atLeastOnePolicyNotFound"> - <simple resultType="java.lang.Boolean">true</simple> - </setProperty> - </when> - <to uri="direct:get-deployment-policy" /> - <when> - <simple> ${header.CamelHttpResponseCode} != 200 </simple> - <setProperty propertyName="atLeastOnePolicyNotDeployed"> - <simple resultType="java.lang.Boolean">true</simple> - </setProperty> - </when> + <to uri="direct:verify-one-policy" /> </split> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Processing all OPERATIONAL policies defined in loop ${exchangeProperty[loopObject].getName()}" /> <split> <simple>${exchangeProperty[loopObject].getOperationalPolicies()} @@ -81,35 +62,19 @@ <setProperty propertyName="policyType"> <simple>onap.policies.controlloop.Operational</simple> </setProperty> + <setProperty propertyName="policyVersion"> + <simple>1</simple> + </setProperty> <setProperty propertyName="operationalPolicy"> <simple>${body}</simple> </setProperty> <setBody> <constant>null</constant> </setBody> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Processing Micro Service Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" /> - <setProperty propertyName="raiseHttpExceptionFlag"> - <simple resultType="java.lang.Boolean">false</simple> - </setProperty> - <to uri="direct:get-policy" /> - <when> - <simple> ${header.CamelHttpResponseCode} != 200 </simple> - <setProperty propertyName="atLeastOnePolicyNotFound"> - <simple resultType="java.lang.Boolean">true</simple> - </setProperty> - </when> - <to uri="direct:get-deployment-policy" /> - <when> - <simple> ${header.CamelHttpResponseCode} != 200 </simple> - <setProperty propertyName="atLeastOnePolicyNotDeployed"> - <simple resultType="java.lang.Boolean">true</simple> - </setProperty> - </when> - - <log - loggingLevel="INFO" + <to uri="direct:verify-one-policy" /> + <log loggingLevel="INFO" message="Processing all GUARD policies defined in loop ${exchangeProperty[loopObject].getName()}" /> <split> <simple>${exchangeProperty[operationalPolicy].createGuardPolicyPayloads().entrySet()} @@ -120,45 +85,29 @@ <setProperty propertyName="policyType"> <simple>onap.policies.controlloop.Guard</simple> </setProperty> + <setProperty propertyName="policyVersion"> + <simple>1</simple> + </setProperty> <setBody> <constant>null</constant> </setBody> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Processing Guard Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" /> - <setProperty propertyName="raiseHttpExceptionFlag"> - <simple resultType="java.lang.Boolean">false</simple> - </setProperty> - <to uri="direct:get-policy" /> - <when> - <simple> ${header.CamelHttpResponseCode} != 200 </simple> - <setProperty propertyName="atLeastOnePolicyNotFound"> - <simple resultType="java.lang.Boolean">true</simple> - </setProperty> - </when> - <to uri="direct:get-deployment-policy" /> - <when> - <simple> ${header.CamelHttpResponseCode} != 200 </simple> - <setProperty propertyName="atLeastOnePolicyNotDeployed"> - <simple resultType="java.lang.Boolean">true</simple> - </setProperty> - </when> + <to uri="direct:verify-one-policy" /> </split> </split> <setProperty propertyName="policyState"> - <simple> ${exchangeProperty[policyComponent].computeState(*)} + <simple> ${exchangeProperty[policyComponent].getState()} </simple> </setProperty> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Policy state set to: ${exchangeProperty[policyState].getStateName()}" /> <to uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Policy state set to: ${exchangeProperty[policyState].getStateName()}','INFO','POLICY',${exchangeProperty[loopObject]})" /> </route> <route id="update-dcae-status-for-loop"> <from uri="direct:update-dcae-status-for-loop" /> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Updating DCAE status for loop: ${exchangeProperty[loopObject].getName()}" /> <setProperty propertyName="dcaeComponent"> <simple>${exchangeProperty[loopObject].getComponent('DCAE')}</simple> @@ -175,8 +124,7 @@ <simple> ${header.CamelHttpResponseCode} == 200 </simple> <convertBodyTo type="java.lang.String" /> <setProperty propertyName="dcaeResponse"> - <method - ref="org.onap.clamp.loop.components.external.DcaeComponent" + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" method="convertDcaeResponse(${body})" /> </setProperty> </when> @@ -186,8 +134,7 @@ <simple> ${exchangeProperty[dcaeComponent].computeState(*)} </simple> </setProperty> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" /> <to uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - message: ${exchangeProperty[dcaeResponse].getError()}','INFO','DCAE',${exchangeProperty[loopObject]})" /> @@ -195,53 +142,78 @@ </route> <route id="direct:update-loop-state"> <from uri="direct:update-loop-state" /> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Updating status for loop: ${exchangeProperty[loopObject].getName()}" /> <choice> <when> - <simple>${exchangeProperty['dcaeState'].getStateName()} == 'BLUEPRINT_DEPLOYED' and ${exchangeProperty['policyState'].getStateName()} == 'NOT_SENT'</simple> + <simple>${exchangeProperty['dcaeState'].getStateName()} == + 'BLUEPRINT_DEPLOYED' and ${exchangeProperty['policyState'].getStateName()} + == 'NOT_SENT' + </simple> <to uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'DESIGN')" /> </when> <when> - <simple>${exchangeProperty['dcaeState'].getStateName()} == 'IN_ERROR' or ${exchangeProperty['dcaeState'].getStateName()} == 'MICROSERVICE_INSTALLATION_FAILED'</simple> + <simple>${exchangeProperty['dcaeState'].getStateName()} == 'IN_ERROR' or + ${exchangeProperty['dcaeState'].getStateName()} == + 'MICROSERVICE_INSTALLATION_FAILED' + </simple> <to uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'IN_ERROR')" /> </when> <when> - <simple>${exchangeProperty['dcaeState'].getStateName()} == 'MICROSERVICE_UNINSTALLATION_FAILED' or ${exchangeProperty['policyState'].getStateName()} == 'IN_ERROR'</simple> + <simple>${exchangeProperty['dcaeState'].getStateName()} == + 'MICROSERVICE_UNINSTALLATION_FAILED' or + ${exchangeProperty['policyState'].getStateName()} == 'IN_ERROR' + </simple> <to uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'IN_ERROR')" /> </when> <when> - <simple>${exchangeProperty['dcaeState'].getStateName()} == 'MICROSERVICE_INSTALLED_SUCCESSFULLY' and ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'</simple> + <simple>${exchangeProperty['dcaeState'].getStateName()} == + 'MICROSERVICE_INSTALLED_SUCCESSFULLY' and + ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED' + </simple> <to uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'RUNNING')" /> </when> <when> - <simple>${exchangeProperty['dcaeState'].getStateName()} == 'MICROSERVICE_INSTALLED_SUCCESSFULLY' and ${exchangeProperty['policyState'].getStateName()} == 'SENT'</simple> + <simple>${exchangeProperty['dcaeState'].getStateName()} == + 'MICROSERVICE_INSTALLED_SUCCESSFULLY' and + ${exchangeProperty['policyState'].getStateName()} == 'SENT' + </simple> <to uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'STOPPED')" /> </when> <when> - <simple>${exchangeProperty['dcaeState'].getStateName()} == 'BLUEPRINT_DEPLOYED' or ${exchangeProperty['dcaeState'].getStateName()} == 'MICROSERVICE_UNINSTALLED_SUCCESSFULLY' and ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'</simple> + <simple>${exchangeProperty['dcaeState'].getStateName()} == + 'BLUEPRINT_DEPLOYED' or ${exchangeProperty['dcaeState'].getStateName()} == + 'MICROSERVICE_UNINSTALLED_SUCCESSFULLY' and + ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED' + </simple> <to uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'SUBMITTED')" /> </when> <when> - <simple>${exchangeProperty['dcaeState'].getStateName()} == 'PROCESSING_MICROSERVICE_INSTALLATION' or ${exchangeProperty['dcaeState'].getStateName()} == 'PROCESSING_MICROSERVICE_UNINSTALLATION' and ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'</simple> + <simple>${exchangeProperty['dcaeState'].getStateName()} == + 'PROCESSING_MICROSERVICE_INSTALLATION' or + ${exchangeProperty['dcaeState'].getStateName()} == + 'PROCESSING_MICROSERVICE_UNINSTALLATION' and + ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED' + </simple> <to uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'WAITING')" /> </when> <when> - <simple>${exchangeProperty['dcaeState'].getStateName()} == 'MICROSERVICE_INSTALLED_SUCCESSFULLY' and ${exchangeProperty['policyState'].getStateName()} != 'NOT_SENT'</simple> + <simple>${exchangeProperty['dcaeState'].getStateName()} == + 'MICROSERVICE_INSTALLED_SUCCESSFULLY' and + ${exchangeProperty['policyState'].getStateName()} != 'NOT_SENT' + </simple> <to uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'DEPLOYED')" /> </when> </choice> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="New loop state is: ${exchangeProperty[loopObject].getLastComputedState().toString()}" /> <to uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('New loop state is: ${exchangeProperty[loopObject].getLastComputedState().toString()}','INFO',${exchangeProperty[loopObject]})" /> diff --git a/src/main/resources/clds/camel/routes/policy-flows.xml b/src/main/resources/clds/camel/routes/policy-flows.xml index 537354f15..75ac66c6c 100644 --- a/src/main/resources/clds/camel/routes/policy-flows.xml +++ b/src/main/resources/clds/camel/routes/policy-flows.xml @@ -1,10 +1,40 @@ <routes xmlns="http://camel.apache.org/schema/spring"> + <route id="verify-one-policy"> + <from uri="direct:verify-one-policy" /> + <setProperty propertyName="raiseHttpExceptionFlag"> + <simple resultType="java.lang.Boolean">false</simple> + </setProperty> + <to uri="direct:get-policy" /> + <when> + <simple> ${header.CamelHttpResponseCode} != 200 </simple> + <setProperty propertyName="policyFound"> + <simple resultType="java.lang.Boolean">false</simple> + </setProperty> + <log loggingLevel="WARN" + message="At least one policy has not been found on policy engine: ${exchangeProperty[policyName]}" /> + </when> + <setProperty propertyName="raiseHttpExceptionFlag"> + <simple resultType="java.lang.Boolean">false</simple> + </setProperty> + <to uri="direct:get-deployment-policy" /> + <when> + <simple> ${header.CamelHttpResponseCode} != 200 </simple> + <setProperty propertyName="policyDeployed"> + <simple resultType="java.lang.Boolean">false</simple> + </setProperty> + <log loggingLevel="WARN" + message="At least one policy has not been deployed on policy engine: ${exchangeProperty[policyName]}" /> + </when> + <setProperty propertyName="newPolicyState"> + <simple>${exchangeProperty[policyComponent].computeState(*)}</simple> + </setProperty> + </route> + <route id="get-policy"> <from uri="direct:get-policy" /> <doTry> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Getting Policy: ${exchangeProperty[policyName]}" /> <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Get Policy')" /> @@ -23,11 +53,10 @@ <simple>${exchangeProperty[X-ONAP-PartnerName]} </simple> </setHeader> - <log - loggingLevel="INFO" - message="Endpoint to get policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/1.0.0"></log> + <log loggingLevel="INFO" + message="Endpoint to get policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}"></log> <toD - uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/1.0.0?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> <doFinally> <to uri="direct:reset-raise-http-exception-flag" /> <to @@ -37,6 +66,9 @@ Policy status </simple> </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> <to uri="direct:dump-loop-log-http-response" /> </doFinally> </doTry> @@ -45,8 +77,7 @@ <route id="get-deployment-policy"> <from uri="direct:get-deployment-policy" /> <doTry> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Getting the policy deployment in PDP: ${exchangeProperty[policyName]}" /> <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policy deployment in PDP')" /> @@ -65,8 +96,7 @@ <simple>${exchangeProperty[X-ONAP-PartnerName]} </simple> </setHeader> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Endpoint to get policy deployment status: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/deployed"></log> <toD uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/deployed?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> @@ -79,6 +109,9 @@ status </simple> </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> <to uri="direct:dump-loop-log-http-response" /> </doFinally> </doTry> @@ -86,8 +119,7 @@ <route id="create-micro-service-policy"> <from uri="direct:create-micro-service-policy" /> <doTry> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Creating Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" /> <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Micro Service Policy')" /> @@ -113,8 +145,7 @@ <simple>${exchangeProperty[X-ONAP-PartnerName]} </simple> </setHeader> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Endpoint to create microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies"></log> <toD uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> @@ -127,6 +158,9 @@ status </simple> </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> <to uri="direct:dump-loop-log-http-response" /> </doFinally> </doTry> @@ -135,8 +169,7 @@ <route id="delete-micro-service-policy"> <from uri="direct:delete-micro-service-policy" /> <doTry> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Deleting Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" /> <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Micro Service Policy')" /> @@ -158,8 +191,7 @@ <simple>${exchangeProperty[X-ONAP-PartnerName]} </simple> </setHeader> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Endpoint to delete microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0"></log> <toD uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&deleteWithBody=false&mapHttpMessageBody=false&mapHttpMessageFormUrlEncodedBody=false&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> @@ -173,6 +205,9 @@ status </simple> </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> <to uri="direct:dump-loop-log-http-response" /> </doFinally> </doTry> @@ -181,8 +216,7 @@ <route id="create-operational-policy"> <from uri="direct:create-operational-policy" /> <doTry> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Creating Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" /> <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Operational Policy')" /> @@ -208,8 +242,7 @@ <simple>${exchangeProperty[X-ONAP-PartnerName]} </simple> </setHeader> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Endpoint to create operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies"></log> <toD uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> @@ -222,6 +255,9 @@ status </simple> </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> <to uri="direct:dump-loop-log-http-response" /> </doFinally> </doTry> @@ -230,8 +266,7 @@ <route id="delete-operational-policy"> <from uri="direct:delete-operational-policy" /> <doTry> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Deleting Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" /> <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Operational Policy')" /> @@ -253,8 +288,7 @@ <simple>${exchangeProperty[X-ONAP-PartnerName]} </simple> </setHeader> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Endpoint to delete operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1"></log> <toD uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&deleteWithBody=false&mapHttpMessageBody=false&mapHttpMessageFormUrlEncodedBody=false&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> @@ -267,6 +301,9 @@ status </simple> </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> <to uri="direct:dump-loop-log-http-response" /> </doFinally> </doTry> @@ -275,8 +312,7 @@ <route id="create-guard-policy"> <from uri="direct:create-guard-policy" /> <doTry> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Creating Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" /> <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Guard Policy')" /> @@ -302,8 +338,7 @@ <simple>${exchangeProperty[X-ONAP-PartnerName]} </simple> </setHeader> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Endpoint to create guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies"></log> <toD uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> @@ -315,6 +350,9 @@ <simple>${exchangeProperty[guardPolicy].getKey()} creation status </simple> </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> <to uri="direct:dump-loop-log-http-response" /> </doFinally> </doTry> @@ -323,8 +361,7 @@ <route id="delete-guard-policy"> <from uri="direct:delete-guard-policy" /> <doTry> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Deleting Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" /> <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Guard Policy')" /> @@ -346,8 +383,7 @@ <simple>${exchangeProperty[X-ONAP-PartnerName]} </simple> </setHeader> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Endpoint to delete guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1"></log> <toD uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&deleteWithBody=false&mapHttpMessageBody=false&mapHttpMessageFormUrlEncodedBody=false&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> @@ -360,6 +396,9 @@ <simple>${exchangeProperty[guardPolicy].getKey()} removal status </simple> </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> <to uri="direct:dump-loop-log-http-response" /> </doFinally> </doTry> @@ -368,8 +407,7 @@ <route id="add-all-to-active-pdp-group"> <from uri="direct:add-all-to-active-pdp-group" /> <doTry> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Adding loop policies to PDP Group: ${exchangeProperty[loopObject].getName()}" /> <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Add policies to PDP group')" /> @@ -395,8 +433,7 @@ <simple>${exchangeProperty[X-ONAP-PartnerName]} </simple> </setHeader> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Endpoint to add policies to PDP Group: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies"></log> <toD uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies?bridgeEndpoint=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&useSystemProperties=true&authUsername={{clamp.config.policy.pap.userName}}&authPassword={{clamp.config.policy.pap.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> @@ -408,6 +445,9 @@ <setProperty propertyName="logMessage"> <simple>PDP Group push ALL status</simple> </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> <to uri="direct:dump-loop-log-http-response" /> </doFinally> </doTry> @@ -416,8 +456,7 @@ <route id="remove-all-policy-from-active-pdp-group"> <from uri="direct:remove-all-policy-from-active-pdp-group" /> <doTry> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Removing policies from active PDP group for loop: ${exchangeProperty[loopObject].getName()}" /> <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Removing policies PDP group')" /> @@ -445,8 +484,7 @@ <simple>${exchangeProperty[X-ONAP-PartnerName]} </simple> </setHeader> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="Endpoint to delete policy from PDP Group: {{clamp.config.policy.pap.url}}/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0"></log> <toD uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.pap.userName}}&authPassword={{clamp.config.policy.pap.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> @@ -454,6 +492,9 @@ <simple>${exchangeProperty[policyName]} PDP Group removal status </simple> </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> <to uri="direct:dump-loop-log-http-response" /> </split> <doCatch> @@ -464,6 +505,9 @@ <setProperty propertyName="logMessage"> <simple>PDP Group removal, Error reported: ${exception}</simple> </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> <to uri="direct:dump-loop-log-http-response" /> </doCatch> <doFinally> diff --git a/src/main/resources/clds/camel/routes/utils-flows.xml b/src/main/resources/clds/camel/routes/utils-flows.xml index adf843ffe..bbbc46a20 100644 --- a/src/main/resources/clds/camel/routes/utils-flows.xml +++ b/src/main/resources/clds/camel/routes/utils-flows.xml @@ -8,10 +8,21 @@ <route id="dump-loop-log-http-response"> <from uri="direct:dump-loop-log-http-response" /> - <log - loggingLevel="INFO" + <log loggingLevel="INFO" message="${exchangeProperty[logMessage]} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}" /> - <to - uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('${exchangeProperty[logMessage]} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO',${exchangeProperty[loopObject]})" /> + <choice> + <when> + <simple>${exchangeProperty[logComponent]} == null</simple> + <to + uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('${exchangeProperty[logMessage]} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO',${exchangeProperty[loopObject]})" /> + </when> + <otherwise> + <to + uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('${exchangeProperty[logMessage]} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO','${exchangeProperty[logComponent]}',${exchangeProperty[loopObject]})" /> + <setProperty propertyName="logComponent"> + <constant>null</constant> + </setProperty> + </otherwise> + </choice> </route> </routes>
\ No newline at end of file diff --git a/src/main/resources/clds/json-schema/operational_policies/operational_policy.json b/src/main/resources/clds/json-schema/operational_policies/operational_policy.json new file mode 100644 index 000000000..93738c809 --- /dev/null +++ b/src/main/resources/clds/json-schema/operational_policies/operational_policy.json @@ -0,0 +1,362 @@ +{ + "schema": { + "uniqueItems": "true", + "format": "tabs", + "type": "array", + "minItems": 1, + "maxItems": 1, + "title": "Operational policies", + "items": { + "type": "object", + "title": "Operational Policy Item", + "id": "operational_policy_item", + "headerTemplate": "{{self.name}}", + "required": [ + "name", + "configurationsJson" + ], + "properties": { + "name": { + "type": "string", + "title": "Operational policy name", + "readOnly": "True" + }, + "configurationsJson": { + "type": "object", + "title": "Configuration", + "required": [ + "operational_policy", + "guard_policies" + ], + "properties": { + "operational_policy": { + "type": "object", + "title": "Related Parameters", + "required": [ + "controlLoop", + "policies" + ], + "properties": { + "controlLoop": { + "type": "object", + "title": "Control Loop details", + "required": [ + "timeout", + "abatement", + "trigger_policy", + "controlLoopName" + ], + "properties": { + "timeout": { + "type": "string", + "title": "Overall Time Limit", + "default": "0", + "format": "number" + }, + "abatement": { + "type": "string", + "title": "Abatement", + "enum": [ + "True", + "False" + ] + }, + "trigger_policy": { + "type": "string", + "title": "Policy Decision Entry" + }, + "controlLoopName": { + "type": "string", + "title": "Control loop name", + "readOnly": "True" + } + } + }, + "policies": { + "uniqueItems": "true", + "id": "policies_array", + "type": "array", + "title": "Policy Decision Tree", + "format": "tabs-top", + "items": { + "title": "Policy Decision", + "type": "object", + "id": "policy_item", + "headerTemplate": "{{self.id}} - {{self.recipe}}", + "format": "categories", + "basicCategoryTitle": "recipe", + "required": [ + "id", + "recipe", + "retry", + "timeout", + "actor", + "success", + "failure", + "failure_timeout", + "failure_retries", + "failure_exception", + "failure_guard", + "target" + ], + "properties": { + "id": { + "default": "Policy 1", + "title": "Policy ID", + "type": "string" + }, + "recipe": { + "title": "Recipe", + "type": "string", + "enum": [ + "Restart", + "Rebuild", + "Migrate", + "Health-Check", + "ModifyConfig", + "VF Module Create", + "VF Module Delete", + "Reroute" + ] + }, + "retry": { + "default": "0", + "title": "Number of Retry", + "type": "string", + "format": "number" + }, + "timeout": { + "default": "0", + "title": "Timeout", + "type": "string", + "format": "number" + }, + "actor": { + "title": "Actor", + "type": "string", + "enum": [ + "APPC", + "SO", + "VFC", + "SDNC", + "SDNR" + ] + }, + "payload": { + "title": "Payload (YAML)", + "type": "string", + "format": "textarea" + }, + "success": { + "default": "final_success", + "title": "When Success", + "type": "string" + }, + "failure": { + "default": "final_failure", + "title": "When Failure", + "type": "string" + }, + "failure_timeout": { + "default": "final_failure_timeout", + "title": "When Failure Timeout", + "type": "string" + }, + "failure_retries": { + "default": "final_failure_retries", + "title": "When Failure Retries", + "type": "string" + }, + "failure_exception": { + "default": "final_failure_exception", + "title": "When Failure Exception", + "type": "string" + }, + "failure_guard": { + "default": "final_failure_guard", + "title": "When Failure Guard", + "type": "string" + }, + "target": { + "type": "object", + "required": [ + "type", + "resourceID" + ], + "anyOf": [ + { + "title": "User Defined", + "additionalProperties":"True", + "properties": { + "type": { + "title": "Target type", + "type": "string", + "default": "", + "enum": [ + "VNF", + "VFMODULE", + "VM" + ] + }, + "resourceID": { + "title": "Target type", + "type": "string", + "default": "" + } + } + } + ] + } + } + } + } + } + }, + "guard_policies": { + "type": "array", + "format": "tabs-top", + "title": "Associated Guard policies", + "items": { + "headerTemplate": "{{self.policy-id}} - {{self.content.recipe}}", + "anyOf": [ + { + "title": "Guard MinMax", + "type": "object", + "properties": { + "policy-id": { + "type": "string", + "default": "guard.minmax.new", + "pattern": "^(guard.minmax\\..*)$" + }, + "content": { + "properties": { + "actor": { + "type": "string", + "enum": [ + "APPC", + "SO", + "VFC", + "SDNC", + "SDNR" + ] + }, + "recipe": { + "type": "string", + "enum": [ + "Restart", + "Rebuild", + "Migrate", + "Health-Check", + "ModifyConfig", + "VF Module Create", + "VF Module Delete", + "Reroute" + ] + }, + "targets": { + "type": "string", + "default": ".*" + }, + "clname": { + "type": "string", + "template": "{{loopName}}", + "watch": { + "loopName": "operational_policy_item.configurationsJson.operational_policy.controlLoop.controlLoopName" + } + }, + "guardActiveStart": { + "type": "string", + "default": "00:00:00Z" + }, + "guardActiveEnd": { + "type": "string", + "default": "10:00:00Z" + }, + "min": { + "type": "string", + "default": "0" + }, + "max": { + "type": "string", + "default": "1" + } + } + } + } + }, + { + "title": "Guard Frequency", + "type": "object", + "properties": { + "policy-id": { + "type": "string", + "default": "guard.frequency.new", + "pattern": "^(guard.frequency\\..*)$" + }, + "content": { + "properties": { + "actor": { + "type": "string", + "enum": [ + "APPC", + "SO", + "VFC", + "SDNC", + "SDNR" + ] + }, + "recipe": { + "type": "string", + "enum": [ + "Restart", + "Rebuild", + "Migrate", + "Health-Check", + "ModifyConfig", + "VF Module Create", + "VF Module Delete", + "Reroute" + ] + }, + "targets": { + "type": "string", + "default": ".*" + }, + "clname": { + "type": "string", + "template": "{{loopName}}", + "watch": { + "loopName": "operational_policy_item.configurationsJson.operational_policy.controlLoop.controlLoopName" + } + }, + "guardActiveStart": { + "type": "string", + "default": "00:00:00Z" + }, + "guardActiveEnd": { + "type": "string", + "default": "10:00:00Z" + }, + "limit": { + "type": "string" + }, + "timeWindow": { + "type": "string" + }, + "timeUnits": { + "type": "string", + "enum":["minute","hour","day","week","month","year"] + } + } + } + } + } + ] + } + } + } + } + } + } + } +} |