2022-12-22 08:39:38,362 DEBUG 71:cds_resource_resolution.py(1) - CDS resource resolution initialization 2022-12-22 08:39:38,389 DEBUG 227:extension.py(1) - found extension EntryPoint(name='clearwater_ims', value='onaptests.scenario.clearwater_ims:ClearwaterIms', group='xtesting.testcase') 2022-12-22 08:39:38,390 DEBUG 227:extension.py(1) - found extension EntryPoint(name='multi_vnf_ubuntu_macro', value='onaptests.scenario.multi_vnf_macro:MultiVnfUbuntuMacro', group='xtesting.testcase') 2022-12-22 08:39:38,390 DEBUG 227:extension.py(1) - found extension EntryPoint(name='pnf_macro', value='onaptests.scenario.pnf_macro:PnfMacro', group='xtesting.testcase') 2022-12-22 08:39:38,390 INFO 169:run_tests.py(1) - Running test case 'cds_resource_resolution'... 2022-12-22 08:39:38,391 DEBUG 79:cds_resource_resolution.py(1) - CDS resource resolution run 2022-12-22 08:39:38,392 INFO 175:base.py(1) - ***************************************************** 2022-12-22 08:39:38,392 INFO 176:base.py(1) - START [Environment] CdsMockserverCnfConfigureStep: Configure cds-mockserver. 2022-12-22 08:39:38,392 INFO 177:base.py(1) - ***************************************************** 2022-12-22 08:39:38,393 INFO 175:base.py(1) - ***************************************************** 2022-12-22 08:39:38,393 INFO 176:base.py(1) - START [K8S plugin] CreateInstanceStep: Create K8S instance. 2022-12-22 08:39:38,393 INFO 177:base.py(1) - ***************************************************** 2022-12-22 08:39:38,394 INFO 175:base.py(1) - ***************************************************** 2022-12-22 08:39:38,394 INFO 176:base.py(1) - START [K8S plugin] CreateProfileStep: Create K8S profile. 2022-12-22 08:39:38,394 INFO 177:base.py(1) - ***************************************************** 2022-12-22 08:39:38,395 INFO 175:base.py(1) - ***************************************************** 2022-12-22 08:39:38,396 INFO 176:base.py(1) - START [K8S plugin] CreateDefinitionStep: Create K8S definition. 2022-12-22 08:39:38,397 INFO 177:base.py(1) - ***************************************************** 2022-12-22 08:39:38,397 INFO 175:base.py(1) - ***************************************************** 2022-12-22 08:39:38,398 INFO 176:base.py(1) - START [AAI] CloudRegionCreateStep: Create cloud region. 2022-12-22 08:39:38,398 INFO 177:base.py(1) - ***************************************************** 2022-12-22 08:39:38,399 INFO 36:cloud_region_create.py(1) - *Check if cloud region exists * 2022-12-22 08:39:38,400 DEBUG 129:onap_service.py(1) - [AAI][get cloud regions] sent header: {'Content-Type': 'application/json', 'Accept': 'application/json', 'x-fromappid': 'AAI', 'x-transactionid': '0a3f6713-ba96-4971-a6f8-c2da85a3176e', 'authorization': 'Basic QUFJOkFBSQ=='} 2022-12-22 08:39:38,401 DEBUG 131:onap_service.py(1) - [AAI][get cloud regions] url used: https://aai.api.sparky.simpledemo.onap.org:30233/aai/v23/cloud-infrastructure/cloud-regions?cloud-owner=basicnf-owner&cloud-region-id=k8sregion-cds 2022-12-22 08:39:38,401 DEBUG 132:onap_service.py(1) - [AAI][get cloud regions] data sent: None 2022-12-22 08:39:38,518 INFO 142:onap_service.py(1) - [AAI][get cloud regions] response code: 200 2022-12-22 08:39:38,519 DEBUG 146:onap_service.py(1) - [AAI][get cloud regions] response: {"cloud-region":[{"cloud-owner":"basicnf-owner","cloud-region-id":"k8sregion-cds","cloud-type":"k8s","owner-defined-type":"N/A","cloud-region-version":"1.0","identity-url":"","cloud-zone":"","complex-name":"sdktests","sriov-automation":"","cloud-extra-info":"","upgrade-cycle":"","resource-version":"1671697956162","orchestration-disabled":false,"in-maint":false}]} 2022-12-22 08:39:38,521 INFO 199:base.py(1) - ***************************************************** 2022-12-22 08:39:38,522 INFO 200:base.py(1) - STOP [AAI] CloudRegionCreateStep: Create cloud region. 2022-12-22 08:39:38,522 INFO 201:base.py(1) - ***************************************************** 2022-12-22 08:39:38,522 INFO 175:base.py(1) - ***************************************************** 2022-12-22 08:39:38,523 INFO 176:base.py(1) - START [K8S plugin] K8SConnectivityInfoStep: Create K8S connectivity info. 2022-12-22 08:39:38,523 INFO 177:base.py(1) - ***************************************************** 2022-12-22 08:39:38,524 INFO 33:k8s_connectivity_info_create.py(1) - Check if k8s connectivity information exists 2022-12-22 08:39:38,524 DEBUG 129:onap_service.py(1) - [None][Get Connectivity Info] sent header: {'Content-Type': 'application/json', 'Accept': 'application/json', 'cache-control': 'no-cache'} 2022-12-22 08:39:38,524 DEBUG 131:onap_service.py(1) - [None][Get Connectivity Info] url used: https://msb.api.simpledemo.onap.org:30283/api/multicloud-k8s/v1/v1/connectivity-info/k8sregion-cds 2022-12-22 08:39:38,525 DEBUG 132:onap_service.py(1) - [None][Get Connectivity Info] data sent: None 2022-12-22 08:39:38,556 INFO 142:onap_service.py(1) - [None][Get Connectivity Info] response code: 502 2022-12-22 08:39:38,556 DEBUG 146:onap_service.py(1) - [None][Get Connectivity Info] response: n/a 2022-12-22 08:39:38,556 ERROR 157:onap_service.py(1) - [None][Get Connectivity Info] API returned and error: {'Content-Type': 'application/json', 'Accept': 'application/json', 'cache-control': 'no-cache'} 2022-12-22 08:39:38,556 ERROR 233:onap_service.py(1) - [None][Get Connectivity Info] request failed: Code: 502. Info: 502 Bad Gateway

