Метод security_updates для Python SDK list_computers объекта security_updates всегда отсутствует

#deepsecurity

#deepsecurity

Вопрос:

Пытаюсь добавить в отчет значение для обновлений безопасности на компьютерных объектах. используя метод list_computers с python SDK и используя AWS TM 11.3.184.

Ссылка на метод:https://automation.deepsecurity.trendmicro.com/article/11_3/api-reference ?платформа = aws#operation/Список компьютеров

Согласно документации SDK внутри возвращаемого значения должен быть объект securityUpdates (действительно security_updates в python return), который содержит объект status внутри. Однако тестирование, похоже, показывает, что пока security_updates существует, его значение всегда равно None

Примечание: Кстати, вторичная проблема, которую следует отметить, заключается в том, что ссылка на API python SDK показывает camelcase (предполагая, что Java SDK возвращает как таковой), но реальный возврат — это случай snake.

Я перепроверил с помощью консоли и, посмотрев на компьютер, для которого установлен статус обновления системы безопасности «Актуально», объект в возврате вызова API по-прежнему показывает None вместо этого. В сокращенном коде можно увидеть конец возврата объекта computer для этого случая

  'last_agent_communication': 1554232722261,
 'last_appliance_communication': None,
 'last_ip_used': '10.254.253.126',
 'last_send_policy_request': 1554148882568,
 'last_send_policy_success': 1554148896261,
 'log_inspection': {'module_status': {'agent_status': 'inactive',
                                      'agent_status_message': 'Off, not '
                                                              'installed, '
                                                              'no rules',
                                      'appliance_status': None,
                                      'appliance_status_message': None},
                    'rule_ids': None,
                    'state': 'off'},
 'no_connector_virtual_machine_summary': None,
 'platform': 'Amazon Linux (64 bit) (4.14.77-70.59.amzn1.x86_64)',
 'policy_id': 4,
 'relay_list_id': None,
 'sap': None,
 'security_updates': None,
 'tasks': None,
 'vmware_vm_virtual_machine_summary': None,
 'web_reputation': {'module_status': {'agent_status': 'inactive',
                                      'agent_status_message': 'Off, not '
                                                              'installed',
                                      'appliance_status': None,
                                      'appliance_status_message': None},
                    'state': 'off'},
 'workspace_virtual_machine_summary': None},
  

Ожидаемый, как и в документации API, возврат, аналогичный этому, вместо None (в случае snake, конечно, на самом деле это скопировано из ссылки API):

 "securityUpdates": {
"updateStatus": {
"status": "inactive",
"statusMessage": "string"
},
"lastChanged": 0,
"rules": [],
"antiMalware": [],
"webReputationService": [],
"manifests": [],
"other": []
},
  

Комментарии:

1. К вашему сведению, начиная с Deep Security 12.0 и более поздних версий, информация об обновлениях безопасности доступна.

Ответ №1:

Вы нашли то, что я назову «случайным предварительным просмотром будущих функций DS API». Хотя есть ошибка docs, которая означает, что securityUpdates виден, это не функциональность, предлагаемая в DS 11.3. У моей команды есть возможность исправить ошибку docs в ближайшее время, но мне жаль видеть, что вы тем временем на это попались.

Что касается ссылки на API в случае с верблюдом / змеей… ссылка на API показывает JSON «по проводам», отправленный из DSM, который использует camelCase. Когда python SDK получает JSON, он присваивает значения переменным snake_case (другие пакеты SDK присваиваются camelCase, или такой инструмент, как Postman, напрямую отображает JSON). Я вижу, насколько это сбивает с толку, поскольку str () объектов python выглядит аналогично json.

Я надеюсь, что это помогает разобраться в вещах, и что в остальном использование python SDK идет вам на пользу!

P.S. Я работаю в R amp; D для Trend Micro Deep Security

Комментарии:

1. Спасибо за информацию. Когда вы говорите «это не функциональность, предлагаемая в DS 11.3», вы имели в виду, что пока нет, или что это будет в выпуске 11.4 ? Также есть ETA? Camelcase / snakecase не вызывал проблем, но я заметил, что это может вызвать путаницу, когда я пытался (как здесь) ссылаться на выходные данные в сравнении с примерами документации. Я полагал, что по умолчанию используется camelcase из-за других случаев, таких как rest / java, предположительно использующих этот синтаксис. Предположим, что не слишком много работы по обновлению версии python на странице doc, чтобы отразить форму вывода SDK, было бы идеально, в противном случае это не огромная потеря.

2. Мы исправляем ошибку docs, из-за которой обновления безопасности отображались в версии 11.3, но сама функция появится в будущей версии (я не могу сказать, когда, кроме как сказать «скоро», извините). И, чтобы уточнить, проблема с документами в camelCase заключается в том, что мы показываем значения JSON (то, что вы бы увидели, используя такой инструмент, как postman, вместо SDK), так что это вообще не зависит от языка. Если в будущем мы действительно покажем результат, специфичный для SDK, мы обязательно должны убедиться, что python использовал snakecase.