)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fa50fd07738122761f4acd58ba49c6a39739ed8d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The instance.unlock versioned notification is introduced in this"},{"line_number":10,"context_line":"patch."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The unlock operation just changes the instance.locked to True in"},{"line_number":13,"context_line":"API, we send the notification after db operation."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ic750c33b4f88ba9c62ea8cba86915c6010f2cd6f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5f7c97a3_bb3be2ce","line":12,"range":{"start_line":12,"start_character":57,"end_line":12,"end_character":61},"updated":"2018-06-25 19:24:59.000000000","message":"False","commit_id":"46e91b83ac6a634d9f073ae1ccc878e479486c12"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"e6155271a85259bb68259781b4c6a649bc5462ea","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The instance.unlock versioned notification is introduced in this"},{"line_number":10,"context_line":"patch."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The unlock operation just changes the instance.locked to True in"},{"line_number":13,"context_line":"API, we send the notification after db operation."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ic750c33b4f88ba9c62ea8cba86915c6010f2cd6f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5f7c97a3_ead5fd1b","line":12,"range":{"start_line":12,"start_character":57,"end_line":12,"end_character":61},"in_reply_to":"5f7c97a3_bb3be2ce","updated":"2018-06-26 01:44:03.000000000","message":"Ha, bad copy paste","commit_id":"46e91b83ac6a634d9f073ae1ccc878e479486c12"}],"doc/notification_samples/instance-lock.json":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"35844641d16bfed3ae6dccb5b5685e0500435001","unresolved":false,"context_lines":[{"line_number":2,"context_line":"    \"event_type\":\"instance.lock.start\","},{"line_number":3,"context_line":"    \"payload\":{"},{"line_number":4,"context_line":"        \"$ref\": \"common_payloads/InstanceActionPayload.json#\","},{"line_number":5,"context_line":"        \"nova_object.data\":{"},{"line_number":6,"context_line":"            \"locked\":false"},{"line_number":7,"context_line":"        }"},{"line_number":8,"context_line":"    },"},{"line_number":9,"context_line":"    \"priority\":\"INFO\","},{"line_number":10,"context_line":"    \"publisher_id\":\"nova-api:host\""}],"source_content_type":"application/json","patch_set":1,"id":"5f7c97a3_5eb9c0c8","line":7,"range":{"start_line":5,"start_character":0,"end_line":7,"end_character":9},"updated":"2018-06-20 06:37:39.000000000","message":"seems doesn\u0027t belong here.","commit_id":"02e70ecb24907e2983a758d08b82e6f2ae0250ca"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"91d7bf676debc674d63d38a1e534927d90b059cb","unresolved":false,"context_lines":[{"line_number":2,"context_line":"    \"event_type\":\"instance.lock.start\","},{"line_number":3,"context_line":"    \"payload\":{"},{"line_number":4,"context_line":"        \"$ref\": \"common_payloads/InstanceActionPayload.json#\","},{"line_number":5,"context_line":"        \"nova_object.data\":{"},{"line_number":6,"context_line":"            \"locked\":false"},{"line_number":7,"context_line":"        }"},{"line_number":8,"context_line":"    },"},{"line_number":9,"context_line":"    \"priority\":\"INFO\","},{"line_number":10,"context_line":"    \"publisher_id\":\"nova-api:host\""}],"source_content_type":"application/json","patch_set":1,"id":"5f7c97a3_2f004b00","line":7,"range":{"start_line":5,"start_character":0,"end_line":7,"end_character":9},"in_reply_to":"5f7c97a3_5eb9c0c8","updated":"2018-06-20 08:56:15.000000000","message":"Done","commit_id":"02e70ecb24907e2983a758d08b82e6f2ae0250ca"}],"doc/notification_samples/instance-unlock.json":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"df56479252ab725a356a4cf853fad4f0813d41ec","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    \"payload\":{"},{"line_number":4,"context_line":"        \"$ref\": \"common_payloads/InstanceActionPayload.json#\","},{"line_number":5,"context_line":"        \"nova_object.data\":{"},{"line_number":6,"context_line":"            \"locked\":false"},{"line_number":7,"context_line":"        }"},{"line_number":8,"context_line":"    },"},{"line_number":9,"context_line":"    \"priority\":\"INFO\","}],"source_content_type":"application/json","patch_set":4,"id":"5f7c97a3_fe3443ae","line":6,"updated":"2018-06-20 13:12:23.000000000","message":"This is the value in common_payloads/InstanceActionPayload.json so it is not necessary to override it here.","commit_id":"e9a2a857a06919b14dcc327d8f0b8fc522c268ec"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"10380afd709ddfbc141127d2c0533396dcfa4c16","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    \"payload\":{"},{"line_number":4,"context_line":"        \"$ref\": \"common_payloads/InstanceActionPayload.json#\","},{"line_number":5,"context_line":"        \"nova_object.data\":{"},{"line_number":6,"context_line":"            \"locked\":false"},{"line_number":7,"context_line":"        }"},{"line_number":8,"context_line":"    },"},{"line_number":9,"context_line":"    \"priority\":\"INFO\","}],"source_content_type":"application/json","patch_set":4,"id":"5f7c97a3_6e239306","line":6,"in_reply_to":"5f7c97a3_fe3443ae","updated":"2018-06-21 03:00:41.000000000","message":"Done","commit_id":"e9a2a857a06919b14dcc327d8f0b8fc522c268ec"}],"nova/notifications/objects/base.py":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"aa77dfa3373667e603625f426c955f87f751ffce","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    # Version 1.9: ADD_MEMBER value is added to NotificationActionField enum"},{"line_number":58,"context_line":"    # Version 1.10: UPDATE_METADATA value is added to the"},{"line_number":59,"context_line":"    #               NotificationActionField enum"},{"line_number":60,"context_line":"    # Version 1.11: LOCK is added to NotificationActionField enum"},{"line_number":61,"context_line":"    # Version 1.12: UNLOCK is added to NotificationActionField enum"},{"line_number":62,"context_line":"    VERSION \u003d \u00271.12\u0027"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    fields \u003d {"},{"line_number":65,"context_line":"        \u0027object\u0027: fields.StringField(nullable\u003dFalse),"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_63bd0501","line":62,"range":{"start_line":60,"start_character":4,"end_line":62,"end_character":20},"updated":"2018-06-20 05:35:05.000000000","message":"should we add them together to avoid too many version bump?","commit_id":"02e70ecb24907e2983a758d08b82e6f2ae0250ca"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"91d7bf676debc674d63d38a1e534927d90b059cb","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    # Version 1.9: ADD_MEMBER value is added to NotificationActionField enum"},{"line_number":58,"context_line":"    # Version 1.10: UPDATE_METADATA value is added to the"},{"line_number":59,"context_line":"    #               NotificationActionField enum"},{"line_number":60,"context_line":"    # Version 1.11: LOCK is added to NotificationActionField enum"},{"line_number":61,"context_line":"    # Version 1.12: UNLOCK is added to NotificationActionField enum"},{"line_number":62,"context_line":"    VERSION \u003d \u00271.12\u0027"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    fields \u003d {"},{"line_number":65,"context_line":"        \u0027object\u0027: fields.StringField(nullable\u003dFalse),"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_6f05e413","line":62,"range":{"start_line":60,"start_character":4,"end_line":62,"end_character":20},"in_reply_to":"5f7c97a3_63bd0501","updated":"2018-06-20 08:56:15.000000000","message":"To the make the lock and unlock change more clear, I divided them as separate patch. We do same thing in 1.6/1.7 for attach/detach stuff, so I think it\u0027s not a problem.: )","commit_id":"02e70ecb24907e2983a758d08b82e6f2ae0250ca"}],"nova/tests/functional/notification_sample_tests/test_instance.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"df56479252ab725a356a4cf853fad4f0813d41ec","unresolved":false,"context_lines":[{"line_number":1667,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], {\u0027lock\u0027: {}})"},{"line_number":1668,"context_line":"        self._wait_for_server_parameter(self.api, server, {\u0027locked\u0027: True})"},{"line_number":1669,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], {\u0027unlock\u0027: {}})"},{"line_number":1670,"context_line":"        self._wait_for_server_parameter(self.api, server, {\u0027locked\u0027: False})"},{"line_number":1671,"context_line":"        # Four versioned notifications are generated"},{"line_number":1672,"context_line":"        # 0. instance-lock"},{"line_number":1673,"context_line":"        # 1. instance-unlock"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_5e5c5718","line":1670,"updated":"2018-06-20 13:12:23.000000000","message":"Good, it re-sets the server state to normal.","commit_id":"e9a2a857a06919b14dcc327d8f0b8fc522c268ec"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"df56479252ab725a356a4cf853fad4f0813d41ec","unresolved":false,"context_lines":[{"line_number":1668,"context_line":"        self._wait_for_server_parameter(self.api, server, {\u0027locked\u0027: True})"},{"line_number":1669,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], {\u0027unlock\u0027: {}})"},{"line_number":1670,"context_line":"        self._wait_for_server_parameter(self.api, server, {\u0027locked\u0027: False})"},{"line_number":1671,"context_line":"        # Four versioned notifications are generated"},{"line_number":1672,"context_line":"        # 0. instance-lock"},{"line_number":1673,"context_line":"        # 1. instance-unlock"},{"line_number":1674,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_be3ecb88","line":1671,"range":{"start_line":1671,"start_character":10,"end_line":1671,"end_character":14},"updated":"2018-06-20 13:12:23.000000000","message":"still bad :)","commit_id":"e9a2a857a06919b14dcc327d8f0b8fc522c268ec"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"10380afd709ddfbc141127d2c0533396dcfa4c16","unresolved":false,"context_lines":[{"line_number":1668,"context_line":"        self._wait_for_server_parameter(self.api, server, {\u0027locked\u0027: True})"},{"line_number":1669,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], {\u0027unlock\u0027: {}})"},{"line_number":1670,"context_line":"        self._wait_for_server_parameter(self.api, server, {\u0027locked\u0027: False})"},{"line_number":1671,"context_line":"        # Four versioned notifications are generated"},{"line_number":1672,"context_line":"        # 0. instance-lock"},{"line_number":1673,"context_line":"        # 1. instance-unlock"},{"line_number":1674,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_2e191bd0","line":1671,"range":{"start_line":1671,"start_character":10,"end_line":1671,"end_character":14},"in_reply_to":"5f7c97a3_be3ecb88","updated":"2018-06-21 03:00:41.000000000","message":"Done","commit_id":"e9a2a857a06919b14dcc327d8f0b8fc522c268ec"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"df56479252ab725a356a4cf853fad4f0813d41ec","unresolved":false,"context_lines":[{"line_number":11027,"context_line":"        mock_event.assert_called_once_with(ctxt,"},{"line_number":11028,"context_line":"                                           \u0027api_unlock\u0027,"},{"line_number":11029,"context_line":"                                           CONF.host,"},{"line_number":11030,"context_line":"                                           instance.uuid)"},{"line_number":11031,"context_line":""},{"line_number":11032,"context_line":"    def test_add_remove_security_group(self):"},{"line_number":11033,"context_line":"        instance \u003d self._create_fake_instance_obj()"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_de5aa7f0","line":11030,"updated":"2018-06-20 13:12:23.000000000","message":"please assert that the notify_about_instance_action() is called","commit_id":"e9a2a857a06919b14dcc327d8f0b8fc522c268ec"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"10380afd709ddfbc141127d2c0533396dcfa4c16","unresolved":false,"context_lines":[{"line_number":11027,"context_line":"        mock_event.assert_called_once_with(ctxt,"},{"line_number":11028,"context_line":"                                           \u0027api_unlock\u0027,"},{"line_number":11029,"context_line":"                                           CONF.host,"},{"line_number":11030,"context_line":"                                           instance.uuid)"},{"line_number":11031,"context_line":""},{"line_number":11032,"context_line":"    def test_add_remove_security_group(self):"},{"line_number":11033,"context_line":"        instance \u003d self._create_fake_instance_obj()"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_0edf7fd7","line":11030,"in_reply_to":"5f7c97a3_de5aa7f0","updated":"2018-06-21 03:00:41.000000000","message":"Done","commit_id":"e9a2a857a06919b14dcc327d8f0b8fc522c268ec"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"9f809f475ca4e8ff79d337712b7319507f0bd2a3","unresolved":false,"context_lines":[{"line_number":11018,"context_line":"    @mock.patch(\u0027nova.context.RequestContext.elevated\u0027)"},{"line_number":11019,"context_line":"    @mock.patch(\u0027nova.compute.api.API._record_action_start\u0027)"},{"line_number":11020,"context_line":"    @mock.patch.object(compute_utils, \u0027EventReporter\u0027)"},{"line_number":11021,"context_line":"    def test_unlock(self, mock_event, mock_record, mock_elevate, mock_notify):"},{"line_number":11022,"context_line":"        mock_elevate.return_value \u003d self.context"},{"line_number":11023,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":11024,"context_line":"        self.stub_out(\u0027nova.network.api.API.deallocate_for_instance\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_ff874f60","line":11021,"updated":"2018-06-21 05:50:36.000000000","message":"Thanks for the patch.Like you have changed and renamed func _test_lock_unlock_instance then the test case should also be renamed if you changed here for both cases. and if not then should create a new test case.","commit_id":"46e91b83ac6a634d9f073ae1ccc878e479486c12"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2c6f29a8e895b1d67a7c61df6c8da477f895c0f5","unresolved":false,"context_lines":[{"line_number":11018,"context_line":"    @mock.patch(\u0027nova.context.RequestContext.elevated\u0027)"},{"line_number":11019,"context_line":"    @mock.patch(\u0027nova.compute.api.API._record_action_start\u0027)"},{"line_number":11020,"context_line":"    @mock.patch.object(compute_utils, \u0027EventReporter\u0027)"},{"line_number":11021,"context_line":"    def test_unlock(self, mock_event, mock_record, mock_elevate, mock_notify):"},{"line_number":11022,"context_line":"        mock_elevate.return_value \u003d self.context"},{"line_number":11023,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":11024,"context_line":"        self.stub_out(\u0027nova.network.api.API.deallocate_for_instance\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_64f88f7b","line":11021,"in_reply_to":"5f7c97a3_3fa38745","updated":"2018-06-21 09:40:18.000000000","message":"@Vishakha: I also don\u0027t see why this test case name needs to be changed. The functional test case Yikun renamed is independent from this unit test case.","commit_id":"46e91b83ac6a634d9f073ae1ccc878e479486c12"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"107a9e3e5714d7752c3ffb913cc49cc0fc4e2f17","unresolved":false,"context_lines":[{"line_number":11018,"context_line":"    @mock.patch(\u0027nova.context.RequestContext.elevated\u0027)"},{"line_number":11019,"context_line":"    @mock.patch(\u0027nova.compute.api.API._record_action_start\u0027)"},{"line_number":11020,"context_line":"    @mock.patch.object(compute_utils, \u0027EventReporter\u0027)"},{"line_number":11021,"context_line":"    def test_unlock(self, mock_event, mock_record, mock_elevate, mock_notify):"},{"line_number":11022,"context_line":"        mock_elevate.return_value \u003d self.context"},{"line_number":11023,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":11024,"context_line":"        self.stub_out(\u0027nova.network.api.API.deallocate_for_instance\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_3fa38745","line":11021,"in_reply_to":"5f7c97a3_ff874f60","updated":"2018-06-21 06:31:44.000000000","message":"Sorry, I haven\u0027t got your idea completely, I change the func test case in [1], also change the executor in [2].\n\n[1] https://review.openstack.org/#/c/576703/5/nova/tests/functional/notification_sample_tests/test_instance.py@1666\n[2] https://review.openstack.org/#/c/576703/5/nova/tests/functional/notification_sample_tests/test_instance.py@308\n\nand this unit test case, I don\u0027t change case name, so what do I need to change?","commit_id":"46e91b83ac6a634d9f073ae1ccc878e479486c12"}],"releasenotes/notes/trigger-notifications-when-lock-unlock-instances-5c0bb9262c0b4f0b.yaml":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"df56479252ab725a356a4cf853fad4f0813d41ec","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The following versioned instance lock and instance unlock notifications"},{"line_number":5,"context_line":"    have been added in the nova-compute service:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * instance.lock"},{"line_number":8,"context_line":"    * instance.unlock"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"5f7c97a3_fe0203ba","line":5,"range":{"start_line":5,"start_character":27,"end_line":5,"end_character":39},"updated":"2018-06-20 13:12:23.000000000","message":"it is emitted from the nova-api so it is misleading.\nI think it is enough to say that:\n\"The versioned instance.lock and instance.unlock notifications have been added. These notifications are emitted as a result of the respective server lock and server unlock REST API calls.\n\nSee https://docs.openstack.org/nova/latest/reference/notifications.html#existing-versioned-notifications for notification samples.\n\"","commit_id":"e9a2a857a06919b14dcc327d8f0b8fc522c268ec"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"10380afd709ddfbc141127d2c0533396dcfa4c16","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The following versioned instance lock and instance unlock notifications"},{"line_number":5,"context_line":"    have been added in the nova-compute service:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * instance.lock"},{"line_number":8,"context_line":"    * instance.unlock"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"5f7c97a3_ae9e8b03","line":5,"range":{"start_line":5,"start_character":27,"end_line":5,"end_character":39},"in_reply_to":"5f7c97a3_fe0203ba","updated":"2018-06-21 03:00:41.000000000","message":"Done, thanks for your help","commit_id":"e9a2a857a06919b14dcc327d8f0b8fc522c268ec"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fa50fd07738122761f4acd58ba49c6a39739ed8d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The versioned instance.lock and instance.unlock notifications have been"},{"line_number":5,"context_line":"    added. These notifications are emitted as a result of the respective"},{"line_number":6,"context_line":"    server lock and server unlock REST API calls."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f7c97a3_bb120257","line":4,"range":{"start_line":4,"start_character":18,"end_line":4,"end_character":31},"updated":"2018-06-25 19:24:59.000000000","message":"``instance.lock`` and ``instance.unlock``","commit_id":"46e91b83ac6a634d9f073ae1ccc878e479486c12"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fa50fd07738122761f4acd58ba49c6a39739ed8d","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The versioned instance.lock and instance.unlock notifications have been"},{"line_number":5,"context_line":"    added. These notifications are emitted as a result of the respective"},{"line_number":6,"context_line":"    server lock and server unlock REST API calls."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    See https://docs.openstack.org/nova/latest/reference/notifications.html#existing-versioned-notifications"},{"line_number":9,"context_line":"    for notification samples."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f7c97a3_3b283284","line":6,"range":{"start_line":6,"start_character":11,"end_line":6,"end_character":15},"updated":"2018-06-25 19:24:59.000000000","message":"``lock`` and server ``unlock``","commit_id":"46e91b83ac6a634d9f073ae1ccc878e479486c12"}]}
