fix deployment bug and add databag templates

Change-Id: I070a3ee788e2f39814265533ed96332a2d8bed78
This commit is contained in:
grace.yu 2014-08-07 11:51:47 -07:00
parent a431d34202
commit 5cecfac510
23 changed files with 155 additions and 138 deletions

View File

@ -77,9 +77,9 @@ class ChefInstaller(PKInstaller):
return chef_api
def get_env_name(self, dist_sys_name, cluster_id):
def get_env_name(self, dist_sys_name, cluster_name):
"""Generate environment name."""
return "-".join((dist_sys_name, cluster_id))
return "-".join((dist_sys_name, cluster_name))
def get_databag_name(self):
"""Get databag name."""
@ -162,8 +162,9 @@ class ChefInstaller(PKInstaller):
run_list = node.run_list
for role in roles:
if role not in run_list:
node.run_list.append('role[%s]' % role)
node_role = 'role[%s]' % role
if node_role not in run_list:
node.run_list.append(node_role)
node.save()
logging.debug('Runlist for node %s is %s', node.name, node.run_list)
@ -326,7 +327,8 @@ class ChefInstaller(PKInstaller):
"""
adapter_name = self.config_manager.get_adapter_name()
cluster_id = self.config_manager.get_cluster_id()
env_name = self.get_env_name(adapter_name, str(cluster_id))
cluster_name = self.config_manager.get_clustername()
env_name = self.get_env_name(adapter_name, cluster_name)
global_vars_dict = self._get_cluster_tmpl_vars()
# Update environment
@ -349,7 +351,7 @@ class ChefInstaller(PKInstaller):
# set each host deployed config
tmp = self.config_manager.get_host_deployed_package_config(host_id)
tmp[const.TMPL_VARS_DICT] = vars_dict
hosts_deployed_configs[host_id] = tmp
hosts_deployed_configs[host_id][const.DEPLOYED_PK_CONFIG] = tmp
# set cluster deployed config
cl_config = self.config_manager.get_cluster_deployed_package_config()

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,10 +0,0 @@
{% extends 'layout.jinja' %}
{% block title %}403 Forbidden{% endblock %}
{% block content %}
<h1>403 Forbidden</h1>
<p class=text-error>
Access to this page is forbidden for user
<strong>{{ current_user.email }}</strong>.
</p>
{% endblock %}

View File

@ -1,12 +0,0 @@
{% extends 'layout.jinja' %}
{% block title %}Main Page{% endblock %}
{% block content %}
<p>
{% if current_user.is_anonymous() %}
You are not logged in.
{% else %}
Hi, <strong>{{ current_user.email }}</strong>!
{% endif %}
</p>
{% endblock %}

View File

@ -1,39 +0,0 @@
<!doctype html>
<meta charset=utf-8>
<title>{% block title %}{% endblock %}</title>
<link rel=stylesheet media=screen href="{{ url_for('static', filename='css/bootstrap.min.css') }}">
<div class=container>
<div class=navbar>
<div class=navbar-inner>
<span class=brand>Flask-Login example</span>
<ul class=nav>
{% for endpoint in [
'index',
'restricted',
'login' if current_user.is_anonymous() else 'logout',
] %}
<li {% if endpoint == request.endpoint %}class=active{% endif %}>
<a href="{{ url_for(endpoint) }}">{{ endpoint.capitalize() }}</a>
</li>
{% endfor %}
</ul>
</div>
</div>
{% with messages = get_flashed_messages(with_categories=True) %}
{% if messages %}
{% for category, message in messages %}
<div class="alert{{ ' alert-%s' % category if category != 'message' else '' }}">
<button type=button class=close data-dismiss="alert">&times;</button>
{{ message }}
</div>
{% endfor %}
{% endif %}
{% endwith %}
{% block content %}
{% endblock %}
</div>
<script src="{{ url_for('static', filename='js/jquery-1.8.3.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/bootstrap.min.js') }}"></script>

View File

@ -1,19 +0,0 @@
{% extends 'layout.jinja' %}
{% from 'macros.jinja' import with_errors %}
{% block title %}Login{% endblock %}
{% block content %}
<form class=form-horizontal action="{{ url_for('login', next=request.args.get('next')) }}" method=post>
{{ form.hidden_tag() }}
{{ with_errors(form.email, placeholder='Email') }}
{{ with_errors(form.password, placeholder='Password') }}
<div class=control-group>
<div class=controls>
<label class=checkbox>
<input type=checkbox name=remember> Remember me
</label>
<button type=submit class="btn btn-primary">Login</button>
</div>
</div>
</form>
{% endblock %}

View File

@ -1,13 +0,0 @@
{% macro with_errors(field) -%}
<div class="control-group{% if field.errors %} error{% endif %}">
{{ field.label(class_='control-label') }}
<div class=controls>
{{ field(**kwargs) }}
{% if field.errors %}
{% for error in field.errors %}
<span class=text-error>{{ error }}</span>
{% endfor %}
{% endif %}
</div>
</div>
{%- endmacro %}

View File

@ -1,9 +0,0 @@
{% extends 'layout.jinja' %}
{% block title %}Restricted Area{% endblock %}
{% block content %}
<h1>Restricted Area</h1>
<p class=text-warning>
This is restricted area!
</p>
{% endblock %}

View File

@ -40,7 +40,9 @@ adapter_test_config = {
"settings": {
"chef_url": "https://127.0.0.1",
"key_dir": "xxx",
"client_name": "xxx"
"client_name": "xxx",
"databags": ["user_passwords", "db_passwords", "service_passwords",
"secrets"]
}
},
"metadata": {

View File

@ -0,0 +1,22 @@
#set aval_services = ['nova', 'horizon', 'keystone', 'glance', 'ceilometer', 'neutron', 'cinder', 'heat', 'dash']
#set config = $cluster.deployed_package_config
#set service_config = {}
#if "service_credentials" in $config:
#set service_config = $cluster.deployed_package_config.service_credentials
#end if
#set databagitems = {}
#if service_config:
#for $service, $value in $service_config.iteritems():
#if $service in $aval_services:
#set databagitems[$service] = {$value.username: $value.password}
#end if
#end for
#else:
#for $service in $aval_services:
#set databagitems[$service] = {$service: $service}
#end for
#end if
#import simplejson as json
#set output = json.dumps($databagitems, encoding='utf-8')
$output

View File

@ -0,0 +1,8 @@
{
"openstack_identity_bootstrap_token": {
"openstack_identity_bootstrap_token": "mytoken"
},
"neutron_metadata_secret": {
"neutron_metadata_secret": "secret"
}
}

View File

@ -0,0 +1,20 @@
#set required_services = ['openstack-image', 'openstack-compute', 'openstack-block-storage', 'openstack-orchestration', 'openstack-network', 'rbd']
#set config = $cluster.deployed_package_config
#set services_config = {}
#if "services_credentials" in $config:
#set services_config = $cluster.deployed_package_config.services_credentials
#end if
#set databagitems = {}
#if services_config:
#for $service, $value in $services_config.iteritems():
#set databagitems[$service] = {$value.username: $value.password}
#end for
#end if
#for $service in $required_services:
#if $service not in $databagitems:
#set databagitems[$service] = {$service: $service}
#end if
#end for
#import simplejson as json
#set output = json.dumps($databagitems, encoding='utf-8')
$output

View File

@ -0,0 +1,20 @@
#set required_users = ['admin']
#set config = $cluster.deployed_package_config
#set user_config = {}
#if "users_credentials" in $config:
#set user_config = $cluster.deployed_package_config.users_credentials
#end if
#set databagitems = {}
#if user_config:
#for $user, $value in $user_config.iteritems():
#set databagitems[$user] = {$value.username: $value.password}
#end for
#end if
#for $user in $required_users:
#if $user not in $databagitems:
#set databagitems[$user] = {$user: $user}
#end if
#end for
#import simplejson as json
#set output = json.dumps($databagitems, encoding='utf-8')
$output

View File

@ -2,4 +2,7 @@ NAME = 'chef_installer'
INSTANCE_NAME = 'chef_installer'
SETTINGS = {
'chef_url': 'https://$chef_ip',
'key_dir': '',
'client_name': '',
'databags': ['user_passwords', 'db_passwords', 'service_passwords', 'secrets']
}

View File

@ -18,7 +18,7 @@ sudo cp -rf $COMPASSDIR/bin/compass /usr/bin/
sudo cp -rf $COMPASSDIR/bin/chef/* /opt/compass/bin/
sudo cp -rf $WEB_HOME/public/* /var/www/compass_web/
sudo cp -rf $WEB_HOME/v2 /var/www/compass_web/
sudo cp -rf $COMPASSDIR/templates /etc/compass/
# add apache user to the group of virtualenv user
sudo usermod -a -G `groups $USER|awk '{print$3}'` apache
sudo chkconfig compass-progress-updated on

View File

@ -1,11 +1,22 @@
{
"nova": {
"nova": "mypass"
},
"horizon": {
"horizon": "horizon"
},
"keystone": {
}
}
#set aval_services = ['nova', 'horizon', 'keystone', 'glance', 'ceilometer', 'neutron', 'cinder', 'heat', 'dash']
#set config = $cluster.deployed_package_config
#set service_config = {}
#if "service_credentials" in $config:
#set service_config = $cluster.deployed_package_config.service_credentials
#end if
#set databagitems = {}
#if service_config:
#for $service, $value in $service_config.iteritems():
#if $service in $aval_services:
#set databagitems[$service] = {$value.username: $value.password}
#end if
#end for
#else:
#for $service in $aval_services:
#set databagitems[$service] = {$service: $service}
#end for
#end if
#import simplejson as json
#set output = json.dumps($databagitems, encoding='utf-8')
$output

View File

@ -0,0 +1,8 @@
{
"openstack_identity_bootstrap_token": {
"openstack_identity_bootstrap_token": "mytoken"
},
"neutron_metadata_secret": {
"neutron_metadata_secret": "secret"
}
}

View File

@ -0,0 +1,20 @@
#set required_services = ['openstack-image', 'openstack-compute', 'openstack-block-storage', 'openstack-orchestration', 'openstack-network', 'rbd']
#set config = $cluster.deployed_package_config
#set services_config = {}
#if "services_credentials" in $config:
#set services_config = $cluster.deployed_package_config.services_credentials
#end if
#set databagitems = {}
#if services_config:
#for $service, $value in $services_config.iteritems():
#set databagitems[$service] = {$value.username: $value.password}
#end for
#end if
#for $service in $required_services:
#if $service not in $databagitems:
#set databagitems[$service] = {$service: $service}
#end if
#end for
#import simplejson as json
#set output = json.dumps($databagitems, encoding='utf-8')
$output

View File

@ -0,0 +1,20 @@
#set required_users = ['admin']
#set config = $cluster.deployed_package_config
#set user_config = {}
#if "users_credentials" in $config:
#set user_config = $cluster.deployed_package_config.users_credentials
#end if
#set databagitems = {}
#if user_config:
#for $user, $value in $user_config.iteritems():
#set databagitems[$user] = {$value.username: $value.password}
#end for
#end if
#for $user in $required_users:
#if $user not in $databagitems:
#set databagitems[$user] = {$user: $user}
#end if
#end for
#import simplejson as json
#set output = json.dumps($databagitems, encoding='utf-8')
$output