Codeunit/FormEvent/InstanceCreator

From TempusServa wiki
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

You also need to make sure that the instance creating the other instances have full access to the database (create users and databases).

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 --skip-add-locks -uroot -pPASSWORD demobase > /mnt/sda/template/base.sql
  mysqldump --skip-add-locks -uroot -pPASSWORD demolive > /mnt/sda/template/live.sql
  mysqldump --skip-add-locks -uroot -pPASSWORD demotest > /mnt/sda/template/test.sql

After dumping the files you can clean out unwanted dato in an editor

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.