502 Bad Gateway

error message:No route found for this request!

nginx
. 2022-12-22 08:39:38,557 INFO 36:k8s_connectivity_info_create.py(1) - Create the k8s connectivity information 2022-12-22 08:39:38,572 DEBUG 129:onap_service.py(1) - [None][Create Connectivity Info] sent header: {} 2022-12-22 08:39:38,573 DEBUG 131:onap_service.py(1) - [None][Create Connectivity Info] url used: https://msb.api.simpledemo.onap.org:30283/api/multicloud-k8s/v1/v1/connectivity-info 2022-12-22 08:39:38,573 DEBUG 132:onap_service.py(1) - [None][Create Connectivity Info] data sent: None 2022-12-22 08:39:38,604 INFO 142:onap_service.py(1) - [None][Create Connectivity Info] response code: 502 2022-12-22 08:39:38,604 DEBUG 146:onap_service.py(1) - [None][Create Connectivity Info] response: n/a 2022-12-22 08:39:38,604 ERROR 157:onap_service.py(1) - [None][Create Connectivity Info] API returned and error: {} 2022-12-22 08:39:38,605 INFO 199:base.py(1) - ***************************************************** 2022-12-22 08:39:38,605 INFO 200:base.py(1) - STOP [K8S plugin] K8SConnectivityInfoStep: Create K8S connectivity info. 2022-12-22 08:39:38,605 INFO 201:base.py(1) - ***************************************************** 2022-12-22 08:39:38,605 INFO 199:base.py(1) - ***************************************************** 2022-12-22 08:39:38,605 INFO 200:base.py(1) - STOP [K8S plugin] CreateDefinitionStep: Create K8S definition. 2022-12-22 08:39:38,606 INFO 201:base.py(1) - ***************************************************** 2022-12-22 08:39:38,606 INFO 199:base.py(1) - ***************************************************** 2022-12-22 08:39:38,606 INFO 200:base.py(1) - STOP [K8S plugin] CreateProfileStep: Create K8S profile. 2022-12-22 08:39:38,606 INFO 201:base.py(1) - ***************************************************** 2022-12-22 08:39:38,606 INFO 199:base.py(1) - ***************************************************** 2022-12-22 08:39:38,606 INFO 200:base.py(1) - STOP [K8S plugin] CreateInstanceStep: Create K8S instance. 2022-12-22 08:39:38,607 INFO 201:base.py(1) - ***************************************************** 2022-12-22 08:39:38,607 INFO 199:base.py(1) - ***************************************************** 2022-12-22 08:39:38,607 INFO 200:base.py(1) - STOP [Environment] CdsMockserverCnfConfigureStep: Configure cds-mockserver. 2022-12-22 08:39:38,607 INFO 201:base.py(1) - ***************************************************** 2022-12-22 08:39:38,607 ERROR 87:cds_resource_resolution.py(1) - Generic OnapTest exception Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/xtesting/ci/run_tests.py", line 171, in run_test kwargs = run_dict['args'] KeyError: 'args' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/onapsdk/onap_service.py", line 153, in send_message response.raise_for_status() File "/usr/lib/python3.8/site-packages/requests/models.py", line 941, in raise_for_status raise HTTPError(http_error_msg, response=self) requests.exceptions.HTTPError: 502 Server Error: Bad Gateway for url: https://msb.api.simpledemo.onap.org:30283/api/multicloud-k8s/v1/v1/connectivity-info/k8sregion-cds The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/onaptests/steps/cloud/k8s_connectivity_info_create.py", line 34, in execute ConnectivityInfo.get_connectivity_info_by_region_id(settings.CLOUD_REGION_ID) File "/usr/lib/python3.8/site-packages/onapsdk/msb/k8s/connectivity_info.py", line 42, in get_connectivity_info_by_region_id connectivity_info: dict = cls.send_message_json( File "/usr/lib/python3.8/site-packages/onapsdk/onap_service.py", line 238, in send_message_json raise exception File "/usr/lib/python3.8/site-packages/onapsdk/onap_service.py", line 222, in send_message_json response = cls.send_message(method, action, url, **kwargs) File "/usr/lib/python3.8/site-packages/onapsdk/onap_service.py", line 167, in send_message raise exc from cause onapsdk.exceptions.APIError: Code: 502. Info: 502 Bad Gateway

