コード例 #1
0
 def setUp(self):
     super(SimpleInstanceTest, self).setUp()
     self.context = trove_testtools.TroveTestContext(self, is_admin=True)
     db_info = DBInstance(InstanceTasks.BUILDING, name="TestInstance")
     self.instance = SimpleInstance(None,
                                    db_info,
                                    InstanceServiceStatus(
                                        ServiceStatuses.BUILDING),
                                    ds_version=Mock(),
                                    ds=Mock(),
                                    locality='affinity')
     self.instance.context = self.context
     db_info.addresses = {
         "private": [{
             "addr": "123.123.123.123"
         }],
         "internal": [{
             "addr": "10.123.123.123"
         }],
         "public": [{
             "addr": "15.123.123.123"
         }]
     }
     self.orig_conf = CONF.network_label_regex
     self.orig_ip_regex = CONF.ip_regex
     self.orig_black_list_regex = CONF.black_list_regex
コード例 #2
0
 def setUp(self):
     super(SimpleInstanceTest, self).setUp()
     self.context = trove_testtools.TroveTestContext(self, is_admin=True)
     db_info = DBInstance(InstanceTasks.BUILDING, name="TestInstance")
     self.instance = SimpleInstance(None,
                                    db_info,
                                    InstanceServiceStatus(
                                        ServiceStatuses.BUILDING),
                                    ds_version=Mock(),
                                    ds=Mock(),
                                    locality='affinity')
     self.instance.context = self.context
     db_info.addresses = [
         {
             'type': 'private',
             'address': '123.123.123.123'
         },
         {
             'type': 'private',
             'address': '10.123.123.123'
         },
         {
             'type': 'public',
             'address': '15.123.123.123'
         },
     ]
     self.orig_ip_regex = CONF.ip_regex
     self.orig_black_list_regex = CONF.black_list_regex
コード例 #3
0
class SimpleInstanceTest(TestCase):

    def setUp(self):
        super(SimpleInstanceTest, self).setUp()
        db_info = DBInstance(InstanceTasks.BUILDING, name="TestInstance")
        self.instance = SimpleInstance(None, db_info,
                                       InstanceServiceStatus(
                                           ServiceStatuses.BUILDING),
                                       ds_version=Mock(), ds=Mock())
        db_info.addresses = {"private": [{"addr": "123.123.123.123"}],
                             "internal": [{"addr": "10.123.123.123"}],
                             "public": [{"addr": "15.123.123.123"}]}
        self.orig_conf = CONF.network_label_regex
        self.orig_ip_regex = CONF.ip_regex

    def tearDown(self):
        super(SimpleInstanceTest, self).tearDown()
        CONF.network_label_regex = self.orig_conf
        CONF.ip_start = None
        CONF.ip_regex = self.orig_ip_regex

    def test_get_root_on_create(self):
        root_on_create_val = Instance.get_root_on_create('redis')
        self.assertFalse(root_on_create_val)

    def test_filter_ips(self):
        CONF.network_label_regex = '.*'
        CONF.ip_regex = '^(15.|123.)'
        ip = self.instance.get_visible_ip_addresses()
        ip = filter_ips(ip, CONF.ip_regex)
        self.assertTrue(len(ip) == 2)
        self.assertTrue('123.123.123.123' in ip)
        self.assertTrue('15.123.123.123' in ip)

    def test_one_network_label_exact(self):
        CONF.network_label_regex = '^internal$'
        ip = self.instance.get_visible_ip_addresses()
        self.assertEqual(['10.123.123.123'], ip)

    def test_one_network_label(self):
        CONF.network_label_regex = 'public'
        ip = self.instance.get_visible_ip_addresses()
        self.assertEqual(['15.123.123.123'], ip)

    def test_two_network_labels(self):
        CONF.network_label_regex = '^(private|public)$'
        ip = self.instance.get_visible_ip_addresses()
        self.assertTrue(len(ip) == 2)
        self.assertTrue('123.123.123.123' in ip)
        self.assertTrue('15.123.123.123' in ip)

    def test_all_network_labels(self):
        CONF.network_label_regex = '.*'
        ip = self.instance.get_visible_ip_addresses()
        self.assertTrue(len(ip) == 3)
        self.assertTrue('10.123.123.123' in ip)
        self.assertTrue('123.123.123.123' in ip)
        self.assertTrue('15.123.123.123' in ip)
