2017-02-14 6 views
11

Я изучаю модуль python shade, чтобы автоматизировать некоторые задачи, используя нашу установку OpenStack.Аутентификация только через файл конфигурации?

Это page инструктирует:

Создайте файл конфигурации для хранения имя пользователя, пароль, PROJECT_NAME в ~/.config/OpenStack/clouds.yml.

У меня был близкий взгляд; но я не мог найти никакой информации о том, как предоставить учетные данные в разных способах; например, как параметры для некоторых объектов, которые я мог бы создать в коде python.

Короче говоря: это даже возможно? Или это требование сразу же заставляет меня «отступать»; и вместо этого использовать OpenStack python sdk?

ответ

4

Я не эксперт по python, но после некоторого поиска, как это делают другие «openclient» модули; может быть, следующее может работать (пример кода из вашей ссылке, просто немного усиления):

from shade import * 

auth_data = { 
# URL to the Keystone API endpoint. 
    'auth_url': 'url', 
# User credentials. 
'user_domain_name': ... 
} 

позже сделать это:

cloud = openstack_cloud(cloud='your-cloud', **auth_data) 
+0

Уход. Мне все равно, о точках репутации, но наверняка, я не собираюсь жаловаться на это :-) –

+0

И все-таки лучший ответ - так получилось! – GhostCat

0

Из того, что я понимаю, что это помещает какой бы то ни ключи, пароли и безопасность в файле yml, который мы используем с Travis.yml, и который остается в локальном каталоге и добавляется в git ignore.

Это, как говорится, используется функция python и twitter api, я уверен, что она использует или ссылается на программу под названием tweepy.

Это было очень полезно для нас и показалось, что оно может быть близко для вас.

Дайте мне знать, если это поможет.

with open("secrets.yml") as f: 
    content = f.read() 
# from secrets.yml import CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_SECRET 
secret = yaml.load(content) 
################################################################################################## 
# authorize tweepy with CONSUMER_KEY and CONSUMER_SECRET 
auth = tweepy.OAuthHandler(secret["CONSUMER_KEY"], secret["CONSUMER_SECRET"]) 
auth.secure = True 
# read in ACCESS_TOKEN and ACCESS_SECRET variables to tweepy 
auth.set_access_token(secret["ACCESS_TOKEN"], secret["ACCESS_SECRET"]) 
+0

Я проверю. Но, пожалуйста, удалите другой ответ - так как это не ответ, а комментарий! – GhostCat

+0

А потом; Я не уверен, что вы здесь делаете: A) Я действительно хочу использовать «как можно меньше ввода файла» B) Какой тип 'auth' имеет в вашем примере, и как это будет относиться к python' shades' библиотека ?! – GhostCat

+0

Библиотека оттенков не имеет ничего общего с tweepy, они оба являются питонами и работают вместе. Использование «как можно меньше ввода файла» является хорошим. Есть ли определенная причина, по которой вам нужно сократить свой код так много? С моим кодом мне нужно как можно быстрее запустить прототип, чтобы мы сгибали и настраивали код, чтобы заставить его работать, а не совершенствовать код. tweedy занял 5 минут – Yourdatatalking

Смежные вопросы