502 Bad Gateway

error message:No route found for this request!

nginx
. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/onapsdk/onap_service.py", line 153, in send_message response.raise_for_status() File "/usr/lib/python3.8/site-packages/requests/models.py", line 941, in raise_for_status raise HTTPError(http_error_msg, response=self) requests.exceptions.HTTPError: 502 Server Error: Bad Gateway for url: https://msb.api.simpledemo.onap.org:30283/api/multicloud-k8s/v1/v1/connectivity-info The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 223, in execute step.execute() File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 179, in wrapper ret = fun(self, *args, **kwargs) File "/usr/lib/python3.8/site-packages/onaptests/steps/cloud/k8s_connectivity_info_create.py", line 37, in execute ConnectivityInfo.create(settings.CLOUD_REGION_ID, File "/usr/lib/python3.8/site-packages/onapsdk/msb/k8s/connectivity_info.py", line 84, in create cls.send_message( File "/usr/lib/python3.8/site-packages/onapsdk/onap_service.py", line 167, in send_message raise exc from cause onapsdk.exceptions.APIError: Code: 502. Info: 502 Bad Gateway

502 Bad Gateway

error message:No route found for this request!

nginx
. The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 223, in execute step.execute() File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 179, in wrapper ret = fun(self, *args, **kwargs) File "/usr/lib/python3.8/site-packages/onaptests/steps/onboard/msb_k8s.py", line 38, in execute super().execute() File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 225, in execute raise SubstepExecutionException from substep_err onaptests.utils.exceptions.SubstepExecutionException The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 223, in execute step.execute() File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 179, in wrapper ret = fun(self, *args, **kwargs) File "/usr/lib/python3.8/site-packages/onaptests/steps/onboard/msb_k8s.py", line 71, in execute super().execute() File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 225, in execute raise SubstepExecutionException from substep_err onaptests.utils.exceptions.SubstepExecutionException The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 223, in execute step.execute() File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 179, in wrapper ret = fun(self, *args, **kwargs) File "/usr/lib/python3.8/site-packages/onaptests/steps/instantiate/msb_k8s.py", line 35, in execute super().execute() File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 225, in execute raise SubstepExecutionException from substep_err onaptests.utils.exceptions.SubstepExecutionException The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 223, in execute step.execute() File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 179, in wrapper ret = fun(self, *args, **kwargs) File "/usr/lib/python3.8/site-packages/onaptests/steps/simulator/cds_mockserver.py", line 43, in execute super().execute() File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 225, in execute raise SubstepExecutionException from substep_err onaptests.utils.exceptions.SubstepExecutionException The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/onaptests/scenario/cds_resource_resolution.py", line 84, in run test_phase() File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 225, in execute raise SubstepExecutionException from substep_err onaptests.utils.exceptions.SubstepExecutionException 2022-12-22 08:39:38,612 INFO 238:base.py(1) - ***************************** 2022-12-22 08:39:38,612 INFO 239:base.py(1) - Start Cleanup step: CDSResourceResolutionStep 2022-12-22 08:39:38,613 INFO 240:base.py(1) - ***************************** 2022-12-22 08:39:38,613 INFO 238:base.py(1) - ***************************** 2022-12-22 08:39:38,613 INFO 239:base.py(1) - Start Cleanup step: CdsMockserverCnfConfigureStep 2022-12-22 08:39:38,613 INFO 240:base.py(1) - ***************************** 2022-12-22 08:39:38,613 INFO 171:base.py(1) - ***************************************************** 2022-12-22 08:39:38,613 INFO 172:base.py(1) - START [K8S plugin] CreateInstanceStep cleanup: Create K8S instance. 2022-12-22 08:39:38,614 INFO 173:base.py(1) - ***************************************************** 2022-12-22 08:39:38,614 INFO 238:base.py(1) - ***************************** 2022-12-22 08:39:38,614 INFO 239:base.py(1) - Start Cleanup step: CreateInstanceStep 2022-12-22 08:39:38,614 INFO 240:base.py(1) - ***************************** 2022-12-22 08:39:38,615 INFO 238:base.py(1) - ***************************** 2022-12-22 08:39:38,615 INFO 239:base.py(1) - Start Cleanup step: CreateProfileStep 2022-12-22 08:39:38,615 INFO 240:base.py(1) - ***************************** 2022-12-22 08:39:38,615 INFO 238:base.py(1) - ***************************** 2022-12-22 08:39:38,616 INFO 239:base.py(1) - Start Cleanup step: CreateDefinitionStep 2022-12-22 08:39:38,616 INFO 240:base.py(1) - ***************************** 2022-12-22 08:39:38,616 INFO 238:base.py(1) - ***************************** 2022-12-22 08:39:38,616 INFO 239:base.py(1) - Start Cleanup step: CloudRegionCreateStep 2022-12-22 08:39:38,618 INFO 240:base.py(1) - ***************************** 2022-12-22 08:39:38,618 INFO 171:base.py(1) - ***************************************************** 2022-12-22 08:39:38,619 INFO 172:base.py(1) - START [K8S plugin] K8SConnectivityInfoStep cleanup: Create K8S connectivity info. 2022-12-22 08:39:38,619 INFO 173:base.py(1) - ***************************************************** 2022-12-22 08:39:38,619 INFO 44:k8s_connectivity_info_create.py(1) - Clean the k8s connectivity information 2022-12-22 08:39:38,620 INFO 238:base.py(1) - ***************************** 2022-12-22 08:39:38,620 INFO 239:base.py(1) - Start Cleanup step: K8SConnectivityInfoStep 2022-12-22 08:39:38,620 INFO 240:base.py(1) - ***************************** 2022-12-22 08:39:38,622 DEBUG 129:onap_service.py(1) - [None][Get Connectivity Info] sent header: {'Content-Type': 'application/json', 'Accept': 'application/json', 'cache-control': 'no-cache'} 2022-12-22 08:39:38,622 DEBUG 131:onap_service.py(1) - [None][Get Connectivity Info] url used: https://msb.api.simpledemo.onap.org:30283/api/multicloud-k8s/v1/v1/connectivity-info/k8sregion-cds 2022-12-22 08:39:38,622 DEBUG 132:onap_service.py(1) - [None][Get Connectivity Info] data sent: None 2022-12-22 08:39:38,661 INFO 142:onap_service.py(1) - [None][Get Connectivity Info] response code: 502 2022-12-22 08:39:38,661 DEBUG 146:onap_service.py(1) - [None][Get Connectivity Info] response: n/a 2022-12-22 08:39:38,661 ERROR 157:onap_service.py(1) - [None][Get Connectivity Info] API returned and error: {'Content-Type': 'application/json', 'Accept': 'application/json', 'cache-control': 'no-cache'} 2022-12-22 08:39:38,661 ERROR 233:onap_service.py(1) - [None][Get Connectivity Info] request failed: Code: 502. Info: 502 Bad Gateway