コード例 #4
0
 def setUp(self):
     super(SimpleInstanceTest, self).setUp()
     db_info = DBInstance(InstanceTasks.BUILDING, name="TestInstance")
     self.instance = SimpleInstance(None, db_info,
                                    InstanceServiceStatus(
                                        ServiceStatuses.BUILDING),
                                    ds_version=Mock(), ds=Mock())
     db_info.addresses = {"private": [{"addr": "123.123.123.123"}],
                          "internal": [{"addr": "10.123.123.123"}],
                          "public": [{"addr": "15.123.123.123"}]}
     self.orig_conf = CONF.network_label_regex
     self.orig_ip_regex = CONF.ip_regex
コード例 #5
0
 def setUp(self):
     super(SimpleInstanceTest, self).setUp()
     db_info = DBInstance(InstanceTasks.BUILDING, name="TestInstance")
     self.instance = SimpleInstance(None, db_info, "BUILD",
                                    ds_version=Mock(), ds=Mock())
     db_info.addresses = {"private": [{"addr": "123.123.123.123"}],
                          "internal": [{"addr": "10.123.123.123"}],
                          "public": [{"addr": "15.123.123.123"}]}
     self.orig_conf = CONF.network_label_regex
     self.orig_ip_regex = CONF.ip_regex
コード例 #6
0
 def setUp(self):
     super(SimpleInstanceTest, self).setUp()
     db_info = DBInstance(
         InstanceTasks.BUILDING, name="TestInstance")
     self.instance = SimpleInstance(
         None, db_info, InstanceServiceStatus(
             ServiceStatuses.BUILDING), ds_version=Mock(), ds=Mock(),
         locality='affinity')
     db_info.addresses = {"private": [{"addr": "123.123.123.123"}],
                          "internal": [{"addr": "10.123.123.123"}],
                          "public": [{"addr": "15.123.123.123"}]}
     self.orig_conf = CONF.network_label_regex
     self.orig_ip_regex = CONF.ip_regex
     self.orig_black_list_regex = CONF.black_list_regex
コード例 #7
0
ファイル: models.py プロジェクト: vdialani/trove
 def __init__(self, host_info):
     self.name = host_info.name
     self.percent_used = host_info.percentUsed
     self.total_ram = host_info.totalRAM
     self.used_ram = host_info.usedRAM
     self.instances = host_info.instances
     for instance in self.instances:
         instance['server_id'] = instance['uuid']
         del instance['uuid']
         try:
             db_info = DBInstance.find_by(
                 compute_instance_id=instance['server_id'])
             instance['id'] = db_info.id
             instance['tenant_id'] = db_info.tenant_id
             status = InstanceServiceStatus.find_by(instance_id=db_info.id)
             instance_info = SimpleInstance(None, db_info, status)
             instance['status'] = instance_info.status
         except exception.TroveError as re:
             LOG.error(re)
             LOG.error("Compute Instance ID found with no associated RD "
                       "instance: %s" % instance['server_id'])
             instance['id'] = None
コード例 #8
0
 def test_task_status_action_deleting_reports_shutdown(self):
     fake_db_info = FakeDBInstance()
     fake_status = FakeInstanceServiceStatus()
     fake_db_info.task_status.action = "DELETING"
     instance = SimpleInstance('dummy context', fake_db_info, fake_status)
     self.assertEqual(InstanceStatus.SHUTDOWN, instance.status)
コード例 #9
0
 def test_nova_server_reboot_reports_reboot(self):
     self.db_info.server_status = "REBOOT"
     instance = SimpleInstance('dummy context', self.db_info, self.status)
     self.assertEqual(InstanceStatus.REBOOT, instance.status)
コード例 #10
0
 def test_task_status_action_resizing_reports_resize(self):
     self.db_info.task_status.action = "RESIZING"
     instance = SimpleInstance('dummy context', self.db_info, self.status)
     self.assertEqual(InstanceStatus.RESIZE, instance.status)
