BusinessServiceManager : global
L’API BusinessServiceManager fournit des méthodes qui unifient la gestion des services en convertissant les services créés manuellement en services d’application, en remplissant les services d’application et en ajoutant/supprimant des éléments de configuration et des connexions.
Utiliser les méthodes BusinessServiceManager dans les scripts de serveur global. Vous devez disposer du rôle d’administrateur du service d’application [app_service_admin] pour appeler cette API.
BusinessServiceManager : BusinessServiceManager()
Instancie un objet BusinessServiceManager.
| Nom | Type | Description |
|---|---|---|
| Néant |
var bsManager = new SNC.BusinessServiceManager();
BusinessServiceManager : addCI(Chaîne service_id, Chaîne source_id, Chaîne target_id)
Ajoute un CI à un service d’application créé manuellement.
| Nom | Type | Description |
|---|---|---|
| service_id | Chaîne | Sys_id du service d’application auquel ajouter un CI. Doit être de type cmdb_ci_service_discovered. |
| source_id | Chaîne | Sys_id du CI dont la connexion sortante rejoint le CI cible. |
| target_id | Chaîne | Sys_id du CI à ajouter au service. Ne peut pas être un élément exclu. Les éléments exclus sont des CI configurés dans la table Inclusions/exclusions manuelles de CI [svc_manual_ci_exclusions_inclusions.list]. |
| Type | Description |
|---|---|
| nul |
//Application service is 'PeopleSoft Portals'
//Source CI is windows server 'PS Apache01'
//Target CI is 'SAP WEB01'
var bsManager = new SNC.BusinessServiceManager();
var appService = bsManager.addCI('2fce42d80a0a0bb4004af34d7e3984c8','3a27d4370a0a0bb4006316812bf45439', '3a6cadc1c0a8ce01001f1e5d0d7d68fa');
Ajouter un nouveau point d’entrée
- Fournissez le service_ID comme d’habitude.
- Laissez la valeur source_ID vide. Par exemple, utilisez
''. - Pour target_ID, entrez l’ID système du CI sous lequel ajouter le nouveau point d’entrée.
//Application service sys_id is '49de2b3187cd9d50d5c8a6880cbb35ea'
//Source CI is passed as an empty string as ''
//Target CI sys id is '15ca5fb187129910d5c8a6880cbb3537'
var bsManager = new SNC.BusinessServiceManager();
var appService = bsManager.addCI('49de2b3187cd9d50d5c8a6880cbb35ea','', '15ca5fb187129910d5c8a6880cbb3537');BusinessServiceManager : addEntryPoint(serviceId, endpointGr)
Ajoute un point d’entrée au service d’application et démarre la détection sur le point d’entrée.
| Nom | Type | Description |
|---|---|---|
| serviceId | Piquer | Sys_id du service d’application auquel ajouter la connexion. |
| point de terminaison Gr | Chaîne | Objet d’enregistrement Glide dans la table Point de terminaison de CI [cmdb_ci_endpoint] ou sa table enfant à ajouter au service d’application. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant que le point d’entrée a été ajouté avec succès au service d’application. Valeurs possibles :
|
La méthode addEntryPoint() suivante montre comment ajouter un nouveau point d’entrée au service d’application.
var now_GR = new GlideRecord("cmdb_ci_endpoint_tcp");
now_GR.initialize();
now_GR.setValue("host", "10.196.39.251");
now_GR.setValue("port", "8080");
now_GR.insert();
var bsManager = new SNC.BusinessServiceManager();
var serviceId = "5bf65ebeedb91300964f6fa662989533";
bsManager.addEntryPoint(serviceId,now_GR);
Sortie :
true
BusinessServiceManager : addEntryPointWithoutStartDiscovery(serviceId, endpointGr)
Ajoute un nouveau point d’entrée sans démarrer la découverte.
| Nom | Type | Description |
|---|---|---|
| serviceId | Chaîne | Sys_id du service d’application auquel ajouter la connexion. |
| point de terminaison Gr | Chaîne | Objet d’enregistrement Glide dans la table Point de terminaison de CI [cmdb_ci_endpoint] ou sa table enfant à ajouter au service d’application. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant que le point d’entrée a été ajouté avec succès au service d’application. Valeurs possibles :
|
L’exemple suivant montre comment utiliser la méthode addEntryPointWithoutStartDiscovery() pour ajouter un nouveau point d’entrée au service d’application sans initier la découverte.
var now_GR = new GlideRecord("cmdb_ci_endpoint_tcp");
now_GR.initialize();
now_GR.setValue("host", "10.196.39.251");
now_GR.setValue("port", "8080");
now_GR.insert();
var bsManager = new SNC.BusinessServiceManager();
var serviceId = "5bf65ebeedb91300964f6fa662989533";
bsManager.addEntryPointWithoutStartDiscovery(serviceId,now_GR);
Sortie :
true
BusinessServiceManager : addManualConnection(String source_id, Object manual_endpoint, String service_id)
Ajoute une connexion créée manuellement à un service d’application.
| Nom | Type | Description |
|---|---|---|
| source_id | Chaîne | ID système du CI à ajouter à la connexion. |
| manual_endpoint | Objet | Objet GlideRecord dans la table cmdb_ci_endpoint_manual à ajouter au service d’application. |
| service_id | Chaîne | ID système du service d’application auquel ajouter la connexion. |
| Type | Description |
|---|---|
| nul |
var now_GR = new GlideRecord("cmdb_ci_endpoint_manual");
now_GR.initialize();
now_GR.name='myEndpoint';
now_GR.insert();
var bsManager = new SNC.BusinessServiceManager();
var appService = bsManager.addManualConnection("3a307c930a0a0bb400353965d0b8861f", now_GR, "2fce42d80a0a0bb4004af34d7e3984c8");
BusinessServiceManager : isReadingAllowed(Object gr, String userSysID)
Vérifie les rôles d’un utilisateur spécifié et les données d’autorisations configurées pour un service/groupe de services spécifié et renvoie une valeur booléenne qui indique si l’utilisateur peut afficher le service/groupe de services.
Ce qui suit définit le flux de processus que la méthode utilise pour déterminer si l’utilisateur peut afficher le service/le groupe de services :
- Si l’enregistrement spécifié est un groupe de services, vérifie les rôles d’utilisateur et la politique de groupe. Pour plus d’informations sur les rôles affectés aux groupes de services, reportez-vous à la section Assign a role to a service group.
- Si la liste des rôles contient « itil » mais pas « app_service_admin » et « sam_core_user », renvoyez la valeur « vrai ».
- Si la liste des rôles contient « maint », renvoyez la valeur « vrai ».
- Si la liste des rôles contient « app_serivce_user » mais pas « app_service_admin » et « sm_app_owner », et que le service n’est pas opérationnel, renvoie la valeur faux.
- Vérifiez le groupe du service.
- Si le service appartient à un seul groupe et que le groupe est « all », retournez la valeur vrai.
- Pour tout groupe autre que « tous », vérifie la politique relative aux rôles d’utilisateur et au groupe en fonction des règles spécifiées dans Assign a role to a service group. Si l’un d’eux renvoie la valeur vrai, renvoie la valeur vrai.
| Nom | Type | Description |
|---|---|---|
| gr | GlideRecord | GlideRecord du service/groupe de services. Ce GlideRecord peut provenir de l’une des tables suivantes :
|
| userSysId | Chaîne | Sys_id de l'enregistrement de l'utilisateur. Table : Utilisateur [sys_user] |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’utilisateur a l’autorisation d’afficher le service/groupe de services spécifié. Valeurs possibles :
|
L’exemple de code suivant montre comment appeler cette méthode pour vérifier la capacité de l’utilisateur spécifié à accéder au groupe de services spécifié.
var cmdbServGr = new GlideRecord('cmdb_ci_service_discovered');
cmdbServGr.addQuery('sys_id', "123123123123123123123123");
cmdbServGr.query();
var userId = gs.getUserID();
var bsManager = new SNC.BusinessServiceManager();
while (cmdbServGr.next()) {
var answer = bsManager.isReadingPermitted(cmdbServGr, userId);
//do something with / according to the answer
}
BusinessServiceManager : migrateManualToApplicationService(String service_id)
Convertit un service manuel en service d’application.
| Nom | Type | Description |
|---|---|---|
| service_id | Chaîne | ID système du service manuel à convertir. |
| Type | Description |
|---|---|
| Booléen | Vrai si la migration vers un service d’application réussit. |
var bsManager = new SNC.BusinessServiceManager();
var appService = bsManager.migrateManualToApplicationService("451047c6c0a8016400de0ae6df9b9d76");
BusinessServiceManager : populateApplicationService(String service_id, Number levels, String black_listed_relation_types)
Remplit un service d’application avec des relations et des CI à partir du point d’entrée désigné.
| Nom | Type | Description |
|---|---|---|
| service_id | Chaîne | ID système du service d’application à remplir. |
| niveaux | Numéro | Nombre de niveaux de CI à ajouter à partir de la CMDB. |
| black_listed_relation_types | Chaîne | Types de relations à exclure lors du remplissage du service d’application. |
| Type | Description |
|---|---|
| Booléen | Vrai si l’opération réussit. |
var bsManager = new SNC.BusinessServiceManager();
var appService = bsManager.populateApplicationService("5bf65ebeedb91300964f6fa662989533", 10, "Depends on::Used by");
BusinessServiceManager : removeCI(String service_id, String target_id)
Supprime un CI créé manuellement d’un service d’application.
| Nom | Type | Description |
|---|---|---|
| service_id | Chaîne | ID système du service d’application duquel supprimer un CI. Remarque : La transmission d’un objet GlideRecord est également prise en charge. |
| target_id | Chaîne | ID système du CI à supprimer du service d’application. Remarque : La transmission d’un objet GlideRecord est également prise en charge. |
| Type | Description |
|---|---|
| nul |
var bsManager = new SNC.BusinessServiceManager();
var appService = bsManager.removeCI("2fce42d80a0a0bb4004af34d7e3984c8", "3a290cc60a0a0bb400000bdb386af1cf");
BusinessServiceManager : removeEntryPoint(serviceId, endpointSysId)
Supprime un point d’entrée existant du service d’application.
| Nom | Type | Description |
|---|---|---|
| serviceId | Chaîne | Sys_id du service d’application auquel ajouter la connexion. |
| point de terminaison SysId | Chaîne | Sys_id du point d’entrée point de terminaison à supprimer. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant que le point d’entrée a été supprimé avec succès du service d’application. Valeurs possibles :
|
L’exemple suivant supprime le point d’entrée associé à Sys_id « aa65ebeedb91300964f6fa6629895ss » du service d’application donné.
var bsManager = new SNC.BusinessServiceManager();
var serviceId = "5bf65ebeedb91300964f6fa662989533";
var entrypointId = “aa65ebeedb91300964f6fa6629895ss”;
bsManager.removeEntryPoint(serviceId, entrypointId);
Sortie :
true
BusinessServiceManager : removeManualConnection(String source_id, String endpoint_id, String service_id)
Supprime une connexion créée manuellement et le CI connecté d’un service d’application.
| Nom | Type | Description |
|---|---|---|
| source_id | Chaîne | ID système du CI connecté au point de terminaison. |
| endpoint_id | Chaîne | ID système de la connexion créée manuellement à supprimer du service d’application |
| service_id | Chaîne | ID système du service d’application à partir duquel supprimer la connexion. |
| Type | Description |
|---|---|
| nul |
var bsManager = new SNC.BusinessServiceManager();
var appService = bsManager.removeManualConnection("3a307c930a0a0bb400353965d0b8861f", "60ce3176edb91300964f6fa6629895d1", "2fce42d80a0a0bb4004af34d7e3984c8");
BusinessServiceManager : updateEntryPoint(serviceId, endpointGr)
Met à jour un point d’entrée existant dans le service d’application.
| Nom | Type | Description |
|---|---|---|
| serviceId | Chaîne | Sys_id du service d’application auquel ajouter la connexion. |
| point de terminaison Gr | Objet | Objet d’enregistrement Glide dans la table Point de terminaison de CI [cmdb_ci_endpoint] ou sa table enfant à ajouter au service d’application. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant que la mise à jour a été appliquée avec succès au point d’entrée. Valeurs possibles :
|
L’exemple updateEntryPoint() suivant montre comment mettre à jour la connexion avec un nouveau point d’entrée.
var now_GR = new GlideRecord("cmdb_ci_endpoint_http");
now_GR.get(“11f65ebeedb91300964f6fa66298951”);
now_GR.setValue(“protocol”, “https”);
var bsManager = new SNC.BusinessServiceManager();
var serviceId = "5bf65ebeedb91300964f6fa662989533";
bsManager.updateEntryPoint(serviceId,now_GR);
Sortie :
true