502 Bad Gateway

error message:No route found for this request!

nginx
. 2022-12-22 08:39:38,661 INFO 190:base.py(1) - ***************************************************** 2022-12-22 08:39:38,662 INFO 191:base.py(1) - STOP [K8S plugin] K8SConnectivityInfoStep cleanup: Create K8S connectivity info. 2022-12-22 08:39:38,663 INFO 192:base.py(1) - ***************************************************** 2022-12-22 08:39:38,663 INFO 190:base.py(1) - ***************************************************** 2022-12-22 08:39:38,663 INFO 191:base.py(1) - STOP [K8S plugin] CreateInstanceStep cleanup: Create K8S instance. 2022-12-22 08:39:38,663 INFO 192:base.py(1) - ***************************************************** 2022-12-22 08:39:38,663 ERROR 87:cds_resource_resolution.py(1) - Generic OnapTest exception Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/xtesting/ci/run_tests.py", line 171, in run_test kwargs = run_dict['args'] KeyError: 'args' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/onapsdk/onap_service.py", line 153, in send_message response.raise_for_status() File "/usr/lib/python3.8/site-packages/requests/models.py", line 941, in raise_for_status raise HTTPError(http_error_msg, response=self) requests.exceptions.HTTPError: 502 Server Error: Bad Gateway for url: https://msb.api.simpledemo.onap.org:30283/api/multicloud-k8s/v1/v1/connectivity-info/k8sregion-cds The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 244, in cleanup step.cleanup() File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 179, in wrapper ret = fun(self, *args, **kwargs) File "/usr/lib/python3.8/site-packages/onaptests/steps/cloud/k8s_connectivity_info_create.py", line 46, in cleanup connectinfo = ConnectivityInfo.get_connectivity_info_by_region_id(settings.CLOUD_REGION_ID) File "/usr/lib/python3.8/site-packages/onapsdk/msb/k8s/connectivity_info.py", line 42, in get_connectivity_info_by_region_id connectivity_info: dict = cls.send_message_json( File "/usr/lib/python3.8/site-packages/onapsdk/onap_service.py", line 238, in send_message_json raise exception File "/usr/lib/python3.8/site-packages/onapsdk/onap_service.py", line 222, in send_message_json response = cls.send_message(method, action, url, **kwargs) File "/usr/lib/python3.8/site-packages/onapsdk/onap_service.py", line 167, in send_message raise exc from cause onapsdk.exceptions.APIError: Code: 502. Info: 502 Bad Gateway