コード例 #11
0
 def test_nova_server_build_reports_build(self):
     self.db_info.server_status = "BUILD"
     instance = SimpleInstance('dummy context', self.db_info, self.status)
     self.assertEqual(InstanceStatus.BUILD, instance.status)
コード例 #12
0
 def test_service_status_reset_status(self):
     self.status.set_status(ServiceStatuses.UNKNOWN)
     instance = SimpleInstance('dummy context', self.db_info, self.status)
     self.assertEqual(InstanceStatus.ERROR, instance.status)
コード例 #13
0
 def test_task_status_error_reports_error(self):
     self.db_info.task_status.is_error = True
     instance = SimpleInstance('dummy context', self.db_info, self.status)
     self.assertEqual(InstanceStatus.ERROR, instance.status)
コード例 #14
0
 def test_operating_status_task_not_none(self):
     self.db_info.task_status = InstanceTasks.RESIZING
     instance = SimpleInstance(mock.MagicMock(), self.db_info,
                               self.ds_status)
     self.assertEqual("", instance.operating_status)
コード例 #15
0
 def test_service_status_new_reports_build(self):
     self.status.set_status(ServiceStatuses.NEW)
     instance = SimpleInstance('dummy context', self.db_info, self.status)
     self.assertEqual(InstanceStatus.BUILD, instance.status)
コード例 #16
0
class SimpleInstanceTest(trove_testtools.TestCase):
    def setUp(self):
        super(SimpleInstanceTest, self).setUp()
        db_info = DBInstance(InstanceTasks.BUILDING, name="TestInstance")
        self.instance = SimpleInstance(
            None, db_info, InstanceServiceStatus(ServiceStatuses.BUILDING), ds_version=Mock(), ds=Mock()
        )
        db_info.addresses = {
            "private": [{"addr": "123.123.123.123"}],
            "internal": [{"addr": "10.123.123.123"}],
            "public": [{"addr": "15.123.123.123"}],
        }
        self.orig_conf = CONF.network_label_regex
        self.orig_ip_regex = CONF.ip_regex
        self.orig_black_list_regex = CONF.black_list_regex

    def tearDown(self):
        super(SimpleInstanceTest, self).tearDown()
        CONF.network_label_regex = self.orig_conf
        CONF.ip_start = None

    def test_get_root_on_create(self):
        root_on_create_val = Instance.get_root_on_create("redis")
        self.assertFalse(root_on_create_val)

    def test_filter_ips_white_list(self):
        CONF.network_label_regex = ".*"
        CONF.ip_regex = "^(15.|123.)"
        CONF.black_list_regex = "^10.123.123.*"
        ip = self.instance.get_visible_ip_addresses()
        ip = filter_ips(ip, CONF.ip_regex, CONF.black_list_regex)
        self.assertTrue(len(ip) == 2)
        self.assertTrue("123.123.123.123" in ip)
        self.assertTrue("15.123.123.123" in ip)

    def test_filter_ips_black_list(self):
        CONF.network_label_regex = ".*"
        CONF.ip_regex = ".*"
        CONF.black_list_regex = "^10.123.123.*"
        ip = self.instance.get_visible_ip_addresses()
        ip = filter_ips(ip, CONF.ip_regex, CONF.black_list_regex)
        self.assertTrue(len(ip) == 2)
        self.assertTrue("10.123.123.123" not in ip)

    def test_one_network_label(self):
        CONF.network_label_regex = "public"
        ip = self.instance.get_visible_ip_addresses()
        self.assertEqual(["15.123.123.123"], ip)

    def test_two_network_labels(self):
        CONF.network_label_regex = "^(private|public)$"
        ip = self.instance.get_visible_ip_addresses()
        self.assertTrue(len(ip) == 2)
        self.assertTrue("123.123.123.123" in ip)
        self.assertTrue("15.123.123.123" in ip)

    def test_all_network_labels(self):
        CONF.network_label_regex = ".*"
        ip = self.instance.get_visible_ip_addresses()
        self.assertTrue(len(ip) == 3)
        self.assertTrue("10.123.123.123" in ip)
        self.assertTrue("123.123.123.123" in ip)
        self.assertTrue("15.123.123.123" in ip)
