2017-02-02 2 views
2

Команда # 1SoftLayer SLCLI Filter Object Синтаксис - Дата и булевы Сравнения

slcli call-api Account getUsers --mask=username,secondaryLoginRequiredFlag --filter 'users.secondaryLoginRequiredFlag!=True' 
  • Цель = Показать имена пользователей для всех пользователей, не требуется, чтобы ответить на вопрос безопасности при входе в
  • Проблема = Фильтр объектов с Boolean-сопоставлением не работает
  • Вопрос = Как выполнить булевы сравнения в ob ject фильтр?

Command # 2

slcli call-api Account getUsers --mask=username,successfulLogins.createDate,successfulLogins.ipAddres --filter 'users.successfulLogins.createDate>=2017-01-01T00:00:00-06:00' 
  • Цель = Показать имена пользователей и успешные метки времени входа в систему для всех пользователей, которые успешно авторизованы в течение последнего (примерно) 60 дней
  • Проблема = Фильтр объекта с сопоставлением даты не работает
  • Вопрос = Как один m сравнение даты в объектном фильтре?

ответ

1

Currenlty объектных фильтры, использующие SCLI не полностью поддерживают это работает только с некоторыми случаями, такими, как это:

slcli call-api Account getUsers --mask=username,secondaryLoginRequiredFlag --filter "users.username=sl307608-rcabero" 

другое дело, что он только работает на равном случай, вы можете проверить что в коде:

https://github.com/softlayer/softlayer-python/blob/master/SoftLayer/CLI/call_api.py#L17-L19

Так что, если вам действительно нужны objectFilters лучший вариант, это использовать питон скрипт для этого и не использовать SCLI:

эту статью для получения дополнительной информации:

https://sldn.softlayer.com/article/object-filters

Также вы можете представить этот вопрос на клиенте Softlayer Python:

https://github.com/softlayer/softlayer-python/issues

Но я не уверен, что они будут фиксировать скоро.

здесь пример, используя Python скрипт

import SoftLayer 

# Your SoftLayer API username and key. 
USERNAME = 'set me' 
API_KEY = 'set me' 

client = SoftLayer.Client(username=USERNAME, api_key=API_KEY) 
accountService = client['SoftLayer_Account'] 

# Filter the users whose secondaryLoginRequiredFlag = false 
filterLoginFalse = {"users":{"secondaryLoginRequiredFlag":{"operation": "!= 1"}}} 
# Filter the users whose secondaryLoginRequiredFlag = null 
filterLoginNull = {"users":{"secondaryLoginRequiredFlag":{"operation": "is null"}}} 

userLoginFalse = accountService.getUsers(filter=filterLoginFalse) 
userLoginNull = accountService.getUsers(filter=filterLoginNull) 

users = userLoginFalse + userLoginNull 

print (users) 

# Filter the users created betwern a derteminated date the date must have the following format mm/dd/YY 
filterDate = {"users":{"createDate":{"operation":"betweenDate","options":[{"name":"startDate","value":["2/4/2014 00:00:00"]},{"name":"endDate","value":["2/4/2014 10:40:00"]}]}}} 
users = accountService.getUsers(filter=filterDate) 

print (users) 

С уважением

+0

Спасибо за вход. Мне может потребоваться отойти от SLCLI и использовать язык программирования (например, Python), чтобы использовать фильтры, описанные выше. –

+0

позвольте мне сказать, если они работают, и я дам вам знать –

+0

Возможно, я добавил код в ответ –