Handle test_list_servers_by_changes_since without tenant isolation

The test_list_servers_by_changes_since test fails when running with
allow_tenant_isolation=false because there is an arbitrary 2 minutes to
determine the timedelta for the changes-since in the query. That doesn't
work when the servers created in the test are all under the same
user/tenant because the tearDown doesn't block until the servers are
deleted.

This patch makes the timedelta code smarter in that it narrows the
changes-since down to when the test case started setting up the servers
for the test and when it does the query.

Closes-Bug: #1195309

Change-Id: Ie848637ea490da2151e5db8292726111d45a8c2d
diff --git a/tempest/api/compute/servers/test_list_servers_negative.py b/tempest/api/compute/servers/test_list_servers_negative.py
index 1050054..7f5ccf9 100644
--- a/tempest/api/compute/servers/test_list_servers_negative.py
+++ b/tempest/api/compute/servers/test_list_servers_negative.py
@@ -81,6 +81,7 @@
         # tearDownClass method of the super-class.
         cls.existing_fixtures = []
         cls.deleted_fixtures = []
+        cls.start_time = datetime.datetime.utcnow()
         for x in xrange(2):
             resp, srv = cls.create_server()
             cls.existing_fixtures.append(srv)
@@ -173,8 +174,7 @@
     @attr(type='gate')
     def test_list_servers_by_changes_since(self):
         # Servers are listed by specifying changes-since date
-        since = datetime.datetime.utcnow() - datetime.timedelta(minutes=2)
-        changes_since = {'changes-since': since.isoformat()}
+        changes_since = {'changes-since': self.start_time.isoformat()}
         resp, body = self.client.list_servers(changes_since)
         self.assertEqual('200', resp['status'])
         # changes-since returns all instances, including deleted.