Vývojáři ACTIVE 24 představili nového EPP klienta pro komunikaci s registrem domén .CZ

Jeden z doménových registrátorů, společnost ACTIVE 24, nedávno z vlastní iniciativy vytvořil nového open-source klienta v jazyce Java pro komunikaci s doménovým registračním systémem FRED. Tento klient umožňuje komunikaci se systémem FRED pomocí protokolu EPP a je alternativou ke klientu napsaném ve sdružení CZ.NIC v jazyce Python. Oba slouží k provádění běžných operací registrátorů ve vztahu k registru: vytváření, aktualizace, převod, obnova či mazání domén, kontaktů a dalších objektů v registru. Nový Java klient nabízí vylepšené příkazy přípravy dat, oproti Python klientovi již není nutné po zavolaní příkazu „prep_domain_by_nsset“ a dalších volat příkazy „get_results“ pro získání výsledků. Java klient toto volaní udělá automaticky a vrátí kompletní ucelené výsledky.

Aby kolegové ze společnosti ACTIVE 24 zajistili co nejvyšší kvalitu svého nového klienta, požádali naše testery o aplikaci stávajících automatických testů, které jsou používány k testování systému FRED přes protokol EPP a které využívají knihovnu klienta v Pythonu. Jelikož je registrační systém FRED vytvořený jako open-source a my velmi rádi podporujeme každé open-source rozšíření našeho softwaru, rádi jsme této žádosti vyhověli a pustili se do práce. Stávající automatické testy vytvořené pro Python klienta bylo potřeba přizpůsobit vytvořením vlastní vrstvy s použitím knihovny tohoto klienta upravené tak, aby posílala data do nového Java klienta. Testování nového klienta jsme samozřejmě prováděli na operačním systému Linux a testy jsme my i autor spouštěli vůči veřejné testovací instanci systému FRED.

Již v průběhu „ohýbání“ stávajících automatických testů z dílny sdružení CZ.NIC na nového Java klienta jsme získali poznatky o drobných nedokonalostech našeho testovacího frameworku, které mohou ve výjimečných situacích způsobit nesprávný výsledek testů, na který však test neupozorní. Vývojář Java klienta ze společnosti ACTIVE 24, Radek Novotný, také odhalil několik nedostatků v dokumentaci systému FRED, které jsme díky němu mohli opravit. Dále pomohl identifikovat chování v XML schématech pro protokol EPP, které přesně neodpovídá standardům dle RFC. Naopak naše testování Java klienta odkrylo několik jeho slabin, ale protože byl Radek v opravách neuvěřitelně aktivní, jsou již všechny minulostí. Například bylo nutné umožnit v nastavení Java klienta vypnutí validace vrácených dat z registru. Registr .CZ domén může obsahovat velmi stará a stále platná data, která by se vyhodnotila jako nevalidní.

Spolupráce mezi sdružením CZ.NIC a registrátorem ACTIVE 24 byla a i nadále může být oboustranně prospěšná – náš testerský tým získá lepší pohled na procesy registrátora a druhá strana zase rychlou technickou pomoc od .CZ registru při nasazování Java klienta do ostrého provozu.

Klient je volně ke stažení na githubu autora, kde je k dispozici i stručná nápověda. Stejně tak je k dispozici i na stránkách projektu FRED, konkrétně v sekci Get FRED. Podrobnější informace o protokolu EPP implementovaném pro komunikaci s registračním systémem FRED poskytne jeho dokumentace.

Pro ilustraci uvádím ukázku implementace příkazu check_domain a create_domain:

import fred.client.FredClient;
import fred.client.FredClientImpl;
import fred.client.data.check.CheckRequest;
import fred.client.data.check.CheckResponse;
import fred.client.data.create.domain.DomainCreateRequest;
import fred.client.data.create.domain.DomainCreateResponse;
import fred.client.exception.FredClientException;

public class FredClientTest {

public static void main(String[] args) throws FredClientException {
FredClient client = new FredClientImpl(„conf/fred-client.properties“);

# Check domain
CheckRequest domainCheckRequest = new DomainCheckRequest(„nic.cz“, „active24.cz“);
CheckResponse domainCheckResponse = client.callCheck(domainCheckRequest);
System.out.println(domainCheckResponse);
# Create domain
DomainCreateRequest domainCreateRequest = new DomainCreateRequest(„testdomainname.cz“, „A24-CONTACT“);
DomainCreateResponse domainCreateResponse = (DomainCreateResponse) client.callCreate(domainCreateRequest);
System.out.println(domainCreateResponse);

Autor:

Komentáře (2)

  1. Radek Novotný říká:

    Ahoj, na stránkách „Get FRED“ to nevidím, prosím o opravu. Díky

  2. Zdeněk Brůna říká:

    Moje chyba, omlouvám se, Radku. Je to napraveno. Díky za upozornění!

Zanechte komentář

Všechny údaje jsou povinné. E-mail nebude zobrazen.

This site uses Akismet to reduce spam. Learn how your comment data is processed.