При использовании следующей команды, мы получаем обратно ответ с 145MB JSon полезной нагрузкой:Softlayer API вызов (для VirtualGuests) возвращает огромный дублированный ответ
curl -uuser:api-key https://api.softlayer.com/rest/v3/SoftLayer_Account/VirtualGuests?objectMask=powerState%3BoperatingSystem.passwords%3Bdatacenter%3BbillingItem%3BblockDevices.diskImage%3BtagReferences
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
12 145M 12 18.0M 0 0 321k 0 0:07:44 0:00:57 0:06:47 401k
Глядя на наших бревнах пары недель назад, то же самое звонок дал нам ответ примерно ~ 300 КБ. Поэтому мы считаем, что это недавняя ошибка в реализации API Softlayer.
Глядя на ответ json, происходит огромное количество повторений. Детали каждой виртуальной машины повторяются 394 раза.
Мы экспериментировали с различными вызовами API, и определили обходной путь: использовать tagReferences.tag.name
вместо tagReferences
:
curl -uuser:api-key https://api.softlayer.com/rest/v3/SoftLayer_Account/VirtualGuests?objectMask=powerState%3BoperatingSystem.passwords%3Bdatacenter%3BbillingItem%3BblockDevices.diskImage%3BtagReferences.tag.name
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 277k 100 277k 0 0 77421 0 0:00:03 0:00:03 --:--:-- 77426
Мы поражаем эту проблему в Apache Brooklyn, используя jclouds (см Brooklyn issue и обходной путь добавлен в jclouds в https://github.com/jclouds/jclouds/pull/1020). Те, кто использует существующие выпуски jclouds GA, по-прежнему будут затронуты этим.
Может ли SoftLayer подтвердить, является ли это ошибкой на их стороне, если и когда она будет исправлена, и есть ли лучшее обходное решение?
Я подал заявку на поддержку Softlayer в первую очередь - они сказали: «Что касается ваших вопросов API, вы должны направить их на следующую ссылку, поскольку они смогут лучше помочь вам в этом случае». –
Повторение каждой VM 394 раз кажется очень чрезмерным и неожиданным - я не думаю, что это просто связано с данными реляционных атрибутов. Пару недель назад мы получали ~ 300 КБ; теперь мы получаем 154 МБ в ответе (без значительного разного количества виртуальных машин). Поэтому я снова подниму его поддержкой Softlayer. –