コード例 #17
0
 def test_operating_status_healthy(self):
     self.db_info.task_status = InstanceTasks.NONE
     instance = SimpleInstance(mock.MagicMock(), self.db_info,
                               self.ds_status)
     self.assertEqual(repr(ServiceStatuses.HEALTHY),
                      instance.operating_status)
コード例 #18
0
 def test_task_status_action_building_reports_build(self):
     fake_db_info = FakeDBInstance()
     fake_status = FakeInstanceServiceStatus()
     fake_db_info.task_status.action = "BUILDING"
     instance = SimpleInstance('dummy context', fake_db_info, fake_status)
     self.assertEqual(InstanceStatus.BUILD, instance.status)
コード例 #19
0
 def test_nova_server_error_reports_error(self):
     fake_db_info = FakeDBInstance()
     fake_status = FakeInstanceServiceStatus()
     fake_db_info.server_status = "ERROR"
     instance = SimpleInstance('dummy context', fake_db_info, fake_status)
     self.assertEqual(InstanceStatus.ERROR, instance.status)
コード例 #20
0
 def test_nova_server_build_reports_build(self):
     fake_db_info = FakeDBInstance()
     fake_status = FakeInstanceServiceStatus()
     fake_db_info.server_status = "BUILD"
     instance = SimpleInstance('dummy context', fake_db_info, fake_status)
     self.assertEqual(InstanceStatus.BUILD, instance.status)
コード例 #21
0
 def test_nova_server_verify_resize_reports_resize(self):
     self.db_info.server_status = "VERIFY_RESIZE"
     instance = SimpleInstance('dummy context', self.db_info, self.status)
     self.assertEqual(InstanceStatus.RESIZE, instance.status)
コード例 #22
0
 def test_task_status_action_rebooting_reports_reboot(self):
     self.db_info.task_status.action = "REBOOTING"
     instance = SimpleInstance('dummy context', self.db_info,
                               self.ds_status)
     self.assertEqual(InstanceStatus.REBOOT, instance.status)
コード例 #23
0
 def test_service_status_paused_reports_reboot(self):
     self.status.set_status(ServiceStatuses.PAUSED)
     instance = SimpleInstance('dummy context', self.db_info, self.status)
     self.assertEqual(InstanceStatus.REBOOT, instance.status)
コード例 #24
0
 def test_task_deleting_server_active(self):
     self.db_info.task_status.action = "DELETING"
     instance = SimpleInstance('dummy context', self.db_info,
                               self.ds_status)
     self.assertEqual(InstanceStatus.SHUTDOWN, instance.status)
コード例 #25
0
 def test_service_status_running_reports_active(self):
     self.status.set_status(ServiceStatuses.RUNNING)
     instance = SimpleInstance('dummy context', self.db_info, self.status)
     self.assertEqual(InstanceStatus.ACTIVE, instance.status)
コード例 #26
0
 def test_task_status_error_reports_error(self):
     fake_db_info = FakeDBInstance()
     fake_status = FakeInstanceServiceStatus()
     fake_db_info.task_status.is_error = True
     instance = SimpleInstance('dummy context', fake_db_info, fake_status)
     self.assertEqual(InstanceStatus.ERROR, instance.status)
コード例 #27
0
 def test_service_status_force_deleteing(self):
     self.status.set_status(ServiceStatuses.UNKNOWN)
     self.db_info.task_status = InstanceTasks.DELETING
     instance = SimpleInstance('dummy context', self.db_info, self.status)
     self.assertEqual(InstanceStatus.SHUTDOWN, instance.status)
コード例 #28
0
 def test_service_status_new_reports_build(self):
     fake_db_info = FakeDBInstance()
     fake_status = FakeInstanceServiceStatus()
     fake_status.set_status(ServiceStatuses.NEW)
     instance = SimpleInstance('dummy context', fake_db_info, fake_status)
     self.assertEqual(InstanceStatus.BUILD, instance.status)
コード例 #29
0
 def test_task_status_action_building_reports_build(self):
     self.db_info.task_status.action = "BUILDING"
     instance = SimpleInstance('dummy context', self.db_info, self.status)
     self.assertEqual(InstanceStatus.BUILD, instance.status)
