From 079c384a09c2d599243155f4457f3629120a655a Mon Sep 17 00:00:00 2001 From: v-dumas Date: Mon, 15 Dec 2025 12:09:29 +0100 Subject: [PATCH 1/8] =?UTF-8?q?N=C2=B08515=20-=20Add=20CMDB=20datamodel=20?= =?UTF-8?q?for=20Docker=20and=20Kubernetes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/en_us.data.itop-container-type.xml | 24 + .../datamodel.itop-container-mgmt.xml | 1254 +++++++++++++++++ .../en.dict.itop-container-mgmt.php | 104 ++ .../fr.dict.itop-container-mgmt.php | 105 ++ .../images/icons8-application-container.svg | 346 +++++ .../images/icons8-cloud.svg | 1 + .../images/icons8-cluster-container.svg | 524 +++++++ .../images/icons8-host-container.svg | 275 ++++ .../images/icons8-image-container.svg | 336 +++++ .../model.itop-container-mgmt.php | 17 + .../module.itop-container-mgmt.php | 83 ++ 11 files changed, 3069 insertions(+) create mode 100644 datamodels/2.x/itop-container-mgmt/data/en_us.data.itop-container-type.xml create mode 100644 datamodels/2.x/itop-container-mgmt/datamodel.itop-container-mgmt.xml create mode 100644 datamodels/2.x/itop-container-mgmt/dictionaries/en.dict.itop-container-mgmt.php create mode 100644 datamodels/2.x/itop-container-mgmt/dictionaries/fr.dict.itop-container-mgmt.php create mode 100644 datamodels/2.x/itop-container-mgmt/images/icons8-application-container.svg create mode 100644 datamodels/2.x/itop-container-mgmt/images/icons8-cloud.svg create mode 100644 datamodels/2.x/itop-container-mgmt/images/icons8-cluster-container.svg create mode 100644 datamodels/2.x/itop-container-mgmt/images/icons8-host-container.svg create mode 100644 datamodels/2.x/itop-container-mgmt/images/icons8-image-container.svg create mode 100644 datamodels/2.x/itop-container-mgmt/model.itop-container-mgmt.php create mode 100644 datamodels/2.x/itop-container-mgmt/module.itop-container-mgmt.php 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..a9e22b37a2 --- /dev/null +++ b/datamodels/2.x/itop-container-mgmt/data/en_us.data.itop-container-type.xml @@ -0,0 +1,24 @@ + + + + AWS - Elastic Container Service + + + AWS - Elastic Kubernetes Service + + + Azure Kubernetes Service + + + Docker Swarm + + + Google Kubernetes Engine + + + Kubernetes + + + Nomad + + \ 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..7fc1280d37 --- /dev/null +++ b/datamodels/2.x/itop-container-mgmt/datamodel.itop-container-mgmt.xml @@ -0,0 +1,1254 @@ + + + + + FunctionalCI + + bizmodel,searchable + false + containerimage + + + + + + + + + + + + + + + + + + + + + software_id + + + true + Software + DEL_MANUAL + all + + + image_url + + true + + all + + + containerapplication_id + + false + ContainerApplication + DEL_AUTO + all + + + containerapplication_id + containervirtualhost_id + + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + +
+ + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 10 + + + 10 + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + +
+ + + + 10 + + + 20 + + + 30 + + + +
+ + + + + containerapplication_id + both + + + + +
+ + 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 + + +
+ + FunctionalCI + + bizmodel,searchable + false + containerapplication + + + + + + + + + + + + + + + + + + status + + + + status='obsolete' + + + + + containervirtualhost_id + + false + ContainerVirtualHost + DEL_AUTO + all + + + ContainerImage + containerapplication_id + list + + false + false + + + + status + + + implementation + 10 + + + + production + 20 + + + + obsolete + 30 + + + + + implementation + false + + + all + + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + +
+ + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + 10 + + + 10 + + + + + + + 10 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + 70 + + + 80 + + +
+ + + + 10 + + + 20 + + + 30 + + + 40 + + + +
+
+ + 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 + + + 70 + + + 80 + + +
+ + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + +
+ + + + + containerhosts_list + both + + + + +
+ + Typology + + bizmodel,searchable + false + containertype + + + + + + + + + + + + + + + + + + + 10 + + + + + + + 10 + + + +
+ + + 10 + + +
+
+
+
+ + + + + + 1 + + + 4 + Cloud + + + 5 + ContainerApplication + + + 6 + ContainerHost + + + 7 + ContainerCluster + + + 8 + ContainerImage + + + + + + + + + + + 0 + + + 11 + ContainerType + + + + + + + +
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..ebc5d69a67 --- /dev/null +++ b/datamodels/2.x/itop-container-mgmt/dictionaries/en.dict.itop-container-mgmt.php @@ -0,0 +1,104 @@ + '%1$s', + 'Class:ContainerImage/ComplementaryName' => '%1$s', + 'Class:ContainerImage' => 'Container Image', + 'Class:ContainerImage+' => 'Image of a piece of software ready to be launched as a container', + 'Class:ContainerImage/Attribute:software_id' => 'Software', + 'Class:ContainerImage/Attribute:software_id+' => '', + 'Class:ContainerImage/Attribute:image_url' => 'Image URL', + 'Class:ContainerImage/Attribute:image_url+' => '', + 'Class:ContainerImage/Attribute:containerapplication_id' => 'Containerized Application', + 'Class:ContainerImage/Attribute:containerapplication_id+' => 'Application to which this image contributes', + 'Class:ContainerImage/Attribute:containervirtualhost_id' => 'Container Host', + 'Class:ContainerImage/Attribute:containervirtualhost_id+' => 'Platform on which the application is deployed', + '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+' => 'Application deployed on a container environment', + 'Class:ContainerApplication/Attribute:status' => 'Status', + 'Class:ContainerApplication/Attribute:status+' => 'Status of the application', + '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 Container Virtual Host + 'Class:ContainerVirtualHost/Name' => '%1$s', + 'Class:ContainerVirtualHost/ComplementaryName' => '', + 'Class:ContainerVirtualHost' => 'Container Platform', + 'Class:ContainerVirtualHost+' => 'Platform on which application 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', + '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+' => '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 Cloud + 'Class:Cloud/Name' => '%1$s', + 'Class:Cloud/ComplementaryName' => '%1$s-%2$s', + 'Class:Cloud' => 'Cloud', + 'Class:Cloud+' => '', + '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..042f318351 --- /dev/null +++ b/datamodels/2.x/itop-container-mgmt/dictionaries/fr.dict.itop-container-mgmt.php @@ -0,0 +1,105 @@ + '%1$s', + 'Class:ContainerImage/ComplementaryName' => '%1$s', + 'Class:ContainerImage' => 'Image pour conteneur', + 'Class:ContainerImage+' => 'Image d\'un logiciel, constituant d\'une application conteneurisée', + 'Class:ContainerImage/Attribute:software_id' => 'Logiciel', + 'Class:ContainerImage/Attribute:software_id+' => '', + 'Class:ContainerImage/Attribute:image_url' => 'URL de l\'image', + 'Class:ContainerImage/Attribute:image_url+' => '', + 'Class:ContainerImage/Attribute:containerapplication_id' => 'Application conteneurisée', + 'Class:ContainerImage/Attribute:containerapplication_id+' => 'L\'application à laquelle cette image contribue', + 'Class:ContainerImage/Attribute:containervirtualhost_id' => 'Plateforme de l\'application', + 'Class:ContainerImage/Attribute:containervirtualhost_id+' => 'Plateforme où cette image est déployée en conteneur', + '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+' => 'Application déployée sur une plateforme de conteneurisation', + 'Class:ContainerApplication/Attribute:status' => 'Etat', + 'Class:ContainerApplication/Attribute:status+' => 'Etat de l\'application', + '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+' => '', + '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 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' => 'Etat', + 'Class:ContainerVirtualHost/Attribute:status+' => 'Etat 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+' => 'Système hôte dédié à l\'exécution de conteneurs', + '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+' => 'Grappe d\'hôtes de 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 Cloud + 'Class:Cloud/Name' => '%1$s', + 'Class:Cloud/ComplementaryName' => '%1$s-%2$s', + 'Class:Cloud' => 'Nuage', + 'Class:Cloud+' => '', + '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 ContainerType objects from file: $sFileName"); + $oDataLoader->StartSession($oMyChange); + $oDataLoader->LoadFile($sFileName, false, true); + $oDataLoader->EndSession(); + } + } + } +} + +?> From 99e746346221322627e04b14668cf9508bedd4b6 Mon Sep 17 00:00:00 2001 From: Vincent Dumas <42336698+v-dumas@users.noreply.github.com> Date: Tue, 16 Dec 2025 09:40:26 +0100 Subject: [PATCH 2/8] Capital letter with an accent Co-authored-by: Stephen Abello --- .../dictionaries/fr.dict.itop-container-mgmt.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 index 042f318351..7f99d1413e 100644 --- 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 @@ -29,8 +29,8 @@ 'Class:ContainerApplication/ComplementaryName' => '%1$s', 'Class:ContainerApplication' => 'Application conteneurisée', 'Class:ContainerApplication+' => 'Application déployée sur une plateforme de conteneurisation', - 'Class:ContainerApplication/Attribute:status' => 'Etat', - 'Class:ContainerApplication/Attribute:status+' => 'Etat de l\'application', + 'Class:ContainerApplication/Attribute:status' => 'État', + 'Class:ContainerApplication/Attribute:status+' => 'État de l\'application', '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', From 180fc1a9c4331c2ad80ba15f6945f290505ac29c Mon Sep 17 00:00:00 2001 From: Vincent Dumas <42336698+v-dumas@users.noreply.github.com> Date: Tue, 16 Dec 2025 09:40:37 +0100 Subject: [PATCH 3/8] Capital letter with an accent Co-authored-by: Stephen Abello --- .../dictionaries/fr.dict.itop-container-mgmt.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 index 7f99d1413e..e6c802650d 100644 --- 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 @@ -47,8 +47,8 @@ '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' => 'Etat', - 'Class:ContainerVirtualHost/Attribute:status+' => 'Etat de la plateforme de conteneurisation', + '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', From e283f0180a1d3ec02f55e88000c1ea9eaef7a40b Mon Sep 17 00:00:00 2001 From: v-dumas Date: Tue, 23 Dec 2025 12:44:14 +0100 Subject: [PATCH 4/8] =?UTF-8?q?N=C2=B08515=20-=20Add=20lnkContainerApplica?= =?UTF-8?q?tionToImage=20and=20more=20fields=20on=20Image?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datamodel.itop-container-mgmt.xml | 631 +++++++++++------- 1 file changed, 391 insertions(+), 240 deletions(-) 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 index 7fc1280d37..717237fe93 100644 --- a/datamodels/2.x/itop-container-mgmt/datamodel.itop-container-mgmt.xml +++ b/datamodels/2.x/itop-container-mgmt/datamodel.itop-container-mgmt.xml @@ -2,7 +2,7 @@ - FunctionalCI + cmdbAbstractObject bizmodel,searchable false @@ -10,24 +10,57 @@ + - + + + - - - + + + + + + + + + false + true + + + + name + + false + + + vendor + + false + + + version + + false + + + containerimagetype_id + ContainerImageType + true + DEL_MANUAL + software_id @@ -44,38 +77,28 @@ all - - containerapplication_id - - false - ContainerApplication - DEL_AUTO - all - - - containerapplication_id - containervirtualhost_id + + lnkContainerApplicationToImage + containerimage_id + 0 + 0 + containerapplication_id + - + 10 - + 20 - + 30 - - 40 - - - 50 - @@ -166,18 +189,306 @@ 30 - + + + + + + + containerapplication_id + both + + + + + + + FunctionalCI + + bizmodel,searchable + false + containerapplication + + + + + + + + + + + + + + + + + + status + + + + status='obsolete' + + + + + containervirtualhost_id + + false + ContainerVirtualHost + DEL_AUTO + all + + + lnkContainerApplicationToImage + containerapplication_id + 0 + 0 + containerimage_id + + + + status + + + implementation + 10 + + + + production + 20 + + + + obsolete + 30 + + + + + implementation + false + + + all + + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + +
+ + + + + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + 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 + + +
- - - - - containerapplication_id - both - - - -
FunctionalCI @@ -609,210 +920,6 @@ - - FunctionalCI - - bizmodel,searchable - false - containerapplication - - - - - - - - - - - - - - - - - - status - - - - status='obsolete' - - - - - containervirtualhost_id - - false - ContainerVirtualHost - DEL_AUTO - all - - - ContainerImage - containerapplication_id - list - - false - false - - - - status - - - implementation - 10 - - - - production - 20 - - - - obsolete - 30 - - - - - implementation - false - - - all - - - - - - - - 10 - - - 20 - - - 30 - - - 40 - - - - - - - 10 - - - 20 - - - 30 - - - 40 - - - -
- - - - - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - 10 - - - 10 - - - - - - - 10 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - 70 - - - 80 - - -
- - - - 10 - - - 20 - - - 30 - - - 40 - - - -
-
ContainerVirtualHost @@ -1202,6 +1309,50 @@ + + Typology + + bizmodel,searchable + false + containerimagetype + + + + + + + + + + + + + + + + + + + 10 + + + + + + + 10 + + + +
+ + + 10 + + +
+
+
From 856a63b9343a81ee3a93b9c195e2753eb4bb395e Mon Sep 17 00:00:00 2001 From: v-dumas Date: Wed, 24 Dec 2025 13:49:22 +0100 Subject: [PATCH 5/8] =?UTF-8?q?N=C2=B08515=20-=20Move=20ContainerApplicati?= =?UTF-8?q?on=20under=20SoftwareInstance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/en_us.data.itop-container-type.xml | 12 ++ .../datamodel.itop-container-mgmt.xml | 176 ++++++++---------- .../en.dict.itop-container-mgmt.php | 45 ++++- .../fr.dict.itop-container-mgmt.php | 46 +++-- 4 files changed, 163 insertions(+), 116 deletions(-) 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 index a9e22b37a2..b66bbad0e4 100644 --- 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 @@ -21,4 +21,16 @@ 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 index 717237fe93..08d889c5e9 100644 --- a/datamodels/2.x/itop-container-mgmt/datamodel.itop-container-mgmt.xml +++ b/datamodels/2.x/itop-container-mgmt/datamodel.itop-container-mgmt.xml @@ -13,16 +13,16 @@ - - + + - + - + - - status='obsolete' - + + descriptor + true + containervirtualhost_id @@ -251,46 +258,25 @@ containerimage_id - - status - - - implementation - 10 - - - - production - 20 - - - - obsolete - 30 - - - - - implementation - false - - - all - - + + + false + public + EventListener + Set('system_id', $this->Get('containervirtualhost_id')); + }]]> + + + + + EVENT_DB_BEFORE_WRITE + EvtComputeSystemId + 0 + + @@ -361,28 +347,31 @@ 10 + + 10 + 10 20 - + 30 - + 40 - + 50 - + 60 - + 70 - + 80 @@ -1078,7 +1067,7 @@ - VirtualHost + VirtualDevice bizmodel,searchable false @@ -1223,9 +1212,6 @@ 50 - - 60 - 70 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 index ebc5d69a67..c638c145b2 100644 --- 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 @@ -9,18 +9,26 @@ Dict::Add('EN US', 'English', 'English', array( // Class Container Image - 'Class:ContainerImage/Name' => '%1$s', - 'Class:ContainerImage/ComplementaryName' => '%1$s', + 'Class:ContainerImage/Name' => '%1$s %2$s', + 'Class:ContainerImage/ComplementaryName' => '%1$s - %2$s', 'Class:ContainerImage' => 'Container Image', 'Class:ContainerImage+' => 'Image of a piece of 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:image_url' => 'Image URL', - 'Class:ContainerImage/Attribute:image_url+' => '', - 'Class:ContainerImage/Attribute:containerapplication_id' => 'Containerized Application', - 'Class:ContainerImage/Attribute:containerapplication_id+' => 'Application to which this image contributes', - 'Class:ContainerImage/Attribute:containervirtualhost_id' => 'Container Host', - 'Class:ContainerImage/Attribute:containervirtualhost_id+' => 'Platform on which the application is deployed', + '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', @@ -29,8 +37,8 @@ 'Class:ContainerApplication/ComplementaryName' => '%1$s', 'Class:ContainerApplication' => 'Containerized Application', 'Class:ContainerApplication+' => 'Application deployed on a container environment', - 'Class:ContainerApplication/Attribute:status' => 'Status', - 'Class:ContainerApplication/Attribute:status+' => 'Status of the application', + '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', @@ -40,6 +48,17 @@ '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' => '', @@ -87,6 +106,12 @@ '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', 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 index e6c802650d..395c2a50da 100644 --- 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 @@ -9,18 +9,26 @@ Dict::Add('FR FR', 'French', 'Français', array( // Class Container Image - 'Class:ContainerImage/Name' => '%1$s', - 'Class:ContainerImage/ComplementaryName' => '%1$s', + 'Class:ContainerImage/Name' => '%1$s %2$s', + 'Class:ContainerImage/ComplementaryName' => '%1$s - %2$s', 'Class:ContainerImage' => 'Image pour conteneur', 'Class:ContainerImage+' => '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:image_url' => 'URL de l\'image', - 'Class:ContainerImage/Attribute:image_url+' => '', - 'Class:ContainerImage/Attribute:containerapplication_id' => 'Application conteneurisée', - 'Class:ContainerImage/Attribute:containerapplication_id+' => 'L\'application à laquelle cette image contribue', - 'Class:ContainerImage/Attribute:containervirtualhost_id' => 'Plateforme de l\'application', - 'Class:ContainerImage/Attribute:containervirtualhost_id+' => 'Plateforme où cette image est déployée en conteneur', + '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', @@ -29,17 +37,27 @@ 'Class:ContainerApplication/ComplementaryName' => '%1$s', 'Class:ContainerApplication' => 'Application conteneurisée', 'Class:ContainerApplication+' => 'Application déployée sur une plateforme de conteneurisation', - 'Class:ContainerApplication/Attribute:status' => 'État', - 'Class:ContainerApplication/Attribute:status+' => 'État de l\'application', + '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+' => '', + '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' => '', @@ -87,6 +105,12 @@ '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', From 1a7f8b1110cbb9bbe2f17f2e588d0157a95c76f3 Mon Sep 17 00:00:00 2001 From: v-dumas Date: Fri, 26 Dec 2025 09:49:41 +0100 Subject: [PATCH 6/8] =?UTF-8?q?N=C2=B08515=20-=20Finalize=20Cloud,=20add?= =?UTF-8?q?=20Setup=20sub-option?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- datamodels/2.x/installation.xml | 13 ++++++++++ .../datamodel.itop-container-mgmt.xml | 24 +++++++++++-------- .../module.itop-container-mgmt.php | 2 +- 3 files changed, 28 insertions(+), 11 deletions(-) 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/datamodel.itop-container-mgmt.xml b/datamodels/2.x/itop-container-mgmt/datamodel.itop-container-mgmt.xml index 08d889c5e9..c42d8c9a00 100644 --- a/datamodels/2.x/itop-container-mgmt/datamodel.itop-container-mgmt.xml +++ b/datamodels/2.x/itop-container-mgmt/datamodel.itop-container-mgmt.xml @@ -1067,7 +1067,7 @@ - VirtualDevice + VirtualHost bizmodel,searchable false @@ -1203,20 +1203,20 @@ 20 - + 30 - + 40 - + 50 - - 70 + + 60 - - 80 + + 60 @@ -1378,10 +1378,14 @@ 0 - - 11 + + 21 ContainerType + + 22 + ContainerImageType + diff --git a/datamodels/2.x/itop-container-mgmt/module.itop-container-mgmt.php b/datamodels/2.x/itop-container-mgmt/module.itop-container-mgmt.php index 53a54711ed..3457897859 100644 --- a/datamodels/2.x/itop-container-mgmt/module.itop-container-mgmt.php +++ b/datamodels/2.x/itop-container-mgmt/module.itop-container-mgmt.php @@ -71,7 +71,7 @@ public static function AfterDatabaseCreation(Config $oConfiguration, $sPreviousV CMDBObject::SetTrackInfo("Initialization ContainerTypeInstaller"); $oMyChange = CMDBObject::GetCurrentChange(); $sFileName = dirname(__FILE__)."/data/en_us.data.itop-container-type.xml"; - SetupLog::Info("Uploading ContainerType objects from file: $sFileName"); + SetupLog::Info("Uploading Typology values for Containers from file: $sFileName"); $oDataLoader->StartSession($oMyChange); $oDataLoader->LoadFile($sFileName, false, true); $oDataLoader->EndSession(); From 12f71718c2570ab4980c5cae706d9f6d61dbf782 Mon Sep 17 00:00:00 2001 From: v-dumas Date: Fri, 26 Dec 2025 11:03:54 +0100 Subject: [PATCH 7/8] =?UTF-8?q?N=C2=B08515=20-=20Class=20description=20fin?= =?UTF-8?q?e=20tuning?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../en.dict.itop-container-mgmt.php | 12 +++++------ .../fr.dict.itop-container-mgmt.php | 20 +++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) 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 index c638c145b2..bbaf7af168 100644 --- 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 @@ -12,7 +12,7 @@ 'Class:ContainerImage/Name' => '%1$s %2$s', 'Class:ContainerImage/ComplementaryName' => '%1$s - %2$s', 'Class:ContainerImage' => 'Container Image', - 'Class:ContainerImage+' => 'Image of a piece of software ready to be launched as a container', + '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', @@ -36,7 +36,7 @@ 'Class:ContainerApplication/Name' => '%1$s', 'Class:ContainerApplication/ComplementaryName' => '%1$s', 'Class:ContainerApplication' => 'Containerized Application', - 'Class:ContainerApplication+' => 'Application deployed on a container environment', + 'Class:ContainerApplication+' => 'An application deployed on a container environment', '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', @@ -63,7 +63,7 @@ 'Class:ContainerVirtualHost/Name' => '%1$s', 'Class:ContainerVirtualHost/ComplementaryName' => '', 'Class:ContainerVirtualHost' => 'Container Platform', - 'Class:ContainerVirtualHost+' => 'Platform on which application run as containers', + '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', @@ -77,7 +77,7 @@ 'Class:ContainerHost/Name' => '%1$s', 'Class:ContainerHost/ComplementaryName' => '%1$s-%2$s', 'Class:ContainerHost' => 'Container Host', - 'Class:ContainerHost+' => 'Host dedicated to containers', + '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', @@ -92,7 +92,7 @@ 'Class:ContainerCluster/Name' => '%1$s', 'Class:ContainerCluster/ComplementaryName' => '', 'Class:ContainerCluster' => 'Container Cluster', - 'Class:ContainerCluster+' => 'Cluster of Container Hosts', + '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', @@ -116,7 +116,7 @@ 'Class:Cloud/Name' => '%1$s', 'Class:Cloud/ComplementaryName' => '%1$s-%2$s', 'Class:Cloud' => 'Cloud', - 'Class:Cloud+' => '', + 'Class:Cloud+' => 'A type of Virtual Host that is hosted on 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', 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 index 395c2a50da..14ac5d44fd 100644 --- 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 @@ -11,8 +11,8 @@ // Class Container Image 'Class:ContainerImage/Name' => '%1$s %2$s', 'Class:ContainerImage/ComplementaryName' => '%1$s - %2$s', - 'Class:ContainerImage' => 'Image pour conteneur', - 'Class:ContainerImage+' => 'Image d\'un logiciel, constituant d\'une application conteneurisée', + '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', @@ -35,8 +35,8 @@ // Class Container Application 'Class:ContainerApplication/Name' => '%1$s', 'Class:ContainerApplication/ComplementaryName' => '%1$s', - 'Class:ContainerApplication' => 'Application conteneurisée', - 'Class:ContainerApplication+' => 'Application déployée sur une plateforme de conteneurisation', + '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', @@ -61,7 +61,7 @@ // Class Container Virtual Host 'Class:ContainerVirtualHost/Name' => '%1$s', 'Class:ContainerVirtualHost/ComplementaryName' => '', - 'Class:ContainerVirtualHost' => 'Plateforme de conteneurisation', + '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', @@ -75,8 +75,8 @@ // Class Container Host 'Class:ContainerHost/Name' => '%1$s', 'Class:ContainerHost/ComplementaryName' => '%1$s-%2$s', - 'Class:ContainerHost' => 'Hôte pour conteneurs', - 'Class:ContainerHost+' => 'Système hôte dédié à l\'exécution de conteneurs', + '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', @@ -90,8 +90,8 @@ // Class Container Cluster 'Class:ContainerCluster/Name' => '%1$s', 'Class:ContainerCluster/ComplementaryName' => '', - 'Class:ContainerCluster' => 'Grappe pour conteneurs', - 'Class:ContainerCluster+' => 'Grappe d\'hôtes de conteneurs', + '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', @@ -115,7 +115,7 @@ 'Class:Cloud/Name' => '%1$s', 'Class:Cloud/ComplementaryName' => '%1$s-%2$s', 'Class:Cloud' => 'Nuage', - 'Class:Cloud+' => '', + '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', From 91ad9be491dd721e764af51f9ade097ce5d83de3 Mon Sep 17 00:00:00 2001 From: v-dumas Date: Fri, 26 Dec 2025 11:54:47 +0100 Subject: [PATCH 8/8] =?UTF-8?q?N=C2=B08515=20-=20Class=20description=20fin?= =?UTF-8?q?e=20tuning?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datamodel.itop-container-mgmt.xml | 2 +- .../dictionaries/en.dict.itop-container-mgmt.php | 4 ++-- .../dictionaries/fr.dict.itop-container-mgmt.php | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) 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 index c42d8c9a00..74feeb4e00 100644 --- a/datamodels/2.x/itop-container-mgmt/datamodel.itop-container-mgmt.xml +++ b/datamodels/2.x/itop-container-mgmt/datamodel.itop-container-mgmt.xml @@ -494,7 +494,7 @@ - + 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 index bbaf7af168..129be9644c 100644 --- 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 @@ -36,7 +36,7 @@ 'Class:ContainerApplication/Name' => '%1$s', 'Class:ContainerApplication/ComplementaryName' => '%1$s', 'Class:ContainerApplication' => 'Containerized Application', - 'Class:ContainerApplication+' => 'An application deployed on a container environment', + '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', @@ -116,7 +116,7 @@ 'Class:Cloud/Name' => '%1$s', 'Class:Cloud/ComplementaryName' => '%1$s-%2$s', 'Class:Cloud' => 'Cloud', - 'Class:Cloud+' => 'A type of Virtual Host that is hosted on a cloud provider. It can host Virtual Machines and Container Hosts', + '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', 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 index 14ac5d44fd..1fd8fc7300 100644 --- 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 @@ -12,7 +12,7 @@ 'Class:ContainerImage/Name' => '%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+' => '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', @@ -36,7 +36,7 @@ '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+' => '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', @@ -49,7 +49,7 @@ 'ContainerApplication:moreinfo' => 'Spécificités de la conteneurisation', // Class: lnkContainerApplicationToImage - 'Class:lnkContainerApplicationToImage' => 'Lien Application / Image pour conteneur', + 'Class:lnkContainerApplicationToImage' => 'Lien Application / Image pour Conteneur', 'Class:lnkContainerApplicationToImage+' => '', 'Class:lnkContainerApplicationToImage/Name' => '%1$s / %2$s', 'Class:lnkContainerApplicationToImage/Name+' => '', @@ -76,7 +76,7 @@ '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+' => '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', @@ -85,7 +85,7 @@ '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: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',