Example #1
0
    def test_find_domain(self):
        domain = {
            'status': 1,
            'name': 'instance-00000001',
            'memory_kb': 16777216,
            'kernel_id': '1896115634',
            'ramdisk_id': '',
            'image_id': '1552326678',
            'vcpus': 1,
            'node_id': 6,
            'mac_address': '02:16:3e:01:4e:c9',
            'ip_address': '10.5.1.2'
        }

        # Create the mock objects
        self.mox.StubOutWithMock(dom, 'read_domains')
        self.mox.StubOutWithMock(dom, 'write_domains')

        # Expected calls
        dom.read_domains('/tftpboot/'
                         'test_fake_dom_file').AndReturn(fake_domains)
        dom.write_domains('/tftpboot/test_fake_dom_file', fake_domains)

        self.mox.ReplayAll()

        # Code under test
        bmdom = dom.BareMetalDom()

        # Expected values
        self.assertEquals(bmdom.find_domain('instance-00000001'), domain)
Example #2
0
    def test_init_remove_non_running_domain(self):
        """Check to see that all entries in the domain list are removed
        except for the one that is in the running state"""

        domains = [dict(node_id=1, name='i-00000001',
                        status=power_state.NOSTATE),
              dict(node_id=2, name='i-00000002', status=power_state.RUNNING),
              dict(node_id=3, name='i-00000003', status=power_state.PAUSED),
              dict(node_id=5, name='i-00000004', status=power_state.SHUTDOWN),
              dict(node_id=7, name='i-00000005', status=power_state.CRASHED),
              dict(node_id=8, name='i-00000006', status=power_state.SUSPENDED),
              dict(node_id=9, name='i-00000007', status=power_state.NOSTATE)]

        # Create the mock objects
        self.mox.StubOutWithMock(dom, 'read_domains')
        self.mox.StubOutWithMock(dom, 'write_domains')
        dom.read_domains('/tftpboot/test_fake_dom_file').AndReturn(domains)
        dom.write_domains('/tftpboot/test_fake_dom_file', domains)

        self.mox.ReplayAll()

        # Code under test
        bmdom = dom.BareMetalDom()

        self.assertEqual(bmdom.domains, [{'node_id': 2,
                                          'name': 'i-00000002',
                                          'status': power_state.RUNNING}])
        self.assertEqual(bmdom.fake_dom_nums, 1)
Example #3
0
    def test_init_remove_non_running_domain(self):
        """Check to see that all entries in the domain list are removed
        except for the one that is in the running state"""

        fake_file = StringIO.StringIO()

        domains = [
            dict(node_id=1, name='i-00000001', status=power_state.NOSTATE),
            dict(node_id=2, name='i-00000002', status=power_state.RUNNING),
            dict(node_id=3, name='i-00000003', status=power_state.BLOCKED),
            dict(node_id=4, name='i-00000004', status=power_state.PAUSED),
            dict(node_id=5, name='i-00000005', status=power_state.SHUTDOWN),
            dict(node_id=6, name='i-00000006', status=power_state.SHUTOFF),
            dict(node_id=7, name='i-00000007', status=power_state.CRASHED),
            dict(node_id=8, name='i-00000008', status=power_state.SUSPENDED),
            dict(node_id=9, name='i-00000009', status=power_state.FAILED)
        ]

        # Create the mock objects
        self.mox.StubOutWithMock(dom, 'read_domains')
        self.mox.StubOutWithMock(dom, 'write_domains')
        dom.read_domains('/tftpboot/test_fake_dom_file').AndReturn(domains)
        dom.write_domains('/tftpboot/test_fake_dom_file', domains)

        self.mox.ReplayAll()

        # Code under test
        bmdom = dom.BareMetalDom()

        self.assertEqual(bmdom.domains, [{
            'node_id': 2,
            'name': 'i-00000002',
            'status': power_state.RUNNING
        }])
        self.assertEqual(bmdom.fake_dom_nums, 1)
