Ejemplo n.º 1
0
    def test_003_read_diff_board_diff_device(self):
        """ Test reading thermistor devices on different boards, where both
        devices have the same length of responses and repeatable=true. One
        device being tested does not start at the first response since
        previous tests have incremented its counter.
        """
        r = http.get(PREFIX + "/read/temperature/rack_1/00000001/03FF")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["temperature_c"], 202)

        r = http.get(PREFIX + "/read/temperature/rack_1/00000003/02FF")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["temperature_c"], 800)

        r = http.get(PREFIX + "/read/temperature/rack_1/00000001/03FF")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["temperature_c"], 203)

        r = http.get(PREFIX + "/read/temperature/rack_1/00000003/02FF")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["temperature_c"], 801)
Ejemplo n.º 2
0
    def test_007_board_id_representation(self):
        """ Test reading while specifying different representations (same value) for
        the board id
        """
        r = http.get(PREFIX + "/read/thermistor/rack_1/14/04FF")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        # self.assertEqual(response["device_raw"], 32768)
        self.assertEqual(response["temperature_c"], -4173.97)

        r = http.get(PREFIX + "/read/thermistor/rack_1/014/04FF")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        # self.assertEqual(response["device_raw"], 32768)
        self.assertEqual(response["temperature_c"], -4173.97)

        r = http.get(PREFIX + "/read/thermistor/rack_1/00014/04FF")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        # self.assertEqual(response["device_raw"], 32768)
        self.assertEqual(response["temperature_c"], -4173.97)

        r = http.get(PREFIX + "/read/thermistor/rack_1/000014/04FF")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        # self.assertEqual(response["device_raw"], 32768)
        self.assertEqual(response["temperature_c"], -4173.97)

        r = http.get(PREFIX + "/read/thermistor/rack_1/00000014/04FF")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        # self.assertEqual(response["device_raw"], 32768)
        self.assertEqual(response["temperature_c"], -4173.97)
Ejemplo n.º 3
0
    def test_001_read_valid(self):
        """ Read a valid on value back from chamber led.
        """
        r = http.get(PREFIX + "/led/rack_1/00000070/0001/on/ffffff/steady")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["led_state"], 'on')
        self.assertEqual(response["led_color"], 'ffffff')
        self.assertEqual(response["blink_state"], 'steady')

        r = http.get(PREFIX +
                     "/led/rack_1/00000070/0001/off/000000/no_override")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["led_state"], 'off')
        self.assertEqual(response["led_color"], '000000')
        self.assertEqual(response["blink_state"], 'steady')

        r = http.get(PREFIX +
                     "/led/rack_1/00000070/0001/no_override/7ac055/blink")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["led_state"], 'off')
        self.assertEqual(response["led_color"], '7ac055')
        self.assertEqual(response["blink_state"], 'blink')

        r = http.get(PREFIX +
                     "/led/rack_1/00000070/0001/on/0beef0/no_override")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["led_state"], 'on')
        self.assertEqual(response["led_color"], '0beef0')
        self.assertEqual(response["blink_state"], 'blink')
Ejemplo n.º 4
0
    def test_002_read_mid(self):
        """ Get a midpoint value for each supported conversion method
        """
        r = http.get(PREFIX + "/read/thermistor/rack_1/00000014/04FF")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        # self.assertEqual(response["device_raw"], 32768)
        self.assertEqual(response["temperature_c"], -4173.97)

        r = http.get(PREFIX + "/read/humidity/rack_1/00000014/05FF")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        # self.assertEqual(response["device_raw"], 65535)            # 0x0000FFFF
        self.assertAlmostEqual(response["temperature_c"], 125, 1)  # max
        self.assertEqual(response["humidity"], 0)  # zero

        r = http.get(PREFIX + "/read/humidity/rack_1/00000014/05FF")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        # self.assertEqual(response["device_raw"], 4294901760)     # 0xFFFF0000
        self.assertEqual(response["temperature_c"], -40)  # zero
        self.assertAlmostEqual(response["humidity"], 100, 1)  # max

        with self.assertRaises(VaporHTTPError) as ctx:
            http.get(PREFIX + "/read/rack_1/none/00000014/06FF")

        self.assertEqual(ctx.exception.status, 500)