コード例 #30
0
class SimpleInstanceTest(trove_testtools.TestCase):

    def setUp(self):
        super(SimpleInstanceTest, self).setUp()
        self.context = trove_testtools.TroveTestContext(self, is_admin=True)
        db_info = DBInstance(
            InstanceTasks.BUILDING, name="TestInstance")
        self.instance = SimpleInstance(
            None, db_info, InstanceServiceStatus(
                ServiceStatuses.BUILDING), ds_version=Mock(), ds=Mock(),
            locality='affinity')
        self.instance.context = self.context
        db_info.addresses = {"private": [{"addr": "123.123.123.123"}],
                             "internal": [{"addr": "10.123.123.123"}],
                             "public": [{"addr": "15.123.123.123"}]}
        self.orig_conf = CONF.network_label_regex
        self.orig_ip_regex = CONF.ip_regex
        self.orig_black_list_regex = CONF.black_list_regex

    def tearDown(self):
        super(SimpleInstanceTest, self).tearDown()
        CONF.network_label_regex = self.orig_conf
        CONF.ip_start = None

    def test_get_root_on_create(self):
        root_on_create_val = Instance.get_root_on_create(
            'redis')
        self.assertFalse(root_on_create_val)

    def test_filter_ips_white_list(self):
        CONF.network_label_regex = '.*'
        CONF.ip_regex = '^(15.|123.)'
        CONF.black_list_regex = '^10.123.123.*'
        ip = self.instance.get_visible_ip_addresses()
        ip = filter_ips(
            ip, CONF.ip_regex, CONF.black_list_regex)
        self.assertEqual(2, len(ip))
        self.assertTrue('123.123.123.123' in ip)
        self.assertTrue('15.123.123.123' in ip)

    def test_filter_ips_black_list(self):
        CONF.network_label_regex = '.*'
        CONF.ip_regex = '.*'
        CONF.black_list_regex = '^10.123.123.*'
        ip = self.instance.get_visible_ip_addresses()
        ip = filter_ips(
            ip, CONF.ip_regex, CONF.black_list_regex)
        self.assertEqual(2, len(ip))
        self.assertTrue('10.123.123.123' not in ip)

    def test_one_network_label(self):
        CONF.network_label_regex = 'public'
        ip = self.instance.get_visible_ip_addresses()
        self.assertEqual(['15.123.123.123'], ip)

    def test_two_network_labels(self):
        CONF.network_label_regex = '^(private|public)$'
        ip = self.instance.get_visible_ip_addresses()
        self.assertEqual(2, len(ip))
        self.assertTrue('123.123.123.123' in ip)
        self.assertTrue('15.123.123.123' in ip)

    def test_all_network_labels(self):
        CONF.network_label_regex = '.*'
        ip = self.instance.get_visible_ip_addresses()
        self.assertEqual(3, len(ip))
        self.assertTrue('10.123.123.123' in ip)
        self.assertTrue('123.123.123.123' in ip)
        self.assertTrue('15.123.123.123' in ip)

    def test_locality(self):
        self.assertEqual('affinity', self.instance.locality)

    def test_fault(self):
        fault_message = 'Error'
        fault_details = 'details'
        fault_date = 'now'
        temp_fault = Mock()
        temp_fault.message = fault_message
        temp_fault.details = fault_details
        temp_fault.updated = fault_date
        fault_mock = Mock(return_value=temp_fault)
        with patch.object(DBInstanceFault, 'find_by', fault_mock):
            fault = self.instance.fault
            self.assertEqual(fault_message, fault.message)
            self.assertEqual(fault_details, fault.details)
            self.assertEqual(fault_date, fault.updated)
コード例 #31
0
 def test_task_status_action_deleting_reports_shutdown(self):
     self.db_info.task_status.action = "DELETING"
     instance = SimpleInstance('dummy context', self.db_info, self.status)
     self.assertEqual(InstanceStatus.SHUTDOWN, instance.status)
