コード例 #1
0
ファイル: test_api.py プロジェクト: takanattie/masakari
 def setUp(self, mock_rpc):
     super(NotificationAPITestCase, self).setUp()
     self.notification_api = ha_api.NotificationAPI()
     self.req = fakes.HTTPRequest.blank('/v1/notifications',
                                        use_admin_context=True)
     self.context = self.req.environ['masakari.context']
     self.failover_segment = fakes_data.create_fake_failover_segment(
         name="segment1",
         id=1,
         description="something",
         service_type="COMPUTE",
         recovery_method="auto",
         uuid=uuidsentinel.fake_segment)
     self.host = fakes_data.create_fake_host(
         name="host_1",
         id=1,
         reserved=False,
         on_maintenance=False,
         type="fake",
         control_attributes="fake-control_attributes",
         uuid=uuidsentinel.fake_host_1)
     self.notification = fakes_data.create_fake_notification(
         type="VM",
         id=1,
         payload={
             'event': 'STOPPED',
             'host_status': 'NORMAL',
             'cluster_status': 'ONLINE'
         },
         source_host_uuid=uuidsentinel.fake_host,
         generated_time=NOW,
         status="running",
         notification_uuid=uuidsentinel.fake_notification)
     self.exception_duplicate = exception.DuplicateNotification(
         host='host_1', type='COMPUTE_HOST')
コード例 #2
0
ファイル: test_engine_mgr.py プロジェクト: rkmrHonjo/masakari
    def test_process_notification_reserved_host_failure(
            self, mock_notification_save, mock_host_failure, mock_get_all,
            mock_host_update, mock_host_save, mock_host_obj):
        fake_host = fakes.create_fake_host(reserved=True)
        fake_host.failover_segment = fakes.create_fake_failover_segment(
            recovery_method='reserved_host')
        reserved_host_list = [fake_host]
        mock_get_all.return_value = reserved_host_list
        mock_host_obj.return_value = fake_host

        notification = self._get_compute_host_type_notification()
        mock_host_failure.side_effect = self._fake_notification_workflow()

        self.engine.process_notification(self.context,
                                         notification=notification)

        update_data_by_host_failure = {
            'on_maintenance': True,
            'reserved': False,
        }
        mock_host_update.assert_called_once_with(update_data_by_host_failure)
        self.assertEqual("finished", notification.status)
        mock_host_failure.assert_called_once_with(
            self.context,
            fake_host.name, fake_host.failover_segment.recovery_method,
            notification.notification_uuid,
            reserved_host_list=reserved_host_list)
コード例 #3
0
    def test_process_notification_type_compute_host_event_stopped(
            self, mock_notification_save, mock_host_failure, mock_get_all,
            mock_host_update, mock_host_save, mock_host_obj,
            mock_notification_get):
        notification = self._get_compute_host_type_notification()
        mock_notification_get.return_value = notification
        mock_host_failure.side_effect = self._fake_notification_workflow()
        fake_host = fakes.create_fake_host()
        mock_get_all.return_value = None
        fake_host.failover_segment = fakes.create_fake_failover_segment()
        mock_host_obj.return_value = fake_host
        self.engine.process_notification(self.context,
                                         notification=notification)

        update_data_by_host_failure = {
            'on_maintenance': True,
        }
        mock_host_update.assert_called_once_with(update_data_by_host_failure)
        self.assertEqual("finished", notification.status)
        mock_host_failure.assert_called_once_with(
            self.context,
            fake_host.name,
            fake_host.failover_segment.recovery_method,
            notification.notification_uuid,
            reserved_host_list=None)
コード例 #4
0
ファイル: test_engine_mgr.py プロジェクト: thaihust/masakari
    def test_process_notification_reserved_host_failure(
            self, mock_notification_save, mock_host_failure, mock_get_all,
            mock_host_update, mock_host_save, mock_host_obj):
        fake_host = fakes.create_fake_host(reserved=True)
        fake_host.failover_segment = fakes.create_fake_failover_segment(
            recovery_method='reserved_host')
        reserved_host_list = [fake_host]
        mock_get_all.return_value = reserved_host_list
        mock_host_obj.return_value = fake_host

        notification = self._get_compute_host_type_notification()
        mock_host_failure.side_effect = self._fake_notification_workflow()

        self.engine.process_notification(self.context,
                                         notification=notification)

        update_data_by_host_failure = {
            'on_maintenance': True,
            'reserved': False,
        }
        mock_host_update.assert_called_once_with(update_data_by_host_failure)
        self.assertEqual("finished", notification.status)
        mock_host_failure.assert_called_once_with(
            self.context,
            fake_host.name,
            fake_host.failover_segment.recovery_method,
            notification.notification_uuid,
            reserved_host_list=reserved_host_list)