Ejemplo n.º 5
0
    def test_003_read_8byte_max(self):
        """ Get a max value for each supported conversion method
        """
        with self.assertRaises(VaporHTTPError) as ctx:
            http.get(PREFIX + "/read/thermistor/rack_1/00000014/07FF")

        self.assertEqual(ctx.exception.status, 500)  # 65535 was the value

        r = http.get(PREFIX + "/read/thermistor/rack_1/00000014/08FF")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        # self.assertEqual(response["device_raw"], 65534)
        self.assertAlmostEqual(response["temperature_c"], -8466.32, 1)

        r = http.get(PREFIX + "/read/humidity/rack_1/00000014/09FF")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        # self.assertEqual(response["device_raw"], 4294967295)
        self.assertAlmostEqual(response["temperature_c"], 125, 1)
        self.assertAlmostEqual(response["humidity"], 100, 1)

        with self.assertRaises(VaporHTTPError) as ctx:
            http.get(PREFIX + "/read/rack_1/none/00000014/0AFF")

        self.assertEqual(ctx.exception.status, 500)
Ejemplo n.º 6
0
    def test_002_device_reads(self):
        for x in range(100):
            r = http.get(PREFIX + "/read/thermistor/rack_1/00000001/01FF")
            self.assertTrue(http.request_ok(r.status_code))

            r = http.get(PREFIX + "/read/humidity/rack_1/00000001/0CFF")
            self.assertTrue(http.request_ok(r.status_code))
Ejemplo n.º 7
0
    def test_007_write_ok(self):
        """ Test write with an ok response.
        """
        r = http.get(PREFIX + "/led/rack_1/00000030/0001/on")
        self.assertTrue(http.request_ok(r.status_code))

        r = http.get(PREFIX + "/led/rack_1/00000030/0001/off")
        self.assertTrue(http.request_ok(r.status_code))
Ejemplo n.º 8
0
    def test_002_valid_board_device_location(self):
        """ Test simple location (valid board, valid device)
        """
        r = http.get(PREFIX + "/location/rack_1/00000000/0000")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["physical_location"]["horizontal"], "unknown")
        self.assertEqual(response["physical_location"]["vertical"], "unknown")
        self.assertEqual(response["physical_location"]["depth"], "unknown")
        self.assertEqual(response["chassis_location"]["horiz_pos"], "unknown")
        self.assertEqual(response["chassis_location"]["vert_pos"], "unknown")
        self.assertEqual(response["chassis_location"]["depth"], "unknown")

        r = http.get(PREFIX + "/location/rack_1/00000000/72DF")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["physical_location"]["horizontal"], "unknown")
        self.assertEqual(response["physical_location"]["vertical"], "unknown")
        self.assertEqual(response["physical_location"]["depth"], "unknown")
        self.assertEqual(response["chassis_location"]["horiz_pos"], "left")
        self.assertEqual(response["chassis_location"]["vert_pos"], "bottom")
        self.assertEqual(response["chassis_location"]["depth"], "middle")
        self.assertEqual(response["chassis_location"]["server_node"], "unknown")

        r = http.get(PREFIX + "/location/rack_1/00000000/8302")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["physical_location"]["horizontal"], "unknown")
        self.assertEqual(response["physical_location"]["vertical"], "unknown")
        self.assertEqual(response["physical_location"]["depth"], "unknown")
        self.assertEqual(response["chassis_location"]["horiz_pos"], "unknown")
        self.assertEqual(response["chassis_location"]["vert_pos"], "unknown")
        self.assertEqual(response["chassis_location"]["depth"], "unknown")
        self.assertEqual(response["chassis_location"]["server_node"], 3)

        r = http.get(PREFIX + "/location/rack_1/00000000/5555")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["physical_location"]["horizontal"], "unknown")
        self.assertEqual(response["physical_location"]["vertical"], "unknown")
        self.assertEqual(response["physical_location"]["depth"], "unknown")
        self.assertEqual(response["chassis_location"]["horiz_pos"], "left")
        self.assertEqual(response["chassis_location"]["vert_pos"], "top")
        self.assertEqual(response["chassis_location"]["depth"], "front")
        self.assertEqual(response["chassis_location"]["server_node"], 'unknown')

        r = http.get(PREFIX + "/location/rack_1/00000000/9F00")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["physical_location"]["horizontal"], "unknown")
        self.assertEqual(response["physical_location"]["vertical"], "unknown")
        self.assertEqual(response["physical_location"]["depth"], "unknown")
        self.assertEqual(response["chassis_location"]["horiz_pos"], "unknown")
        self.assertEqual(response["chassis_location"]["vert_pos"], "unknown")
        self.assertEqual(response["chassis_location"]["depth"], "unknown")
        self.assertEqual(response["chassis_location"]["server_node"], 31)
