Guide Développeur

De SOS Paris
Aller à : navigation, rechercher
Coder.png
Guide développeur
Version 2.0
On considère deux types de développeur:
  • Celui qui participe au développement de Ari'i (développeur interne)
  • Celui qui consomme les API (développeur externe)

Module

Créer un nouveau module

  • Générer le module
  • Ajouter les icones
  • Traductions

Base de données

Récupérer un schéma

Pour utiliser Doctrine sur une base de données existante, il est nécessaire de créer les entités. Symfony propose un outil automatique pour construire les fichiers.

JobScheduler

L'exemple suivant reconstruite les entités du JID à partir d'une installation JobScheduler:

php app/console doctrine:mapping:import --force AriiJIDBundle annotation

On crée ensuite les entités

php app/console doctrine:generate:entities AriiJIDBundle

A moins que vous ne souhaitiez recréer un nouveau schéma, il faut indique que ces entités sont en lecture seule.

 @ORM\Entity(readOnly=true)

Autosys

Pour Autosys, l'utilisation des tables est déconseillée car le schéma peut varier d'une version à l'autre mais il existe des vues, proposées depuis les toutes premières versions, qui permet de s'affranchir de ces changements.

L'outil Symfony a deux limitations:

  • il ne transforme pas les vues en entités
  • il ne traite pas les tables dans clés primaires

La récupération des tables va nous permettre de construire le schéma de la vue. Quand au problème des clés primaires, il sera résolu en ne traitant que les tables qui en disposent et qui sont justement celles composant notre vue.

On va modifier le config.yml comme suit:

autosys:
    driver:   "%database_ats_driver%"
    host:     "%database_ats_host%"
    port:     "%database_ats_port%"
    dbname:   "%database_ats_name%"
    user:     "%database_ats_user%"
    password: "%database_ats_password%"
    charset:  UTF8
    schema_filter: /^UJO_(ALARM|JOB|JOB_STATUS|JOB_RUNS|JOB_TREE|MACHINE|SCHED_INFO|COMMAND_JOB|FILE_WATCH_JOB|WORKFLOW|CRED|ALAMODE|CALENDAR)$/

Puis jouer l'import en précisant la base de données à prendre en compte:

php app/console  doctrine:mapping:import --force AriiATSBundle annotation --em=autosys

Réponse:

Importing mapping information from "autosys" entity manager
 > writing /opt/symfony/arii/src/Arii/ATSBundle/Entity/UjoAlamode.php
 > writing /opt/symfony/arii/src/Arii/ATSBundle/Entity/UjoAlarm.php
 > writing /opt/symfony/arii/src/Arii/ATSBundle/Entity/UjoCalendar.php
 > writing /opt/symfony/arii/src/Arii/ATSBundle/Entity/UjoCommandJob.php
 > writing /opt/symfony/arii/src/Arii/ATSBundle/Entity/UjoCred.php
 > writing /opt/symfony/arii/src/Arii/ATSBundle/Entity/UjoFileWatchJob.php
 > writing /opt/symfony/arii/src/Arii/ATSBundle/Entity/UjoJob.php
 > writing /opt/symfony/arii/src/Arii/ATSBundle/Entity/UjoJobRuns.php
 > writing /opt/symfony/arii/src/Arii/ATSBundle/Entity/UjoJobStatus.php
 > writing /opt/symfony/arii/src/Arii/ATSBundle/Entity/UjoJobTree.php
 > writing /opt/symfony/arii/src/Arii/ATSBundle/Entity/UjoMachine.php
 > writing /opt/symfony/arii/src/Arii/ATSBundle/Entity/UjoSchedInfo.php
 > writing /opt/symfony/arii/src/Arii/ATSBundle/Entity/UjoWorkflow.php

On applique ensuite les mêmes actions que pour JobScheduler.

API REST

Annuaire

http://serveur/{lang}/{module}

JobScheduler

Module: JID

/jobschedulers Liste des JobSchedulers
/jobscheduler/{id}/jobs Liste des Jobs d'un JobScheduler