Added glance keystone user resource instance

This commit is contained in:
Przemyslaw Kaminski 2015-05-28 15:17:25 +02:00
parent b104d3706f
commit 6176cf0e17
5 changed files with 22 additions and 20 deletions

View File

@ -11,6 +11,7 @@ from solar.core import validation
from solar.interfaces.db import get_db from solar.interfaces.db import get_db
@click.group() @click.group()
def main(): def main():
pass pass
@ -44,6 +45,8 @@ def deploy():
glance_db = resource.create('glance_db', 'resources/mariadb_db/', {'db_name':'glance_db', 'login_password':'', 'login_user':'root', 'login_port': '', 'ip':'', 'ssh_user':'', 'ssh_key':''}) glance_db = resource.create('glance_db', 'resources/mariadb_db/', {'db_name':'glance_db', 'login_password':'', 'login_user':'root', 'login_port': '', 'ip':'', 'ssh_user':'', 'ssh_key':''})
glance_db_user = resource.create('glance_db_user', 'resources/mariadb_user/', {'new_user_name' : 'glance', 'new_user_password' : 'glance', 'db_name':'', 'login_password':'', 'login_user':'root', 'login_port': '', 'ip':'', 'ssh_user':'', 'ssh_key':''}) glance_db_user = resource.create('glance_db_user', 'resources/mariadb_user/', {'new_user_name' : 'glance', 'new_user_password' : 'glance', 'db_name':'', 'login_password':'', 'login_user':'root', 'login_port': '', 'ip':'', 'ssh_user':'', 'ssh_key':''})
glance_keystone_user = resource.create('glance_keystone_user', 'resources/keystone_user', {'user_name': 'glance_admin', 'user_password': 'password1234', 'tenant_name': 'service_admins', 'keystone_host': '', 'keystone_port': '', 'login_user': '', 'login_token': '', 'ip': '', 'ssh_key': '', 'ssh_user': ''})
glance_config = resource.create('glance_config', 'resources/glance_config/', {'ip': '', 'ssh_key': '', 'ssh_user': '', 'keystone_ip': '', 'keystone_port': '', 'config_dir': {}, 'api_port': '', 'registry_port': '', 'mysql_ip': '', 'mysql_db': '', 'mysql_user': '', 'mysql_password': '', 'keystone_admin_user': '', 'keystone_admin_password': '', 'keystone_admin_tenant': ''}) glance_config = resource.create('glance_config', 'resources/glance_config/', {'ip': '', 'ssh_key': '', 'ssh_user': '', 'keystone_ip': '', 'keystone_port': '', 'config_dir': {}, 'api_port': '', 'registry_port': '', 'mysql_ip': '', 'mysql_db': '', 'mysql_user': '', 'mysql_password': '', 'keystone_admin_user': '', 'keystone_admin_password': '', 'keystone_admin_tenant': ''})
glance_container = resource.create('glance_container', 'resources/docker_container/', {'image' : 'krystism/openstack-glance', 'ports': [{'value': [{'value': 9191}, {'value': 9292}]}], 'host_binds': [], 'volume_binds':[], 'ip':'', 'ssh_key':'', 'ssh_user':''}) glance_container = resource.create('glance_container', 'resources/docker_container/', {'image' : 'krystism/openstack-glance', 'ports': [{'value': [{'value': 9191}, {'value': 9292}]}], 'host_binds': [], 'volume_binds':[], 'ip':'', 'ssh_key':'', 'ssh_user':''})
@ -87,13 +90,21 @@ def deploy():
signals.connect(node2, haproxy_service) signals.connect(node2, haproxy_service)
signals.connect(haproxy_config, haproxy_service, {'listen_ports': 'ports', 'config_dir': 'host_binds'}) signals.connect(haproxy_config, haproxy_service, {'listen_ports': 'ports', 'config_dir': 'host_binds'})
# glance # glance db
signals.connect(node1, glance_db) signals.connect(node1, glance_db)
signals.connect(mariadb_service1, glance_db, {'root_password':'login_password', 'port':'login_port'}) signals.connect(mariadb_service1, glance_db, {'root_password': 'login_password', 'port': 'login_port'})
signals.connect(node1, glance_db_user) signals.connect(node1, glance_db_user)
signals.connect(mariadb_service1, glance_db_user, {'root_password':'login_password', 'port':'login_port'}) signals.connect(mariadb_service1, glance_db_user, {'root_password': 'login_password', 'port': 'login_port'})
signals.connect(glance_db, glance_db_user, {'db_name':'db_name'}) signals.connect(glance_db, glance_db_user, {'db_name': 'db_name'})
# glance keystone user
signals.connect(haproxy_keystone_config, glance_keystone_user, {'listen_port': 'keystone_port'})
signals.connect(haproxy_service, glance_keystone_user) # standard ip, ssh_key, ssh_user
signals.connect(haproxy_service, glance_keystone_user, {'ip': 'keystone_host'})
signals.connect(keystone_config1, glance_keystone_user, {'admin_token': 'login_token'})
signals.connect(glance_keystone_user, glance_config, {'user_name': 'keystone_admin_user', 'user_password': 'keystone_admin_password', 'tenant_name': 'keystone_admin_tenant'})
# glance
signals.connect(node3, glance_config) signals.connect(node3, glance_config)
signals.connect(haproxy_keystone_config, glance_config, {'listen_port': 'keystone_port'}) signals.connect(haproxy_keystone_config, glance_config, {'listen_port': 'keystone_port'})
signals.connect(haproxy_service, glance_config, {'ip': 'keystone_ip'}) signals.connect(haproxy_service, glance_config, {'ip': 'keystone_ip'})
@ -117,9 +128,10 @@ def deploy():
haproxy_keystone_config, haproxy_keystone_config,
haproxy_config, haproxy_config,
haproxy_service, haproxy_service,
glance_config, glance_keystone_user,
glance_db, glance_db,
glance_db_user, glance_db_user,
glance_config,
glance_container]: glance_container]:
errors = validation.validate_resource(r) errors = validation.validate_resource(r)
if errors: if errors:
@ -141,6 +153,7 @@ def deploy():
actions.resource_action(keystone_service2, 'run') actions.resource_action(keystone_service2, 'run')
actions.resource_action(haproxy_config, 'run') actions.resource_action(haproxy_config, 'run')
actions.resource_action(haproxy_service, 'run') actions.resource_action(haproxy_service, 'run')
actions.resource_action(glance_keystone_user, 'run')
actions.resource_action(glance_db, 'run') actions.resource_action(glance_db, 'run')
actions.resource_action(glance_db_user, 'run') actions.resource_action(glance_db_user, 'run')
actions.resource_action(glance_config, 'run') actions.resource_action(glance_config, 'run')
@ -156,8 +169,6 @@ def deploy():
requests.get('http://%s:%s' % (glance_container.args['ip'].value, glance_container.args['ports'].value[0]['value'][1]['value'])) requests.get('http://%s:%s' % (glance_container.args['ip'].value, glance_container.args['ports'].value[0]['value'][1]['value']))
@click.command() @click.command()
def undeploy(): def undeploy():
db = get_db() db = get_db()

