From 88822bb735a2b480c406693762941b89ca63d5b2 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Thu, 14 Mar 2019 01:33:39 -0700 Subject: [PATCH] add method to determine if running in cloud (#2515) * add method to determine if running in cloud add new class and method to determine if abapGit is running on ABAP cloud/Steampunk systems, part of an effort to align codelines #2511 * fix naming * add simple unit test --- src/objects/zif_abapgit_object.intf.abap | 2 ++ src/zcl_abapgit_environment.clas.abap | 36 +++++++++++++++++++ ..._abapgit_environment.clas.testclasses.abap | 31 ++++++++++++++++ src/zcl_abapgit_environment.clas.xml | 18 ++++++++++ 4 files changed, 87 insertions(+) create mode 100644 src/zcl_abapgit_environment.clas.abap create mode 100644 src/zcl_abapgit_environment.clas.testclasses.abap create mode 100644 src/zcl_abapgit_environment.clas.xml diff --git a/src/objects/zif_abapgit_object.intf.abap b/src/objects/zif_abapgit_object.intf.abap index 1117888f2..86ec19d89 100644 --- a/src/objects/zif_abapgit_object.intf.abap +++ b/src/objects/zif_abapgit_object.intf.abap @@ -16,6 +16,8 @@ INTERFACE zif_abapgit_object late TYPE zif_abapgit_object=>ty_deserialization_step VALUE `LATE`, END OF gc_step_id. + CONSTANTS c_abap_version_sap_cp TYPE progdir-uccheck VALUE '5' ##NO_TEXT. + CONSTANTS c_abap_version_default TYPE progdir-uccheck VALUE 'X' ##NO_TEXT. METHODS serialize IMPORTING diff --git a/src/zcl_abapgit_environment.clas.abap b/src/zcl_abapgit_environment.clas.abap new file mode 100644 index 000000000..e23e6b4f0 --- /dev/null +++ b/src/zcl_abapgit_environment.clas.abap @@ -0,0 +1,36 @@ +CLASS zcl_abapgit_environment DEFINITION + PUBLIC + CREATE PUBLIC . + + PUBLIC SECTION. + + CLASS-METHODS is_cloud + RETURNING + VALUE(rv_cloud) TYPE abap_bool . + PROTECTED SECTION. + + CLASS-DATA gv_cloud TYPE abap_bool VALUE abap_undefined ##NO_TEXT. + PRIVATE SECTION. +ENDCLASS. + + + +CLASS ZCL_ABAPGIT_ENVIRONMENT IMPLEMENTATION. + + + METHOD is_cloud. + + IF gv_cloud = abap_undefined. + TRY. + CALL METHOD ('CL_COS_UTILITIES')=>('IS_SAP_CLOUD_PLATFORM') + RECEIVING + rv_is_sap_cloud_platform = gv_cloud. + CATCH cx_sy_dyn_call_illegal_method. + gv_cloud = abap_false. + ENDTRY. + ENDIF. + + rv_cloud = gv_cloud. + + ENDMETHOD. +ENDCLASS. diff --git a/src/zcl_abapgit_environment.clas.testclasses.abap b/src/zcl_abapgit_environment.clas.testclasses.abap new file mode 100644 index 000000000..faa444b9a --- /dev/null +++ b/src/zcl_abapgit_environment.clas.testclasses.abap @@ -0,0 +1,31 @@ + +CLASS ltcl_test DEFINITION FOR TESTING + DURATION SHORT + RISK LEVEL HARMLESS FINAL. + + PRIVATE SECTION. + DATA: + mo_cut TYPE REF TO zcl_abapgit_environment. + + METHODS: + setup, + is_cloud FOR TESTING. +ENDCLASS. + + +CLASS ltcl_test IMPLEMENTATION. + + METHOD setup. + + CREATE OBJECT mo_cut. + + ENDMETHOD. + + METHOD is_cloud. + + mo_cut->is_cloud( ). +* no assertions, just make sure the dynamic code runs + + ENDMETHOD. + +ENDCLASS. diff --git a/src/zcl_abapgit_environment.clas.xml b/src/zcl_abapgit_environment.clas.xml new file mode 100644 index 000000000..40a27f71b --- /dev/null +++ b/src/zcl_abapgit_environment.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_ENVIRONMENT + 1 + E + abapGit - Environment information + 1 + X + X + X + X + + + +