Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lwMUO-0005G1-3r for pgadmin-hackers@arkaria.postgresql.org; Thu, 24 Jun 2021 10:21:40 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lwMUM-0006Pb-GH for pgadmin-hackers@arkaria.postgresql.org; Thu, 24 Jun 2021 10:21:38 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lwMUM-0006PT-3y for pgadmin-hackers@lists.postgresql.org; Thu, 24 Jun 2021 10:21:38 +0000 Received: from mail-lf1-x133.google.com ([2a00:1450:4864:20::133]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1lwMUH-0003HS-Pq for pgadmin-hackers@postgresql.org; Thu, 24 Jun 2021 10:21:37 +0000 Received: by mail-lf1-x133.google.com with SMTP id r5so9405824lfr.5 for ; Thu, 24 Jun 2021 03:21:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Cdbb5b+DmJCnsBdfmZK2AMMbirfytV0kSUPXt+SgsUU=; b=sVobzx34bcqbyerjuVVP5iClluqn47m55x0MsMTwcwlguvcY7PCEmMezCLecBYi8De eP35EtQ2vXnfHkVizFqGIRPSuzA3+2I/9JEq1eA86F21VngYvEVMF4d8F/G1S8aAvzB4 h8Vv3ijphkwo/Gu+J5EPwuKO3Yz1erXWcd0BikVMNQCrnK8TUtIr2EJ4PQcnuHgbF9/8 PfkaAjO6dNpxbXFu10p4TBqVfHVc6i6fYYJOjFE/dL3LuBXyt5BM+r2WRNhlikYjPJGS DDleu7nkK9nXHAAhIEqJub6XeOQ/jWZJK1gBwTFuwSqzv4IZiSxGVfRDGrDLLMsRskAg 81hA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Cdbb5b+DmJCnsBdfmZK2AMMbirfytV0kSUPXt+SgsUU=; b=UnFOkMZMnLlKnepG9fVuTmGUh6EtqfEWNATOjRCngGZJ+EnRT/aagxS044XNy5qWa9 Or25DdP4etpMg1ojaYJz6Q2mTRMPV377+9QmJr2nPKrAQKpevW43gpc/ABo+TvOrDkgI 9rxnrta63t0D6WuU192D4IaOl6ikQbAhttj7FZHrzblaHcmXx5wbNIUSkM44tHWOoQwN K4qd6h0zXvuVP3sn+4Mi/+lCF0gngnYtNDrcf0pNaw25VwDIY3yDheJaCUyLCOSrDn86 dJ3Jp+/lwz5+jPOzyLX23iL5uWiFaHHbKeCVkpLn4BzVBT4Psze6gxjb+NxeeXRIlBby IurA== X-Gm-Message-State: AOAM531uHxoOWzCPpSEwDdUkYZrd+VHZ01od08nVIM9a20Y7VA1c+ZcL dn4DG0hZ50NNEfC+vvPob06M1+sMR+3/871emcDxUOq5Yt5i4GRVtn5aaVAdGes0wA9C1gNHCXH W/YQI0PA3vOW0rVyBDuRqNyI3aaHWc7F6AipnncAbboTO+qC6IvBFuPXE6E4HHlrO7po3uqmlAt TBqOb+/9Fm63nhnKUcb+/V6ObdLSOAxaknk9mdCrJyRo/DfnhvN2fzq1CrSA== X-Google-Smtp-Source: ABdhPJyTAMvB7uffW/tC2O77OeYJg2bCiEdjFjP+AdaOK6AuCujR2ybJG7hU5XSv4ecg+4rAzm5pIZX/Dnz5QMTq2w8= X-Received: by 2002:ac2:4438:: with SMTP id w24mr3492924lfl.73.1624530092237; Thu, 24 Jun 2021 03:21:32 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Khushboo Vashi Date: Thu, 24 Jun 2021 15:51:21 +0530 Message-ID: Subject: Re: Refactor: Registry Classes To: Akshay Joshi Cc: Ashesh Vashi , pgadmin-hackers Content-Type: multipart/mixed; boundary="00000000000013ca0c05c5806307" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000013ca0c05c5806307 Content-Type: multipart/alternative; boundary="00000000000013ca0b05c5806305" --00000000000013ca0b05c5806305 Content-Type: text/plain; charset="UTF-8" Hi, This patch introduced the server mode api test case failure, please find the attached patch to fix those as well as some of the old issues in the server mode. Patch by: Ashesh Vashi Thanks, Khushboo On Thu, Jun 24, 2021 at 11:31 AM Akshay Joshi wrote: > Thanks, the patch applied. > > On Wed, Jun 23, 2021 at 7:54 PM Ashesh Vashi < > ashesh.vashi@enterprisedb.com> wrote: > >> On Wed, Jun 23, 2021 at 1:22 PM Akshay Joshi < >> akshay.joshi@enterprisedb.com> wrote: >> >>> Hi Ashesh >>> >>> Following are the review comments: >>> >>> - Fixed PEP8 issues. >>> >>> Done. >> >>> >>> - In "dynamic_registry/__init__.py" decorator @classmethod used for " >>> *_get*" and "*_load_modules*" methods which are actually outside of >>> the class. Even constructor also outside of the class. >>> >>> 'create_registry_metaclass' is not a class, but a method to create the >> dynamic classes. >> If I move these methods in 'create_registry_metaclass' method, SonarQube >> raises issues about complexity of the functions, hence - they're best kept >> outside of that method. >> >>> >>> - Remove unused imports from "driver/registry.py" >>> >>> Done >> >>> >>> - >>> - Fixed sonarqube issues in >>> "dynamic_registry/tests/registry/__init__.py" >>> >>> Done >> As discussed, SonarQube is not able to understand that the result object >> is a class, and not an object, hence - showing linter issues. >> I've disabled them in those lines by adding the comment '# NOSNAR' at the >> end. >> >> -- Thanks, Ashesh >> >>> >>> On Sat, Jun 19, 2021 at 11:27 AM Ashesh Vashi < >>> ashesh.vashi@enterprisedb.com> wrote: >>> >>>> On Sat, Jun 19, 2021 at 1:39 AM Ashesh Vashi < >>>> ashesh.vashi@enterprisedb.com> wrote: >>>> >>>>> Hi Akshay, >>>>> >>>>> We do have a couple of classes, which does automatic registration of >>>>> the base classes, >>>>> and which creates single-ton objects for these base classes, when >>>>> needed. >>>>> >>>>> I would be working on a patch sooner, which will be using similar >>>>> functionality for loading >>>>> the multi-factor authentication. >>>>> >>>>> I realized - it will be a duplicate code at three places for the same >>>>> functionalities. >>>>> Hence - I worked on refactoring this registry class. >>>>> >>>>> Please find the patch for the same. >>>>> >>>> Found issues - some test files were using the old function >>>> 'Driver.load_drivers(...)'. >>>> They're fixed now. >>>> >>>> -- Thanks, Ashesh >>>> >>>>> >>>>> -- >>>>> >>>>> Thanks & Regards, >>>>> >>>>> Ashesh Vashi >>>>> EnterpriseDB INDIA: Enterprise PostgreSQL Company >>>>> >>>>> >>>>> >>>>> *http://www.linkedin.com/in/asheshvashi* >>>>> >>>>> >>>> >>> >>> -- >>> *Thanks & Regards* >>> *Akshay Joshi* >>> *pgAdmin Hacker | Principal Software Architect* >>> *EDB Postgres * >>> >>> *Mobile: +91 976-788-8246* >>> >> > > -- > *Thanks & Regards* > *Akshay Joshi* > *pgAdmin Hacker | Principal Software Architect* > *EDB Postgres * > > *Mobile: +91 976-788-8246* > --00000000000013ca0b05c5806305 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

This patch introduced the server mo= de api test case failure, please find the attached patch to fix those as we= ll as some of the old issues in the server mode.=C2=A0
Patch by: = Ashesh Vashi

Thanks,
Khushboo
=

On Thu, Jun 24, 2021 at 11:31 AM Akshay Joshi <akshay.joshi@enterprisedb.com> wro= te:
Thanks, the patch applied.

On Wed, Jun 23, 2021 at 7:54 PM Ashesh Vashi= <ash= esh.vashi@enterprisedb.com> wrote:
On Wed, Jun 23,= 2021 at 1:22 PM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
<= /div>
Hi=C2=A0Ashesh

Following are the= review comments:
  • Fixed PEP8 issues.
Done.
  • In "dynamic_registry/__init__.py&qu= ot; decorator @classmethod used for "_get" and "_l= oad_modules" methods which are actually outside of the class. Even= constructor also outside of the class.
'create_registry_metaclass' is not a class, but a method to= create the dynamic classes.
If I move these methods in 'crea= te_registry_metaclass' method, SonarQube raises issues about complexity= of the functions, hence - they're best kept outside of that method.=C2= =A0
  • Remove unused imports from "driver/registry.py"
  • =
Done
  • Fixed sonarqube issues in &= quot;dynamic_registry/tests/registry/__init__.py"
<= /blockquote>
Done
As discussed, SonarQube is not able to unde= rstand that the result object is a class, and not an object, hence - showin= g linter issues.
I've disabled them in those lines by add= ing the comment '# NOSNAR' at the end.

-- = Thanks, Ashesh

<= div class=3D"gmail_quote">
On Sat, Jun= 19, 2021 at 11:27 AM Ashesh Vashi <ashesh.vashi@enterprisedb.com> wrote:=
On Sat, Jun 19, 2021 at 1:39 AM Ashesh Vashi <ashesh.vashi@en= terprisedb.com> wrote:
Hi Akshay,
We do have a couple of classes, which does automatic registrat= ion of the base classes,
and which creates single-ton objects for= these base classes, when needed.

I would be worki= ng on a patch sooner, which will be using similar functionality for loading=
the multi-factor authentication.

I real= ized - it will be a duplicate code at three places for the same functionali= ties.
Hence - I worked on refactoring this registry class.
<= div>
Please find the patch for the same.=C2=A0
Found issues - some test files were using the old function &= #39;Driver.load_drivers(...)'.
They're fixed now.

-- Thanks, Ashesh

--=

Thanks & Regards= ,

Ashesh Vashi
EnterpriseDB INDIA: = Enterprise Postgr= eSQL Company


http://www.linkedin.com/in/asheshvashi



--
Thank= s & Regards
Akshay Joshi
pgAdmin Hacker | Principal Softw= are Architect
EDB Po= stgres
Mobile: +91 976-788-8246



--
Thank= s & Regards
Akshay Joshi
pgAdmin Hacker | Principal Softw= are Architect
EDB Po= stgres
Mobile: +91 976-788-8246

--00000000000013ca0b05c5806305-- --00000000000013ca0c05c5806307 Content-Type: application/octet-stream; name="test_cases_server_mode.patch" Content-Disposition: attachment; filename="test_cases_server_mode.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kqar661v0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9jaGFuZ2VfcGFzc3dv cmQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfY2hhbmdlX3Bhc3N3b3JkLnB5 CmluZGV4IGZmZDQ5OTA2OC4uMmQwOWMyNmJkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3Rlc3RzL3Rlc3RfY2hhbmdlX3Bhc3N3b3JkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvdGVzdHMvdGVzdF9jaGFuZ2VfcGFzc3dvcmQucHkKQEAgLTYyLDcgKzYyLDcgQEAgY2xhc3Mg Q2hhbmdlUGFzc3dvcmRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICBu ZXdfcGFzc3dvcmRfY29uZmlybT0oCiAgICAgICAgICAgICAgICAgY29uZmlnX2RhdGFbJ3BnQWRt aW40X2xvZ2luX2NyZWRlbnRpYWxzJ10KICAgICAgICAgICAgICAgICBbJ25ld19wYXNzd29yZCdd KSwKLSAgICAgICAgICAgIHJlc3BkYXRhPSdJbnZhbGlkIHBhc3N3b3JkJykpLAorICAgICAgICAg ICAgcmVzcGRhdGE9J0luY29ycmVjdCB1c2VybmFtZSBvciBwYXNzd29yZCcpKSwKIAogICAgICAg ICAjIFRoaXMgdGVzdCBjYXNlIGNoZWNrcyBmb3IgdmFsaWQgcGFzc3dvcmQKICAgICAgICAgKCdU ZXN0Q2FzZSBmb3IgQ2hhbmdpbmcgVmFsaWRfUGFzc3dvcmQnLCBkaWN0KApkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2tlcmJlcm9zX3dpdGhfbW9ja2luZy5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9rZXJiZXJvc193aXRoX21vY2tpbmcucHkK aW5kZXggNmI2MWRjMWQwLi5lNjdjZWQ4YzQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvdGVzdHMvdGVzdF9rZXJiZXJvc193aXRoX21vY2tpbmcucHkKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci90ZXN0cy90ZXN0X2tlcmJlcm9zX3dpdGhfbW9ja2luZy5weQpAQCAtMTAxLDcgKzEw MSw3IEBAIGNsYXNzIEtlcmJlcm9zTG9naW5Nb2NrVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3Ip OgogCiAgICAgICAgIGRlbF9jcmFkcyA9IGRlbENyYWRzKCkKIAotICAgICAgICBBdXRoU291cmNl UmVnaXN0cnkucmVnaXN0cnlbJ2tlcmJlcm9zJ10ubmVnb3RpYXRlX3N0YXJ0ID0gTWFnaWNNb2Nr KAorICAgICAgICBBdXRoU291cmNlUmVnaXN0cnkuX3JlZ2lzdHJ5WydrZXJiZXJvcyddLm5lZ290 aWF0ZV9zdGFydCA9IE1hZ2ljTW9jaygKICAgICAgICAgICAgIHJldHVybl92YWx1ZT1bVHJ1ZSwg ZGVsX2NyYWRzXSkKICAgICAgICAgcmV0dXJuIGRlbF9jcmFkcwogCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfbGRhcF93aXRoX21vY2tpbmcucHkgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfbGRhcF93aXRoX21vY2tpbmcucHkKaW5kZXggMzBkZjc3 MjllLi45MmY1YzcwYzcgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVz dF9sZGFwX3dpdGhfbW9ja2luZy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rl c3RfbGRhcF93aXRoX21vY2tpbmcucHkKQEAgLTU3LDEzICs1NywxMyBAQCBjbGFzcyBMREFQTG9n aW5Nb2NrVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICBhcHBfY29uZmlnLkxE QVBfQklORF9VU0VSID0gTm9uZQogICAgICAgICBhcHBfY29uZmlnLkxEQVBfQklORF9QQVNTV09S RCA9IE5vbmUKIAotICAgIEBwYXRjaC5vYmplY3QoQXV0aFNvdXJjZVJlZ2lzdHJ5LnJlZ2lzdHJ5 WydsZGFwJ10sICdjb25uZWN0JywKKyAgICBAcGF0Y2gub2JqZWN0KEF1dGhTb3VyY2VSZWdpc3Ry eS5fcmVnaXN0cnlbJ2xkYXAnXSwgJ2Nvbm5lY3QnLAogICAgICAgICAgICAgICAgICAgcmV0dXJu X3ZhbHVlPVtUcnVlLCAiRG9uZSJdKQotICAgIEBwYXRjaC5vYmplY3QoQXV0aFNvdXJjZVJlZ2lz dHJ5LnJlZ2lzdHJ5WydsZGFwJ10sICdzZWFyY2hfbGRhcF91c2VyJywKKyAgICBAcGF0Y2gub2Jq ZWN0KEF1dGhTb3VyY2VSZWdpc3RyeS5fcmVnaXN0cnlbJ2xkYXAnXSwgJ3NlYXJjaF9sZGFwX3Vz ZXInLAogICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPVtUcnVlLCAnJ10pCiAgICAgZGVm IHJ1blRlc3Qoc2VsZiwgY29ubl9tb2NrX29iaiwgc2VhcmNoX21vY2tfb2JqKToKICAgICAgICAg IiIiVGhpcyBmdW5jdGlvbiBjaGVja3MgbGRhcCBsb2dpbiBmdW5jdGlvbmFsaXR5LiIiIgotICAg ICAgICBBdXRoU291cmNlUmVnaXN0cnkucmVnaXN0cnlbJ2xkYXAnXS5kZWRpY2F0ZWRfdXNlciA9 IEZhbHNlCisgICAgICAgIEF1dGhTb3VyY2VSZWdpc3RyeS5fcmVnaXN0cnlbJ2xkYXAnXS5kZWRp Y2F0ZWRfdXNlciA9IEZhbHNlCiAgICAgICAgIHJlcyA9IHNlbGYudGVzdGVyLmxvZ2luKHNlbGYu dXNlcm5hbWUsIHNlbGYucGFzc3dvcmQsIFRydWUpCiAgICAgICAgIHJlc3BkYXRhID0gJ0dyYXZh dGFyIGltYWdlIGZvciAlcycgJSBzZWxmLnVzZXJuYW1lCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1 ZShyZXNwZGF0YSBpbiByZXMuZGF0YS5kZWNvZGUoJ3V0ZjgnKSkKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9sb2dpbi5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv dGVzdHMvdGVzdF9sb2dpbi5weQppbmRleCBjNzgxNjE1NmQuLjc0M2QwMDk5YyAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2xvZ2luLnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9sb2dpbi5weQpAQCAtMjksNyArMjksNyBAQCBjbGFzcyBM b2dpblRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICBbJ2xvZ2lu X3VzZXJuYW1lJ10pLAogICAgICAgICAgICAgcGFzc3dvcmQ9c3RyKHV1aWQudXVpZDQoKSlbNDo4 XSwKICAgICAgICAgICAgIGlzX2dyYXZ0YXJfaW1hZ2VfY2hlY2s9RmFsc2UsCi0gICAgICAgICAg ICByZXNwZGF0YT0nSW52YWxpZCBwYXNzd29yZCcpKSwKKyAgICAgICAgICAgIHJlc3BkYXRhPSdJ bmNvcnJlY3QgdXNlcm5hbWUgb3IgcGFzc3dvcmQnKSksCiAKICAgICAgICAgIyBUaGlzIHRlc3Qg Y2FzZSB2YWxpZGF0ZXMgdGhlIGVtcHR5IHBhc3N3b3JkIGZpZWxkCiAgICAgICAgICgnRW1wdHlf UGFzc3dvcmQnLCBkaWN0KApAQCAtNDUsMTMgKzQ1LDEzIEBAIGNsYXNzIExvZ2luVGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgIGNvbmZpZ19kYXRhWydwZ0FkbWlu NF9sb2dpbl9jcmVkZW50aWFscyddCiAgICAgICAgICAgICAgICAgWydsb2dpbl9wYXNzd29yZCdd KSwKICAgICAgICAgICAgIGlzX2dyYXZ0YXJfaW1hZ2VfY2hlY2s9RmFsc2UsCi0gICAgICAgICAg ICByZXNwZGF0YT0nRW1haWwgbm90IHByb3ZpZGVkJykpLAorICAgICAgICAgICAgcmVzcGRhdGE9 J0VtYWlsL1VzZXJuYW1lIGlzIG5vdCB2YWxpZCcpKSwKIAogICAgICAgICAjIFRoaXMgdGVzdCBj YXNlIHZhbGlkYXRlcyBlbXB0eSBlbWFpbCBhbmQgcGFzc3dvcmQKICAgICAgICAgKCdFbXB0eV9D cmVkZW50aWFscycsIGRpY3QoCiAgICAgICAgICAgICBlbWFpbD0nJywgcGFzc3dvcmQ9JycsCiAg ICAgICAgICAgICBpc19ncmF2dGFyX2ltYWdlX2NoZWNrPUZhbHNlLAotICAgICAgICAgICAgcmVz cGRhdGE9J0VtYWlsIG5vdCBwcm92aWRlZCcpKSwKKyAgICAgICAgICAgIHJlc3BkYXRhPSdFbWFp bC9Vc2VybmFtZSBpcyBub3QgdmFsaWQnKSksCiAKICAgICAgICAgIyBUaGlzIHRlc3QgY2FzZSB2 YWxpZGF0ZXMgdGhlIGludmFsaWQvaW5jb3JyZWN0IGVtYWlsIGlkCiAgICAgICAgICgnSW52YWxp ZF9FbWFpbCcsIGRpY3QoCkBAIC02MCwxNCArNjAsMTQgQEAgY2xhc3MgTG9naW5UZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgICAgY29uZmlnX2RhdGFbJ3BnQWRtaW40 X2xvZ2luX2NyZWRlbnRpYWxzJ10KICAgICAgICAgICAgICAgICBbJ2xvZ2luX3Bhc3N3b3JkJ10p LAogICAgICAgICAgICAgaXNfZ3JhdnRhcl9pbWFnZV9jaGVjaz1GYWxzZSwKLSAgICAgICAgICAg IHJlc3BkYXRhPSdTcGVjaWZpZWQgdXNlciBkb2VzIG5vdCBleGlzdCcpKSwKKyAgICAgICAgICAg IHJlc3BkYXRhPSdJbmNvcnJlY3QgdXNlcm5hbWUgb3IgcGFzc3dvcmQnKSksCiAKICAgICAgICAg IyBUaGlzIHRlc3QgY2FzZSB2YWxpZGF0ZXMgaW52YWxpZCBlbWFpbCBhbmQgcGFzc3dvcmQKICAg ICAgICAgKCdJbnZhbGlkX0NyZWRlbnRpYWxzJywgZGljdCgKICAgICAgICAgICAgIGVtYWlsPXN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0gKyAnQHh5ei5jb20nLAogICAgICAgICAgICAgcGFzc3dvcmQ9 c3RyKHV1aWQudXVpZDQoKSlbNDo4XSwKICAgICAgICAgICAgIGlzX2dyYXZ0YXJfaW1hZ2VfY2hl Y2s9RmFsc2UsCi0gICAgICAgICAgICByZXNwZGF0YT0nU3BlY2lmaWVkIHVzZXIgZG9lcyBub3Qg ZXhpc3QnKSksCisgICAgICAgICAgICByZXNwZGF0YT0nSW5jb3JyZWN0IHVzZXJuYW1lIG9yIHBh c3N3b3JkJykpLAogCiAgICAgICAgICMgVGhpcyB0ZXN0IGNhc2UgdmFsaWRhdGVzIHRoZSB2YWxp ZC9jb3JyZWN0IGNyZWRlbnRpYWxzIGFuZCBhbGxvdyB1c2VyCiAgICAgICAgICMgdG8gbG9naW4g cGdBZG1pbiA0CkBAIC0xMDYsOCArMTA2LDYgQEAgY2xhc3MgTG9naW5UZXN0Q2FzZShCYXNlVGVz dEdlbmVyYXRvcik6CiAgICAgICAgIGlmIHNlbGYuaXNfZ3JhdnRhcl9pbWFnZV9jaGVjazoKICAg ICAgICAgICAgIGlmIGFwcF9jb25maWcuU0hPV19HUkFWQVRBUl9JTUFHRToKICAgICAgICAgICAg ICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5yZXNwZGF0YSBpbiByZXMuZGF0YS5kZWNvZGUoJ3V0 ZjgnKSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcHJpbnQoc2VsZi5yZXNw ZGF0YV93aXRob3V0X2dyYXZ0YXIgaW4gcmVzLmRhdGEuZGVjb2RlKCd1dGY4JykpCiAgICAgICAg IGVsc2U6CiAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5yZXNwZGF0YSBpbiByZXMu ZGF0YS5kZWNvZGUoJ3V0ZjgnKSkKIApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90 ZXN0cy90ZXN0X3Jlc2V0X3Bhc3N3b3JkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90 ZXN0X3Jlc2V0X3Bhc3N3b3JkLnB5CmluZGV4IDFjZTdlYTY5Yy4uMTdhZjdjMGI2IDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfcmVzZXRfcGFzc3dvcmQucHkKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X3Jlc2V0X3Bhc3N3b3JkLnB5CkBAIC0y OSw3ICsyOSw3IEBAIGNsYXNzIFJlc2V0UGFzc3dvcmRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRv cik6CiAgICAgICAgICMgVGhpcyB0ZXN0IGNhc2UgdmFsaWRhdGVzIHRoZSBpbnZhbGlkL2luY29y cmVjdCBlbWFpbCBmaWVsZAogICAgICAgICAoJ1Rlc3RDYXNlIGZvciBWYWxpZGF0aW5nIEludmFs aWRfRW1haWwnLCBkaWN0KAogICAgICAgICAgICAgZW1haWw9c3RyKHV1aWQudXVpZDQoKSlbMTo4 XSArICdAeHl6LmNvbScsCi0gICAgICAgICAgICByZXNwZGF0YT0nU3BlY2lmaWVkIHVzZXIgZG9l cyBub3QgZXhpc3QnKSksCisgICAgICAgICAgICByZXNwZGF0YT0nSW5jb3JyZWN0IHVzZXJuYW1l IG9yIHBhc3N3b3JkJykpLAogCiAgICAgICAgICMgVGhpcyB0ZXN0IGNhc2UgdmFsaWRhdGVzIHRo ZSB2YWxpZCBlbWFpbCBpZAogICAgICAgICAoJ1Rlc3RDYXNlIGZvciBWYWxpZGF0aW5nIFZhbGlk X0VtYWlsJywgZGljdCgKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL3B5dGhvbl90ZXN0X3V0 aWxzL2NzcmZfdGVzdF9jbGllbnQucHkgYi93ZWIvcmVncmVzc2lvbi9weXRob25fdGVzdF91dGls cy9jc3JmX3Rlc3RfY2xpZW50LnB5CmluZGV4IGNhNDEyMGUxOC4uNWU1MjU5MDE0IDEwMDY0NAot LS0gYS93ZWIvcmVncmVzc2lvbi9weXRob25fdGVzdF91dGlscy9jc3JmX3Rlc3RfY2xpZW50LnB5 CisrKyBiL3dlYi9yZWdyZXNzaW9uL3B5dGhvbl90ZXN0X3V0aWxzL2NzcmZfdGVzdF9jbGllbnQu cHkKQEAgLTc2LDYgKzc2LDEwIEBAIGNsYXNzIFRlc3RDbGllbnQodGVzdGluZy5GbGFza0NsaWVu dCk6CiAgICAgICAgICAgICBiJyB2YWx1ZT0iKFteIl0qKSI+JywgcmVzLmRhdGEKICAgICAgICAg KQogCisgICAgICAgIGlmIG0gaXMgTm9uZToKKyAgICAgICAgICAgICMgV2hlbiBsb2dpbiB0aHJv dWdoIEtlcmJlcm9zLCB3ZSB3b24ndCBmaW5kIHRoZSBDU1JGCisgICAgICAgICAgICByZXR1cm4g Tm9uZQorCiAgICAgICAgIHJldHVybiBtLmdyb3VwKDEpLmRlY29kZSgidXRmLTgiKQogCiAgICAg ZGVmIGdlbmVyYXRlX2NzcmZfdG9rZW4oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToK --00000000000013ca0c05c5806307--