spacepaste

  1.  
  2. """A logging fixture providing two important fixtures.
  3. _append_config_options(imported_modules, opts)
  4. Binary file .git/objects/pack/pack-2d0db57c106a22124c71c50290c7a1c3efb11d40.pack matches
  5. # coming from the same YAML file are all in the same process. This is important
  6. def _append_config_options(imported_modules, config_options):
  7. def _import_modules(module_names):
  8. # Duplicate log_options from oslo_service so that we don't have to import
  9. for mod in imported_modules:
  10. from blockdiag.imagedraw import textfolder
  11. from codecs import getreader
  12. from __future__ import absolute_import
  13. from gabbi import driver
  14. from gabbi import fixture
  15. from keystoneauth1 import adapter
  16. from keystoneauth1 import loading as ks_loading
  17. from keystoneauth1 import session
  18. from keystonemiddleware import auth_token
  19. from microversion_parse import middleware as mp_middleware
  20. from migrate.changeset.constraint import ForeignKeyConstraint
  21. from migrate import exceptions as versioning_exceptions
  22. from migrate import UniqueConstraint
  23. from migrate.versioning import api as versioning_api
  24. from migrate.versioning.repository import Repository
  25. from nova.version import version_info
  26. from oslo_concurrency import lockutils
  27. from oslo_config import cfg
  28. from oslo_config import fixture as config_fixture
  29. from oslo_context import context
  30. from oslo_db import api as oslo_db_api
  31. from oslo_db import exception as db_exc
  32. from oslo_db import options as oslo_db_options
  33. from oslo_db.sqlalchemy import enginefacade
  34. from oslo_db.sqlalchemy import models
  35. from oslo_log import log as logging
  36. from oslo_middleware import cors
  37. from oslo_middleware import request_id
  38. from oslo_policy import opts as policy_opts
  39. from oslo_policy import policy
  40. from oslo_policy import policy as oslo_policy
  41. from oslo_serialization import jsonutils
  42. from oslotest import log
  43. from oslotest import output
  44. from oslo_utils import encodeutils
  45. from oslo_utils import excutils
  46. from oslo_utils import importutils
  47. from oslo_utils import timeutils
  48. from oslo_utils import uuidutils
  49. from oslo_utils import uuidutils
  50. from oslo_versionedobjects import base
  51. from oslo_versionedobjects import fields
  52. from placement.conf import api
  53. from placement.conf import base
  54. from placement.conf import database
  55. from placement.conf import keystone
  56. from placement.conf import paths
  57. from placement.conf import placement
  58. from placement.conf import utils as confutils
  59. from placement.db import constants as db_const
  60. from placement.db import migration
  61. from placement.db.sqlalchemy import api_models
  62. from placement.db.sqlalchemy import api_models as models
  63. from placement.db.sqlalchemy import migration
  64. from placement.handlers import aggregate
  65. from placement.handlers import allocation
  66. from placement.handlers import allocation_candidate
  67. from placement.handlers import inventory
  68. from placement.handlers import reshaper
  69. from placement.handlers import resource_class
  70. from placement.handlers import resource_provider
  71. from placement.handlers import root
  72. from placement.handlers import trait
  73. from placement.handlers import usage
  74. from placement.i18n import _
  75. from placement import auth
  76. from placement import conf
  77. from placement import context
  78. from placement import db_api
  79. from placement import db_api as placement_db
  80. from placement import deploy
  81. from placement import direct
  82. from placement import errors
  83. from placement import exception
  84. from placement import fault_wrap
  85. from placement import handler
  86. from placement import lib as pl
  87. from placement import lib as placement_lib
  88. from placement import microversion
  89. from placement import objects
  90. from placement import policies
  91. from placement import policy
  92. from placement import policy as placement_policy
  93. from placement import rc_fields
  94. from placement import rc_fields as fields
  95. from placement import requestlog
  96. from placement import resource_class_cache as rc_cache
  97. from placement import util
  98. from placement import utils
  99. from placement import wsgi_wrapper
  100. from placement.objects import consumer as consumer_obj
  101. from placement.objects import project as project_obj
  102. from placement.objects import resource_provider
  103. from placement.objects import resource_provider as rp_obj
  104. from placement.objects import user as user_obj
  105. from placement.policies import aggregate
  106. from placement.policies import aggregate as policies
  107. from placement.policies import allocation
  108. from placement.policies import allocation as policies
  109. from placement.policies import allocation_candidate
  110. from placement.policies import allocation_candidate as \
  111. from placement.policies import base
  112. from placement.policies import inventory
  113. from placement.policies import inventory as policies
  114. from placement.policies import reshaper
  115. from placement.policies import reshaper as policies
  116. from placement.policies import resource_class
  117. from placement.policies import resource_class as policies
  118. from placement.policies import resource_provider
  119. from placement.policies import resource_provider as policies
  120. from placement.policies import trait
  121. from placement.policies import trait as policies
  122. from placement.policies import usage
  123. from placement.policies import usage as policies
  124. from placement.schemas import aggregate as schema
  125. from placement.schemas import allocation
  126. from placement.schemas import allocation as schema
  127. from placement.schemas import allocation_candidate as schema
  128. from placement.schemas import common
  129. from placement.schemas import inventory
  130. from placement.schemas import inventory as schema
  131. from placement.schemas import reshaper as schema
  132. from placement.schemas import resource_class as schema
  133. from placement.schemas import resource_provider as rp_schema
  134. from placement.schemas import trait as schema
  135. from placement.schemas import usage as schema
  136. from placement.tests.functional.db import test_base as tb
  137. from placement.tests.functional.fixtures import capture
  138. from placement.tests.functional.fixtures import gabbits as fixtures
  139. from placement.tests.functional import base
  140. from placement.tests import fixtures
  141. from placement.tests import uuidsentinel
  142. from placement.tests import uuidsentinel as uuids
  143. from placement.tests.unit import policy_fixture
  144. from sqlalchemy.dialects.mysql import MEDIUMTEXT
  145. from sqlalchemy.engine import reflection
  146. from sqlalchemy.ext.declarative import declarative_base
  147. from sqlalchemy import Boolean
  148. from sqlalchemy import Column
  149. from sqlalchemy import DateTime
  150. from sqlalchemy import dialects
  151. from sqlalchemy import Enum
  152. from sqlalchemy import exc as sqla_exc
  153. from sqlalchemy import Float
  154. from sqlalchemy import ForeignKey
  155. from sqlalchemy import func
  156. from sqlalchemy import Index
  157. from sqlalchemy import Integer
  158. from sqlalchemy import MetaData
  159. from sqlalchemy import MetaData, Table, func, select
  160. from sqlalchemy import orm
  161. from sqlalchemy import schema
  162. from sqlalchemy import sql
  163. from sqlalchemy import String
  164. from sqlalchemy import Table
  165. from sqlalchemy import text
  166. from sqlalchemy import Text
  167. from sqlalchemy import Unicode
  168. from sqlalchemy.orm import backref
  169. from sqlalchemy.sql import null
  170. from webob.dec import wsgify
  171. from webob import exc
  172. from wsgi_intercept import interceptor
  173. .. important::
  174. # important to be able to update an existing allocation, so this
  175. import codecs
  176. import collections
  177. import contextlib
  178. import copy
  179. import datetime
  180. imported_modules = []
  181. imported_modules.append(mod)
  182. imported_modules = _import_modules(module_names)
  183. import_exceptions = placement.i18n
  184. import fixtures
  185. import functools
  186. import importlib
  187. import inspect
  188. import itertools
  189. import jsonschema
  190. import logging
  191. import logging as py_logging
  192. import microversion_parse
  193. import mock
  194. import multiprocessing # noqa
  195. import operator
  196. import os
  197. import oslo_i18n
  198. import oslo_middleware
  199. import os.path
  200. import os_traits
  201. import pbr.version
  202. import pkgutil
  203. import placement
  204. import placement.conf
  205. import placement.db.api
  206. import placement.handler # noqa
  207. import placement.microversion
  208. import random
  209. import re
  210. import requests
  211. import routes
  212. import setuptools
  213. import shutil
  214. import six
  215. import sqlalchemy
  216. import sqlalchemy as sa
  217. import sys
  218. import tempfile
  219. import testtools
  220. # import the handlers to load up handler decorators
  221. import uuid
  222. import uuid as uuidlib
  223. import warnings
  224. import warnings
  225. import webob
  226. import webob.dec
  227. import webob.exc
  228. import wsgi_intercept
  229. It is especially important to keep in mind that nova-compute is a client of
  230. may be called by certain jobs at important times to do extra testing, setup,
  231. mod = importlib.import_module("placement.conf." + modname)
  232. - [N311] importing code from other virt drivers forbidden
  233. - [N323] Ensure that the _() function is explicitly imported to ensure proper translations.
  234. - [N337] Don't import translation in tests
  235. - [N359] Check for redundant import aliases.
  236. # NOTE(cdent): avoid cyclical import conflict between util and
  237. # NOTE(cdent): The ordering here is important. The list is ordered
  238. # NOTE(edleafe): I would like to import the value directly from
  239. # nova.compute.vm_states, but that creates a circular import. Since this value
  240. # nova.objects package is imported).
  241. own file so the nova db_api (which has cascading imports) is not imported.
  242. - ``placement.db`` imports are not allowed in ``nova/virt/*``
  243. # placement side we don't want to import all the nova fields, nor all the
  244. profiler = importutils.try_import('osprofiler.opts')
  245. resource providers. This is an important difference especially for
  246. return imported_modules
  247. # should work but it is important to check the usage.
  248. """Symbols intended to be imported by both placement code and placement API
  249. Then you can delete it. More importantly, you should not
  250. The TestCase class from nova.test (generally imported as test) will
  251. """Useful db-related constants. In their own file so they can be imported
  252. use, offer to sell, sell, import, and otherwise transfer the Work,
  253. what features each driver supports based on what's important to some large
  254.