| #!/usr/bin/env bash | 
 |  | 
 | # Sample ``local.sh`` for user-configurable tasks to run automatically | 
 | # at the successful conclusion of ``stack.sh``. | 
 |  | 
 | # NOTE: Copy this file to the root DevStack directory for it to work properly. | 
 |  | 
 | # This is a collection of some of the things we have found to be useful to run | 
 | # after ``stack.sh`` to tweak the OpenStack configuration that DevStack produces. | 
 | # These should be considered as samples and are unsupported DevStack code. | 
 |  | 
 |  | 
 | # Keep track of the DevStack directory | 
 | TOP_DIR=$(cd $(dirname "$0") && pwd) | 
 |  | 
 | # Import common functions | 
 | source $TOP_DIR/functions | 
 |  | 
 | # Use openrc + stackrc + localrc for settings | 
 | source $TOP_DIR/stackrc | 
 |  | 
 | # Destination path for installation ``DEST`` | 
 | DEST=${DEST:-/opt/stack} | 
 |  | 
 | if is_service_enabled nova; then | 
 |  | 
 |     # Import ssh keys | 
 |     # --------------- | 
 |  | 
 |     # Import keys from the current user into the default OpenStack user (usually | 
 |     # ``demo``) | 
 |  | 
 |     # Get OpenStack user auth | 
 |     source $TOP_DIR/openrc | 
 |  | 
 |     # Add first keypair found in localhost:$HOME/.ssh | 
 |     for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do | 
 |         if [[ -r $i ]]; then | 
 |             openstack keypair create --public-key $i `hostname` | 
 |             break | 
 |         fi | 
 |     done | 
 |  | 
 |  | 
 |     # Create A Flavor | 
 |     # --------------- | 
 |  | 
 |     # Get OpenStack admin auth | 
 |     source $TOP_DIR/openrc admin admin | 
 |  | 
 |     # Name of new flavor | 
 |     # set in ``local.conf`` with ``DEFAULT_INSTANCE_TYPE=m1.micro`` | 
 |     MI_NAME=m1.micro | 
 |  | 
 |     # Create micro flavor if not present | 
 |     if [[ -z $(openstack flavor list | grep $MI_NAME) ]]; then | 
 |         openstack flavor create $MI_NAME --id 6 --ram 128 --disk 0 --vcpus 1 | 
 |     fi | 
 |  | 
 |  | 
 |     # Other Uses | 
 |     # ---------- | 
 |  | 
 |     # Add tcp/22 and icmp to default security group | 
 |     openstack security group rule create --project $OS_PROJECT_NAME default --protocol tcp --ingress --dst-port 22 | 
 |     openstack security group rule create --project $OS_PROJECT_NAME default --protocol icmp | 
 |  | 
 | fi |