Ejemplo n.º 9
0
    def test_002_scan_boards_individually(self):
        """ Test scanning each board individually
        """
        r = http.get(PREFIX + '/scan/rack_1/00000001')
        self.assertTrue(http.request_ok(r.status_code))

        r = http.get(PREFIX + '/scan/rack_1/00000003')
        self.assertTrue(http.request_ok(r.status_code))

        r = http.get(PREFIX + '/scan/rack_1/00000010')
        self.assertTrue(http.request_ok(r.status_code))
Ejemplo n.º 10
0
    def test_002_read_off(self):
        """ Read a valid off value back from led.
        """
        r = http.get(PREFIX + "/read/led/rack_1/00000030/0002")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["led_state"], 'off')

        r = http.get(PREFIX + "/led/rack_1/00000030/0002")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["led_state"], 'off')
Ejemplo n.º 11
0
    def test_005_negative_number(self):
        """ What happens when a negative number is returned? (positive)
        """
        r = http.get(PREFIX + "/read/fan_speed/rack_1/00000028/0005")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["speed_rpm"], -12345)

        r = http.get(PREFIX + "/fan/rack_1/00000028/0005")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["speed_rpm"], -12345)
Ejemplo n.º 12
0
    def test_008_power_device_id_representation(self):
        """ Test power status while specifying different representations (same value) for
        the board id
        """
        r = http.get(PREFIX + "/power/rack_1/0000001E/1FF")
        self.assertTrue(http.request_ok(r.status_code))

        r = http.get(PREFIX + "/power/rack_1/0000001E/01FF")
        self.assertTrue(http.request_ok(r.status_code))

        r = http.get(PREFIX + "/power/rack_1/0000001E/00001FF")
        self.assertTrue(http.request_ok(r.status_code))
Ejemplo n.º 13
0
    def test_001_read_ok(self):
        """ Read a valid value back from fan.
        """
        r = http.get(PREFIX + "/read/fan_speed/rack_1/00000028/0001")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["speed_rpm"], 4100)

        r = http.get(PREFIX + "/fan/rack_1/00000028/0001")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["speed_rpm"], 4100)
Ejemplo n.º 14
0
    def test_004_long_value(self):
        """ What happens when a large integer is returned? (positive)
        """
        r = http.get(PREFIX + "/read/fan_speed/rack_1/00000028/0004")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["speed_rpm"], 12345678901234567890)

        r = http.get(PREFIX + "/fan/rack_1/00000028/0004")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["speed_rpm"], 12345678901234567890)
Ejemplo n.º 15
0
    def test_012_scan_board_id_representation(self):
        """ Test scanning while specifying different representations (same value) for
        the board id
        """
        r = http.get(PREFIX + "/scan/rack_1/3")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(len(response["boards"][0]["devices"]), 1)

        r = http.get(PREFIX + "/scan/rack_1/03")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(len(response["boards"][0]["devices"]), 1)

        r = http.get(PREFIX + "/scan/rack_1/003")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(len(response["boards"][0]["devices"]), 1)

        r = http.get(PREFIX + "/scan/rack_1/0003")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(len(response["boards"][0]["devices"]), 1)

        r = http.get(PREFIX + "/scan/rack_1/00003")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(len(response["boards"][0]["devices"]), 1)

        r = http.get(PREFIX + "/scan/rack_1/000003")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(len(response["boards"][0]["devices"]), 1)

        r = http.get(PREFIX + "/scan/rack_1/0000003")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(len(response["boards"][0]["devices"]), 1)

        r = http.get(PREFIX + "/scan/rack_1/00000003")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(len(response["boards"][0]["devices"]), 1)

        r = http.get(PREFIX + "/scan/rack_1/000000003")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(len(response["boards"][0]["devices"]), 1)

        r = http.get(PREFIX + "/scan/rack_1/0000000003")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(len(response["boards"][0]["devices"]), 1)