コード例 #32
0
class SimpleInstanceTest(trove_testtools.TestCase):

    def setUp(self):
        super(SimpleInstanceTest, self).setUp()
        self.context = trove_testtools.TroveTestContext(self, is_admin=True)
        db_info = DBInstance(
            InstanceTasks.BUILDING, name="TestInstance")
        self.instance = SimpleInstance(
            None, db_info, InstanceServiceStatus(
                ServiceStatuses.BUILDING), ds_version=Mock(), ds=Mock(),
            locality='affinity')
        self.instance.context = self.context
        db_info.addresses = {"private": [{"addr": "123.123.123.123"}],
                             "internal": [{"addr": "10.123.123.123"}],
                             "public": [{"addr": "15.123.123.123"}]}
        self.orig_conf = CONF.network_label_regex
        self.orig_ip_regex = CONF.ip_regex
        self.orig_black_list_regex = CONF.black_list_regex

    def tearDown(self):
        super(SimpleInstanceTest, self).tearDown()
        CONF.network_label_regex = self.orig_conf
        CONF.ip_start = None

    def test_get_root_on_create(self):
        root_on_create_val = Instance.get_root_on_create(
            'redis')
        self.assertFalse(root_on_create_val)

    def test_filter_ips_white_list(self):
        CONF.network_label_regex = '.*'
        CONF.ip_regex = '^(15.|123.)'
        CONF.black_list_regex = '^10.123.123.*'
        ip = self.instance.get_visible_ip_addresses()
        ip = filter_ips(
            ip, CONF.ip_regex, CONF.black_list_regex)
        self.assertEqual(2, len(ip))
        self.assertTrue('123.123.123.123' in ip)
        self.assertTrue('15.123.123.123' in ip)

    def test_filter_ips_black_list(self):
        CONF.network_label_regex = '.*'
        CONF.ip_regex = '.*'
        CONF.black_list_regex = '^10.123.123.*'
        ip = self.instance.get_visible_ip_addresses()
        ip = filter_ips(
            ip, CONF.ip_regex, CONF.black_list_regex)
        self.assertEqual(2, len(ip))
        self.assertTrue('10.123.123.123' not in ip)

    def test_one_network_label(self):
        CONF.network_label_regex = 'public'
        ip = self.instance.get_visible_ip_addresses()
        self.assertEqual(['15.123.123.123'], ip)

    def test_two_network_labels(self):
        CONF.network_label_regex = '^(private|public)$'
        ip = self.instance.get_visible_ip_addresses()
        self.assertEqual(2, len(ip))
        self.assertTrue('123.123.123.123' in ip)
        self.assertTrue('15.123.123.123' in ip)

    def test_all_network_labels(self):
        CONF.network_label_regex = '.*'
        ip = self.instance.get_visible_ip_addresses()
        self.assertEqual(3, len(ip))
        self.assertTrue('10.123.123.123' in ip)
        self.assertTrue('123.123.123.123' in ip)
        self.assertTrue('15.123.123.123' in ip)

    def test_locality(self):
        self.assertEqual('affinity', self.instance.locality)

    def test_fault(self):
        fault_message = 'Error'
        fault_details = 'details'
        fault_date = 'now'
        temp_fault = Mock()
        temp_fault.message = fault_message
        temp_fault.details = fault_details
        temp_fault.updated = fault_date
        fault_mock = Mock(return_value=temp_fault)
        with patch.object(DBInstanceFault, 'find_by', fault_mock):
            fault = self.instance.fault
            self.assertEqual(fault_message, fault.message)
            self.assertEqual(fault_details, fault.details)
            self.assertEqual(fault_date, fault.updated)
コード例 #33
0
 def test_nova_server_error_reports_error(self):
     self.db_info.server_status = "ERROR"
     instance = SimpleInstance('dummy context', self.db_info, self.status)
     self.assertEqual(InstanceStatus.ERROR, instance.status)
コード例 #34
0
 def test_task_status_action_resizing_reports_resize(self):
     fake_db_info = FakeDBInstance()
     fake_status = FakeInstanceServiceStatus()
     fake_db_info.task_status.action = "RESIZING"
     instance = SimpleInstance('dummy context', fake_db_info, fake_status)
     self.assertEqual(InstanceStatus.RESIZE, instance.status)