diff --git a/datamodels/2.x/installation.xml b/datamodels/2.x/installation.xml index a3e53c2d08..65660323df 100755 --- a/datamodels/2.x/installation.xml +++ b/datamodels/2.x/installation.xml @@ -71,6 +71,19 @@ itop-virtualization-mgmt true + + + + itop-container-mgmt + Containerization + + + itop-container-mgmt + + false + + + diff --git a/datamodels/2.x/itop-container-mgmt/data/en_us.data.itop-container-type.xml b/datamodels/2.x/itop-container-mgmt/data/en_us.data.itop-container-type.xml new file mode 100644 index 0000000000..b66bbad0e4 --- /dev/null +++ b/datamodels/2.x/itop-container-mgmt/data/en_us.data.itop-container-type.xml @@ -0,0 +1,36 @@ + + + + AWS - Elastic Container Service + + + AWS - Elastic Kubernetes Service + + + Azure Kubernetes Service + + + Docker Swarm + + + Google Kubernetes Engine + + + Kubernetes + + + Nomad + + + OpenShift + + + Docker Hardened Image + + + Docker Official Image + + + Verified Publisher + + \ No newline at end of file diff --git a/datamodels/2.x/itop-container-mgmt/datamodel.itop-container-mgmt.xml b/datamodels/2.x/itop-container-mgmt/datamodel.itop-container-mgmt.xml new file mode 100644 index 0000000000..74feeb4e00 --- /dev/null +++ b/datamodels/2.x/itop-container-mgmt/datamodel.itop-container-mgmt.xml @@ -0,0 +1,1395 @@ + + + + + cmdbAbstractObject + + bizmodel,searchable + false + containerimage + + + + + + + + + + + + + + + + + + + + + + + + + + + false + true + + + + + + name + + false + + + publisher + + false + + + version + + false + + + description + + true + + + containerimagetype_id + ContainerImageType + true + DEL_MANUAL + + + software_id + + + true + Software + DEL_MANUAL + all + + + image + + false + + all + + + lnkContainerApplicationToImage + containerimage_id + 0 + 0 + containerapplication_id + + + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + +
+ + + + + + + 10 + + + 20 + + + 30 + + + 10 + + + 10 + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + 10 + + + 20 + + + 50 + + +
+ + + + 30 + + + 40 + + + 50 + + + +
+ + + + + containerapplications_list + both + + + + +
+ + + + SELECT FunctionalCI WHERE finalclass IN ('Server','VirtualMachine','PC', 'ContainerVirtualHost') + + + + + SoftwareInstance + + bizmodel,searchable + false + containerapplication + + + + + + + + + + + + + + + + + status + + + + + + descriptor + true + + + containervirtualhost_id + + false + ContainerVirtualHost + DEL_AUTO + all + + + lnkContainerApplicationToImage + containerapplication_id + 0 + 0 + containerimage_id + + + + + + false + public + EventListener + Set('system_id', $this->Get('containervirtualhost_id')); + }]]> + + + + + EVENT_DB_BEFORE_WRITE + EvtComputeSystemId + 0 + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + +
+ + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + 10 + + + 10 + + + + + + + 10 + + + 10 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + 70 + + + 80 + + +
+ + + + 10 + + + 20 + + + 30 + + + 40 + + + +
+
+ + cmdbAbstractObject + + 1 + bizmodel + false + autoincrement + lnkcontainerapplicationtoimage + id + + + + + + + + + + + + + + + + + + + + + + false + true + + + + + + containerapplication_id + ContainerApplication + false + DEL_AUTO + + + containerimage_id + ContainerImage + false + DEL_AUTO + + + + +
+ + + 10 + + + 20 + + +
+ + + + 10 + + + 20 + + + + + + + 10 + + + 20 + + + +
+
+ + FunctionalCI + + bizmodel,searchable + true + containervirtualhost + + + + + + + + + + + + + + + status + + + status='obsolete' + + + + + ContainerApplication + containervirtualhost_id + list + + false + false + + + + status + + + implementation + 10 + + + + production + 20 + + + + obsolete + 30 + + + + + $ibo-lifecycle-neutral-state-primary-color + $ibo-lifecycle-neutral-state-secondary-color + + + + implementation + false + + + all + + + containertype_id + + + true + ContainerType + DEL_MANUAL + all + + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + +
+ + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + 70 + + + 80 + + + 90 + + + 100 + + + 110 + + + 120 + + + 130 + + +
+ + + + 10 + + + 20 + + + 30 + + + +
+ + + + + containerapplications_list + both + + + + +
+ + ContainerVirtualHost + + bizmodel,searchable + false + containerhost + + + + + + + + + + + + + + + + + + + status + + + + + + containercluster_id + SELECT ContainerCluster WHERE org_id= :this->org_id + true + ContainerCluster + DEL_MANUAL + all + + + role + + + master + 10 + + + worker + 20 + + + standalone + 30 + + + + standalone + false + radio_horizontal + + + + all + + + system_id + SELECT FunctionalCI WHERE finalclass IN ('Server','VirtualMachine','Cloud') + false + FunctionalCI + DEL_AUTO + all + + + + + /** + * Event Listener for EVENT_DB_BEFORE_WRITE + * An object is about to be written into the database. + * The object can be modified. + * + * @param Combodo\iTop\Service\Events\EventData $oEventData Event data object + * + */ + false + public + EventListener + Get('containercluster_id') == 0) { + $this->Set('role', 'standalone'); + } else if ($this->Get('role') == 'standalone') { + $this->Set('role', 'worker'); + } +}]]> + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + +
+ + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + 10 + + + 10 + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + +
+ + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + +
+ + + + + containercluster_id + both + + + + + + + EVENT_DB_BEFORE_WRITE + EvtBeforeWrite + 0 + + +
+ + ContainerVirtualHost + + bizmodel,searchable + false + containercluster + + + + + + + + + + + + + + + status + + + + + + redundancy + impacts + ContainerHost + containercluster + true + 50 + percent + user + user + + + ContainerHost + containercluster_id + list + + false + false + on_host_display + + + + + + + + 10 + + + 20 + + + 30 + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + +
+ + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + 10 + + + 10 + + + + + + + 10 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + 70 + + +
+ + + + 10 + + + 20 + + + 30 + + + 40 + + + +
+
+ + VirtualHost + + bizmodel,searchable + false + cloud + + + + + + + + + + + + + + + + + + + + + + ContainerHost + system_id + list + + false + false + + + + location_id + SELECT Location WHERE org_id=:this->provider_id + true + Location + DEL_MANUAL + all + + + provider_id + + true + Organization + DEL_MANUAL + all + + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + +
+ + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + 10 + + + 10 + + + + + + + 10 + + + 20 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + 60 + + +
+ + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + +
+ + + + + containerhosts_list + both + + + + +
+ + Typology + + bizmodel,searchable + false + containertype + + + + + + + + + + + + + + + + + + + 10 + + + + + + + 10 + + + +
+ + + 10 + + +
+
+
+ + Typology + + bizmodel,searchable + false + containerimagetype + + + + + + + + + + + + + + + + + + + 10 + + + + + + + 10 + + + +
+ + + 10 + + +
+
+
+
+ + + + + + 1 + + + 4 + Cloud + + + 5 + ContainerApplication + + + 6 + ContainerHost + + + 7 + ContainerCluster + + + 8 + ContainerImage + + + + + + + + + + + 0 + + + 21 + ContainerType + + + 22 + ContainerImageType + + + + + + + +
diff --git a/datamodels/2.x/itop-container-mgmt/dictionaries/en.dict.itop-container-mgmt.php b/datamodels/2.x/itop-container-mgmt/dictionaries/en.dict.itop-container-mgmt.php new file mode 100644 index 0000000000..129be9644c --- /dev/null +++ b/datamodels/2.x/itop-container-mgmt/dictionaries/en.dict.itop-container-mgmt.php @@ -0,0 +1,129 @@ + '%1$s %2$s', + 'Class:ContainerImage/ComplementaryName' => '%1$s - %2$s', + 'Class:ContainerImage' => 'Container Image', + 'Class:ContainerImage+' => 'The image of a software ready to be launched as a container', + 'Class:ContainerImage/Attribute:name' => 'Name', + 'Class:ContainerImage/Attribute:name+' => '', + 'Class:ContainerImage/Attribute:version' => 'Version', + 'Class:ContainerImage/Attribute:version+' => '', + 'Class:ContainerImage/Attribute:description' => 'Description', + 'Class:ContainerImage/Attribute:description+' => '', + 'Class:ContainerImage/Attribute:publisher' => 'Publisher', + 'Class:ContainerImage/Attribute:publisher+' => 'Publisher of the image. Eg. php, nginx, ...', + 'Class:ContainerImage/Attribute:image' => 'Image', + 'Class:ContainerImage/Attribute:image+' => 'Detailed information to retrieve the image on the appropriate hosting platform', + 'Class:ContainerImage/Attribute:type_id' => 'Type', + 'Class:ContainerImage/Attribute:type_id+' => 'Type d\image', + 'Class:ContainerImage/Attribute:software_id' => 'Software', + 'Class:ContainerImage/Attribute:software_id+' => '', + 'Class:ContainerImage/Attribute:containerapplications_list' => 'Containerized Applications', + 'Class:ContainerImage/Attribute:containerapplications_list+' => 'Applications to which this image contributes', + 'ContainerImage:baseinfo' => 'General information', + 'ContainerImage:moreinfo' => 'Container specifics', + + // Class Container Application + 'Class:ContainerApplication/Name' => '%1$s', + 'Class:ContainerApplication/ComplementaryName' => '%1$s', + 'Class:ContainerApplication' => 'Containerized Application', + 'Class:ContainerApplication+' => 'An application deployed on a Container Platform', + 'Class:ContainerApplication/Attribute:descriptor' => 'Deployment file', + 'Class:ContainerApplication/Attribute:descriptor+' => 'File describing how to deploy the application on the container platform (e.g., Docker Compose, Helm Chart, etc.)', + 'Class:ContainerApplication/Attribute:containervirtualhost_id' => 'Container Host', + 'Class:ContainerApplication/Attribute:containervirtualhost_id+' => 'Container Platform on which the application is running', + 'Class:ContainerApplication/Attribute:containertype_id' => 'Container type', + 'Class:ContainerApplication/Attribute:containertype_id+' => 'Technology used for containerization', + 'Class:ContainerApplication/Attribute:containerimages_list' => 'Container images', + 'Class:ContainerApplication/Attribute:containerimages_list+' => 'Software images used to build the containerized application', + 'ContainerApplication:baseinfo' => 'General information', + 'ContainerApplication:moreinfo' => 'Container specifics', + + // Class: lnkContainerApplicationToImage + 'Class:lnkContainerApplicationToImage' => 'Link Container Application / Image', + 'Class:lnkContainerApplicationToImage+' => '', + 'Class:lnkContainerApplicationToImage/Name' => '%1$s / %2$s', + 'Class:lnkContainerApplicationToImage/Name+' => '', + 'Class:lnkContainerApplicationToImage/Attribute:containerapplication_id' => 'Containerized Application', + 'Class:lnkContainerApplicationToImage/Attribute:containerapplication_id+' => 'Application which uses this image', + 'Class:lnkContainerApplicationToImage/Attribute:containerimage_id' => 'Container Image', + 'Class:lnkContainerApplicationToImage/Attribute:containerimage_id+' => 'Software image used to build the containerized application', + + + // Class Container Virtual Host + 'Class:ContainerVirtualHost/Name' => '%1$s', + 'Class:ContainerVirtualHost/ComplementaryName' => '', + 'Class:ContainerVirtualHost' => 'Container Platform', + 'Class:ContainerVirtualHost+' => 'Platform on which applications run as containers', + 'Class:ContainerVirtualHost/Attribute:containertype_id' => 'Container Type', + 'Class:ContainerVirtualHost/Attribute:containertype_id+' => 'Technology used to deliver containerization', + 'Class:ContainerVirtualHost/Attribute:status' => 'Status', + 'Class:ContainerVirtualHost/Attribute:status+' => 'Status of the container platform', + 'Class:ContainerVirtualHost/Attribute:containerapplications_list' => 'Applications', + 'Class:ContainerVirtualHost/Attribute:containerapplications_list+' => 'Applications running on this container environment', + 'ContainerVirtualHost:baseinfo' => 'General Information', + 'ContainerVirtualHost:moreinfo' => 'Container specifics', + + // Class Container Host + 'Class:ContainerHost/Name' => '%1$s', + 'Class:ContainerHost/ComplementaryName' => '%1$s-%2$s', + 'Class:ContainerHost' => 'Container Host', + 'Class:ContainerHost+' => 'Host dedicated to containers. It is the basic element of a Container Platform', + 'Class:ContainerHost/Attribute:containercluster_id' => 'Container Cluster', + 'Class:ContainerHost/Attribute:containercluster_id+' => '', + 'Class:ContainerHost/Attribute:role' => 'Role', + 'Class:ContainerHost/Attribute:role+' => 'Role of the host within its cluster: Master or Worker. Standalone when not part of a cluster.', + 'Class:ContainerHost/Attribute:system_id' => 'System', + 'Class:ContainerHost/Attribute:system_id+' => 'The system can be a Server, a Virtual Machine, a Cloud, ...', + 'Class:ContainerHost/Attribute:role/Value:master' => 'Master', + 'Class:ContainerHost/Attribute:role/Value:worker' => 'Worker', + 'Class:ContainerHost/Attribute:role/Value:standalone' => 'Standalone', + + // Class Container Cluster + 'Class:ContainerCluster/Name' => '%1$s', + 'Class:ContainerCluster/ComplementaryName' => '', + 'Class:ContainerCluster' => 'Container Cluster', + 'Class:ContainerCluster+' => 'A Container Platform made of a cluster of Container Hosts', + 'Class:ContainerCluster/Attribute:redundancy' => 'Configuration of the redundancy', + 'Class:ContainerCluster/Attribute:redundancy/disabled' => 'The cluster is up if all its hosts are up', + 'Class:ContainerCluster/Attribute:redundancy/count' => 'The cluster is up if at least %1$s hosts are up', + 'Class:ContainerCluster/Attribute:redundancy/percent' => 'The cluster is up if at least %1$s %% of the hosts are up', + 'Class:ContainerCluster/Attribute:containerhosts_list' => 'Container Hosts', + 'Class:ContainerCluster/Attribute:containerhosts_list+' => 'Hosts part of this cluster', + + // Class Container Type + 'Class:ContainerType/Name' => '%1$s', + 'Class:ContainerType/ComplementaryName' => '', + 'Class:ContainerType' => 'Container Type', + 'Class:ContainerType+' => 'Technology used to deliver containerization', + + // Class Container Type + 'Class:ContainerImageType/Name' => '%1$s', + 'Class:ContainerImageType/ComplementaryName' => '', + 'Class:ContainerImageType' => 'Container Image Type', + 'Class:ContainerImageType+' => 'Typology of container images', + + // Class Cloud + 'Class:Cloud/Name' => '%1$s', + 'Class:Cloud/ComplementaryName' => '%1$s-%2$s', + 'Class:Cloud' => 'Cloud', + 'Class:Cloud+' => 'A Virtual Host operated by a Cloud provider. It can host Virtual Machines and Container Hosts', + 'Class:Cloud/Attribute:provider_id' => 'Provider', + 'Class:Cloud/Attribute:provider_id+' => '', + 'Class:Cloud/Attribute:location_id' => 'Location id', + 'Class:Cloud/Attribute:location_id+' => '', + 'Class:Cloud/Attribute:containerhosts_list' => 'Container Hosts', + 'Class:Cloud/Attribute:containerhosts_list+' => '', + 'Cloud:baseinfo' => 'General information', + 'Cloud:moreinfo' => 'More information', +)); +?> diff --git a/datamodels/2.x/itop-container-mgmt/dictionaries/fr.dict.itop-container-mgmt.php b/datamodels/2.x/itop-container-mgmt/dictionaries/fr.dict.itop-container-mgmt.php new file mode 100644 index 0000000000..1fd8fc7300 --- /dev/null +++ b/datamodels/2.x/itop-container-mgmt/dictionaries/fr.dict.itop-container-mgmt.php @@ -0,0 +1,129 @@ + '%1$s %2$s', + 'Class:ContainerImage/ComplementaryName' => '%1$s - %2$s', + 'Class:ContainerImage' => 'Image pour Conteneur', + 'Class:ContainerImage+' => 'L\'image d\'un logiciel, constituant d\'une Application Conteneurisée', + 'Class:ContainerImage/Attribute:name' => 'Nom', + 'Class:ContainerImage/Attribute:name+' => '', + 'Class:ContainerImage/Attribute:version' => 'Version', + 'Class:ContainerImage/Attribute:version+' => '', + 'Class:ContainerImage/Attribute:description' => 'Description', + 'Class:ContainerImage/Attribute:description+' => '', + 'Class:ContainerImage/Attribute:publisher' => 'Editeur', + 'Class:ContainerImage/Attribute:publisher+' => 'Fournisseur de l\image', + 'Class:ContainerImage/Attribute:image' => 'Image', + 'Class:ContainerImage/Attribute:image+' => 'Détail permettant de récupérer l\'image sur la plateforme d\'hébergement appropriée', + 'Class:ContainerImage/Attribute:type_id' => 'Type', + 'Class:ContainerImage/Attribute:type_id+' => 'Type d\image', + 'Class:ContainerImage/Attribute:software_id' => 'Logiciel', + 'Class:ContainerImage/Attribute:software_id+' => '', + 'Class:ContainerImage/Attribute:containerapplications_list' => 'Applications conteneurisées', + 'Class:ContainerImage/Attribute:containerapplications_list+' => 'Les applications qui utilisent cette image', + 'ContainerImage:baseinfo' => 'Informations générales', + 'ContainerImage:moreinfo' => 'Spécificités de la conteneurisation', + + // Class Container Application + 'Class:ContainerApplication/Name' => '%1$s', + 'Class:ContainerApplication/ComplementaryName' => '%1$s', + 'Class:ContainerApplication' => 'Application Conteneurisée', + 'Class:ContainerApplication+' => 'Une application déployée sur une Plateforme de Conteneurisation', + 'Class:ContainerApplication/Attribute:descriptor' => 'Fichier de déploiement', + 'Class:ContainerApplication/Attribute:descriptor+' => 'Fichier décrivant la manière de déployer l\'application sur la plateforme de conteneurisation (par exemple, Docker Compose, Helm Chart, etc.)', + 'Class:ContainerApplication/Attribute:containervirtualhost_id' => 'Hôte', + 'Class:ContainerApplication/Attribute:containervirtualhost_id+' => 'Plateforme de conteneurisation sur laquelle cette application est déployée', + 'Class:ContainerApplication/Attribute:containertype_id' => 'Type de conteneur', + 'Class:ContainerApplication/Attribute:containertype_id+' => 'Typologie de plateforme de conteneurisation', + 'Class:ContainerApplication/Attribute:containerimages_list' => 'Images', + 'Class:ContainerApplication/Attribute:containerimages_list+' => 'Images des conteneurs constitutifs de cette application', + 'ContainerApplication:baseinfo' => 'Informations générales', + 'ContainerApplication:moreinfo' => 'Spécificités de la conteneurisation', + + // Class: lnkContainerApplicationToImage + 'Class:lnkContainerApplicationToImage' => 'Lien Application / Image pour Conteneur', + 'Class:lnkContainerApplicationToImage+' => '', + 'Class:lnkContainerApplicationToImage/Name' => '%1$s / %2$s', + 'Class:lnkContainerApplicationToImage/Name+' => '', + 'Class:lnkContainerApplicationToImage/Attribute:containerapplication_id' => 'Application conteneurisée', + 'Class:lnkContainerApplicationToImage/Attribute:containerapplication_id+' => 'Application qui utilise cette image', + 'Class:lnkContainerApplicationToImage/Attribute:containerimage_id' => 'Image pour conteneur', + 'Class:lnkContainerApplicationToImage/Attribute:containerimage_id+' => 'Une image qui contribue à l\'application', + + // Class Container Virtual Host + 'Class:ContainerVirtualHost/Name' => '%1$s', + 'Class:ContainerVirtualHost/ComplementaryName' => '', + 'Class:ContainerVirtualHost' => 'Plateforme de Conteneurisation', + 'Class:ContainerVirtualHost+' => 'Plateforme sur laquelle des applications s\'exécutent dans des conteneurs', + 'Class:ContainerVirtualHost/Attribute:containertype_id' => 'Type de plateforme', + 'Class:ContainerVirtualHost/Attribute:containertype_id+' => 'Technologie de conteneurisation utilisée', + 'Class:ContainerVirtualHost/Attribute:status' => 'État', + 'Class:ContainerVirtualHost/Attribute:status+' => 'État de la plateforme de conteneurisation', + 'Class:ContainerVirtualHost/Attribute:containerapplications_list' => 'Applications', + 'Class:ContainerVirtualHost/Attribute:containerapplications_list+' => 'Applications qui sont déployées sur cette plateforme', + 'ContainerVirtualHost:baseinfo' => 'Informations générales', + 'ContainerVirtualHost:moreinfo' => 'Spécificités de la conteneurisation', + + // Class Container Host + 'Class:ContainerHost/Name' => '%1$s', + 'Class:ContainerHost/ComplementaryName' => '%1$s-%2$s', + 'Class:ContainerHost' => 'Hôte pour Conteneurs', + 'Class:ContainerHost+' => 'Logiciel hôte dédié à l\'exécution de conteneurs. C\'est l\'élément de base d\'une Plateforme de Conteneurisation', + 'Class:ContainerHost/Attribute:containercluster_id' => 'Grappe pour conteneurs', + 'Class:ContainerHost/Attribute:containercluster_id+' => 'Grappe d\'hôtes pour conteneurs', + 'Class:ContainerHost/Attribute:role' => 'Rôle', + 'Class:ContainerHost/Attribute:role+' => 'Rôle de cet hôte au sein de la grappe : Maître ou Esclave. Autonome en l\'absence de grappe', + 'Class:ContainerHost/Attribute:role/Value:master' => 'Maître', + 'Class:ContainerHost/Attribute:role/Value:worker' => 'Esclave', + 'Class:ContainerHost/Attribute:role/Value:standalone' => 'Autonome', + 'Class:ContainerHost/Attribute:system_id' => 'Système', + 'Class:ContainerHost/Attribute:system_id+' => 'Le système sur lequel cet hôte tourne. Cela peut être un Serveur, une Machine Virtuelle ou un Nuage', + + // Class Container Cluster + 'Class:ContainerCluster/Name' => '%1$s', + 'Class:ContainerCluster/ComplementaryName' => '', + 'Class:ContainerCluster' => 'Grappe pour Conteneurs', + 'Class:ContainerCluster+' => 'Plateforme de Conteneurisation constitué d\'une grappe d\'Hôtes pour Conteneurs', + 'Class:ContainerCluster/Attribute:redundancy' => 'Configuration de la redondance', + 'Class:ContainerCluster/Attribute:redundancy/disabled' => 'La grappe est opérationnelle si tous les hôtes qui la composent sont opérationnels', + 'Class:ContainerCluster/Attribute:redundancy/count' => 'Nombre minimal d\'hôtes pour que la grappe soit opérationnelle : %1$s', + 'Class:ContainerCluster/Attribute:redundancy/percent' => 'Pourcentage minimal d\'hôtes pour que la grappe soit opérationnelle : %1$s %%', + 'Class:ContainerCluster/Attribute:containerhosts_list' => 'Hôtes pour conteneurs', + 'Class:ContainerCluster/Attribute:containerhosts_list+' => 'Hôtes composant cette grappe', + + // Class Container Type + 'Class:ContainerType/Name' => '%1$s', + 'Class:ContainerType/ComplementaryName' => '', + 'Class:ContainerType' => 'Type de conteneurisation', + 'Class:ContainerType+' => 'Technologie de conteneurisation', + + // Class Container Image Type + 'Class:ContainerImageType/Name' => '%1$s', + 'Class:ContainerImageType/ComplementaryName' => '', + 'Class:ContainerImageType' => 'Type d\'image', + 'Class:ContainerImageType+' => 'Typologie d\'images pour container', + + // Class Cloud + 'Class:Cloud/Name' => '%1$s', + 'Class:Cloud/ComplementaryName' => '%1$s-%2$s', + 'Class:Cloud' => 'Nuage', + 'Class:Cloud+' => 'Hôte virtuel, opéré par un fournisseur de services Cloud, il peut héberger des Machines Virtuelles, des Hôtes pour Conteneurs, etc.', + 'Class:Cloud/Attribute:provider_id' => 'Fournisseur', + 'Class:Cloud/Attribute:provider_id+' => 'Organisation fournissant le nuage', + 'Class:Cloud/Attribute:location_id' => 'Site', + 'Class:Cloud/Attribute:location_id+' => 'Site du fournisseur, hébergeant le nuage', + 'Class:Cloud/Attribute:containerhosts_list' => 'Hôtes pour conteneurs', + 'Class:Cloud/Attribute:containerhosts_list+' => 'Liste des hôtes hébergés dans ce nuage', + 'Cloud:baseinfo' => 'Informations générales', + 'Cloud:moreinfo' => 'Informations propres au nuage', + +)); +?> diff --git a/datamodels/2.x/itop-container-mgmt/images/icons8-application-container.svg b/datamodels/2.x/itop-container-mgmt/images/icons8-application-container.svg new file mode 100644 index 0000000000..01ef18e4ff --- /dev/null +++ b/datamodels/2.x/itop-container-mgmt/images/icons8-application-container.svg @@ -0,0 +1,346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/datamodels/2.x/itop-container-mgmt/images/icons8-cloud.svg b/datamodels/2.x/itop-container-mgmt/images/icons8-cloud.svg new file mode 100644 index 0000000000..5132b6dbcb --- /dev/null +++ b/datamodels/2.x/itop-container-mgmt/images/icons8-cloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/datamodels/2.x/itop-container-mgmt/images/icons8-cluster-container.svg b/datamodels/2.x/itop-container-mgmt/images/icons8-cluster-container.svg new file mode 100644 index 0000000000..81e577756c --- /dev/null +++ b/datamodels/2.x/itop-container-mgmt/images/icons8-cluster-container.svg @@ -0,0 +1,524 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/datamodels/2.x/itop-container-mgmt/images/icons8-host-container.svg b/datamodels/2.x/itop-container-mgmt/images/icons8-host-container.svg new file mode 100644 index 0000000000..6477f1831d --- /dev/null +++ b/datamodels/2.x/itop-container-mgmt/images/icons8-host-container.svg @@ -0,0 +1,275 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/datamodels/2.x/itop-container-mgmt/images/icons8-image-container.svg b/datamodels/2.x/itop-container-mgmt/images/icons8-image-container.svg new file mode 100644 index 0000000000..0982e316ad --- /dev/null +++ b/datamodels/2.x/itop-container-mgmt/images/icons8-image-container.svg @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/datamodels/2.x/itop-container-mgmt/model.itop-container-mgmt.php b/datamodels/2.x/itop-container-mgmt/model.itop-container-mgmt.php new file mode 100644 index 0000000000..ccc1b539e8 --- /dev/null +++ b/datamodels/2.x/itop-container-mgmt/model.itop-container-mgmt.php @@ -0,0 +1,17 @@ + 'Container management', + 'category' => 'business', + + // Setup + // + 'dependencies' => array( + 'itop-virtualization-mgmt/3.2.0' + ), + 'mandatory' => false, + 'visible' => true, + 'installer' => 'ContainerTypeInstaller', + + // Components + // + 'datamodel' => array( + 'model.itop-container-mgmt.php', // Contains the PHP code generated by the "compilation" of datamodel.combodo-container-mgmt.xml + ), + 'webservice' => array( + + ), + 'data.struct' => array( + // add your 'structure' definition XML files here, + ), + 'data.sample' => array( + // add your sample data XML files here, + ), + + // Documentation + // + 'doc.manual_setup' => '', // hyperlink to manual setup documentation, if any + 'doc.more_information' => '', // hyperlink to more information, if any + + // Default settings + // + 'settings' => array( + // Module specific settings go here, if any + ), + ) +); + +if (!class_exists('ContainerTypeInstaller')) +{ + // Module installation handler + // + class ContainerTypeInstaller extends ModuleInstallerAPI + { + /** + * Handler called after the creation/update of the database schema + * + * @param $oConfiguration Config The new configuration of the application + * @param $sPreviousVersion string Previous version number of the module (empty string in case of first install) + * @param $sCurrentVersion string Current version number of the module + * + * @throws \Exception + */ + public static function AfterDatabaseCreation(Config $oConfiguration, $sPreviousVersion, $sCurrentVersion) + { + if ($sPreviousVersion == '') { // First installation + $oDataLoader = new XMLDataLoader(); + CMDBObject::SetTrackInfo("Initialization ContainerTypeInstaller"); + $oMyChange = CMDBObject::GetCurrentChange(); + $sFileName = dirname(__FILE__)."/data/en_us.data.itop-container-type.xml"; + SetupLog::Info("Uploading Typology values for Containers from file: $sFileName"); + $oDataLoader->StartSession($oMyChange); + $oDataLoader->LoadFile($sFileName, false, true); + $oDataLoader->EndSession(); + } + } + } +} + +?>