deb-designate/designate/__init__.py
TimSimmons 50d1b1553e Asynchronous Zone Export
Do the needful to move Zone Exports to an asynchronous resource in the
v2 API, as discussed at the Austin 2015 summe mid-cycle

* Make designate-zone-manager an RPC service, with a read-only connection
  to the database
* Add a 'location' column to the zone_tasks table that stores a location
  (swift, URI) that is used to determine where the export will be made
  available to the user
* Add all the infrastucture to make zone export resources live (objects,
  central, storage methods)
* Add a quota on the size of allowed synchronous exports
* Tests, docs

THIS DOES NOT IMPLEMENT
* Zone exports to Swift
* Debateable: See the note in zone_manager/service.py about how the configuration
  and determination of future swift exports will work.

ApiImpact
Blueprint: async-export
Change-Id: I1c168b10358164c3ca5be986b4d615df71062851
2015-08-28 16:45:10 -05:00

85 lines
2.6 KiB
Python

# Copyright 2012 Managed I.T.
#
# Author: Kiall Mac Innes <kiall@managedit.ie>
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import os
# Eventlet's GreenDNS Patching will prevent the resolution of names in
# the /etc/hosts file, causing problems for for installs.
os.environ['EVENTLET_NO_GREENDNS'] = 'yes'
import eventlet
eventlet.monkey_patch()
import socket
from oslo_config import cfg
from oslo_log import log
from oslo_concurrency import lockutils
import oslo_messaging as messaging
cfg.CONF.register_opts([
cfg.StrOpt('host', default=socket.gethostname(),
help='Name of this node'),
cfg.StrOpt(
'pybasedir',
default=os.path.abspath(os.path.join(os.path.dirname(__file__),
'../')),
help='Directory where the designate python module is installed'
),
cfg.StrOpt('state-path', default='/var/lib/designate',
help='Top-level directory for maintaining designate\'s state'),
cfg.StrOpt('central-topic', default='central', help='Central Topic'),
cfg.StrOpt('mdns-topic', default='mdns', help='mDNS Topic'),
cfg.StrOpt('pool-manager-topic', default='pool_manager',
help='Pool Manager Topic'),
cfg.StrOpt('zone-manager-topic', default='zone_manager',
help='Zone Manager Topic'),
# Default TTL
cfg.IntOpt('default-ttl', default=3600),
# Default SOA Values
cfg.IntOpt('default-soa-refresh', default=3600),
cfg.IntOpt('default-soa-retry', default=600),
cfg.IntOpt('default-soa-expire', default=86400),
cfg.IntOpt('default-soa-minimum', default=3600),
])
# Set some Oslo Log defaults
log.set_defaults(default_log_levels=[
'amqplib=WARN',
'amqp=WARN',
'boto=WARN',
'eventlet.wsgi.server=WARN',
'iso8601=WARN',
'kazoo.client=WARN',
'keystone=INFO',
'keystonemiddleware.auth_token=INFO',
'oslo_messaging=WARN',
'oslo_service.loopingcall=WARN',
'sqlalchemy=WARN',
'stevedore=WARN',
'suds=INFO',
])
# Set some Oslo RPC defaults
messaging.set_transport_defaults('designate')
# Set some Oslo Oslo Concurrency defaults
lockutils.set_defaults(lock_path='$state_path')