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)
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)
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)
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()
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()
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()
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)
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)
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)
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)
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)