Ejemplo n.º 16
0
    def test_004_device_id_representation(self):
        """ Test reading while specifying different representations (same value) for
        the device id
        """
        r = http.get(PREFIX + "/read/led/rack_1/00000030/000000001")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["led_state"], 'on')

        r = http.get(PREFIX + "/led/rack_1/00000030/000000001")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["led_state"], 'on')
Ejemplo n.º 17
0
    def test_006_device_id_representation(self):
        """ Test reading while specifying different representations (same value) for
        the device id
        """
        r = http.get(PREFIX + "/read/fan_speed/rack_1/00000028/000000001")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["speed_rpm"], 4100)

        r = http.get(PREFIX + "/fan/rack_1/00000028/000000001")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["speed_rpm"], 4100)
Ejemplo n.º 18
0
    def test_006_device_id_representation(self):
        """ Test reading while specifying different representations (same value) for
        the device id
        """
        r = http.get(PREFIX + "/boot_target/rack_1/00000040/000000002")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["target"], 'hdd')

        r = http.get(PREFIX + "/boot_target/rack_1/00000040/000000002")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["target"], 'hdd')
Ejemplo n.º 19
0
    def test_11_read(self):
        """ Test reading a Redfish device.

        This will turn the power off to test reads when the BMC in unpowered.
        In these cases, we expect that the reads should not return data.
        """
        # turn the power off
        r = http.get(PREFIX + '/power/rack_1/70000000/0100/off')
        self.assertTrue(http.request_ok(r.status_code))

        response = r.json()
        self.assertIsInstance(response, dict)
        self.assertEqual(len(response), 4)
        self.assertIn('power_status', response)
        self.assertIn('power_ok', response)
        self.assertIn('over_current', response)
        self.assertIn('input_power', response)
        self.assertEqual(response['power_status'], 'off')
        self.assertEqual(response['power_ok'], True)
        self.assertEqual(response['over_current'], False)
        #TODO - self.assertEqual(response['input_power'], 0) when emulator changes this value

        # TODO - check the read values for devices that have already been tested above when emulator
        # TODO (con't) - changes these values
        # with self.assertRaises(VaporHTTPError):
        #     http.get(PREFIX + '/read/voltage/rack_1/70000000/0005')

        # with self.assertRaises(VaporHTTPError):
        #     http.get(PREFIX + '/read/voltage/rack_1/70000000/0001')

        # with self.assertRaises(VaporHTTPError):
        #     http.get(PREFIX + '/read/voltage/rack_1/70000000/0004')

        # with self.assertRaises(VaporHTTPError):
        #     http.get(PREFIX + '/read/voltage/rack_1/70000000/0007')

        # turn the power back on
        r = http.get(PREFIX + '/power/rack_1/70000000/0100/on')
        self.assertTrue(http.request_ok(r.status_code))

        response = r.json()
        self.assertIsInstance(response, dict)
        self.assertEqual(len(response), 4)
        self.assertIn('power_status', response)
        self.assertIn('power_ok', response)
        self.assertIn('over_current', response)
        self.assertIn('input_power', response)
        self.assertEqual(response['power_status'], 'on')
        self.assertEqual(response['power_ok'], True)
        self.assertEqual(response['over_current'], False)
        self.assertEqual(response['input_power'], 344.0)
