diff --git a/HACKING b/HACKING index 77e42b8e6f10..3af2381bfb83 100644 --- a/HACKING +++ b/HACKING @@ -10,16 +10,12 @@ Imports - thou shalt not import objects, only modules - thou shalt not import more than one module per line - thou shalt not make relative imports -- thou shalt "from nova import vendor" before importing third party code - thou shalt organize your imports according to the following template :: # vim: tabstop=4 shiftwidth=4 softtabstop=4 {{stdlib imports in human alphabetical order}} \n - from nova import vendor - {{vendor imports in human alphabetical order}} - \n {{nova imports in human alphabetical order}} \n \n diff --git a/bin/nova-api b/bin/nova-api index 7bc9166b80dc..26f5dbc8772d 100755 --- a/bin/nova-api +++ b/bin/nova-api @@ -22,8 +22,6 @@ Tornado daemon for the main API endpoint. """ import logging - -from nova import vendor from tornado import httpserver from tornado import ioloop diff --git a/bin/nova-compute b/bin/nova-compute index 8038870393e2..5635efbaf64e 100755 --- a/bin/nova-compute +++ b/bin/nova-compute @@ -33,7 +33,7 @@ NOVA_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'nova') if os.path.exists(NOVA_PATH): sys.path.insert(0, os.path.dirname(NOVA_PATH)) -from nova import vendor + from carrot import connection from carrot import messaging from twisted.internet import task diff --git a/bin/nova-dhcpbridge b/bin/nova-dhcpbridge index cd0eab2a8795..d15924e57dad 100755 --- a/bin/nova-dhcpbridge +++ b/bin/nova-dhcpbridge @@ -32,13 +32,13 @@ import sys # not true the ugly line below can be removed sys.path.append(os.path.abspath(os.path.join(__file__, "../../"))) +from nova import flags from nova import rpc from nova import utils - from nova.compute import linux_net from nova.compute import network -from nova import flags + FLAGS = flags.FLAGS diff --git a/bin/nova-import-canonical-imagestore b/bin/nova-import-canonical-imagestore index 82daf61ce654..2e79f09b7019 100755 --- a/bin/nova-import-canonical-imagestore +++ b/bin/nova-import-canonical-imagestore @@ -29,9 +29,9 @@ import subprocess import sys import urllib2 -from nova.objectstore import image from nova import flags from nova import utils +from nova.objectstore import image FLAGS = flags.FLAGS diff --git a/bin/nova-instancemonitor b/bin/nova-instancemonitor index d3f0ae221ee0..b195089b74fc 100755 --- a/bin/nova-instancemonitor +++ b/bin/nova-instancemonitor @@ -22,8 +22,6 @@ """ import logging - -from nova import vendor from twisted.internet import task from twisted.application import service diff --git a/bin/nova-manage b/bin/nova-manage index 5693a40f6a31..56f89ce30f13 100755 --- a/bin/nova-manage +++ b/bin/nova-manage @@ -23,6 +23,7 @@ """ import sys +import time from nova import flags from nova import utils @@ -31,7 +32,7 @@ from nova.compute import model from nova.compute import network from nova.cloudpipe import pipelib from nova.endpoint import cloud -import time + FLAGS = flags.FLAGS diff --git a/bin/nova-objectstore b/bin/nova-objectstore index 7876864c0f7d..521f3d5d1175 100755 --- a/bin/nova-objectstore +++ b/bin/nova-objectstore @@ -22,8 +22,6 @@ """ import logging - -from nova import vendor from tornado import httpserver from tornado import ioloop diff --git a/bin/nova-rsapi b/bin/nova-rsapi index c2f2c9d703f5..5cbe2d8c11f3 100755 --- a/bin/nova-rsapi +++ b/bin/nova-rsapi @@ -21,10 +21,8 @@ """ import logging -from wsgiref import simple_server - -from nova import vendor from tornado import ioloop +from wsgiref import simple_server from nova import flags from nova import rpc diff --git a/bin/nova-volume b/bin/nova-volume index 9b7787c96fd2..df9fb5c7ac95 100755 --- a/bin/nova-volume +++ b/bin/nova-volume @@ -22,8 +22,6 @@ """ import logging - -from nova import vendor from tornado import ioloop from nova import flags diff --git a/docs/auth.rst b/docs/auth.rst index 476ca9154006..70aca704ab5c 100644 --- a/docs/auth.rst +++ b/docs/auth.rst @@ -172,10 +172,10 @@ Further Challenges -The :mod:`access` Module +The :mod:`rbac` Module -------------------------- -.. automodule:: nova.auth.access +.. automodule:: nova.auth.rbac :members: :undoc-members: :show-inheritance: diff --git a/docs/conf.py b/docs/conf.py index 784d8c0965e0..fb3fd1a30f95 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -18,7 +18,7 @@ import sys, os # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.append(os.path.abspath('/Users/jmckenty/Projects/cc')) sys.path.append([os.path.abspath('../nova'),os.path.abspath('../'),os.path.abspath('../vendor')]) -from nova import vendor + # -- General configuration ----------------------------------------------------- diff --git a/docs/index.rst b/docs/index.rst index 039bf00fff19..ef2e8f63e5ba 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -44,6 +44,8 @@ Contents: fakes binaries todo + modules + packages Indices and tables ================== diff --git a/nova/adminclient.py b/nova/adminclient.py index 1a5f41418101..db392feb17f9 100644 --- a/nova/adminclient.py +++ b/nova/adminclient.py @@ -20,8 +20,6 @@ Nova User API client library. """ import base64 - -from nova import vendor import boto from boto.ec2.regioninfo import RegionInfo diff --git a/nova/auth/signer.py b/nova/auth/signer.py index a3d3c5329a44..83831bfac1e1 100644 --- a/nova/auth/signer.py +++ b/nova/auth/signer.py @@ -43,11 +43,12 @@ Utility class for parsing signed AMI manifests. """ -import logging +import base64 import hashlib import hmac +import logging import urllib -import base64 + from nova.exception import Error class Signer(object): diff --git a/nova/auth/users.py b/nova/auth/users.py index 72edcc2aa464..fc08dc34dd44 100644 --- a/nova/auth/users.py +++ b/nova/auth/users.py @@ -26,7 +26,6 @@ import os import shutil import signer import string -from string import Template import tempfile import uuid import zipfile @@ -44,8 +43,6 @@ from nova import exception from nova import flags from nova import crypto from nova import utils - - from nova import objectstore # for flags FLAGS = flags.FLAGS @@ -462,11 +459,11 @@ class UserManager(object): description=None, member_users=None): if member_users: member_users = [User.safe_id(u) for u in member_users] + # NOTE(vish): try to associate a vpn ip and port first because + # if it throws an exception, we save having to + # create and destroy a project + Vpn.create(name) with LDAPWrapper() as conn: - # NOTE(vish): try to associate a vpn ip and port first because - # if it throws an exception, we save having to - # create and destroy a project - Vpn.create(name) return conn.create_project(name, User.safe_id(manager_user), description, @@ -527,15 +524,16 @@ class UserManager(object): with LDAPWrapper() as conn: user = User.safe_id(user) result = conn.create_user(user, access, secret, admin) - if create_project: - # NOTE(vish): if the project creation fails, we delete - # the user and return an exception - try: - conn.create_project(user, user, user) - except Exception: + if create_project: + # NOTE(vish): if the project creation fails, we delete + # the user and return an exception + try: + conn.create_project(user, user, user) + except Exception: + with LDAPWrapper() as conn: conn.delete_user(user) - raise - return result + raise + return result def delete_user(self, user, delete_project=True): with LDAPWrapper() as conn: diff --git a/nova/cloudpipe/api.py b/nova/cloudpipe/api.py index 99a0a1d6da6a..a5f78a16d9ec 100644 --- a/nova/cloudpipe/api.py +++ b/nova/cloudpipe/api.py @@ -21,14 +21,13 @@ Tornado REST API Request Handlers for CloudPipe """ import logging -import urllib - -from nova import vendor import tornado.web +import urllib from nova import crypto from nova.auth import users + _log = logging.getLogger("api") _log.setLevel(logging.DEBUG) diff --git a/nova/cloudpipe/pipelib.py b/nova/cloudpipe/pipelib.py index de5326c5e0be..63f7ae222362 100644 --- a/nova/cloudpipe/pipelib.py +++ b/nova/cloudpipe/pipelib.py @@ -22,18 +22,19 @@ an instance with it. """ +import base64 import logging import os import tempfile -import base64 -from zipfile import ZipFile, ZIP_DEFLATED +import zipfile from nova import exception from nova import flags -from nova.auth import users from nova import utils +from nova.auth import users from nova.endpoint import api + FLAGS = flags.FLAGS flags.DEFINE_string('boot_script_template', @@ -52,7 +53,7 @@ class CloudPipe(object): tmpfolder = tempfile.mkdtemp() filename = "payload.zip" zippath = os.path.join(tmpfolder, filename) - z = ZipFile(zippath, "w", ZIP_DEFLATED) + z = zipfile.ZipFile(zippath, "w", zipfile.ZIP_DEFLATED) z.write(FLAGS.boot_script_template,'autorun.sh') z.close() diff --git a/nova/compute/disk.py b/nova/compute/disk.py index b24a90d7f5be..08a22556e574 100644 --- a/nova/compute/disk.py +++ b/nova/compute/disk.py @@ -24,12 +24,11 @@ Includes injection of SSH PGP keys into authorized_keys file. import logging import os import tempfile - -from nova import vendor from twisted.internet import defer from nova import exception + @defer.inlineCallbacks def partition(infile, outfile, local_bytes=0, local_type='ext2', execute=None): """Takes a single partition represented by infile and writes a bootable diff --git a/nova/compute/exception.py b/nova/compute/exception.py index fefa7451daff..13e4f0a51670 100644 --- a/nova/compute/exception.py +++ b/nova/compute/exception.py @@ -22,6 +22,7 @@ Exceptions for Compute Node errors, mostly network addressing. from nova.exception import Error + class NoMoreAddresses(Error): pass diff --git a/nova/compute/linux_net.py b/nova/compute/linux_net.py index 2e5f2519f3d2..eb9614194cff 100644 --- a/nova/compute/linux_net.py +++ b/nova/compute/linux_net.py @@ -19,11 +19,12 @@ import logging import signal import os -import nova.utils import subprocess # todo(ja): does the definition of network_path belong here? +from nova import utils + from nova import flags FLAGS=flags.FLAGS diff --git a/nova/compute/model.py b/nova/compute/model.py index f1eb99e7432c..cda188183b2c 100644 --- a/nova/compute/model.py +++ b/nova/compute/model.py @@ -42,8 +42,6 @@ True import logging import time - -from nova import vendor import redis from nova import datastore diff --git a/nova/compute/monitor.py b/nova/compute/monitor.py index b9fe20a71573..fdc86b031cff 100644 --- a/nova/compute/monitor.py +++ b/nova/compute/monitor.py @@ -24,11 +24,18 @@ Instance Monitoring: in the object store. """ +import boto +import boto.s3 import datetime +import libxml2 import logging import os +import rrdtool import sys import time +from twisted.internet import defer +from twisted.internet import task +from twisted.application import service try: import libvirt @@ -36,14 +43,7 @@ except Exception, err: logging.warning('no libvirt found') from nova import flags -from nova import vendor -import boto -import boto.s3 -import libxml2 -import rrdtool -from twisted.internet import defer -from twisted.internet import task -from twisted.application import service + FLAGS = flags.FLAGS flags.DEFINE_integer( diff --git a/nova/compute/network.py b/nova/compute/network.py index 3904fcff0fce..bdb8a22f9dfb 100644 --- a/nova/compute/network.py +++ b/nova/compute/network.py @@ -20,22 +20,19 @@ Classes for network control, including VLANs, DHCP, and IP allocation. """ +import IPy import logging import os import time -# TODO(termie): clean up these imports -from nova import vendor -import IPy - from nova import datastore +from nova import exception from nova import flags from nova import utils -from nova import exception -from nova.compute import exception as compute_exception from nova.auth import users +from nova.compute import exception as compute_exception +from nova.compute import linux_net -import linux_net FLAGS = flags.FLAGS flags.DEFINE_string('networks_path', utils.abspath('../networks'), @@ -130,8 +127,9 @@ class Vlan(datastore.BasicModel): @datastore.absorb_connection_error def all(cls): set_name = cls._redis_set_name(cls.__name__) - for project,vlan in datastore.Redis.instance().hgetall(set_name): - yield cls(project, vlan) + elements = datastore.Redis.instance().hgetall(set_name) + for project in elements: + yield cls(project, elements[project]) @datastore.absorb_connection_error def save(self): @@ -291,6 +289,7 @@ class BridgedNetwork(BaseNetwork): netmask """ + bridge_gets_ip = False override_type = 'network' @classmethod @@ -532,6 +531,10 @@ def get_vlan_for_project(project_id): return Vlan.create(project_id, vnum) raise compute_exception.AddressNotAllocated("Out of VLANs") +def get_network_by_interface(iface, security_group='default'): + vlan = iface.rpartition("br")[2] + return get_project_network(Vlan.dict_by_vlan().get(vlan), security_group) + def get_network_by_address(address): logging.debug("Get Network By Address: %s" % address) for project in users.UserManager.instance().get_projects(): diff --git a/nova/compute/node.py b/nova/compute/node.py index 7e4277f58d3a..d681ec66116b 100644 --- a/nova/compute/node.py +++ b/nova/compute/node.py @@ -30,12 +30,11 @@ import logging import os import shutil import sys - -from nova import vendor from twisted.internet import defer from twisted.internet import task from twisted.application import service + try: import libvirt except Exception, err: @@ -49,8 +48,9 @@ from nova import utils from nova.compute import disk from nova.compute import model from nova.compute import network -from nova.volume import storage from nova.objectstore import image # for image_path flag +from nova.volume import storage + FLAGS = flags.FLAGS flags.DEFINE_string('libvirt_xml_template', diff --git a/nova/crypto.py b/nova/crypto.py index 98d412687089..cc84f5e45cce 100644 --- a/nova/crypto.py +++ b/nova/crypto.py @@ -24,6 +24,7 @@ SSH keypairs and x509 certificates. import base64 import hashlib import logging +import M2Crypto import os import shutil import struct @@ -31,9 +32,6 @@ import tempfile import time import utils -from nova import vendor -import M2Crypto - from nova import exception from nova import flags diff --git a/nova/datastore.py b/nova/datastore.py index 8d6272ada285..e57177e0458f 100644 --- a/nova/datastore.py +++ b/nova/datastore.py @@ -24,8 +24,6 @@ before trying to run this. """ import logging - -from nova import vendor import redis from nova import exception @@ -105,7 +103,7 @@ class BasicModel(object): @classmethod def _redis_name(cls): - return self.override_type or cls.__name__ + return cls.override_type or cls.__name__ @classmethod def lookup(cls, identifier): @@ -147,7 +145,7 @@ class BasicModel(object): @property def __redis_key(self): - return '%s:%s' % (self.__class__.__name__.lower(), self.identifier) + return '%s:%s' % (self._redis_name(), self.identifier) def __repr__(self): return "<%s:%s>" % (self.__class__.__name__, self.identifier) diff --git a/nova/endpoint/api.py b/nova/endpoint/api.py index 255519198ff2..79a2aaddbdbc 100755 --- a/nova/endpoint/api.py +++ b/nova/endpoint/api.py @@ -25,21 +25,20 @@ import logging import multiprocessing import random import re +import tornado.web +from twisted.internet import defer import urllib # TODO(termie): replace minidom with etree from xml.dom import minidom -from nova import vendor -import tornado.web -from twisted.internet import defer - from nova import crypto from nova import exception from nova import flags from nova import utils -from nova.endpoint import cloud from nova.auth import users import nova.cloudpipe.api +from nova.endpoint import cloud + FLAGS = flags.FLAGS flags.DEFINE_integer('cc_port', 8773, 'cloud controller port') diff --git a/nova/endpoint/cloud.py b/nova/endpoint/cloud.py index 5b713feb9f53..3b7b4804b2e6 100644 --- a/nova/endpoint/cloud.py +++ b/nova/endpoint/cloud.py @@ -27,15 +27,13 @@ import json import logging import os import time - -from nova import vendor from twisted.internet import defer from nova import datastore +from nova import exception from nova import flags from nova import rpc from nova import utils -from nova import exception from nova.auth import rbac from nova.auth import users from nova.compute import model @@ -44,6 +42,7 @@ from nova.compute import node from nova.endpoint import images from nova.volume import storage + FLAGS = flags.FLAGS flags.DEFINE_string('cloud_topic', 'cloud', 'the topic clouds listen on') diff --git a/nova/endpoint/images.py b/nova/endpoint/images.py index b17e9681945e..12876da30dc4 100644 --- a/nova/endpoint/images.py +++ b/nova/endpoint/images.py @@ -21,17 +21,16 @@ Proxy AMI-related calls from the cloud controller, to the running objectstore daemon. """ +import boto +import boto.s3 import json import random import urllib -from nova import vendor -import boto -import boto.s3 - from nova import flags from nova import utils + FLAGS = flags.FLAGS def modify(context, image_id, operation): diff --git a/nova/endpoint/rackspace.py b/nova/endpoint/rackspace.py index 29a077b24456..9208ddab7658 100644 --- a/nova/endpoint/rackspace.py +++ b/nova/endpoint/rackspace.py @@ -26,21 +26,19 @@ import logging import multiprocessing import os import time - -from nova import vendor import tornado.web from twisted.internet import defer from nova import datastore +from nova import exception from nova import flags from nova import rpc from nova import utils -from nova import exception from nova.auth import users from nova.compute import model from nova.compute import network -from nova.endpoint import wsgi from nova.endpoint import images +from nova.endpoint import wsgi from nova.volume import storage diff --git a/nova/exception.py b/nova/exception.py index 09d894e4b39d..bda002d1e442 100644 --- a/nova/exception.py +++ b/nova/exception.py @@ -22,8 +22,8 @@ Nova-type exceptions. SHOULD include dedicated exception logging. """ import logging -import traceback import sys +import traceback class Error(Exception): def __init__(self, message=None): diff --git a/nova/fakerabbit.py b/nova/fakerabbit.py index 00eb183272b0..689194513cde 100644 --- a/nova/fakerabbit.py +++ b/nova/fakerabbit.py @@ -18,11 +18,10 @@ """ Based a bit on the carrot.backeds.queue backend... but a lot better """ +from carrot.backends import base import logging import Queue as queue -from carrot.backends import base - class Message(base.BaseMessage): pass diff --git a/nova/flags.py b/nova/flags.py index 22e00a44a2c3..60245a349162 100644 --- a/nova/flags.py +++ b/nova/flags.py @@ -23,7 +23,7 @@ where they're used. import socket -from nova import vendor + from gflags import * # This keeps pylint from barfing on the imports diff --git a/nova/objectstore/bucket.py b/nova/objectstore/bucket.py index 61feb4a4c3a3..090ef4e61c39 100644 --- a/nova/objectstore/bucket.py +++ b/nova/objectstore/bucket.py @@ -20,17 +20,18 @@ Simple object store using Blobs and JSON files on disk. """ +import bisect import datetime import glob import json import os -import bisect from nova import exception from nova import flags from nova import utils from nova.objectstore import stored + FLAGS = flags.FLAGS flags.DEFINE_string('buckets_path', utils.abspath('../buckets'), 'path to s3 buckets') diff --git a/nova/objectstore/handler.py b/nova/objectstore/handler.py index 22cfca5fd6f7..8377a57a667c 100644 --- a/nova/objectstore/handler.py +++ b/nova/objectstore/handler.py @@ -38,14 +38,11 @@ S3 client with this module:: import datetime import os -import urllib import json import logging import multiprocessing - - -from nova import vendor from tornado import escape, web +import urllib from nova import exception from nova import flags diff --git a/nova/objectstore/stored.py b/nova/objectstore/stored.py index f1730cbc71aa..81c047b22c67 100644 --- a/nova/objectstore/stored.py +++ b/nova/objectstore/stored.py @@ -20,10 +20,11 @@ Properties of an object stored within a bucket. """ +import os + +import nova.crypto from nova.exception import NotFound, NotAuthorized -import os -import nova.crypto class Object(object): def __init__(self, bucket, key): diff --git a/nova/process.py b/nova/process.py index 00ec4a26729e..ff789a08afda 100644 --- a/nova/process.py +++ b/nova/process.py @@ -23,8 +23,6 @@ Process pool, still buggy right now. import logging import multiprocessing import StringIO - -from nova import vendor from twisted.internet import defer from twisted.internet import error from twisted.internet import process diff --git a/nova/rpc.py b/nova/rpc.py index 72a84b7f7583..58a2b29cf942 100644 --- a/nova/rpc.py +++ b/nova/rpc.py @@ -21,14 +21,12 @@ AMQP-based RPC. Queues have consumers and publishers. No fan-out support yet. """ +from carrot import connection +from carrot import messaging import json import logging import sys import uuid - -from nova import vendor -from carrot import connection -from carrot import messaging from twisted.internet import defer from twisted.internet import reactor from twisted.internet import task diff --git a/nova/server.py b/nova/server.py index 1a6f3387666c..7a1901a2f4d3 100644 --- a/nova/server.py +++ b/nova/server.py @@ -20,6 +20,8 @@ Base functionality for nova daemons - gradually being replaced with twistd.py. """ +import daemon +from daemon import pidlockfile import logging import logging.handlers import os @@ -27,10 +29,6 @@ import signal import sys import time -from nova import vendor -import daemon -from daemon import pidlockfile - from nova import flags diff --git a/nova/test.py b/nova/test.py index 1f8a5ff473d6..5dcf0b9b0565 100644 --- a/nova/test.py +++ b/nova/test.py @@ -23,16 +23,14 @@ and some black magic for inline callbacks. """ import logging +import mox +import stubout import time import unittest - -from nova import vendor -import mox from tornado import ioloop from twisted.internet import defer from twisted.python import failure from twisted.trial import unittest as trial_unittest -import stubout from nova import fakerabbit from nova import flags diff --git a/nova/tests/access_unittest.py b/nova/tests/access_unittest.py index 609bda901eb1..8500dd0cbdf8 100644 --- a/nova/tests/access_unittest.py +++ b/nova/tests/access_unittest.py @@ -19,11 +19,12 @@ import unittest import logging -from nova.auth.users import UserManager -from nova.auth import rbac from nova import exception from nova import flags from nova import test +from nova.auth.users import UserManager +from nova.auth import rbac + FLAGS = flags.FLAGS class Context(object): diff --git a/nova/tests/api_integration.py b/nova/tests/api_integration.py index 0ccf69525492..23a88f08336d 100644 --- a/nova/tests/api_integration.py +++ b/nova/tests/api_integration.py @@ -16,10 +16,11 @@ # License for the specific language governing permissions and limitations # under the License. -import unittest import boto from boto.ec2.regioninfo import RegionInfo +import unittest + ACCESS_KEY = 'fake' SECRET_KEY = 'fake' diff --git a/nova/tests/api_unittest.py b/nova/tests/api_unittest.py index aee57b5140e3..e5e2afe263a1 100644 --- a/nova/tests/api_unittest.py +++ b/nova/tests/api_unittest.py @@ -16,13 +16,11 @@ # License for the specific language governing permissions and limitations # under the License. +import boto +from boto.ec2 import regioninfo import httplib import random import StringIO - -from nova import vendor -import boto -from boto.ec2 import regioninfo from tornado import httpserver from twisted.internet import defer diff --git a/nova/tests/cloud_unittest.py b/nova/tests/cloud_unittest.py index 9df83ec625ab..b8614fdc85ae 100644 --- a/nova/tests/cloud_unittest.py +++ b/nova/tests/cloud_unittest.py @@ -19,12 +19,10 @@ import logging import StringIO import time -import unittest -from xml.etree import ElementTree - -from nova import vendor from tornado import ioloop from twisted.internet import defer +import unittest +from xml.etree import ElementTree from nova import flags from nova import rpc diff --git a/nova/tests/future_unittest.py b/nova/tests/future_unittest.py index be4218c398ac..da5470ffe545 100644 --- a/nova/tests/future_unittest.py +++ b/nova/tests/future_unittest.py @@ -17,15 +17,13 @@ # under the License. import logging +import mox import StringIO import time -import unittest -from xml.etree import ElementTree - -from nova import vendor -import mox from tornado import ioloop from twisted.internet import defer +import unittest +from xml.etree import ElementTree from nova import cloud from nova import exception diff --git a/nova/tests/model_unittest.py b/nova/tests/model_unittest.py index f70cab40dd46..1bd7e527f01c 100644 --- a/nova/tests/model_unittest.py +++ b/nova/tests/model_unittest.py @@ -18,8 +18,6 @@ import logging import time - -from nova import vendor from twisted.internet import defer from nova import exception diff --git a/nova/tests/network_unittest.py b/nova/tests/network_unittest.py index d24ae133c719..444063d0f6ae 100644 --- a/nova/tests/network_unittest.py +++ b/nova/tests/network_unittest.py @@ -16,12 +16,10 @@ # License for the specific language governing permissions and limitations # under the License. +import IPy import os import logging -from nova import vendor -import IPy - from nova import flags from nova import test from nova import utils diff --git a/nova/tests/node_unittest.py b/nova/tests/node_unittest.py index 4f7bbd587ea8..93942d79e778 100644 --- a/nova/tests/node_unittest.py +++ b/nova/tests/node_unittest.py @@ -18,11 +18,8 @@ import logging import time - -from xml.etree import ElementTree - -from nova import vendor from twisted.internet import defer +from xml.etree import ElementTree from nova import exception from nova import flags @@ -31,6 +28,7 @@ from nova import utils from nova.compute import model from nova.compute import node + FLAGS = flags.FLAGS diff --git a/nova/tests/objectstore_unittest.py b/nova/tests/objectstore_unittest.py index ca2d31159d3a..f47ca7f00c14 100644 --- a/nova/tests/objectstore_unittest.py +++ b/nova/tests/objectstore_unittest.py @@ -23,15 +23,13 @@ import os import shutil import tempfile -from nova import vendor - from nova import flags from nova import objectstore from nova import test from nova.auth import users -FLAGS = flags.FLAGS +FLAGS = flags.FLAGS oss_tempdir = tempfile.mkdtemp(prefix='test_oss-') diff --git a/nova/tests/process_unittest.py b/nova/tests/process_unittest.py index 671ab05cd9b2..01648961fce8 100644 --- a/nova/tests/process_unittest.py +++ b/nova/tests/process_unittest.py @@ -17,11 +17,9 @@ # under the License. import logging -from xml.etree import ElementTree - -from nova import vendor from twisted.internet import defer from twisted.internet import reactor +from xml.etree import ElementTree from nova import exception from nova import flags diff --git a/nova/tests/storage_unittest.py b/nova/tests/storage_unittest.py index b04602b7138f..60576d74f169 100644 --- a/nova/tests/storage_unittest.py +++ b/nova/tests/storage_unittest.py @@ -69,13 +69,11 @@ class StorageTestCase(test.TrialTestCase): vols = [] for i in xrange(total_slots): vid = self.mystorage.create_volume(vol_size, user_id, project_id) - print vid vols.append(vid) self.assertRaises(storage.NoMoreVolumes, self.mystorage.create_volume, vol_size, user_id, project_id) for id in vols: - print id self.mystorage.delete_volume(id) def test_run_attach_detach_volume(self): diff --git a/nova/tests/users_unittest.py b/nova/tests/users_unittest.py index 6110248b5045..30172107506b 100644 --- a/nova/tests/users_unittest.py +++ b/nova/tests/users_unittest.py @@ -17,12 +17,10 @@ # under the License. import logging -import unittest - -from nova import vendor from M2Crypto import BIO from M2Crypto import RSA from M2Crypto import X509 +import unittest from nova import crypto from nova import flags diff --git a/nova/tests/validator_unittest.py b/nova/tests/validator_unittest.py index 38cddfef1f3c..84daa135e56f 100644 --- a/nova/tests/validator_unittest.py +++ b/nova/tests/validator_unittest.py @@ -19,8 +19,6 @@ import logging import unittest -from nova import vendor - from nova import flags from nova import test from nova import validate diff --git a/nova/twistd.py b/nova/twistd.py index 03de2d0ab004..32a46ce03c1c 100644 --- a/nova/twistd.py +++ b/nova/twistd.py @@ -22,22 +22,21 @@ manage pid files and support syslogging. """ import logging +import logging.handlers import os import signal import sys import time -import UserDict -import logging.handlers - -from nova import vendor from twisted.scripts import twistd from twisted.python import log from twisted.python import reflect from twisted.python import runtime from twisted.python import usage +import UserDict from nova import flags + if runtime.platformType == "win32": from twisted.scripts._twistw import ServerOptions else: diff --git a/nova/utils.py b/nova/utils.py index 25181332dd95..c5b9356731ee 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -20,6 +20,7 @@ System-level utilities and helper functions. """ +from datetime import datetime import inspect import logging import os @@ -27,7 +28,6 @@ import random import subprocess import socket import sys -from datetime import datetime from nova import flags diff --git a/nova/vendor.py b/nova/vendor.py deleted file mode 100644 index db75f30ecfb2..000000000000 --- a/nova/vendor.py +++ /dev/null @@ -1,24 +0,0 @@ -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright 2010 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -# -# 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. - -""" -Get our vendor folders into the system path. -""" - -print 'sorry, we cannot include vendor open source libraries... :(' - diff --git a/nova/volume/storage.py b/nova/volume/storage.py index 1507b4ec704f..de20f30b5d80 100644 --- a/nova/volume/storage.py +++ b/nova/volume/storage.py @@ -25,12 +25,10 @@ Currently uses Ata-over-Ethernet. import glob import logging import os -import socket import shutil +import socket import tempfile import time - -from nova import vendor from tornado import ioloop from twisted.internet import defer diff --git a/run_tests.py b/run_tests.py index bd1587d439ab..eb26459c5b65 100644 --- a/run_tests.py +++ b/run_tests.py @@ -41,7 +41,7 @@ Due to our use of multiprocessing it we frequently get some ignorable import __main__ import sys -from nova import vendor + from twisted.scripts import trial as trial_script from nova import datastore diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 000000000000..2785869629e7 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,4 @@ +[build_sphinx] +source-dir = docs +build-dir = docs/_build +all_files = 1 diff --git a/smoketests/flags.py b/smoketests/flags.py index ae0001e89a0e..3617fb797a25 100644 --- a/smoketests/flags.py +++ b/smoketests/flags.py @@ -21,7 +21,7 @@ Package-level global flags are defined here, the rest are defined where they're used. """ -from nova import vendor + from gflags import * # This keeps pylint from barfing on the imports diff --git a/smoketests/novatestcase.py b/smoketests/novatestcase.py index 11c8661bae51..513e0ca9127c 100644 --- a/smoketests/novatestcase.py +++ b/smoketests/novatestcase.py @@ -22,7 +22,7 @@ import random import sys import unittest -from nova import vendor + import paramiko from nova import adminclient diff --git a/smoketests/smoketest.py b/smoketests/smoketest.py index 61967d3b7b2b..ad95114d406e 100644 --- a/smoketests/smoketest.py +++ b/smoketests/smoketest.py @@ -25,7 +25,7 @@ import time import unittest import zipfile -from nova import vendor + import paramiko from smoketests import flags