502 Bad Gateway

error message:No route found for this request!

nginx
. The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 244, in cleanup step.cleanup() File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 246, in cleanup raise SubstepExecutionException from substep_err onaptests.utils.exceptions.SubstepExecutionException The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 244, in cleanup step.cleanup() File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 246, in cleanup raise SubstepExecutionException from substep_err onaptests.utils.exceptions.SubstepExecutionException The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 244, in cleanup step.cleanup() File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 179, in wrapper ret = fun(self, *args, **kwargs) File "/usr/lib/python3.8/site-packages/onaptests/steps/instantiate/msb_k8s.py", line 46, in cleanup return super().cleanup() File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 246, in cleanup raise SubstepExecutionException from substep_err onaptests.utils.exceptions.SubstepExecutionException The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 244, in cleanup step.cleanup() File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 246, in cleanup raise SubstepExecutionException from substep_err onaptests.utils.exceptions.SubstepExecutionException The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/onaptests/scenario/cds_resource_resolution.py", line 84, in run test_phase() File "/usr/lib/python3.8/site-packages/onaptests/steps/base.py", line 246, in cleanup raise SubstepExecutionException from substep_err onaptests.utils.exceptions.SubstepExecutionException 2022-12-22 08:39:38,667 INFO 176:run_tests.py(1) - Test result: +---------------------------------+---------------------+------------------+----------------+ | TEST CASE | PROJECT | DURATION | RESULT | +---------------------------------+---------------------+------------------+----------------+ | cds_resource_resolution | integration | 00:00 | FAIL | +---------------------------------+---------------------+------------------+----------------+ 2022-12-22 08:39:38,669 INFO 95:cds_resource_resolution.py(1) - Generate Test report 2022-12-22 08:39:39,059 INFO 246:testcase.py(1) - The results were successfully pushed to DB: http://testresults.opnfv.org/onap/api/v1/results/63a417cb6c44f500103eea1c 2022-12-22 08:39:39,060 ERROR 253:run_tests.py(1) - The test case 'cds_resource_resolution' failed. 2022-12-22 08:39:39,061 INFO 275:run_tests.py(1) - Execution exit value: Result.EX_ERROR