Ejemplo n.º 20
0
    def test_005_device_id_representation(self):
        """ Test reading while specifying different representations (same value) for
        the device id
        """
        r = http.get(PREFIX +
                     "/led/rack_1/00000070/000000001/on/0beef0/no_override")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["led_state"], 'on')

        r = http.get(PREFIX +
                     "/led/rack_1/00000070/000000001/off/000000/blink")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["led_state"], 'off')
Ejemplo n.º 21
0
    def test_003_device_id_representation(self):
        """ Test reading while specifying different representations (same value) for
        the device id
        """
        r = http.get(PREFIX + "/host_info/rack_1/00000090/000000000000001")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["hostnames"][0], 'hostname1')
        self.assertEqual(response["ip_addresses"][0], '192.168.1.1')

        r = http.get(PREFIX + "/host_info/rack_1/000000000000090/0001")
        self.assertTrue(http.request_ok(r.status_code))
        response = r.json()
        self.assertEqual(response["hostnames"][0], 'hostname1')
        self.assertEqual(response["ip_addresses"][0], '192.168.1.1')
Ejemplo n.º 22
0
 def test_002_one_boards(self):
     """ Test for one board.
     """
     r = http.get(PREFIX + "/scan/rack_1/00000000")
     self.assertTrue(http.request_ok(r.status_code))
     response = r.json()
     self.assertEqual(len(response["boards"]), 1)
Ejemplo n.º 23
0
 def test_read_thermistor():
     r = http.get(PREFIX + '/read/thermistor/rack_1/0000000A/01FF',
                  timeout=self.timeout)
     self.assertTrue(http.request_ok(r.status_code))
     response = r.json()
     # self.assertEqual(response['device_raw'], 656)
     self.assertAlmostEqual(response['temperature_c'], 28.7, delta=0.1)
Ejemplo n.º 24
0
 def test_006_double_version_retry_valid(self):
     """ Single retry, valid retry response
     """
     r = http.get(PREFIX + '/version/rack_1/11')
     self.assertTrue(http.request_ok(r.status_code))
     response = r.json()
     self.assertEqual(response["firmware_version"], "12345")
Ejemplo n.º 25
0
 def test_scan():
     r = http.get(PREFIX + '/scan/rack_1/0000000A',
                  timeout=self.timeout)
     self.assertTrue(http.request_ok(r.status_code))
     response = r.json()
     self.assertEqual(len(response['boards']), 1)
     self.assertEqual(len(response['boards'][0]['devices']), 3)
Ejemplo n.º 26
0
 def test_version():
     r = http.get(PREFIX + '/version/rack_1/0000000A',
                  timeout=self.timeout)
     self.assertTrue(http.request_ok(r.status_code))
     response = r.json()
     self.assertEqual(response['firmware_version'],
                      'Version Response 1')
Ejemplo n.º 27
0
 def test_008_triple_power_retry_valid(self):
     """ Single retry, valid retry response
     """
     r = http.get(PREFIX + '/power/status/12/02ff')
     self.assertTrue(http.request_ok(r.status_code))
     response = r.json()
     self.assertEqual(response["pmbus_raw"], "0,0,0,0")
Ejemplo n.º 28
0
 def test_018_read_pressure_float_string_valid(self):
     """ Read a valid pressure value (-0.12)
     """
     r = http.get(PREFIX + "/read/pressure/rack_1/00000016/0003")
     self.assertTrue(http.request_ok(r.status_code))
     response = r.json()
     self.assertEqual(response["pressure_kpa"], -0.12)
Ejemplo n.º 29
0
 def test_003_junk_head_read(self):
     # expect 200 status, thermistor reading
     r = http.get(PREFIX + "/read/thermistor/rack_1/000000c9/01ff")
     self.assertTrue(http.request_ok(r.status_code))
     response = r.json()
     # self.assertEqual(response["device_raw"], 656)
     self.assertEqual(response["temperature_c"], 28.78)
Ejemplo n.º 30
0
 def test_020_read_pressure_int_valid(self):
     """ Read a valid pressure value (-1)
     """
     r = http.get(PREFIX + "/read/pressure/rack_1/00000016/0005")
     self.assertTrue(http.request_ok(r.status_code))
     response = r.json()
     self.assertEqual(response["pressure_kpa"], -1)