コード例 #5
0
ファイル: test_api.py プロジェクト: rkmrHonjo/masakari
 def setUp(self):
     super(FailoverSegmentAPITestCase, self).setUp()
     self.segment_api = ha_api.FailoverSegmentAPI()
     self.req = fakes.HTTPRequest.blank('/v1/segments',
                                        use_admin_context=True)
     self.context = self.req.environ['masakari.context']
     self.failover_segment = fakes_data.create_fake_failover_segment(
         name="segment1", id=1, description="something",
         service_type="COMPUTE", recovery_method="auto",
         uuid=uuidsentinel.fake_segment
     )
コード例 #6
0
 def setUp(self):
     super(FailoverSegmentAPITestCase, self).setUp()
     self.segment_api = ha_api.FailoverSegmentAPI()
     self.req = fakes.HTTPRequest.blank('/v1/segments',
                                        use_admin_context=True)
     self.context = self.req.environ['masakari.context']
     self.failover_segment = fakes_data.create_fake_failover_segment(
         name="segment1",
         id=1,
         description="something",
         service_type="COMPUTE",
         recovery_method="auto",
         uuid=uuidsentinel.fake_segment)
コード例 #7
0
    def _host_create_attributes2(self):

        failover_segment = fakes_data.create_fake_failover_segment(
            name="fake_segment",
            id=123,
            description="fakefake",
            service_type="COMPUTE",
            recovery_method="auto",
            uuid=uuidsentinel.fake_segment)

        host_obj = self._host_create_attributes()
        host_obj.failover_segment_id = failover_segment.uuid

        return host_obj
コード例 #8
0
ファイル: test_api.py プロジェクト: openstack/masakari
 def test_get_all(self, mock_get_all):
     fake_failover_segment = fakes_data.create_fake_failover_segment(
         name="segment2", id=2, description="something",
         service_type="COMPUTE", recovery_method="auto",
         uuid=uuidsentinel.fake_segment_2
     )
     fake_failover_segment_list = [self.failover_segment,
                                  fake_failover_segment]
     mock_get_all.return_value = fake_failover_segment_list
     result = self.segment_api.get_all(self.context, filters=None,
                                       sort_keys=None,
                                       sort_dirs=None, limit=None,
                                       marker=None)
     for i in range(len(result)):
         self._assert_segment_data(fake_failover_segment_list[i],
                                   _make_segment_obj(result[i]))
コード例 #9
0
ファイル: test_engine_mgr.py プロジェクト: rkmrHonjo/masakari
    def test_process_notification_type_compute_host_recovery_exception(
            self, mock_notification_save, mock_host_failure, mock_get_all,
            mock_host_update, mock_host_save, mock_host_obj):
        notification = self._get_compute_host_type_notification()
        fake_host = fakes.create_fake_host()
        mock_get_all.return_value = None
        fake_host.failover_segment = fakes.create_fake_failover_segment()
        mock_host_obj.return_value = fake_host
        mock_host_failure.side_effect = self._fake_notification_workflow(
            exc=exception.HostRecoveryFailureException)
        self.engine.process_notification(self.context,
                                         notification=notification)

        update_data_by_host_failure = {
            'on_maintenance': True,
        }
        mock_host_update.assert_called_once_with(update_data_by_host_failure)
        self.assertEqual("error", notification.status)
コード例 #10
0
ファイル: test_engine_mgr.py プロジェクト: thaihust/masakari
    def test_process_notification_type_compute_host_recovery_exception(
            self, mock_notification_save, mock_host_failure, mock_get_all,
            mock_host_update, mock_host_save, mock_host_obj):
        notification = self._get_compute_host_type_notification()
        fake_host = fakes.create_fake_host()
        mock_get_all.return_value = None
        fake_host.failover_segment = fakes.create_fake_failover_segment()
        mock_host_obj.return_value = fake_host
        mock_host_failure.side_effect = self._fake_notification_workflow(
            exc=exception.HostRecoveryFailureException)
        self.engine.process_notification(self.context,
                                         notification=notification)

        update_data_by_host_failure = {
            'on_maintenance': True,
        }
        mock_host_update.assert_called_once_with(update_data_by_host_failure)
        self.assertEqual("error", notification.status)
コード例 #11
0
ファイル: test_api.py プロジェクト: rkmrHonjo/masakari
 def setUp(self):
     super(HostAPITestCase, self).setUp()
     self.host_api = ha_api.HostAPI()
     self.req = fakes.HTTPRequest.blank(
         '/v1/segments/%s/hosts' % uuidsentinel.fake_segment,
         use_admin_context=True)
     self.context = self.req.environ['masakari.context']
     self.failover_segment = fakes_data.create_fake_failover_segment(
         name="segment1", id=1, description="something",
         service_type="COMPUTE", recovery_method="auto",
         uuid=uuidsentinel.fake_segment
     )
     self.host = fakes_data.create_fake_host(
         name="host_1", id=1, reserved=False, on_maintenance=False,
         type="fake", control_attributes="fake-control_attributes",
         uuid=uuidsentinel.fake_host_1,
         failover_segment_id=uuidsentinel.fake_segment1
     )
