Merge "Manage deployment updated_at values"

This commit is contained in:
Jenkins 2015-02-16 03:32:26 +00:00 committed by Gerrit Code Review
commit 202943e42e
5 changed files with 27 additions and 15 deletions

View File

@ -332,6 +332,7 @@ class SoftwareDeployment(BASE, HeatBase, StateAware):
'tenant', sqlalchemy.String(64), nullable=False, index=True)
stack_user_project_id = sqlalchemy.Column(sqlalchemy.String(64),
nullable=True)
updated_at = sqlalchemy.Column(sqlalchemy.DateTime)
class Snapshot(BASE, HeatBase):

View File

@ -22,6 +22,7 @@ import eventlet
from oslo.config import cfg
from oslo import messaging
from oslo.serialization import jsonutils
from oslo.utils import timeutils
from oslo.utils import uuidutils
from osprofiler import profiler
import requests
@ -269,7 +270,7 @@ class EngineService(service.Service):
by the RPC caller.
"""
RPC_API_VERSION = '1.4'
RPC_API_VERSION = '1.5'
def __init__(self, host, topic, manager=None):
super(EngineService, self).__init__()
@ -1473,7 +1474,7 @@ class EngineService(service.Service):
@request_context
def update_software_deployment(self, cnxt, deployment_id, config_id,
input_values, output_values, action,
status, status_reason):
status, status_reason, updated_at):
update_data = {}
if config_id:
update_data['config_id'] = config_id
@ -1487,6 +1488,11 @@ class EngineService(service.Service):
update_data['status'] = status
if status_reason:
update_data['status_reason'] = status_reason
if updated_at:
update_data['updated_at'] = timeutils.parse_isotime(updated_at)
else:
update_data['updated_at'] = timeutils.utcnow()
sd = db_api.software_deployment_update(cnxt,
deployment_id, update_data)

View File

@ -528,15 +528,19 @@ class EngineClient(object):
def update_software_deployment(self, cnxt, deployment_id,
config_id=None, input_values=None,
output_values=None, action=None,
status=None, status_reason=None):
return self.call(cnxt, self.make_msg('update_software_deployment',
deployment_id=deployment_id,
config_id=config_id,
input_values=input_values,
output_values=output_values,
action=action,
status=status,
status_reason=status_reason))
status=None, status_reason=None,
updated_at=None):
return self.call(
cnxt, self.make_msg('update_software_deployment',
deployment_id=deployment_id,
config_id=config_id,
input_values=input_values,
output_values=output_values,
action=action,
status=status,
status_reason=status_reason,
updated_at=updated_at),
version='1.5')
def delete_software_deployment(self, cnxt, deployment_id):
return self.call(cnxt, self.make_msg('delete_software_deployment',

View File

@ -3430,7 +3430,7 @@ class SoftwareConfigServiceTest(common.HeatTestCase):
updated = self.engine.update_software_deployment(
self.ctx, deployment_id=deployment_id, config_id=config_id,
input_values={}, output_values={}, action='DEPLOY',
status='WAITING', status_reason='')
status='WAITING', status_reason='', updated_at=None)
self.assertIsNotNone(updated)
self.assertEqual(config_id, updated['config_id'])
self.assertEqual('DEPLOY', updated['action'])
@ -3457,7 +3457,7 @@ class SoftwareConfigServiceTest(common.HeatTestCase):
updated = self.engine.update_software_deployment(
self.ctx, deployment_id=deployment_id, config_id=None,
input_values=None, output_values={}, action='DEPLOY',
status='WAITING', status_reason='')
status='WAITING', status_reason='', updated_at=None)
self.assertIsNotNone(updated)
self.assertEqual('DEPLOY', updated['action'])
self.assertEqual('WAITING', updated['status'])
@ -3480,7 +3480,7 @@ class SoftwareConfigServiceTest(common.HeatTestCase):
}
values.update(kwargs)
updated = self.engine.update_software_deployment(
self.ctx, deployment_id, **values)
self.ctx, deployment_id, updated_at=None, **values)
for key, value in six.iteritems(kwargs):
self.assertEqual(value, updated[key])

View File

@ -315,7 +315,8 @@ class EngineRpcAPITestCase(testtools.TestCase):
output_values={},
action='DEPLOYED',
status='COMPLETE',
status_reason=None)
status_reason=None,
updated_at=None)
def test_delete_software_deployment(self):
deployment_id = '86729f02-4648-44d8-af44-d0ec65b6abc9'