anchor.diff:  rabbit_notification_topic = notifications
   amqp_durable_queues = False
   
  -# ============ RADOS Store Options ========================
  -[glance_store]
  -default_store = rbd
  -stores = rbd
  -rbd_store_pool = images
  -rbd_store_user = admin
  -rbd_store_ceph_conf = /etc/ceph/ceph.conf
  -rbd_store_chunk_size = 8
  -
   # =============== Database Options =================================
   
   [database]
  -# The file name to use with SQLite (string value)
  -sqlite_db = /var/lib/glance/glance.sqlite
  -
  -# If True, SQLite uses synchronous mode (boolean value)
  +#sqlite_db = /var/lib/glance/glance.sqlite
   #sqlite_synchronous = True
  -
  -# The backend to use for db (string value)
  -# Deprecated group/name - [DEFAULT]/db_backend
   backend = sqlalchemy
  -
  -# The SQLAlchemy connection string used to connect to the
  -# database (string value)
  -# Deprecated group/name - [DEFAULT]/sql_connection
  -# Deprecated group/name - [DATABASE]/sql_connection
  -# Deprecated group/name - [sql]/connection
  -connection = mysql://<%=get_config('mysql-glance-user')%>:<%=get_config('mysql-glance-password')%>@<%=
  -node['bcpc']['management']['vip']%>/<%=node['bcpc']['dbname']['glance']%>
  -
  -# The SQL mode to be used for MySQL sessions. This option,
  -# including the default, overrides any server-set SQL mode. To
  -# use whatever SQL mode is set by the server configuration,
  -# set this to no value. Example: mysql_sql_mode= (string
  -# value)
  +connection = mysql://<%=get_config('mysql-glance-user')%>:<%=get_config('mysql-glance-password')%>@<%=node['bcpc']['management']['vip']%>/<%=node['bcpc']['dbname']['glance']%>
   #mysql_sql_mode = TRADITIONAL
  -
  -# Timeout before idle sql connections are reaped (integer
  -# value)
  -# Deprecated group/name - [DEFAULT]/sql_idle_timeout
  -# Deprecated group/name - [DATABASE]/sql_idle_timeout
  -# Deprecated group/name - [sql]/idle_timeout
   #idle_timeout = 3600
  -
  -# Minimum number of SQL connections to keep open in a pool
  -# (integer value)
  -# Deprecated group/name - [DEFAULT]/sql_min_pool_size
  -# Deprecated group/name - [DATABASE]/sql_min_pool_size
   #min_pool_size = 1
  -
  -# Maximum number of SQL connections to keep open in a pool
  -# (integer value)
  -# Deprecated group/name - [DEFAULT]/sql_max_pool_size
  -# Deprecated group/name - [DATABASE]/sql_max_pool_size
   #max_pool_size = <None>
  -
  -# Maximum db connection retries during startup. (setting -1
  -# implies an infinite retry count) (integer value)
  -# Deprecated group/name - [DEFAULT]/sql_max_retries
  -# Deprecated group/name - [DATABASE]/sql_max_retries
   #max_retries = 10
  -
  -# Interval between retries of opening a sql connection
  -# (integer value)
  -# Deprecated group/name - [DEFAULT]/sql_retry_interval
  -# Deprecated group/name - [DATABASE]/reconnect_interval
   #retry_interval = 10
  -
  -# If set, use this value for max_overflow with sqlalchemy
  -# (integer value)
  -# Deprecated group/name - [DEFAULT]/sql_max_overflow
  -# Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow
   #max_overflow = <None>
  -
  -# Verbosity of SQL debugging information. 0=None,
  -# 100=Everything (integer value)
  -# Deprecated group/name - [DEFAULT]/sql_connection_debug
   #connection_debug = 0
  -
  -# Add python stack traces to SQL as comment strings (boolean
  -# value)
  -# Deprecated group/name - [DEFAULT]/sql_connection_trace
   #connection_trace = False
  -
  -# If set, use this value for pool_timeout with sqlalchemy
  -# (integer value)
  -# Deprecated group/name - [DATABASE]/sqlalchemy_pool_timeout
   #pool_timeout = <None>
  -
  -# Enable the experimental use of database reconnect on
  -# connection lost (boolean value)
   #use_db_reconnect = False
  -
  -# seconds between db connection retries (integer value)
   #db_retry_interval = 1
  -
  -# Whether to increase interval between db connection retries,
  -# up to db_max_retry_interval (boolean value)
   #db_inc_retry_interval = True
  -
  -# max seconds between db connection retries, if
  -# db_inc_retry_interval is enabled (integer value)
   #db_max_retry_interval = 10
  -
  -# maximum db connection retries before error is raised.
  -# (setting -1 implies an infinite retry count) (integer value)
   #db_max_retries = 20
   
   [keystone_authtoken]
  
