Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootDynamisk Testdata Generator (DTG) - Leverancebeskrivelse
includeroottrue


Changelog

DatoVersionÆndringer
31/12-20161.0.0Initiel release af Dynamisk Testdata Generator
03/03-20171.0.1Web interface tilføjet
23/03-20171.0.2Environment tilføjet til generator. Webservice-modul opdateret til at gøre brug af json-1.0.4 i stedet for json-1.0.3.
11/01-20201.1.0Opdateret med information om leverance som docker-container

Indhold

Table of Contents
maxLevel2

...

Numbered Headings

Indledning

Dynamisk Testdata Generator består af 3 selvstændige dele.

  1. En bootstrapper som migrerer eksisterende testdata fra en Stamdata database til DTG databasen,
en
  1. En Webservice som modtager forespørgsler fra en klient og fra scripts som anvendere selv kan udvikle, samt
en
  1. En Generator der
med faste intervaller
  1. leverer inputfiler til stamdataimporterne baseret på data i DTG databasen Denne skal kaldes med faste intervaller. Se Design og Arkitekturbeskrivelse for en gennemgang af hvilke databaser, der er en del af løsningen.

Byg

Projektet bygges med Maven 3 og herefter er følgende 3 artefakter tilgængelige:

  • {project.base}/modules/bootstrap/target/dtg-bootstrap-jar-with-dependencies.jar
  • {project.base}/modules/generator/target/dtg-generator-jar-with-dependencies.jar
  • {project.base}/modules/webservice/target/dtg-webservice.war

I de følgende filer er der eksempler på konfigurationen af Webservicen:

  • {project.base}/modules/webservice/etc/dtg/config.xml
  • {project.base}/modules/webservice/etc/dtg/endpoints.xml
  • {project.base}/modules/webservice/etc/dtg/sces.xml
  • {project.base}/modules/webservice/etc/dtg/services.xml
  • {project.base}/modules/webservice/etc/dtg-ds.xml
  • {project.base}/modules/webservice/etc/log4j-dtg.xml

I den følgende fil er der eksempler på konfigurationen af Boostrapper:

  • {project.base}/modules/bootstrap/etc/bootstrap.properties

I de følgende filer er der eksempler på konfigurationen af Generator:

  • {project.base}/modules/generator/etc/generator.properties
  • {project.base}/modules/generator/etc/log4j-dtg-generator.xml

Derudover findes der følgende filer til oprettelse af den nye DTG database:

  • {project.base}/modules/common/etc/create_dtg_db.sql
  • {project.base}/modules/webservice/etc/create_random_values.sql

Installation

Databasen

Filen create_dtg_db.sql tilrettes med de valgte credentials og køres herefter på den MariaDB instance som skal anvendes. Herefter køres filen create_random_values.sql, som opretter de default værdier webservicen bruger, hvis en anvender ikke angiver en værdi for et felt. Ved kørsel af begge filer er det vigtigt, at der angives default charset til utf-8 ved f.eks. at køre filerne på følgende måde:

mysql --default-character-set=utf8 dtg < create_random_values.sql

NSPs continuous integration- og continuous deployment-miljø anvendes til byg og leverance af komponenten.
Projektet leveres som tre docker-containere og tilsvarende docker-compose opsætninger.

Følgende Jenkins-jobs anvendes til byg

  • DTG_build - bygger koden automatisk ved commits
  • DTG_push_snapshot - pusher nyeste snapshot images til NSP Docker Registry og kaldes automatisk, når committet kode bygger uden fejl.
  • Dertil kommer håndteringen af taggede releases, der håndteres internt af NSP.


Docker-images

Følgende images er output fra byggeprocessen


Compose-mapper

Med leverancen følger et sæt docker-compose filer baseret på https://svn.nspop.dk/svn/test/dtg/trunk/compose.

En release-compose-fil indeholder en reference til et docker-image specifikt for den pågældende release.

Compose folderen indeholder 5 underfoldere:

Folder

Indhold

configurationHer ligger alle de konfigurationsfiler som det forventes af driften tilretter til det anvendte miljø. Se Driftvejledningen
databaseHer ligger alle de databasefiler som det forventes at driften lægger på en NSP database (eller opdaterer ved ændringer)
create_dtg_db.sql og create_random_values.sql
releaseHer ligger de docker-compose filer som det forventes driften anvender på både test og produktionsmiljøerne.


Krav til miljø

Komponenten er udviklet i NSPs komponent standard, og kravene til miljø matcher dermed standarden.

Da brugerstyringen fra DTGs wildfly anvendes af andre test-projekter, er det hensigtsmæssigt at filerne til håndtering deraf lægges på en passende lokation

Bootstrap

Filen dtg-bootstrap-jar-with-dependencies.jar kopieres til et tomt arbejdsbibliotek sammen med en tilrettet version af filen bootstrap.properties.

Konfiguration af databaseadgang foretages i filen bootstrap.properties som for hver af de 3 databaser indeholder følgende properties:

  • url - Den fulde jdbc url der skal bruges for at forbinde til databasen.
  • user - Brugernavnet til at forbinde til databasen.
  • password - Kodeordet til at forbinde til databasen.
  • name - navnet på selve databasen

Bootstrap koden laver join på tværs af E-SDM og BST databaserne så de to brugere til disse databaser skal have rettighed til at slå op i de andre databaser.

Webservice

Biblioteket {project.base}/modules/webservice/etc/dtg kopieres ind i {Wildfly.base}/standalone/configuration/.

Filen log4j-dtg.xml kopieres ligeledes ind i {Wildfly.base}/standalone/configuration/.

Filen dtg-ds.xml kopieres ind i {Wildfly.base}/standalone/deployments/ og rettes til med passende credentials mv.

I filen sces.xml tilrettes der så federation angives til productionFederation, ligeledes ændres konfigurationen af sces beanen med et produktions-certifikat og produktions-endpoints. Den testdata løsning som DTG erstatter har i forvejen et produktionscertifikat mv. som kan anvendes her.

De to filer javax.json-1.0.4.jar og module.xml i biblioteket {project.base}/modules/webservice/etc/json-1.0.4 kopieres ind i {Wildfly.base}/modules/system/layers/base/org/glassfish/javax/json/1.0.4.

Til sidst placeres filen dtg-webservice.war i {Wildfly.base}/standalone/deployments/ og webservicen er nu klar til brug

Generator

Filen dtg-generator-jar-with-dependencies.jar kopieres til et tomt arbejdsbibliotek sammen med en tilrettet version af filen generator.properties.

Generatoren leverer filer til CPR2Importeren, SikreddeImporteren, AutorisationsImporteren og YderImporteren, så disse skal være tilgængelige på samme miljø

Konfiguration af Generatoren foretages i filen generator.properties som indeholder følgende properties:

  • database.dtg.url - Den fulde jdbc url der skal bruges for at forbinde til databasen.
  • database.dtg.user - Brugernavnet til at forbinde til databasen.
  • database.dtg.password - Kodeordet til at forbinde til databasen.
  • *.importerDirectory - Stien til der hvor Generatoren skal levere data til Importeren (hvor * indikerer navnet på importeren).
  • generator.environment - Miljøangivelse som generatoren bruger til revisionsstyring.
  • generator.tempDirectory - Stien til placering af temporært bibliotek for generator-filer.
  • generator.lockFileDir - Stien til lock-filens placering.
  • cpr2importer.batchsize - antal records, der behandles i samme transaktion mod cpr2importeren og sikredeimporteren.
  • log4j.configuration - Stien til log4j konfigurationsfilen

    .