Codeunit/FormEvent/InstanceCreator

From TempusServa wiki
Revision as of 16:31, 22 September 2018 by old>Admin (→‎Database template)
Jump to navigation Jump to search

What is it

The instance creator lets you build new TS application instances from a template, that is a MYSQL dump of an existing database.

So you will need

  • Template for the context file
  • Shared TempusServa.war file
  • MySQL dump files
    • tsbase
    • tslive
    • tstest

context template

The context template path must be configured in InstanceCreator.contextTemplateFile

 <?xml version="1.0" encoding="UTF-8"?>
 <Context docBase="@DOCBASE@" swallowOutput="true">
 <Resource name="jdbc/TempusServaLive" auth="Container" type="javax.sql.DataSource"
               maxActive="80" maxIdle="30" maxWait="2000"
               removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
               username="@USERNAME@" password="@PASSWORD@" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/@DBLIVE@?autoReconnect=true"
 />
 <Resource name="jdbc/TempusServaTest" auth="Container" type="javax.sql.DataSource"
               maxActive="5" maxIdle="3" maxWait="10000"
               logAbandoned="true"
               username="@USERNAME@" password="@PASSWORD@" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/@DBTEST@?autoReconnect=true"
 />
 </Context>


The following tags are required

  • @DBLIVE@
  • @DBTEST@

The following tags are recommended

  • @USERNAME@
  • @PASSWORD@

The following tags are optional

  • @DOCBASE@
  • @APPLICATION@

Database template

From the baseline system build dump copies of the databases.

You will need to use strict naming of the files:

  • base.sql
  • live.sql
  • test.sql

We recommend dumping the files using mysqldump

  mysqldump -uroot -pPASSWORD demobase > /mnt/sda/template/base.sql
  mysqldump -uroot -pPASSWORD demolive > /mnt/sda/template/live.sql
  mysqldump -uroot -pPASSWORD demotest > /mnt/sda/template/test.sql

Configuration

In the form attatch the following codeunit

  dk.tempusserva.solution.creator.InstanceCreator

Now setup

  • locations of the templates
    • InstanceCreator.sqlTemplateFolder: Folder of base.sql live.sql and test.sql
    • InstanceCreator.contextTemplateFile: Position of the context template
  • mapped field names
    • InstanceCreator.fieldSolutionName
    • InstanceCreator.fieldAdminName
    • InstanceCreator.fieldAdminEmail
    • InstanceCreator.fieldAdminPassword
  • status references
    • InstanceCreator.StatusCreateNow
    • InstanceCreator.StatusCompleted: Must be accessible from StatusCreateNow
    • InstanceCreator.StatusFailSetup: Must be accessible from StatusCreateNow

Usage

Using the attuned form will create a new instance.

The requirement is that the intance information is there AND status is in create (as defined per StatusCreateNow)

  • instance name
  • admin name
  • admin email

After an instance is created and status will now be either

  • succes (as defined per StatusCompleted)
  • error (as defined per StatusFailSetup)

If the operation succeds you instance will be available in a minute or two.