positive.code: ################################################
  
  [DEFAULT]
  # Show more verbose log output (sets INFO log level output)
  #verbose = False
  
  # Show debugging output in logs (sets DEBUG log level output)
  #debug = False
  
  # Which backend scheme should Glance use by default is not specified
  # in a request to add a new image to Glance? Known schemes are determined
  # by the known_stores option below.
  # Default: 'file'
  default_store = rbd
  
  # List of which store classes and store class locations are
  # currently known to glance at startup.
  # Existing but disabled stores:
  #      glance.store.rbd.Store,
  #      glance.store.s3.Store,
  #      glance.store.swift.Store,
  #      glance.store.sheepdog.Store,
  #      glance.store.cinder.Store,
  #      glance.store.gridfs.Store,
  #      glance.store.vmware_datastore.Store,
  known_stores = glance.store.rbd.Store
  
  
  # Maximum image size (in bytes) that may be uploaded through the
  # Glance API server. Defaults to 1 TB.
  # WARNING: this value should only be increased after careful consideration
  # and must be set to a value under 8 EB (9223372036854775808).
  #image_size_cap = 1099511627776
  
  # Address to bind the API server
  bind_host = <%=node['bcpc']['management']['ip']%>
  
  # Port the bind the API server to
  bind_port = 9292
  
  # Log to this file. Make sure you do not set the same log file for both the API
  # and registry servers!
  #
  # If `log_file` is omitted and `use_syslog` is false, then log messages are
  # sent to stdout as a fallback.
  log_file = /var/log/glance/api.log
  
  # Backlog requests when creating socket
  backlog = 4096
  
  # TCP_KEEPIDLE value in seconds when creating socket.
  # Not supported on OS X.
  #tcp_keepidle = 600
  
  # API to use for accessing data. Default value points to sqlalchemy
  # package, it is also possible to use: glance.db.registry.api
  # data_api = glance.db.sqlalchemy.api
  
  # Number of Glance API worker processes to start.
  # On machines with more than one CPU increasing this value
  # may improve performance (especially if using SSL with
  # compression turned on). It is typically recommended to set
  # this value to the number of CPUs present on your machine.
  workers = 1
  
  # Maximum line size of message headers to be accepted.
  # max_header_line may need to be increased when using large tokens
  # (typically those generated by the Keystone v3 API with big service
  # catalogs)
  # max_header_line = 16384
  
  # Role used to identify an authenticated user as administrator
  admin_role = <%=node['bcpc']['admin_role']%>
  
  # Allow unauthenticated users to access the API with read-only
  # privileges. This only applies when using ContextMiddleware.
  #allow_anonymous_access = False
  
  # Allow access to version 1 of glance api
  #enable_v1_api = True
  
  # Allow access to version 2 of glance api
  #enable_v2_api = True
  
  # Return the URL that references where the data is stored on
  # the backend storage system.  For example, if using the
  # file system store a URL of 'file:///path/to/image' will
  # be returned to the user in the 'direct_url' meta-data field.
  # The default value is false.
  show_image_direct_url = True
  
  # Send headers containing user and tenant information when making requests to
  # the v1 glance registry. This allows the registry to function as if a user is
  # authenticated without the need to authenticate a user itself using the
  # auth_token middleware.
  # The default value is false.
  #send_identity_headers = False
  
  # Supported values for the 'container_format' image attribute
  #container_formats=ami,ari,aki,bare,ovf,ova
  
  # Supported values for the 'disk_format' image attribute
  #disk_formats=ami,ari,aki,vhd,vmdk,raw,qcow2,vdi,iso
  
  # Property Protections config file
  # This file contains the rules for property protections and the roles/policies
  # associated with it.
  # If this config value is not specified, by default, property protections
  # won't be enforced.
  # If a value is specified and the file is not found, then the glance-api
  # service will not start.
  #property_protection_file =
  
  # Specify whether 'roles' or 'policies' are used in the
  # property_protection_file.
  # The default value for property_protection_rule_format is 'roles'.
  #property_protection_rule_format = roles
  
  # Specifies how long (in hours) a task is supposed to live in the tasks DB
  # after succeeding or failing before getting soft-deleted.
  # The default value for task_time_to_live is 48 hours.
  # task_time_to_live = 48
  
  # This value sets what strategy will be used to determine the image location
  # order. Currently two strategies are packaged with Glance 'location_order'
  # and 'store_type'.
  #location_strategy = location_order
  
  # ================= Syslog Options ============================
  
  # Send logs to syslog (/dev/log) instead of to file specified
  # by `log_file`
  #use_syslog = False
  
  # Facility to use. If unset defaults to LOG_USER.
  #syslog_log_facility = LOG_LOCAL0
  
  # ================= SSL Options ===============================
  
  # Certificate file to use when starting API server securely
  #cert_file = /path/to/certfile
  
  # Private key file to use when starting API server securely
  #key_file = /path/to/keyfile
  
  # CA certificate file to use to verify connecting clients
  ca_file = /etc/ssl/certs/ssl-bcpc.pem
  
  # ================= Security Options ==========================
  
  # AES key for encrypting store 'location' metadata, including
  # -- if used -- Swift or S3 credentials
  # Should be set to a random string of length 16, 24 or 32 bytes
  #metadata_encryption_key = <16, 24 or 32 char registry metadata key>
  
  # ============ Registry Options ===============================
  
  # Address to find the registry server
  registry_host = <%=node['bcpc']['management']['vip']%>
  
  # Port the registry server is listening on
  registry_port = 9191
  
  # What protocol to use when connecting to the registry server?
  # Set to https for secure HTTP communication
  registry_client_protocol = <%= node['bcpc']['protocol']['glance'] %>
  
  # The path to the key file to use in SSL connections to the
  # registry server, if any. Alternately, you may set the
  # GLANCE_CLIENT_KEY_FILE environ variable to a filepath of the key file
  #registry_client_key_file = /path/to/key/file
  
  # The path to the cert file to use in SSL connections to the
  # registry server, if any. Alternately, you may set the
  # GLANCE_CLIENT_CERT_FILE environ variable to a filepath of the cert file
  #registry_client_cert_file = /path/to/cert/file
  
  # The path to the certifying authority cert file to use in SSL connections
  # to the registry server, if any. Alternately, you may set the
  # GLANCE_CLIENT_CA_FILE environ variable to a filepath of the CA cert file
  registry_client_ca_file = /etc/ssl/certs/ssl-bcpc.pem
  
  # When using SSL in connections to the registry server, do not require
  # validation via a certifying authority. This is the registry's equivalent of
  # specifying --insecure on the command line using glanceclient for the API
  # Default: False
  #registry_client_insecure = False
  
  # The period of time, in seconds, that the API server will wait for a registry
  # request to complete. A value of '0' implies no timeout.
  # Default: 600
  #registry_client_timeout = 600
  
  # Whether to automatically create the database tables.
  # Default: False
  #db_auto_create = False
  
  # Enable DEBUG log messages from sqlalchemy which prints every database
  # query and response.
  # Default: False
  #sqlalchemy_debug = True
  
  # Pass the user's token through for API requests to the registry.
  # Default: True
  #use_user_token = True
  
  # If 'use_user_token' is not in effect then admin credentials
  # can be specified. Requests to the registry on behalf of
  # the API will use these credentials.
  # Admin user name
  #admin_user = None
  # Admin password
  #admin_password = None
  # Admin tenant name
  #admin_tenant_name = None
  # Keystone endpoint
  #auth_url = None
  # Keystone region
  #auth_region = None
  # Auth strategy
  #auth_strategy = keystone
  
  # ============ Notification System Options =====================
  
  # Notifications can be sent when images are create, updated or deleted.
  # There are three methods of sending notifications, logging (via the
  # log_file directive), rabbit (via a rabbitmq queue), qpid (via a Qpid
  # message queue), or noop (no notifications sent, the default)
  # NOTE: THIS CONFIGURATION OPTION HAS BEEN DEPRECATED IN FAVOR OF `notification_driver`
  notifier_strategy = rabbit
  
  # Driver or drivers to handle sending notifications
  # notification_driver = noop
  
  # Default publisher_id for outgoing notifications.
  # default_publisher_id = image.localhost
  
  # Configuration options if sending notifications via Qpid (these are
  # the defaults)
  qpid_notification_exchange = glance
  qpid_notification_topic = notifications
  qpid_hostname = localhost
  qpid_port = 5672
  qpid_username =
  qpid_password =
  qpid_sasl_mechanisms =
  qpid_reconnect_timeout = 0
  qpid_reconnect_limit = 0
  qpid_reconnect_interval_min = 0
  qpid_reconnect_interval_max = 0
  qpid_reconnect_interval = 0
  qpid_heartbeat = 5
  # Set to 'ssl' to enable SSL
  qpid_protocol = tcp
  qpid_tcp_nodelay = True
  
  # ============ Swift Store Options =============================
  
  # Version of the authentication service to use
  # Valid versions are '2' for keystone and '1' for swauth and rackspace
  swift_store_auth_version = 2
  
  # Address where the Swift authentication service lives
  # Valid schemes are 'http://' and 'https://'
  # If no scheme specified,  default to 'https://'
  # For swauth, use something like '127.0.0.1:8080/v1.0/'
  swift_store_auth_address = 127.0.0.1:5000/v2.0/
  
  # User to authenticate against the Swift authentication service
  # If you use Swift authentication service, set it to 'account':'user'
  # where 'account' is a Swift storage account and 'user'
  # is a user in that account
  swift_store_user = jdoe:jdoe
  
  # Auth key for the user authenticating against the
  # Swift authentication service
  swift_store_key = a86850deb2742ec3cb41518e26aa2d89
  
  # Container within the account that the account should use
  # for storing images in Swift
  swift_store_container = glance
  
  # Do we create the container if it does not exist?
  swift_store_create_container_on_put = False
  
  # What size, in MB, should Glance start chunking image files
  # and do a large object manifest in Swift? By default, this is
  # the maximum object size in Swift, which is 5GB
  swift_store_large_object_size = 5120
  
  # When doing a large object manifest, what size, in MB, should
  # Glance write chunks to Swift? This amount of data is written
  # to a temporary disk buffer during the process of chunking
  # the image file, and the default is 200MB
  swift_store_large_object_chunk_size = 200
  
  # Whether to use ServiceNET to communicate with the Swift storage servers.
  # (If you aren't RACKSPACE, leave this False!)
  #
  # To use ServiceNET for authentication, prefix hostname of
  # `swift_store_auth_address` with 'snet-'.
  # Ex. https://example.com/v1.0/ -> https://snet-example.com/v1.0/
  swift_enable_snet = False
  
  # If set to True enables multi-tenant storage mode which causes Glance images
  # to be stored in tenant specific Swift accounts.
  #swift_store_multi_tenant = False
  
  # A list of swift ACL strings that will be applied as both read and
  # write ACLs to the containers created by Glance in multi-tenant
  # mode. This grants the specified tenants/users read and write access
  # to all newly created image objects. The standard swift ACL string
  # formats are allowed, including:
  # <tenant_id>:<username>
  # <tenant_name>:<username>
  # *:<username>
  # Multiple ACLs can be combined using a comma separated list, for
  # example: swift_store_admin_tenants = service:glance,*:admin
  #swift_store_admin_tenants =
  
  # The region of the swift endpoint to be used for single tenant. This setting
  # is only necessary if the tenant has multiple swift endpoints.
  #swift_store_region =
  
  # If set to False, disables SSL layer compression of https swift requests.
  # Setting to 'False' may improve performance for images which are already
  # in a compressed format, eg qcow2. If set to True, enables SSL layer
  # compression (provided it is supported by the target swift proxy).
  #swift_store_ssl_compression = True
  
  # The number of times a Swift download will be retried before the
  # request fails
  #swift_store_retry_get_count = 0
  
  # ============ S3 Store Options =============================
  
  # Address where the S3 authentication service lives
  # Valid schemes are 'http://' and 'https://'
  # If no scheme specified,  default to 'http://'
  s3_store_host = 127.0.0.1:8080/v1.0/
  
  # User to authenticate against the S3 authentication service
  s3_store_access_key = <20-char AWS access key>
  
  # Auth key for the user authenticating against the
  # S3 authentication service
  s3_store_secret_key = <40-char AWS secret key>
  
  # Container within the account that the account should use
  # for storing images in S3. Note that S3 has a flat namespace,
  # so you need a unique bucket name for your glance images. An
  # easy way to do this is append your AWS access key to "glance".
  # S3 buckets in AWS *must* be lowercased, so remember to lowercase
  # your AWS access key if you use it in your bucket name below!
  s3_store_bucket = <lowercased 20-char aws access key>glance
  
  # Do we create the bucket if it does not exist?
  s3_store_create_bucket_on_put = False
  
  # When sending images to S3, the data will first be written to a
  # temporary buffer on disk. By default the platform's temporary directory
  # will be used. If required, an alternative directory can be specified here.
  #s3_store_object_buffer_dir = /path/to/dir
  
  # When forming a bucket url, boto will either set the bucket name as the
  # subdomain or as the first token of the path. Amazon's S3 service will
  # accept it as the subdomain, but Swift's S3 middleware requires it be
  # in the path. Set this to 'path' or 'subdomain' - defaults to 'subdomain'.
  #s3_store_bucket_url_format = subdomain
  
  # ============ RBD Store Options =============================
  
  # Ceph configuration file path
  # If using cephx authentication, this file should
  # include a reference to the right keyring
  # in a client.<USER> section
  #rbd_store_ceph_conf = /etc/ceph/ceph.conf
  
  # RADOS user to authenticate as (only applicable if using cephx)
  # If <None>, a default will be chosen based on the client. section
  # in rbd_store_ceph_conf
  rbd_store_user = admin
  
  # RADOS pool in which images are stored
  rbd_store_pool = <%=node['bcpc']['ceph']['images']['name']%>
  
  # RADOS images will be chunked into objects of this size (in megabytes).
  # For best performance, this should be a power of two
  #rbd_store_chunk_size = 8
  
  # ============ Sheepdog Store Options =============================
  
  sheepdog_store_address = localhost
  
  sheepdog_store_port = 7000
  
  # Images will be chunked into objects of this size (in megabytes).
  # For best performance, this should be a power of two
  sheepdog_store_chunk_size = 64
  
  # ============ Cinder Store Options ===============================
  
  # Info to match when looking for cinder in the service catalog
  # Format is : separated values of the form:
  # <service_type>:<service_name>:<endpoint_type> (string value)
  #cinder_catalog_info = volume:cinder:publicURL
  
  # Override service catalog lookup with template for cinder endpoint
  # e.g. http://localhost:8776/v1/%(project_id)s (string value)
  #cinder_endpoint_template = <None>
  
  # Region name of this node (string value)
  #os_region_name = <None>
  
  # Location of ca certicates file to use for cinder client requests
  # (string value)
  cinder_ca_certificates_file = /etc/ssl/certs/ssl-bcpc.pem
  
  # Number of cinderclient retries on failed http calls (integer value)
  #cinder_http_retries = 3
  
  # Allow to perform insecure SSL requests to cinder (boolean value)
  #cinder_api_insecure = False
  
  # ============ VMware Datastore Store Options =====================
  
  # ESX/ESXi or vCenter Server target system.
  # The server value can be an IP address or a DNS name
  # e.g. 127.0.0.1, 127.0.0.1:443, www.vmware-infra.com
  #vmware_server_host = <None>
  
  # Server username (string value)
  #vmware_server_username = <None>
  
  # Server password (string value)
  #vmware_server_password = <None>
  
  # Inventory path to a datacenter (string value)
  # Value optional when vmware_server_ip is an ESX/ESXi host: if specified
  # should be `ha-datacenter`.
  #vmware_datacenter_path = <None>
  
  # Datastore associated with the datacenter (string value)
  #vmware_datastore_name = <None>
  
  # The number of times we retry on failures
  # e.g., socket error, etc (integer value)
  #vmware_api_retry_count = 10
  
  # The interval used for polling remote tasks
  # invoked on VMware ESX/VC server in seconds (integer value)
  #vmware_task_poll_interval = 5
  
  # Absolute path of the folder containing the images in the datastore
  # (string value)
  #vmware_store_image_dir = /openstack_glance
  
  # Allow to perform insecure SSL requests to the target system (boolean value)
  #vmware_api_insecure = False
  
  # ============ Delayed Delete Options =============================
  
  # Turn on/off delayed delete
  delayed_delete = False
  
  # Delayed delete time in seconds
  scrub_time = 43200
  
  # Directory that the scrubber will use to remind itself of what to delete
  # Make sure this is also set in glance-scrubber.conf
  scrubber_datadir = /var/lib/glance/scrubber
  
  # =============== Quota Options ==================================
  
  # The maximum number of image members allowed per image
  #image_member_quota = 128
  
  # The maximum number of image properties allowed per image
  #image_property_quota = 128
  
  # The maximum number of tags allowed per image
  #image_tag_quota = 128
  
  # The maximum number of locations allowed per image
  #image_location_quota = 10
  
  # Set a system wide quota for every user.  This value is the total number
  # of bytes that a user can use across all storage systems.  A value of
  # 0 means unlimited.
  #user_storage_quota = 0
  
  # =============== Image Cache Options =============================
  
  # Base directory that the Image Cache uses
  image_cache_dir = /var/lib/glance/image-cache/
  
  # =============== Manager Options =================================
  
  # DEPRECATED. TO BE REMOVED IN THE JUNO RELEASE.
  # Whether or not to enforce that all DB tables have charset utf8.
  # If your database tables do not have charset utf8 you will
  # need to convert before this option is removed. This option is
  # only relevant if your database engine is MySQL.
  #db_enforce_mysql_charset = True
  
  [oslo_concurrency]
  # Directory to use for lock files. Default to a temp directory
  
negative.code: signing_dir = /var/lib/glance
  
  [paste_deploy]
  #config_file = glance-api-paste.ini
  flavor = keystone
  
  [store_type_location_strategy]
  #store_type_preference =
  