コード例 #12
0
    def _host_create_attributes(self):

        failover_segment = fakes_data.create_fake_failover_segment(
            name="fake_segment",
            id=123,
            description="fakefake",
            service_type="COMPUTE",
            recovery_method="auto",
            uuid=uuidsentinel.fake_segment)

        host_obj = host.Host(context=self.context)
        host_obj.name = 'foo-host'
        host_obj.failover_segment = failover_segment
        host_obj.type = 'fake-type'
        host_obj.reserved = False
        host_obj.on_maintenance = False
        host_obj.control_attributes = 'fake_attributes'
        host_obj.uuid = uuidsentinel.fake_host

        return host_obj
コード例 #13
0
ファイル: test_engine_mgr.py プロジェクト: rkmrHonjo/masakari
    def test_process_notification_host_failure_without_reserved_hosts(
            self, mock_notification_save, mock_get_all,
            mock_host_update, mock_host_save, mock_host_obj):
        reserved_host_list = []
        mock_get_all.return_value = reserved_host_list

        fake_host = fakes.create_fake_host()
        fake_host.failover_segment = fakes.create_fake_failover_segment(
            recovery_method='reserved_host')
        mock_host_obj.return_value = fake_host

        notification = self._get_compute_host_type_notification()

        self.engine.process_notification(self.context,
                                         notification=notification)

        update_data_by_host_failure = {
            'on_maintenance': True,
        }
        mock_host_update.assert_called_once_with(update_data_by_host_failure)
        self.assertEqual("error", notification.status)
コード例 #14
0
ファイル: test_engine_mgr.py プロジェクト: thaihust/masakari
    def test_process_notification_host_failure_without_reserved_hosts(
            self, mock_notification_save, mock_get_all, mock_host_update,
            mock_host_save, mock_host_obj):
        reserved_host_list = []
        mock_get_all.return_value = reserved_host_list

        fake_host = fakes.create_fake_host()
        fake_host.failover_segment = fakes.create_fake_failover_segment(
            recovery_method='reserved_host')
        mock_host_obj.return_value = fake_host

        notification = self._get_compute_host_type_notification()

        self.engine.process_notification(self.context,
                                         notification=notification)

        update_data_by_host_failure = {
            'on_maintenance': True,
        }
        mock_host_update.assert_called_once_with(update_data_by_host_failure)
        self.assertEqual("error", notification.status)
コード例 #15
0
 def test_get_all(self, mock_get_all):
     fake_failover_segment = fakes_data.create_fake_failover_segment(
         name="segment2",
         id=2,
         description="something",
         service_type="COMPUTE",
         recovery_method="auto",
         uuid=uuidsentinel.fake_segment_2)
     fake_failover_segment_list = [
         self.failover_segment, fake_failover_segment
     ]
     mock_get_all.return_value = fake_failover_segment_list
     result = self.segment_api.get_all(self.context,
                                       filters=None,
                                       sort_keys=None,
                                       sort_dirs=None,
                                       limit=None,
                                       marker=None)
     for i in range(len(result)):
         self._assert_segment_data(fake_failover_segment_list[i],
                                   _make_segment_obj(result[i]))
コード例 #16
0
ファイル: test_hosts.py プロジェクト: takanattie/masakari
 def setUp(self):
     super(HostTestCase, self).setUp()
     self._set_up()
     self.failover_segment = fakes_data.create_fake_failover_segment(
         name="segment1", id=1, description="failover_segment for compute",
         service_type="COMPUTE", recovery_method="auto",
         uuid=uuidsentinel.fake_segment
     )
     self.host = fakes_data.create_fake_host(
         name="host_1", id=1, reserved=False, on_maintenance=False,
         type="fake", control_attributes="fake-control_attributes",
         uuid=uuidsentinel.fake_host_1,
         failover_segment=self.failover_segment
     )
     self.host_2 = fakes_data.create_fake_host(
         name="host_2", id=2, reserved=False, on_maintenance=False,
         type="fake", control_attributes="fake-control_attributes",
         uuid=uuidsentinel.fake_host_2,
         failover_segment=self.failover_segment
     )
     self.host_list = [self.host, self.host_2]
     self.host_list_obj = _make_hosts_list(self.host_list)
コード例 #17
0
 def setUp(self):
     super(HostAPITestCase, self).setUp()
     self.host_api = ha_api.HostAPI()
     self.req = fakes.HTTPRequest.blank('/v1/segments/%s/hosts' %
                                        uuidsentinel.fake_segment,
                                        use_admin_context=True)
     self.context = self.req.environ['masakari.context']
     self.failover_segment = fakes_data.create_fake_failover_segment(
         name="segment1",
         id=1,
         description="something",
         service_type="COMPUTE",
         recovery_method="auto",
         uuid=uuidsentinel.fake_segment)
     self.host = fakes_data.create_fake_host(
         name="host_1",
         id=1,
         reserved=False,
         on_maintenance=False,
         type="fake",
         control_attributes="fake-control_attributes",
         uuid=uuidsentinel.fake_host_1,
         failover_segment_id=uuidsentinel.fake_segment1)