Example #4
0
    def test_write_domain(self):
        """Write the domain to file"""
        self.mox.StubOutWithMock(__builtin__, 'open')
        mock_file = self.mox.CreateMock(file)
        expected_json = '''[{"status": 1,
               "image_id": "1552326678", "vcpus": 1, "node_id": 6,
               "name": "instance-00000001", "memory_kb": 16777216,
               "mac_address": "02:16:3e:01:4e:c9", "kernel_id": "1896115634",
               "ramdisk_id": "", "ip_address": "10.5.1.2"}]'''
        try:
            open('/tftpboot/test_fake_dom_file', 'w').AndReturn(mock_file)

            # Check if the argument to file.write() represents the same
            # Python object as expected_json
            # We can't do an exact string comparison
            # because of ordering and whitespace
            mock_file.write(mox.Func(functools.partial(self.assertJSONEquals,\
                expected_json)))
            mock_file.close()

            self.mox.ReplayAll()

            dom.write_domains('/tftpboot/test_fake_dom_file', fake_domains)

        finally:
            self.mox.UnsetStubs()
Example #5
0
    def test_write_domain(self):
        """Write the domain to file"""
        self.mox.StubOutWithMock(__builtin__, 'open')
        mock_file = self.mox.CreateMock(file)
        expected_json = '''[{"status": 1,
               "image_id": "1552326678", "vcpus": 1, "node_id": 6,
               "name": "instance-00000001", "memory_kb": 16777216,
               "mac_address": "02:16:3e:01:4e:c9", "kernel_id": "1896115634",
               "ramdisk_id": "", "ip_address": "10.5.1.2"}]'''
        try:
            open('/tftpboot/test_fake_dom_file', 'w').AndReturn(mock_file)

            # Check if the argument to file.write() represents the same
            # Python object as expected_json
            # We can't do an exact string comparison
            # because of ordering and whitespace
            mock_file.write(
                mox.Func(
                    functools.partial(self.assertJSONEquals, expected_json)))
            mock_file.close()

            self.mox.ReplayAll()

            dom.write_domains('/tftpboot/test_fake_dom_file', fake_domains)

        finally:
            self.mox.UnsetStubs()
Example #6
0
    def test_read_domain_only_once(self):
        """Confirm that the domain is read from a file only once,
        even if the object is instantiated multiple times"""
        self.mox.StubOutWithMock(dom, 'read_domains')
        self.mox.StubOutWithMock(dom, 'write_domains')

        dom.read_domains('/tftpboot/test_fake_dom_file').AndReturn([])
        dom.write_domains('/tftpboot/test_fake_dom_file', [])

        self.mox.ReplayAll()

        # Instantiate multiple instances
        x = dom.BareMetalDom()
        x = dom.BareMetalDom()
        x = dom.BareMetalDom()
Example #7
0
    def test_read_domain_only_once(self):
        """Confirm that the domain is read from a file only once,
        even if the object is instantiated multiple times"""
        self.mox.StubOutWithMock(dom, 'read_domains')
        self.mox.StubOutWithMock(dom, 'write_domains')

        dom.read_domains('/tftpboot/test_fake_dom_file').AndReturn([])
        dom.write_domains('/tftpboot/test_fake_dom_file', [])

        self.mox.ReplayAll()

        # Instantiate multiple instances
        x = dom.BareMetalDom()
        x = dom.BareMetalDom()
        x = dom.BareMetalDom()
Example #8
0
    def test_init_no_domains(self):

        # Create the mock objects
        self.mox.StubOutWithMock(dom, 'read_domains')
        self.mox.StubOutWithMock(dom, 'write_domains')

        dom.read_domains('/tftpboot/test_fake_dom_file').AndReturn([])
        dom.write_domains('/tftpboot/test_fake_dom_file', [])

        self.mox.ReplayAll()

        # Code under test
        bmdom = dom.BareMetalDom()

        # Expectd values
        self.assertEqual(bmdom.fake_dom_nums, 0)
