Ejemplo n.º 1
0
    def test_save(self, mock_segment_update, mock_notify_about_segment_api):

        mock_segment_update.return_value = fake_segment

        segment_object = segment.FailoverSegment(context=self.context)
        segment_object.name = "foo-segment"
        segment_object.id = 123
        segment_object.uuid = uuidsentinel.fake_segment
        segment_object.save()

        self.compare_obj(segment_object, fake_segment)
        self.assertTrue(mock_segment_update.called)
        action = fields.EventNotificationAction.SEGMENT_UPDATE
        phase_start = fields.EventNotificationPhase.START
        phase_end = fields.EventNotificationPhase.END
        notify_calls = [
            mock.call(self.context,
                      segment_object,
                      action=action,
                      phase=phase_start),
            mock.call(self.context,
                      segment_object,
                      action=action,
                      phase=phase_end)
        ]
        mock_notify_about_segment_api.assert_has_calls(notify_calls)
Ejemplo n.º 2
0
    def test_save_lazy_attribute_changed(self, mock_host_update):

        mock_host_update.return_value = fake_host

        host_obj = self._host_create_attributes()
        host_obj.failover_segment = (segment.FailoverSegment(
            context=self.context))
        host_obj.id = 123
        self.assertRaises(exception.ObjectActionError, host_obj.save)
Ejemplo n.º 3
0
    def _segment_create_attribute(self):

        segment_obj = segment.FailoverSegment(context=self.context)
        segment_obj.name = 'foo-segment'
        segment_obj.description = 'keydata'
        segment_obj.service_type = 'fake-user'
        segment_obj.recovery_method = 'auto'
        segment_obj.uuid = uuidsentinel.fake_segment

        return segment_obj
Ejemplo n.º 4
0
 def test_obj_make_compatible(self):
     segment_obj = segment.FailoverSegment(context=self.context)
     segment_obj.name = "foo-segment"
     segment_obj.id = 123
     segment_obj.uuid = uuidsentinel.fake_segment
     segment_obj.enabled = True
     primitive = segment_obj.obj_to_primitive('1.1')
     self.assertIn('enabled', primitive['masakari_object.data'])
     primitive = segment_obj.obj_to_primitive('1.0')
     self.assertNotIn('enabled', primitive['masakari_object.data'])
Ejemplo n.º 5
0
    def test_save_failover_segment_already_exists(self, mock_segment_update):

        mock_segment_update.side_effect = (exception.FailoverSegmentExists(
            name="foo-segment"))

        segment_object = segment.FailoverSegment(context=self.context)
        segment_object.name = "foo-segment"
        segment_object.id = 123
        segment_object.uuid = uuidsentinel.fake_segment

        self.assertRaises(exception.FailoverSegmentExists, segment_object.save)
Ejemplo n.º 6
0
    def test_save_failover_segment_not_found(self, mock_segment_update):

        mock_segment_update.side_effect = (exception.FailoverSegmentNotFound(
            id=uuidsentinel.fake_segment))

        segment_object = segment.FailoverSegment(context=self.context)
        segment_object.name = "foo-segment"
        segment_object.id = 123
        segment_object.uuid = uuidsentinel.fake_segment

        self.assertRaises(exception.FailoverSegmentNotFound,
                          segment_object.save)
Ejemplo n.º 7
0
    def test_save(self, mock_segment_update):

        mock_segment_update.return_value = fake_segment

        segment_object = segment.FailoverSegment(context=self.context)
        segment_object.name = "foo-segment"
        segment_object.id = 123
        segment_object.uuid = uuidsentinel.fake_segment
        segment_object.save()

        self.compare_obj(segment_object, fake_segment)
        self.assertTrue(mock_segment_update.called)
Ejemplo n.º 8
0
    def test_save_failover_segment_already_exists(self, mock_segment_update,
                                            mock_notify_about_segment_api):

        mock_segment_update.side_effect = (
            exception.FailoverSegmentExists(name="foo-segment"))

        segment_object = segment.FailoverSegment(context=self.context)
        segment_object.name = "foo-segment"
        segment_object.id = 123
        segment_object.uuid = uuidsentinel.fake_segment

        self.assertRaises(exception.FailoverSegmentExists, segment_object.save)
        action = fields.EventNotificationAction.SEGMENT_UPDATE
        phase_start = fields.EventNotificationPhase.START
        notify_calls = [
            mock.call(self.context, segment_object, action=action,
                      phase=phase_start)]
        mock_notify_about_segment_api.assert_has_calls(notify_calls)
Ejemplo n.º 9
0
def _make_segment_obj(segment_dict):
    return segment_obj.FailoverSegment(**segment_dict)
Ejemplo n.º 10
0
def _make_segments_list(segments_list):
    return segment_obj.FailoverSegment(objects=[
        _make_segment_obj(a) for a in segments_list])
Ejemplo n.º 11
0
#
# Unless required by applicable law or agreed to in writing, software
# 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.

from masakari.notifications.objects import base
from masakari.notifications.objects import exception
from masakari.notifications.objects import notification as event_notification
from masakari.objects import host as host_obj
from masakari.objects import notification as notification_obj
from masakari.objects import segment as segment_obj

segment = segment_obj.FailoverSegment()
host = host_obj.Host()
notification = notification_obj.Notification()
fault = None

init_args = {
    event_notification.SegmentApiPayloadBase: [segment],
    event_notification.SegmentApiPayload: [segment, fault],
    event_notification.HostApiPayloadBase: [host],
    event_notification.HostApiPayload: [host, fault],
    event_notification.NotificationApiPayloadBase: [notification],
    event_notification.NotificationApiPayload: [notification, fault],
    event_notification.SegmentApiNotification: [],
    event_notification.HostApiNotification: [],
    event_notification.NotificationApiNotification: [],
    exception.ExceptionPayload: [],