Manage deployment updated_at values
This adds an updated_at argument for RPC calls to update_software_deployment, which will be useful for Partial-Blueprint: software-config-trigger Change-Id: I2c00a68e13c7d96b3d63ccbd34c27986a6bccfc9
This commit is contained in:
parent
32f6e8fd5c
commit
66bc4953c3
@ -331,6 +331,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):
|
||||
|
@ -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__()
|
||||
@ -1466,7 +1467,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
|
||||
@ -1480,6 +1481,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)
|
||||
|
||||
|
@ -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',
|
||||
|
@ -3411,7 +3411,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'])
|
||||
@ -3438,7 +3438,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'])
|
||||
@ -3461,7 +3461,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])
|
||||
|
||||
|
@ -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'
|
||||
|
Loading…
Reference in New Issue
Block a user