CMDBGroupAPI - Com escopo

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 9 min. de leitura
  • A CMDBGroupAPI fornece métodos para executar ações em grupos Configuration Management Database (CMDB).

    Esta API é uma classe estática com escopo. Para usar esta classe, você deve incluir o identificador de namespace sn_cmdbgroup antes do objeto CMDBGroupAPI. Por exemplo:
    var response = sn_cmdbgroup.CMDBGroupAPI.getManualCIList(groupSysId, false);

    Para acessar esta API, você deve ter a função itil ou asset.

    CMDBGroupAPI - getAllCI(cadeia de caracteres groupId, Booliano exigemCompleteSet, Booliano exigemAllQueryNodesCis)

    Retorna todos os itens de configuração (ICs) do grupo especificado. Os resultados incluem todos os ICs manuais e a lista de ICs da consulta salva do construtor de consultas.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    groupId Cadeia de caracteres Sys_id do grupo do Configuration Management Database (CMDB).
    requerConjuntoConcluído Booliano Opcional, mas deve ser aprovado se requireAllQueryNodesCis for aprovado.

    Sinalizador que indica se uma cadeia de caracteres vazia será retornada se algum IC for filtrado por restrições da ACL (lista de controle de acesso).

    Valores válidos:
    • verdadeiro: retorna uma cadeia de caracteres vazia.
    • falso: não retorna valor.

    Padrão: falso

    requeremTodosConsultaNodesCis Booliano Opcional. Sinalizador que indica se devem ser retornados ICs de todas as classes do CMDB da consulta.
    Valores válidos:
    • verdadeiro: retorna ICs de todas as colunas.
    • falso: retorna somente ICs do nó inicial da consulta do construtor de consultas.

    Padrão: falso

    Tabela 2. Retorna
    Tipo Descrição
    erros Lista de erros de uma operação com falha.

    Tipo de dados: matriz

    "errors": [ 
      {
        "message": "String",
        "error": "String"
      } 
    ]
    erros.erro Nome do erro.
    Valores possíveis:
    • GRUPO_SYS_ID_NÃO É ENCONTRADO
    • GRUPO_SYS_ID_EST_EMPTY
    • FAIL_TO_INSERT_GROUP_CI_PAIR
    • FAIL_TO_INSERT_GROUP_QUERY_ID_PAIR
    • CI_NÃO_FOD
    • SAVED_QUERY_ID_NÃO_ENCONTRADO
    • ERRO_DURING_QUERY_BUILDER_PROCESS_QUERY
    • TIMEOUT_DURING_QUERY_BUILDER_PROCESS_QUERY
    • NOT_COMPLETE_DURING_QUERY_BUILDER_PROCESS_QUERY
    • MAX_LIMIT_DURING_QUERY_BUILDER_PROCESS_QUERY
    • GROUP_API_TIMEOUT
    • EXCEÇÃO_DE_EXECUTE_QUERY
    • SOME_CI_NOT_VISIBLE_DUE_TO_SECURITY_CONSTRAINT

    Tipo de dados: cadeia de caracteres

    erros.mensagem Breve descrição da mensagem de erro.

    Tipo de dados: cadeia de caracteres

    IdList Lista de sys_ids de IC do CMDB.

    Tipo de dados: matriz

    parcialCIListDueToACLFlag Sinalizador que indica se a lista de ICs retornados está incompleta devido a restrições de ACL.
    Nota:
    Isso não é considerado uma condição de erro e nenhuma informação de erro correspondente é retornada.

    Tipo de dados: booliano

    Valores válidos:
    • verdadeiro: idList está incompleto.
    • falso: idList está concluído.
    resultado Sinalizador que indica se o método foi concluído com sucesso.
    Valores possíveis:
    • verdadeiro: sucesso
    • falso: erro
    // Script example: 
    var getAllCIFunc = function(groupSysId) {
      var parser = new JSONParser();
      var response = sn_cmdbgroup.CMDBGroupAPI.getAllCI(groupSysId, false);
      var parsed = parser.parse(response);
      if (parsed.result) {
        gs.info("succeed to retrieve ci list: " + parsed.idList);
      } else {
        gs.info("fail to retrieve list, errors: " + JSON.stringify(parsed.errors));
      }
    }
    var groupExists = "d0d2d25113152200eef2dd828144b0e4";
    var groupContainsInvalidSavedQuery = "e685a2c3d7012200de92a5f75e610387";
    getAllCIFunc(groupExists);
    getAllCIFunc(groupContainsInvalidSavedQuery);

    Saída:

    // Successful response
    {
      'result':true, 
      'partialCIListDueToACLFlag': false,
      'idList':[
        '3a5dd3dbc0a8ce0100655f1ec66ed42c',
        '6b43105c37301000deeabfc8bcbe5db2'
      ] 
    }
    
    // Error response
    { 
      'result':false, 
      'errors':[ 
        {
          'message':'Group does not exist',
          'error':'GROUP_SYS_ID_IS_NOT_FOUND'
        } 
      ], 
      'partialCIListDueToACLFlag':false,
      'idList':[] 
    }

    CMDBGroupAPI - getAllCIFromQueryBuilder(cadeia de caracteres groupId, booliano exigemCompleteSet, booliano exigemAllQueryNodesCis)

    Retorna todos os itens de configuração (ICs) retornados de todos os IDs de consulta dos construtores de consulta salvos para o grupo especificado.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    groupId Cadeia de caracteres Sys_id do grupo do Configuration Management Database (CMDB).
    requerConjuntoConcluído Booliano Opcional, mas deve ser aprovado se requireAllQueryNodesCis for aprovado.

    Sinalizador que indica se uma cadeia de caracteres vazia será retornada se algum IC for filtrado por restrições da ACL (lista de controle de acesso).

    Valores válidos:
    • verdadeiro: retorna uma cadeia de caracteres vazia.
    • falso: não retorna valor.

    Padrão: falso

    requeremTodosConsultaNodesCis Booliano Opcional. Sinalizador que indica se devem ser retornados ICs de todas as classes do CMDB da consulta.
    Valores válidos:
    • verdadeiro: retorna ICs de todas as colunas.
    • falso: retorna somente ICs do nó inicial da consulta do construtor de consultas.

    Padrão: falso

    Tabela 4. Retorna
    Tipo Descrição
    erros Lista de erros de uma operação com falha.

    Tipo de dados: matriz

    "errors": [ 
      {
        "message": "String",
        "error": "String"
      } 
    ]
    erros.erro Nome do erro.
    Valores possíveis:
    • GRUPO_SYS_ID_NÃO É ENCONTRADO
    • GRUPO_SYS_ID_EST_EMPTY
    • FAIL_TO_INSERT_GROUP_CI_PAIR
    • FAIL_TO_INSERT_GROUP_QUERY_ID_PAIR
    • CI_NÃO_FOD
    • SAVED_QUERY_ID_NÃO_ENCONTRADO
    • ERRO_DURING_QUERY_BUILDER_PROCESS_QUERY
    • TIMEOUT_DURING_QUERY_BUILDER_PROCESS_QUERY
    • NOT_COMPLETE_DURING_QUERY_BUILDER_PROCESS_QUERY
    • MAX_LIMIT_DURING_QUERY_BUILDER_PROCESS_QUERY
    • GROUP_API_TIMEOUT
    • EXCEÇÃO_DE_EXECUTE_QUERY
    • SOME_CI_NOT_VISIBLE_DUE_TO_SECURITY_CONSTRAINT

    Tipo de dados: cadeia de caracteres

    erros.mensagem Breve descrição da mensagem de erro.

    Tipo de dados: cadeia de caracteres

    IdList Lista de sys_ids de IC do CMDB.

    Tipo de dados: matriz

    parcialCIListDueToACLFlag Sinalizador que indica se a lista de ICs retornados está incompleta devido a restrições de ACL.
    Nota:
    Isso não é considerado uma condição de erro e nenhuma informação de erro correspondente é retornada.

    Tipo de dados: booliano

    Valores válidos:
    • verdadeiro: idList está incompleto.
    • falso: idList está concluído.
    resultado Sinalizador que indica se o método foi concluído com sucesso.
    Valores possíveis:
    • verdadeiro: sucesso
    • falso: erro
    // Script example:
    var getAllCIFromQueryBuilderFunc = function(groupSysId) {
      var parser = new JSONParser();
      var response = sn_cmdbgroup.CMDBGroupAPI.getAllCIFromQueryBuilder(groupSysId, false);
      var parsed = parser.parse(response);
      if (parsed.result) {
        gs.info("succeed to retrieve ci list: " + parsed.idList);
      } else {
        gs.info("fail to retrieve list, errors: " + JSON.stringify(parsed.errors));
      }
    }
    var groupExists = "d0d2d25113152200eef2dd828144b0e4";
    var groupContainsInvalidSavedQuery = "e685a2c3d7012200de92a5f75e610387";
    getAllCIFromQueryBuilderFunc(groupExists);
    getAllCIFromQueryBuilderFunc(groupContainsInvalidSavedQuery);

    Saída:

    // Successful response
    {
      'result':true, 
      'partialCIListDueToACLFlag': false,
      'idList':[
        '3a5dd3dbc0a8ce0100655f1ec66ed42c',
        '6b43105c37301000deeabfc8bcbe5db2'
      ] 
    }
    
    // Error response
    { 
      'result':false, 
      'errors':[ 
        {'message':'Group does not exist',
        'error':'GROUP_SYS_ID_IS_NOT_FOUND'} 
      ], 
      'partialCIListDueToACLFlag':false,
      'idList':[] 
    }

    CMDBGroupAPI - getManualCIList(cadeia de caracteres groupId, booliano exigemCompleteSet)

    Retorna a lista de ICs manuais do grupo do CMDB.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    groupId Cadeia de caracteres O sysId do grupo do CMDB.
    requerConjuntoConcluído Booliano Quando verdadeiro, retorna uma cadeia de caracteres de erro se algum IC for filtrado por restrições de ACL.
    Tabela 6. Retorna
    Tipo Descrição
    Cadeia de caracteres Uma cadeia de caracteres no formato JSON no formato
    { 'result':false, 
    'errors':[ {'message':'Group does not exist',
                'error':'GROUP_SYS_ID_IS_NOT_FOUND'},
     { } // another error if it exists 
     ], 
    'partialCIListDueToACLFlag':false,
    'idList':['sys_id_1', 'sys_id2'] }
    Em que
    • resultado - um sinalizador booliano. Quando verdadeiro, o método foi bem-sucedido.
    • erros - uma lista de erros com uma mensagem e código de erro.
    • parcialCIListDueToACLFlag - um sinalizador booliano. Quando verdadeiro, o idList está incompleto devido a uma restrição de ACL. Quando falso, o idList está concluído.
    • idList - uma matriz de cmdb_ci sys_ids

    When not successful, returns one of the errors GROUP_SYS_ID_IS_NOT_FOUND, GROUP_SYS_ID_IS_EMPTY, FAIL_TO_INSERT_GROUP_CI_PAIR, FAIL_TO_INSERT_GROUP_QUERY_ID_PAIR, CI_CAN_NOT_FOUND, SAVED_QUERY_ID_NOT_FOUND, ERROR_DURING_QUERY_BUILDER_PROCESS_QUERY, TIMEOUT_DURING_QUERY_BUILDER_PROCESS_QUERY, NOT_COMPLETE_DURING_QUERY_BUILDER_PROCESS_QUERY, MAX_LIMIT_DURING_QUERY_BUILDER_PROCESS_QUERY, GROUP_API_TIMEOUT, EXCEPTION_FROM_EXECUTE_QUERY, SOME_CI_NOT_VISIBLE_DUE_TO_SECURITY_CONSTRAINT

    // Script example for requireCompleteSet being false:
        var getManualCIList = function(groupSysId) {
        var parser = new JSONParser();
        var response = sn_cmdbgroup.CMDBGroupAPI.getManualCIList(groupSysId, false);
        var parsed = parser.parse(response);
        if (parsed.result) {
            gs.info("succeed to retrieve ci list: " + parsed.idList);
        } else {
            gs.info("fail to retrieve list, errors: " + JSON.stringify(parsed.errors));
        }
    }
    // create a group in cmdb_group, and add CIs to this group in Edit Manual CI form
    var groupExists = "d0d2d25113152200eef2dd828144b0e4";
    // use a non-exist group
    var groupDoesNotExists = "d0d2d25113152200eef2dd828144b0e4111";
    getManualCIList(groupExists);
    getManualCIList(groupDoesNotExists);
     

    Saída: (quebras de linha adicionadas para formatação).

    succeed to retrieve ci 
    list: 6b43105c37301000deeabfc8bcbe5db2,2dfd7c8437201000deeabfc8bcbe5d56
    fail to retrieve list, errors: 
    [{"message":"Group does not exist","error":"GROUP_SYS_ID_IS_NOT_FOUND"}]
    // Script example for requireCompleteSet being true
        var getManualCIList = function(groupSysId) {
        var parser = new JSONParser();
        var response = sn_cmdbgroup.CMDBGroupAPI.getManualCIList(groupSysId, true);
        var parsed = parser.parse(response);
        if (parsed.result) {
            gs.info("succeed to retrieve ci list: " + parsed.idList);
        } else {
            gs.info("fail to retrieve list, errors: " + JSON.stringify(parsed.errors));
        }
    }
    // create a group in cmdb_group, and add CIs to this group in Edit Manual CI form
    var groupExists = "d0d2d25113152200eef2dd828144b0e4";
    getManualCIList(groupExists);

    Saída: (quebras de linha adicionadas para formatação).

    fail to retrieve list, errors: 
    [{"message":"Some CI(s) not visible due to security constraint",
    "error":"SOME_CI_NOT_VISIBLE_DUE_TO_SECURITY_CONSTRAINT"}]

    CMDBGroupAPI - getSavedQueryIdList(cadeia de caracteres groupId, booliano exigemCompleteSet)

    Retorna os IDs de consulta do construtor de consultas para o grupo do CMDB especificado.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    groupId Cadeia de caracteres O sysId do grupo do CMDB.
    requerConjuntoConcluído Booliano Quando verdadeiro, retorna uma cadeia de caracteres vazia se algum IC for filtrado por restrições de ACL.
    Tabela 8. Retorna
    Tipo Descrição
    Cadeia de caracteres Uma cadeia de caracteres no formato JSON no formato
    { 'result':false, 
    'errors':[ {'message':'Group does not exist',
                'error':'GROUP_SYS_ID_IS_NOT_FOUND'},
     { } // another error if it exists 
     ], 
    'partialCIListDueToACLFlag':false,
    'idList':['sys_id_1', 'sys_id2'] }
    Em que
    • resultado - um sinalizador booliano. Quando verdadeiro, o método foi bem-sucedido.
    • erros - uma lista de erros com uma mensagem e código de erro.
    • parcialCIListDueToACLFlag - um sinalizador booliano. Quando verdadeiro, o idList está incompleto devido a uma restrição de ACL. Quando falso, o idList está concluído.
    • idList - uma matriz de cmdb_ci sys_ids

    When not successful, returns one of the errors GROUP_SYS_ID_IS_NOT_FOUND, GROUP_SYS_ID_IS_EMPTY, FAIL_TO_INSERT_GROUP_CI_PAIR, FAIL_TO_INSERT_GROUP_QUERY_ID_PAIR, CI_CAN_NOT_FOUND, SAVED_QUERY_ID_NOT_FOUND, ERROR_DURING_QUERY_BUILDER_PROCESS_QUERY, TIMEOUT_DURING_QUERY_BUILDER_PROCESS_QUERY, NOT_COMPLETE_DURING_QUERY_BUILDER_PROCESS_QUERY, MAX_LIMIT_DURING_QUERY_BUILDER_PROCESS_QUERY, GROUP_API_TIMEOUT, EXCEPTION_FROM_EXECUTE_QUERY, SOME_CI_NOT_VISIBLE_DUE_TO_SECURITY_CONSTRAINT

    // Script example:
    var getSavedQueryIdList = function(groupSysId) {
        var parser = new JSONParser();
        var response = sn_cmdbgroup.CMDBGroupAPI.getSavedQueryIdList(groupSysId, false);
        var parsed = parser.parse(response);
        if (parsed.result) {
            gs.info("succeed to retrieve saved query id list: " + parsed.idList);
        } else {
            gs.info("fail to retrieve list, errors: " + JSON.stringify(parsed.errors));
        }
    }
    var groupExists = "d0d2d25113152200eef2dd828144b0e4";
    var groupDoesNotExists = "d0d2d25113152200eef2dd828144b0e4111";
    getSavedQueryIdList(groupExists);
    getSavedQueryIdList(groupDoesNotExists);

    Saída: (quebras de linha adicionadas para formatação).

    succeed to retrieve saved query id list: 5d498532d7c12200de92a5f75e6103ce
    fail to retrieve list, errors:
     [{"message":"Group does not exist","error":"GROUP_SYS_ID_IS_NOT_FOUND"}]

    CMDBGroupAPI - setManualCIList(cadeia de caracteres groupId, cadeia de caracteres ciSysIds)

    Define a lista de ICs manuais para o grupo especificado. A lista de ICs manuais existente é substituída. sysIds de IC não encontrados na tabela cmdb_ci são ignorados.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    groupId Cadeia de caracteres O sysId do grupo do CMDB.
    ciSysIds Cadeia de caracteres Lista separada por vírgulas de sysIds de IC.
    Tabela 10. Retorna
    Tipo Descrição
    Cadeia de caracteres Uma cadeia de caracteres no formato JSON no formato
    { 'result':false, 
    'errors':[ {'message':'Group does not exist',
                'error':'GROUP_SYS_ID_IS_NOT_FOUND'},
     { } // another error if it exists 
     ], 
    'partialCIListDueToACLFlag':false,
    'idList':['sys_id_1', 'sys_id2'] }
    Em que
    • resultado - um sinalizador booliano. Quando verdadeiro, o método foi bem-sucedido.
    • erros - uma lista de erros com uma mensagem e código de erro.
    • parcialCIListDueToACLFlag - um sinalizador booliano. Quando verdadeiro, o idList está incompleto devido a uma restrição de ACL. Quando falso, o idList está concluído.
    • idList - uma matriz de cmdb_ci sys_ids

    When not successful, returns one of the errors GROUP_SYS_ID_IS_NOT_FOUND, GROUP_SYS_ID_IS_EMPTY, FAIL_TO_INSERT_GROUP_CI_PAIR, FAIL_TO_INSERT_GROUP_QUERY_ID_PAIR, CI_CAN_NOT_FOUND, SAVED_QUERY_ID_NOT_FOUND, ERROR_DURING_QUERY_BUILDER_PROCESS_QUERY, TIMEOUT_DURING_QUERY_BUILDER_PROCESS_QUERY, NOT_COMPLETE_DURING_QUERY_BUILDER_PROCESS_QUERY, MAX_LIMIT_DURING_QUERY_BUILDER_PROCESS_QUERY, GROUP_API_TIMEOUT, EXCEPTION_FROM_EXECUTE_QUERY, SOME_CI_NOT_VISIBLE_DUE_TO_SECURITY_CONSTRAINT

    // Script example:
    var setManualCIListFunc = function(groupSysId, manualCIList) {
        var parser = new JSONParser();
        var response = sn_cmdbgroup.CMDBGroupAPI.setManualCIList(groupSysId, manualCIList);
        var parsed = parser.parse(response);
        if (parsed.result) {
            gs.info("succeed to set manual ci list");
        } else {
            gs.info("fail to set manual ci list, errors: " + JSON.stringify(parsed.errors));
        }
    }
    var group = "d0d2d25113152200eef2dd828144b0e4";
    var groupDoesNotExist = "1234";
    var manualCIList = "b4fd7c8437201000deeabfc8bcbe5dc1, affd3c8437201000deeabfc8bcbe5dc3";
    setManualCIListFunc(group, manualCIList);
    setManualCIListFunc(groupDoesNotExist, manualCIList);

    Saída: (quebras de linha adicionadas para formatação).

    succeed to set manual ci list
    fail to set manual ci list, errors: [{"message":"Group does not exist","error":
    "GROUP_SYS_ID_IS_NOT_FOUND"}]

    CMDBGroupAPI - setSavedQueryIdList(cadeia de caracteres groupId, cadeia de caracteres queryIds)

    Define a lista de IDs de consulta salva para o grupo especificado. A lista de ID de consulta existente é substituída. Os sysIds de consulta não encontrados na tabela qb_saved_query são ignorados.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    groupId Cadeia de caracteres O sysId do grupo do CMDB.
    queryIds Cadeia de caracteres Lista separada por vírgulas de sysIds de consulta salva.
    Tabela 12. Retorna
    Tipo Descrição
    Cadeia de caracteres Uma cadeia de caracteres no formato JSON no formato
    { 'result':false, 
    'errors':[ {'message':'Group does not exist',
                'error':'GROUP_SYS_ID_IS_NOT_FOUND'},
     { } // another error if it exists 
     ], 
    'partialCIListDueToACLFlag':false,
    'idList':['sys_id_1', 'sys_id2'] }
    Em que
    • resultado - um sinalizador booliano. Quando verdadeiro, o método foi bem-sucedido.
    • erros - uma lista de erros com uma mensagem e código de erro.
    • parcialCIListDueToACLFlag - um sinalizador booliano. Quando verdadeiro, o idList está incompleto devido a uma restrição de ACL. Quando falso, o idList está concluído.
    • idList - uma matriz de cmdb_ci sys_ids

    When not successful, returns one of the errors GROUP_SYS_ID_IS_NOT_FOUND, GROUP_SYS_ID_IS_EMPTY, FAIL_TO_INSERT_GROUP_CI_PAIR, FAIL_TO_INSERT_GROUP_QUERY_ID_PAIR, CI_CAN_NOT_FOUND, SAVED_QUERY_ID_NOT_FOUND, ERROR_DURING_QUERY_BUILDER_PROCESS_QUERY, TIMEOUT_DURING_QUERY_BUILDER_PROCESS_QUERY, NOT_COMPLETE_DURING_QUERY_BUILDER_PROCESS_QUERY, MAX_LIMIT_DURING_QUERY_BUILDER_PROCESS_QUERY, GROUP_API_TIMEOUT, EXCEPTION_FROM_EXECUTE_QUERY, SOME_CI_NOT_VISIBLE_DUE_TO_SECURITY_CONSTRAINT

    // Script example:
    var setSavedQueryIdListFunc = function(groupSysId, queryIdList) {
        var parser = new JSONParser();
        var response = sn_cmdbgroup.CMDBGroupAPI.setSavedQueryIdList(groupSysId, queryIdList);
        var parsed = parser.parse(response);
        if (parsed.result) {
            gs.info("succeed to set saved query id list");
        } else {
            gs.info("fail to set saved query id list, errors: " + JSON.stringify(parsed.errors));
        }
    }
    var group = "d0d2d25113152200eef2dd828144b0e4";
    var savedQueryBuilderIdList = "394585fed7812200de92a5f75e6103e8";
    var savedQueryBuilderIdNotExistList = "b4fd7c8437201000deeabfc8bcbe5dc1,
       affd3c8437201000deeabfc8bcbe5dc3";
     
    setSavedQueryIdListFunc(group, savedQueryBuilderIdList);
    setSavedQueryIdListFunc(group, savedQueryBuilderIdNotExistList);
    

    Saída: (quebras de linha adicionadas para formatação).

    succeed to set saved query id list
    fail to set saved query id list, errors: [{"message":
    "Saved query id(b4fd7c8437201000deeabfc8bcbe5dc1) is not found for 
    group(d0d2d25113152200eef2dd828144b0e4)","error":
    "SAVED_QUERY_ID_NOT_FOUND"},{"message":
    "Saved query id(affd3c8437201000deeabfc8bcbe5dc3) is not found for 
    group(d0d2d25113152200eef2dd828144b0e4)","error":"SAVED_QUERY_ID_NOT_FOUND"}]