Example #9
0
    def test_init_no_domains(self):

        # Create the mock objects
        self.mox.StubOutWithMock(dom, 'read_domains')
        self.mox.StubOutWithMock(dom, 'write_domains')

        dom.read_domains('/tftpboot/test_fake_dom_file').AndReturn([])
        dom.write_domains('/tftpboot/test_fake_dom_file', [])

        self.mox.ReplayAll()

        # Code under test
        bmdom = dom.BareMetalDom()

        # Expectd values
        self.assertEqual(bmdom.fake_dom_nums, 0)
Example #10
0
    def test_get_info(self):
        # Create the mock objects
        self.mox.StubOutWithMock(dom, 'read_domains')
        self.mox.StubOutWithMock(dom, 'write_domains')

        # Expected calls
        dom.read_domains('/tftpboot/test_fake_dom_file')\
            .AndReturn(fake_domains)
        dom.write_domains('/tftpboot/test_fake_dom_file', fake_domains)

        self.mox.ReplayAll()

        # Code under test
        conn = proxy.get_connection(True)
        info = conn.get_info('instance-00000001')

        # Expected values
        self.assertEquals(info['mem'], 16777216)
        self.assertEquals(info['state'], 1)
        self.assertEquals(info['num_cpu'], 1)
        self.assertEquals(info['cpu_time'], 100)
        self.assertEquals(info['max_mem'], 16777216)
Example #11
0
    def test_get_info(self):
        # Create the mock objects
        self.mox.StubOutWithMock(dom, 'read_domains')
        self.mox.StubOutWithMock(dom, 'write_domains')

        # Expected calls
        dom.read_domains('/tftpboot/'
                         'test_fake_dom_file').AndReturn(fake_domains)
        dom.write_domains('/tftpboot/test_fake_dom_file', fake_domains)

        self.mox.ReplayAll()

        # Code under test
        conn = proxy.get_connection(True)
        # TODO(mikalstill): this is not a very good fake instance
        info = conn.get_info({'name': 'instance-00000001'})

        # Expected values
        self.assertEquals(info['mem'], 16777216)
        self.assertEquals(info['state'], 1)
        self.assertEquals(info['num_cpu'], 1)
        self.assertEquals(info['cpu_time'], 100)
        self.assertEquals(info['max_mem'], 16777216)
Example #12
0
    def test_get_info(self):
        # Create the mock objects
        self.mox.StubOutWithMock(dom, 'read_domains')
        self.mox.StubOutWithMock(dom, 'write_domains')

        # Expected calls
        dom.read_domains('/tftpboot/'
                         'test_fake_dom_file').AndReturn(fake_domains)
        dom.write_domains('/tftpboot/test_fake_dom_file', fake_domains)

        self.mox.ReplayAll()

        # Code under test
        conn = proxy.ProxyConnection(True)
        # TODO(mikalstill): this is not a very good fake instance
        info = conn.get_info({'name': 'instance-00000001'})

        # Expected values
        self.assertEquals(info['mem'], 16777216)
        self.assertEquals(info['state'], 1)
        self.assertEquals(info['num_cpu'], 1)
        self.assertEquals(info['cpu_time'], 100)
        self.assertEquals(info['max_mem'], 16777216)
Example #13
0
    def test_find_domain(self):
        domain = {'status': 1, 'name': 'instance-00000001',
                    'memory_kb': 16777216, 'kernel_id': '1896115634',
                    'ramdisk_id': '', 'image_id': '1552326678',
                    'vcpus': 1, 'node_id': 6,
                    'mac_address': '02:16:3e:01:4e:c9',
                    'ip_address': '10.5.1.2'}

        # Create the mock objects
        self.mox.StubOutWithMock(dom, 'read_domains')
        self.mox.StubOutWithMock(dom, 'write_domains')

        # Expected calls
        dom.read_domains('/tftpboot/'
                         'test_fake_dom_file').AndReturn(fake_domains)
        dom.write_domains('/tftpboot/test_fake_dom_file', fake_domains)

        self.mox.ReplayAll()

        # Code under test
        bmdom = dom.BareMetalDom()

        # Expected values
        self.assertEquals(bmdom.find_domain('instance-00000001'), domain)