View File

@ -1,9 +0,0 @@
#!/bin/bash
export OS_SERVICE_TOKEN=admin
export OS_SERVICE_ENDPOINT=http://localhost:35357/v2.0
keystone tenant-create --name=service_admins
keystone user-create --name=glance_admin --password=passsword1234
keystone role-create --name=service_role
keystone user-role-add --user=glance_admin --tenant=service_admins --role=service_role

View File

@ -2,5 +2,5 @@
sudo: yes sudo: yes
tasks: tasks:
- name: keystone user - name: keystone user
- keystone_user: endpoint=http://{keystone_host}}:{{keystone_port}}/v2.0/ tenant={{tenant_name}} state=present - keystone_user: endpoint=http://{{ keystone_host }}:{{ keystone_port }}/v2.0/ tenant={{ tenant_name }} token={{ login_token }} state=present
- keystone_user: endpoint=http://{keystone_host}}:{{keystone_port}}/v2.0/ user={{user_name}} password={{user_password}} tenant={{tenant_name}} state=present - keystone_user: endpoint=http://{{ keystone_host }}:{{ keystone_port }}/v2.0/ user={{ user_name }} password={{ user_password }} tenant={{ tenant_name }} token={{ login_token }} state=present

View File

@ -9,7 +9,7 @@ input:
schema: int! schema: int!
value: value:
login_user: login_user:
schema: str! schema: str
value: value:
login_token: login_token:
schema: str! schema: str!

View File

@ -44,7 +44,7 @@ class Resource(object):
def __repr__(self): def __repr__(self):
return ("Resource(name='{name}', metadata={metadata}, args={args}, " return ("Resource(name='{name}', metadata={metadata}, args={args}, "
"tags={tags})").format(**self.to_dict) "tags={tags})").format(**self.to_dict()
def to_dict(self): def to_dict(self):
return { return {