Changes all uses of utcnow to use the version in utils. This is a simple wrapper for datetime.datetime.utcnow that allows us to use fake values for tests.
There are still a few places in the Zone code that is using datetime.now(), I'd prefer to move this to utils.utcnow() as well but I want to chat with sandy first to make sure that there won't be any issues.
This commit is contained in:
commit
2b8863d0da
@ -53,7 +53,6 @@
|
||||
CLI interface for nova management.
|
||||
"""
|
||||
|
||||
import datetime
|
||||
import gettext
|
||||
import glob
|
||||
import json
|
||||
@ -690,7 +689,7 @@ class ServiceCommands(object):
|
||||
"""Show a list of all running services. Filter by host & service name.
|
||||
args: [host] [service]"""
|
||||
ctxt = context.get_admin_context()
|
||||
now = datetime.datetime.utcnow()
|
||||
now = utils.utcnow()
|
||||
services = db.service_get_all(ctxt)
|
||||
if host:
|
||||
services = [s for s in services if s['host'] == host]
|
||||
|
@ -21,7 +21,6 @@ Admin API controller, exposed through http via the api worker.
|
||||
"""
|
||||
|
||||
import base64
|
||||
import datetime
|
||||
|
||||
from nova import db
|
||||
from nova import exception
|
||||
@ -305,7 +304,7 @@ class AdminController(object):
|
||||
* Volume Count
|
||||
"""
|
||||
services = db.service_get_all(context, False)
|
||||
now = datetime.datetime.utcnow()
|
||||
now = utils.utcnow()
|
||||
hosts = []
|
||||
rv = []
|
||||
for host in [service['host'] for service in services]:
|
||||
|
@ -23,7 +23,6 @@ datastore.
|
||||
"""
|
||||
|
||||
import base64
|
||||
import datetime
|
||||
import IPy
|
||||
import os
|
||||
import urllib
|
||||
@ -235,7 +234,7 @@ class CloudController(object):
|
||||
'zoneState': 'available'}]}
|
||||
|
||||
services = db.service_get_all(context, False)
|
||||
now = datetime.datetime.utcnow()
|
||||
now = utils.utcnow()
|
||||
hosts = []
|
||||
for host in [service['host'] for service in services]:
|
||||
if not host in hosts:
|
||||
@ -595,7 +594,7 @@ class CloudController(object):
|
||||
instance_id = ec2utils.ec2_id_to_id(ec2_id)
|
||||
output = self.compute_api.get_console_output(
|
||||
context, instance_id=instance_id)
|
||||
now = datetime.datetime.utcnow()
|
||||
now = utils.utcnow()
|
||||
return {"InstanceId": ec2_id,
|
||||
"Timestamp": now,
|
||||
"output": base64.b64encode(output)}
|
||||
|
@ -13,9 +13,8 @@
|
||||
# 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 datetime
|
||||
# under the License.
|
||||
|
||||
import datetime
|
||||
import hashlib
|
||||
import time
|
||||
|
||||
@ -127,7 +126,7 @@ class AuthMiddleware(wsgi.Middleware):
|
||||
except exception.NotFound:
|
||||
return None
|
||||
if token:
|
||||
delta = datetime.datetime.utcnow() - token['created_at']
|
||||
delta = utils.utcnow() - token['created_at']
|
||||
if delta.days >= 2:
|
||||
self.db.auth_token_destroy(ctxt, token['token_hash'])
|
||||
else:
|
||||
|
@ -13,7 +13,7 @@
|
||||
# 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 datetime
|
||||
# under the License.
|
||||
|
||||
"""Contrib contains extensions that are shipped with nova.
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
# 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 datetime
|
||||
# under the License.
|
||||
|
||||
"""
|
||||
Module dedicated functions/classes dealing with rate limiting requests.
|
||||
|
@ -13,7 +13,7 @@
|
||||
# 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 datetime
|
||||
# under the License.
|
||||
|
||||
"""Rate limiting of arbitrary actions."""
|
||||
|
||||
|
@ -18,7 +18,6 @@
|
||||
|
||||
"""Handles all requests relating to instances (guest vms)."""
|
||||
|
||||
import datetime
|
||||
import eventlet
|
||||
import re
|
||||
import time
|
||||
@ -407,7 +406,7 @@ class API(base.Base):
|
||||
instance['id'],
|
||||
state_description='terminating',
|
||||
state=0,
|
||||
terminated_at=datetime.datetime.utcnow())
|
||||
terminated_at=utils.utcnow())
|
||||
|
||||
host = instance['host']
|
||||
if host:
|
||||
|
@ -35,7 +35,6 @@ terminating it.
|
||||
|
||||
"""
|
||||
|
||||
import datetime
|
||||
import os
|
||||
import socket
|
||||
import sys
|
||||
@ -159,7 +158,7 @@ class ComputeManager(manager.SchedulerDependentManager):
|
||||
|
||||
def _update_launched_at(self, context, instance_id, launched_at=None):
|
||||
"""Update the launched_at parameter of the given instance."""
|
||||
data = {'launched_at': launched_at or datetime.datetime.utcnow()}
|
||||
data = {'launched_at': launched_at or utils.utcnow()}
|
||||
self.db.instance_update(context, instance_id, data)
|
||||
|
||||
def _update_image_ref(self, context, instance_id, image_ref):
|
||||
|
@ -86,7 +86,7 @@ RRD_VALUES = {
|
||||
]}
|
||||
|
||||
|
||||
utcnow = datetime.datetime.utcnow
|
||||
utcnow = utils.utcnow
|
||||
|
||||
|
||||
LOG = logging.getLogger('nova.compute.monitor')
|
||||
|
@ -18,7 +18,6 @@
|
||||
|
||||
"""RequestContext: context for requests that persist through all of nova."""
|
||||
|
||||
import datetime
|
||||
import random
|
||||
|
||||
from nova import exception
|
||||
|
@ -19,7 +19,6 @@
|
||||
Implementation of SQLAlchemy backend.
|
||||
"""
|
||||
|
||||
import datetime
|
||||
import warnings
|
||||
|
||||
from nova import db
|
||||
@ -674,7 +673,7 @@ def fixed_ip_disassociate_all_by_timeout(_context, host, time):
|
||||
filter_by(allocated=0).\
|
||||
update({'instance_id': None,
|
||||
'leased': 0,
|
||||
'updated_at': datetime.datetime.utcnow()},
|
||||
'updated_at': utils.utcnow()},
|
||||
synchronize_session='fetch')
|
||||
return result
|
||||
|
||||
@ -820,17 +819,17 @@ def instance_destroy(context, instance_id):
|
||||
session.query(models.Instance).\
|
||||
filter_by(id=instance_id).\
|
||||
update({'deleted': True,
|
||||
'deleted_at': datetime.datetime.utcnow(),
|
||||
'deleted_at': utils.utcnow(),
|
||||
'updated_at': literal_column('updated_at')})
|
||||
session.query(models.SecurityGroupInstanceAssociation).\
|
||||
filter_by(instance_id=instance_id).\
|
||||
update({'deleted': True,
|
||||
'deleted_at': datetime.datetime.utcnow(),
|
||||
'deleted_at': utils.utcnow(),
|
||||
'updated_at': literal_column('updated_at')})
|
||||
session.query(models.InstanceMetadata).\
|
||||
filter_by(instance_id=instance_id).\
|
||||
update({'deleted': True,
|
||||
'deleted_at': datetime.datetime.utcnow(),
|
||||
'deleted_at': utils.utcnow(),
|
||||
'updated_at': literal_column('updated_at')})
|
||||
|
||||
|
||||
@ -1123,7 +1122,7 @@ def key_pair_destroy_all_by_user(context, user_id):
|
||||
session.query(models.KeyPair).\
|
||||
filter_by(user_id=user_id).\
|
||||
update({'deleted': 1,
|
||||
'deleted_at': datetime.datetime.utcnow(),
|
||||
'deleted_at': utils.utcnow(),
|
||||
'updated_at': literal_column('updated_at')})
|
||||
|
||||
|
||||
@ -1655,7 +1654,7 @@ def volume_destroy(context, volume_id):
|
||||
session.query(models.Volume).\
|
||||
filter_by(id=volume_id).\
|
||||
update({'deleted': 1,
|
||||
'deleted_at': datetime.datetime.utcnow(),
|
||||
'deleted_at': utils.utcnow(),
|
||||
'updated_at': literal_column('updated_at')})
|
||||
session.query(models.ExportDevice).\
|
||||
filter_by(volume_id=volume_id).\
|
||||
@ -1813,7 +1812,7 @@ def snapshot_destroy(context, snapshot_id):
|
||||
session.query(models.Snapshot).\
|
||||
filter_by(id=snapshot_id).\
|
||||
update({'deleted': 1,
|
||||
'deleted_at': datetime.datetime.utcnow(),
|
||||
'deleted_at': utils.utcnow(),
|
||||
'updated_at': literal_column('updated_at')})
|
||||
|
||||
|
||||
@ -1968,17 +1967,17 @@ def security_group_destroy(context, security_group_id):
|
||||
session.query(models.SecurityGroup).\
|
||||
filter_by(id=security_group_id).\
|
||||
update({'deleted': 1,
|
||||
'deleted_at': datetime.datetime.utcnow(),
|
||||
'deleted_at': utils.utcnow(),
|
||||
'updated_at': literal_column('updated_at')})
|
||||
session.query(models.SecurityGroupInstanceAssociation).\
|
||||
filter_by(security_group_id=security_group_id).\
|
||||
update({'deleted': 1,
|
||||
'deleted_at': datetime.datetime.utcnow(),
|
||||
'deleted_at': utils.utcnow(),
|
||||
'updated_at': literal_column('updated_at')})
|
||||
session.query(models.SecurityGroupIngressRule).\
|
||||
filter_by(group_id=security_group_id).\
|
||||
update({'deleted': 1,
|
||||
'deleted_at': datetime.datetime.utcnow(),
|
||||
'deleted_at': utils.utcnow(),
|
||||
'updated_at': literal_column('updated_at')})
|
||||
|
||||
|
||||
@ -1989,11 +1988,11 @@ def security_group_destroy_all(context, session=None):
|
||||
with session.begin():
|
||||
session.query(models.SecurityGroup).\
|
||||
update({'deleted': 1,
|
||||
'deleted_at': datetime.datetime.utcnow(),
|
||||
'deleted_at': utils.utcnow(),
|
||||
'updated_at': literal_column('updated_at')})
|
||||
session.query(models.SecurityGroupIngressRule).\
|
||||
update({'deleted': 1,
|
||||
'deleted_at': datetime.datetime.utcnow(),
|
||||
'deleted_at': utils.utcnow(),
|
||||
'updated_at': literal_column('updated_at')})
|
||||
|
||||
|
||||
@ -2627,7 +2626,7 @@ def instance_metadata_delete(context, instance_id, key):
|
||||
filter_by(key=key).\
|
||||
filter_by(deleted=False).\
|
||||
update({'deleted': True,
|
||||
'deleted_at': datetime.datetime.utcnow(),
|
||||
'deleted_at': utils.utcnow(),
|
||||
'updated_at': literal_column('updated_at')})
|
||||
|
||||
|
||||
@ -2638,7 +2637,7 @@ def instance_metadata_delete_all(context, instance_id):
|
||||
filter_by(instance_id=instance_id).\
|
||||
filter_by(deleted=False).\
|
||||
update({'deleted': True,
|
||||
'deleted_at': datetime.datetime.utcnow(),
|
||||
'deleted_at': utils.utcnow(),
|
||||
'updated_at': literal_column('updated_at')})
|
||||
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
from sqlalchemy import Boolean, Column, DateTime, Integer
|
||||
from sqlalchemy import MetaData, String, Table
|
||||
|
||||
import datetime
|
||||
from nova import utils
|
||||
|
||||
meta = MetaData()
|
||||
|
||||
@ -35,9 +35,9 @@ def old_style_quotas_table(name):
|
||||
return Table(name, meta,
|
||||
Column('id', Integer(), primary_key=True),
|
||||
Column('created_at', DateTime(),
|
||||
default=datetime.datetime.utcnow),
|
||||
default=utils.utcnow),
|
||||
Column('updated_at', DateTime(),
|
||||
onupdate=datetime.datetime.utcnow),
|
||||
onupdate=utils.utcnow),
|
||||
Column('deleted_at', DateTime()),
|
||||
Column('deleted', Boolean(), default=False),
|
||||
Column('project_id',
|
||||
@ -57,9 +57,9 @@ def new_style_quotas_table(name):
|
||||
return Table(name, meta,
|
||||
Column('id', Integer(), primary_key=True),
|
||||
Column('created_at', DateTime(),
|
||||
default=datetime.datetime.utcnow),
|
||||
default=utils.utcnow),
|
||||
Column('updated_at', DateTime(),
|
||||
onupdate=datetime.datetime.utcnow),
|
||||
onupdate=utils.utcnow),
|
||||
Column('deleted_at', DateTime()),
|
||||
Column('deleted', Boolean(), default=False),
|
||||
Column('project_id',
|
||||
|
@ -19,8 +19,6 @@
|
||||
SQLAlchemy models for nova data.
|
||||
"""
|
||||
|
||||
import datetime
|
||||
|
||||
from sqlalchemy.orm import relationship, backref, object_mapper
|
||||
from sqlalchemy import Column, Integer, String, schema
|
||||
from sqlalchemy import ForeignKey, DateTime, Boolean, Text
|
||||
@ -33,6 +31,7 @@ from nova.db.sqlalchemy.session import get_session
|
||||
from nova import auth
|
||||
from nova import exception
|
||||
from nova import flags
|
||||
from nova import utils
|
||||
|
||||
|
||||
FLAGS = flags.FLAGS
|
||||
@ -43,8 +42,8 @@ class NovaBase(object):
|
||||
"""Base class for Nova Models."""
|
||||
__table_args__ = {'mysql_engine': 'InnoDB'}
|
||||
__table_initialized__ = False
|
||||
created_at = Column(DateTime, default=datetime.datetime.utcnow)
|
||||
updated_at = Column(DateTime, onupdate=datetime.datetime.utcnow)
|
||||
created_at = Column(DateTime, default=utils.utcnow)
|
||||
updated_at = Column(DateTime, onupdate=utils.utcnow)
|
||||
deleted_at = Column(DateTime)
|
||||
deleted = Column(Boolean, default=False)
|
||||
|
||||
@ -64,7 +63,7 @@ class NovaBase(object):
|
||||
def delete(self, session=None):
|
||||
"""Delete this object."""
|
||||
self.deleted = True
|
||||
self.deleted_at = datetime.datetime.utcnow()
|
||||
self.deleted_at = utils.utcnow()
|
||||
self.save(session=session)
|
||||
|
||||
def __setitem__(self, key, value):
|
||||
|
@ -235,7 +235,7 @@ class NetworkManager(manager.SchedulerDependentManager):
|
||||
inst_addr = instance_ref['mac_address']
|
||||
raise exception.Error(_('IP %(address)s leased to bad mac'
|
||||
' %(inst_addr)s vs %(mac)s') % locals())
|
||||
now = datetime.datetime.utcnow()
|
||||
now = utils.utcnow()
|
||||
self.db.fixed_ip_update(context,
|
||||
fixed_ip_ref['address'],
|
||||
{'leased': True,
|
||||
|
@ -11,9 +11,8 @@
|
||||
# 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 datetime
|
||||
# under the License.
|
||||
|
||||
import datetime
|
||||
import uuid
|
||||
|
||||
from nova import flags
|
||||
@ -64,7 +63,7 @@ def notify(publisher_id, event_type, priority, payload):
|
||||
|
||||
{'message_id': str(uuid.uuid4()),
|
||||
'publisher_id': 'compute.host1',
|
||||
'timestamp': datetime.datetime.utcnow(),
|
||||
'timestamp': utils.utcnow(),
|
||||
'priority': 'WARN',
|
||||
'event_type': 'compute.create_instance',
|
||||
'payload': {'instance_id': 12, ... }}
|
||||
@ -79,5 +78,5 @@ def notify(publisher_id, event_type, priority, payload):
|
||||
event_type=event_type,
|
||||
priority=priority,
|
||||
payload=payload,
|
||||
timestamp=str(datetime.datetime.utcnow()))
|
||||
timestamp=str(utils.utcnow()))
|
||||
driver.notify(msg)
|
||||
|
@ -28,6 +28,7 @@ from nova import exception
|
||||
from nova import flags
|
||||
from nova import log as logging
|
||||
from nova import rpc
|
||||
from nova import utils
|
||||
from nova.compute import power_state
|
||||
|
||||
FLAGS = flags.FLAGS
|
||||
@ -61,7 +62,7 @@ class Scheduler(object):
|
||||
"""Check whether a service is up based on last heartbeat."""
|
||||
last_heartbeat = service['updated_at'] or service['created_at']
|
||||
# Timestamps in DB are UTC.
|
||||
elapsed = datetime.datetime.utcnow() - last_heartbeat
|
||||
elapsed = utils.utcnow() - last_heartbeat
|
||||
return elapsed < datetime.timedelta(seconds=FLAGS.service_down_time)
|
||||
|
||||
def hosts_up(self, context, topic):
|
||||
|
@ -21,10 +21,9 @@
|
||||
Simple Scheduler
|
||||
"""
|
||||
|
||||
import datetime
|
||||
|
||||
from nova import db
|
||||
from nova import flags
|
||||
from nova import utils
|
||||
from nova.scheduler import driver
|
||||
from nova.scheduler import chance
|
||||
|
||||
@ -54,7 +53,7 @@ class SimpleScheduler(chance.ChanceScheduler):
|
||||
|
||||
# TODO(vish): this probably belongs in the manager, if we
|
||||
# can generalize this somehow
|
||||
now = datetime.datetime.utcnow()
|
||||
now = utils.utcnow()
|
||||
db.instance_update(context, instance_id, {'host': host,
|
||||
'scheduled_at': now})
|
||||
return host
|
||||
@ -66,7 +65,7 @@ class SimpleScheduler(chance.ChanceScheduler):
|
||||
if self.service_is_up(service):
|
||||
# NOTE(vish): this probably belongs in the manager, if we
|
||||
# can generalize this somehow
|
||||
now = datetime.datetime.utcnow()
|
||||
now = utils.utcnow()
|
||||
db.instance_update(context,
|
||||
instance_id,
|
||||
{'host': service['host'],
|
||||
@ -90,7 +89,7 @@ class SimpleScheduler(chance.ChanceScheduler):
|
||||
|
||||
# TODO(vish): this probably belongs in the manager, if we
|
||||
# can generalize this somehow
|
||||
now = datetime.datetime.utcnow()
|
||||
now = utils.utcnow()
|
||||
db.volume_update(context, volume_id, {'host': host,
|
||||
'scheduled_at': now})
|
||||
return host
|
||||
@ -103,7 +102,7 @@ class SimpleScheduler(chance.ChanceScheduler):
|
||||
if self.service_is_up(service):
|
||||
# NOTE(vish): this probably belongs in the manager, if we
|
||||
# can generalize this somehow
|
||||
now = datetime.datetime.utcnow()
|
||||
now = utils.utcnow()
|
||||
db.volume_update(context,
|
||||
volume_id,
|
||||
{'host': service['host'],
|
||||
|
@ -17,16 +17,17 @@
|
||||
ZoneManager oversees all communications with child Zones.
|
||||
"""
|
||||
|
||||
import datetime
|
||||
import novaclient
|
||||
import thread
|
||||
import traceback
|
||||
|
||||
from datetime import datetime
|
||||
from eventlet import greenpool
|
||||
|
||||
from nova import db
|
||||
from nova import flags
|
||||
from nova import log as logging
|
||||
from nova import utils
|
||||
|
||||
FLAGS = flags.FLAGS
|
||||
flags.DEFINE_integer('zone_db_check_interval', 60,
|
||||
@ -42,7 +43,7 @@ class ZoneState(object):
|
||||
self.name = None
|
||||
self.capabilities = None
|
||||
self.attempt = 0
|
||||
self.last_seen = datetime.min
|
||||
self.last_seen = datetime.datetime.min
|
||||
self.last_exception = None
|
||||
self.last_exception_time = None
|
||||
|
||||
@ -56,7 +57,7 @@ class ZoneState(object):
|
||||
def update_metadata(self, zone_metadata):
|
||||
"""Update zone metadata after successful communications with
|
||||
child zone."""
|
||||
self.last_seen = datetime.now()
|
||||
self.last_seen = utils.utcnow()
|
||||
self.attempt = 0
|
||||
self.name = zone_metadata.get("name", "n/a")
|
||||
self.capabilities = ", ".join(["%s=%s" % (k, v)
|
||||
@ -72,7 +73,7 @@ class ZoneState(object):
|
||||
"""Something went wrong. Check to see if zone should be
|
||||
marked as offline."""
|
||||
self.last_exception = exception
|
||||
self.last_exception_time = datetime.now()
|
||||
self.last_exception_time = utils.utcnow()
|
||||
api_url = self.api_url
|
||||
logging.warning(_("'%(exception)s' error talking to "
|
||||
"zone %(api_url)s") % locals())
|
||||
@ -104,7 +105,7 @@ def _poll_zone(zone):
|
||||
class ZoneManager(object):
|
||||
"""Keeps the zone states updated."""
|
||||
def __init__(self):
|
||||
self.last_zone_db_check = datetime.min
|
||||
self.last_zone_db_check = datetime.datetime.min
|
||||
self.zone_states = {} # { <zone_id> : ZoneState }
|
||||
self.service_states = {} # { <host> : { <service> : { cap k : v }}}
|
||||
self.green_pool = greenpool.GreenPool()
|
||||
@ -158,10 +159,10 @@ class ZoneManager(object):
|
||||
|
||||
def ping(self, context=None):
|
||||
"""Ping should be called periodically to update zone status."""
|
||||
diff = datetime.now() - self.last_zone_db_check
|
||||
diff = utils.utcnow() - self.last_zone_db_check
|
||||
if diff.seconds >= FLAGS.zone_db_check_interval:
|
||||
logging.debug(_("Updating zone cache from db."))
|
||||
self.last_zone_db_check = datetime.now()
|
||||
self.last_zone_db_check = utils.utcnow()
|
||||
self._refresh_from_db(context)
|
||||
self._poll_zones(context)
|
||||
|
||||
|
@ -23,7 +23,6 @@ inline callbacks.
|
||||
|
||||
"""
|
||||
|
||||
import datetime
|
||||
import functools
|
||||
import os
|
||||
import shutil
|
||||
@ -37,6 +36,7 @@ from eventlet import greenthread
|
||||
from nova import fakerabbit
|
||||
from nova import flags
|
||||
from nova import rpc
|
||||
from nova import utils
|
||||
from nova import service
|
||||
from nova import wsgi
|
||||
from nova.virt import fake
|
||||
@ -69,7 +69,7 @@ class TestCase(unittest.TestCase):
|
||||
# NOTE(vish): We need a better method for creating fixtures for tests
|
||||
# now that we have some required db setup for the system
|
||||
# to work properly.
|
||||
self.start = datetime.datetime.utcnow()
|
||||
self.start = utils.utcnow()
|
||||
shutil.copyfile(os.path.join(FLAGS.state_path, FLAGS.sqlite_clean_db),
|
||||
os.path.join(FLAGS.state_path, FLAGS.sqlite_db))
|
||||
|
||||
|
@ -16,7 +16,6 @@
|
||||
# under the License.
|
||||
|
||||
import copy
|
||||
import datetime
|
||||
import json
|
||||
import random
|
||||
import string
|
||||
@ -256,7 +255,7 @@ class FakeAuthDatabase(object):
|
||||
|
||||
@staticmethod
|
||||
def auth_token_create(context, token):
|
||||
fake_token = FakeToken(created_at=datetime.datetime.now(), **token)
|
||||
fake_token = FakeToken(created_at=utils.utcnow(), **token)
|
||||
FakeAuthDatabase.data[fake_token.token_hash] = fake_token
|
||||
FakeAuthDatabase.data['id_%i' % fake_token.id] = fake_token
|
||||
return fake_token
|
||||
|
@ -22,7 +22,6 @@ and as a WSGI layer
|
||||
|
||||
import copy
|
||||
import json
|
||||
import datetime
|
||||
import os
|
||||
import shutil
|
||||
import tempfile
|
||||
|
@ -16,7 +16,6 @@
|
||||
# under the License.
|
||||
|
||||
import base64
|
||||
import datetime
|
||||
import json
|
||||
import unittest
|
||||
from xml.dom import minidom
|
||||
@ -29,6 +28,7 @@ from nova import db
|
||||
from nova import exception
|
||||
from nova import flags
|
||||
from nova import test
|
||||
from nova import utils
|
||||
import nova.api.openstack
|
||||
from nova.api.openstack import servers
|
||||
import nova.compute.api
|
||||
@ -115,9 +115,9 @@ def stub_instance(id, user_id=1, private_address=None, public_addresses=None,
|
||||
"user_data": "",
|
||||
"reservation_id": "",
|
||||
"mac_address": "",
|
||||
"scheduled_at": datetime.datetime.now(),
|
||||
"launched_at": datetime.datetime.now(),
|
||||
"terminated_at": datetime.datetime.now(),
|
||||
"scheduled_at": utils.utcnow(),
|
||||
"launched_at": utils.utcnow(),
|
||||
"terminated_at": utils.utcnow(),
|
||||
"availability_zone": "",
|
||||
"display_name": "server%s" % id,
|
||||
"display_description": "",
|
||||
|
@ -197,7 +197,7 @@ class ZoneSchedulerTestCase(test.TestCase):
|
||||
service.topic = 'compute'
|
||||
service.id = kwargs['id']
|
||||
service.availability_zone = kwargs['zone']
|
||||
service.created_at = datetime.datetime.utcnow()
|
||||
service.created_at = utils.utcnow()
|
||||
return service
|
||||
|
||||
def test_with_two_zones(self):
|
||||
@ -291,7 +291,7 @@ class SimpleDriverTestCase(test.TestCase):
|
||||
dic['host'] = kwargs.get('host', 'dummy')
|
||||
s_ref = db.service_create(self.context, dic)
|
||||
if 'created_at' in kwargs.keys() or 'updated_at' in kwargs.keys():
|
||||
t = datetime.datetime.utcnow() - datetime.timedelta(0)
|
||||
t = utils.utcnow() - datetime.timedelta(0)
|
||||
dic['created_at'] = kwargs.get('created_at', t)
|
||||
dic['updated_at'] = kwargs.get('updated_at', t)
|
||||
db.service_update(self.context, s_ref['id'], dic)
|
||||
@ -402,7 +402,7 @@ class SimpleDriverTestCase(test.TestCase):
|
||||
FLAGS.compute_manager)
|
||||
compute1.start()
|
||||
s1 = db.service_get_by_args(self.context, 'host1', 'nova-compute')
|
||||
now = datetime.datetime.utcnow()
|
||||
now = utils.utcnow()
|
||||
delta = datetime.timedelta(seconds=FLAGS.service_down_time * 2)
|
||||
past = now - delta
|
||||
db.service_update(self.context, s1['id'], {'updated_at': past})
|
||||
@ -543,7 +543,7 @@ class SimpleDriverTestCase(test.TestCase):
|
||||
def test_wont_sechedule_if_specified_host_is_down(self):
|
||||
compute1 = self.start_service('compute', host='host1')
|
||||
s1 = db.service_get_by_args(self.context, 'host1', 'nova-compute')
|
||||
now = datetime.datetime.utcnow()
|
||||
now = utils.utcnow()
|
||||
delta = datetime.timedelta(seconds=FLAGS.service_down_time * 2)
|
||||
past = now - delta
|
||||
db.service_update(self.context, s1['id'], {'updated_at': past})
|
||||
@ -693,7 +693,7 @@ class SimpleDriverTestCase(test.TestCase):
|
||||
dic = {'instance_id': instance_id, 'size': 1}
|
||||
v_ref = db.volume_create(self.context, {'instance_id': instance_id,
|
||||
'size': 1})
|
||||
t1 = datetime.datetime.utcnow() - datetime.timedelta(1)
|
||||
t1 = utils.utcnow() - datetime.timedelta(1)
|
||||
dic = {'created_at': t1, 'updated_at': t1, 'binary': 'nova-volume',
|
||||
'topic': 'volume', 'report_count': 0}
|
||||
s_ref = db.service_create(self.context, dic)
|
||||
@ -710,7 +710,7 @@ class SimpleDriverTestCase(test.TestCase):
|
||||
"""Confirms src-compute node is alive."""
|
||||
instance_id = self._create_instance()
|
||||
i_ref = db.instance_get(self.context, instance_id)
|
||||
t = datetime.datetime.utcnow() - datetime.timedelta(10)
|
||||
t = utils.utcnow() - datetime.timedelta(10)
|
||||
s_ref = self._create_compute_service(created_at=t, updated_at=t,
|
||||
host=i_ref['host'])
|
||||
|
||||
@ -738,7 +738,7 @@ class SimpleDriverTestCase(test.TestCase):
|
||||
"""Confirms exception raises in case dest host does not exist."""
|
||||
instance_id = self._create_instance()
|
||||
i_ref = db.instance_get(self.context, instance_id)
|
||||
t = datetime.datetime.utcnow() - datetime.timedelta(10)
|
||||
t = utils.utcnow() - datetime.timedelta(10)
|
||||
s_ref = self._create_compute_service(created_at=t, updated_at=t,
|
||||
host=i_ref['host'])
|
||||
|
||||
@ -797,7 +797,7 @@ class SimpleDriverTestCase(test.TestCase):
|
||||
# mocks for live_migration_common_check()
|
||||
instance_id = self._create_instance()
|
||||
i_ref = db.instance_get(self.context, instance_id)
|
||||
t1 = datetime.datetime.utcnow() - datetime.timedelta(10)
|
||||
t1 = utils.utcnow() - datetime.timedelta(10)
|
||||
s_ref = self._create_compute_service(created_at=t1, updated_at=t1,
|
||||
host=dest)
|
||||
|
||||
|
@ -19,7 +19,6 @@
|
||||
Tests For Compute
|
||||
"""
|
||||
|
||||
import datetime
|
||||
import mox
|
||||
import stubout
|
||||
|
||||
@ -217,12 +216,12 @@ class ComputeTestCase(test.TestCase):
|
||||
instance_ref = db.instance_get(self.context, instance_id)
|
||||
self.assertEqual(instance_ref['launched_at'], None)
|
||||
self.assertEqual(instance_ref['deleted_at'], None)
|
||||
launch = datetime.datetime.utcnow()
|
||||
launch = utils.utcnow()
|
||||
self.compute.run_instance(self.context, instance_id)
|
||||
instance_ref = db.instance_get(self.context, instance_id)
|
||||
self.assert_(instance_ref['launched_at'] > launch)
|
||||
self.assertEqual(instance_ref['deleted_at'], None)
|
||||
terminate = datetime.datetime.utcnow()
|
||||
terminate = utils.utcnow()
|
||||
self.compute.terminate_instance(self.context, instance_id)
|
||||
self.context = self.context.elevated(True)
|
||||
instance_ref = db.instance_get(self.context, instance_id)
|
||||
|
@ -20,8 +20,6 @@
|
||||
Tests For Console proxy.
|
||||
"""
|
||||
|
||||
import datetime
|
||||
|
||||
from nova import context
|
||||
from nova import db
|
||||
from nova import exception
|
||||
|
@ -16,7 +16,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import datetime
|
||||
import webob
|
||||
import webob.dec
|
||||
import webob.exc
|
||||
|
@ -307,7 +307,7 @@ def get_my_linklocal(interface):
|
||||
|
||||
|
||||
def utcnow():
|
||||
"""Overridable version of datetime.datetime.utcnow."""
|
||||
"""Overridable version of utils.utcnow."""
|
||||
if utcnow.override_time:
|
||||
return utcnow.override_time
|
||||
return datetime.datetime.utcnow()
|
||||
|
@ -51,13 +51,13 @@ A fake XenAPI SDK.
|
||||
"""
|
||||
|
||||
|
||||
import datetime
|
||||
import uuid
|
||||
|
||||
from pprint import pformat
|
||||
|
||||
from nova import exception
|
||||
from nova import log as logging
|
||||
from nova import utils
|
||||
|
||||
|
||||
_CLASSES = ['host', 'network', 'session', 'SR', 'VBD',
|
||||
@ -540,7 +540,7 @@ class SessionBase(object):
|
||||
except Failure, exc:
|
||||
task['error_info'] = exc.details
|
||||
task['status'] = 'failed'
|
||||
task['finished'] = datetime.datetime.now()
|
||||
task['finished'] = utils.utcnow()
|
||||
return task_ref
|
||||
|
||||
def _check_session(self, params):
|
||||
|
@ -20,14 +20,13 @@
|
||||
Handles all requests relating to volumes.
|
||||
"""
|
||||
|
||||
import datetime
|
||||
|
||||
from nova import db
|
||||
from nova import exception
|
||||
from nova import flags
|
||||
from nova import log as logging
|
||||
from nova import quota
|
||||
from nova import rpc
|
||||
from nova import utils
|
||||
from nova.db import base
|
||||
|
||||
FLAGS = flags.FLAGS
|
||||
@ -78,7 +77,7 @@ class API(base.Base):
|
||||
volume = self.get(context, volume_id)
|
||||
if volume['status'] != "available":
|
||||
raise exception.ApiError(_("Volume status must be available"))
|
||||
now = datetime.datetime.utcnow()
|
||||
now = utils.utcnow()
|
||||
self.db.volume_update(context, volume_id, {'status': 'deleting',
|
||||
'terminated_at': now})
|
||||
host = volume['host']
|
||||
|
@ -42,8 +42,6 @@ intact.
|
||||
|
||||
"""
|
||||
|
||||
import datetime
|
||||
|
||||
|
||||
from nova import context
|
||||
from nova import exception
|
||||
@ -127,7 +125,7 @@ class VolumeManager(manager.SchedulerDependentManager):
|
||||
volume_ref['id'], {'status': 'error'})
|
||||
raise
|
||||
|
||||
now = datetime.datetime.utcnow()
|
||||
now = utils.utcnow()
|
||||
self.db.volume_update(context,
|
||||
volume_ref['id'], {'status': 'available',
|
||||
'launched_at': now})
|
||||
|
Loading…
Reference in New Issue
Block a user