コード例 #1
0
ファイル: test_fru.py プロジェクト: Teslafly/python-ipmi
def test_readfrudatareq_encode_valid_req():
    m = pyipmi.msgs.fru.ReadFruDataReq()
    m.fru_id = 1
    m.offset = 0x302
    m.count = 4
    data = encode_message(m)
    eq_(data, '\x01\x02\x03\x04')
コード例 #2
0
def test_readfrudatareq_encode_valid_req():
    m = pyipmi.msgs.fru.ReadFruDataReq()
    m.fru_id = 1
    m.offset = 0x302
    m.count = 4
    data = encode_message(m)
    eq_(data, '\x01\x02\x03\x04')
コード例 #3
0
ファイル: test_fru.py プロジェクト: Teslafly/python-ipmi
def test_writefrudatareq_encode_valid_req_wo_data():
    m = pyipmi.msgs.fru.WriteFruDataReq()
    m.fru_id = 1
    m.offset = 0x302
    m.data = array('B')
    data = encode_message(m)
    eq_(data, '\x01\x02\x03')
コード例 #4
0
def test_writefrudatareq_encode_valid_req_wo_data():
    m = pyipmi.msgs.fru.WriteFruDataReq()
    m.fru_id = 1
    m.offset = 0x302
    m.data = array('B')
    data = encode_message(m)
    eq_(data, '\x01\x02\x03')
コード例 #5
0
def test_readfrudatarsp_encode_valid_rsp():
    m = pyipmi.msgs.fru.ReadFruDataRsp()
    m.completion_code = 0
    m.count = 5
    m.data = array('B', b'\x01\x02\x03\x04\x05')
    data = encode_message(m)
    eq_(data, '\x00\x05\x01\x02\x03\x04\x05')
コード例 #6
0
ファイル: test_sensor.py プロジェクト: Teslafly/python-ipmi
def test_setsensorthresholds_encode_req_set_unc():
    m = pyipmi.msgs.sensor.SetSensorThresholdsReq()
    m.sensor_number = 0x55
    m.set_mask.unc = 1
    m.threshold.unc = 0xaa
    data = encode_message(m)
    eq_(data, '\x55\x08\x00\x00\x00\xaa\x00\x00')
コード例 #7
0
ファイル: test_fru.py プロジェクト: Teslafly/python-ipmi
def test_readfrudatarsp_encode_valid_rsp():
    m = pyipmi.msgs.fru.ReadFruDataRsp()
    m.completion_code = 0
    m.count = 5
    m.data = array('B', b'\x01\x02\x03\x04\x05')
    data = encode_message(m)
    eq_(data, '\x00\x05\x01\x02\x03\x04\x05')
コード例 #8
0
def test_get_username_req():
    m = pyipmi.msgs.device_messaging.GetUserNameReq()
    m.userid.userid = 2
    data = encode_message(m)
    eq_(m.cmdid, 0x46)
    eq_(m.netfn, 6)
    eq_(m.userid.userid, 2)
コード例 #9
0
ファイル: aardvark.py プロジェクト: sadig/python-ipmi
    def send_and_receive(self, msg):
        """Sends an IPMI request message and waits for its response.

        `msg` is a IPMI Message containing both the request and response.
        """

        log().debug('IPMI Request [%s]', msg)

        retries = 0
        while retries < self.max_retries:
            try:
                rx_data = self._send_and_receive_raw(msg.target, msg.lun,
                        msg.netfn, chr(msg.cmdid) + encode_message(msg))
                break
            except TimeoutError:
                pass

            retries += 1

        else:
            raise TimeoutError()

        msg = create_message(msg.cmdid, msg.netfn + 1)
        decode_message(msg, rx_data[5:-1])

        log().debug('IPMI Response [%s])', msg)

        return msg
コード例 #10
0
ファイル: picmg.py プロジェクト: fbeneventi/python-ipmi
 def test_set_deactivation_lock_req(self):
     m = pyipmi.msgs.picmg.SetFruActivationPolicyReq()
     m.fru_id = 1
     m.mask.deactivation_locked = 1
     m.set.deactivation_locked = 1
     data = encode_message(m)
     self.assertEqual(data, '\x00\x01\x02\x02')
コード例 #11
0
def test_get_session_challenge_req():
    m = pyipmi.msgs.device_messaging.GetSessionChallengeReq()
    m.authentication.type = 1
#    m.user_name = "helloworld"
    data = encode_message(m)
    eq_(m.cmdid, 0x39)
    eq_(m.netfn, 6)
    eq_(data,
        b'\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')

    m.authentication.type = 1
    m.user_name = '0123456789abcdef'
    data = encode_message(m)
    eq_(m.cmdid, 0x39)
    eq_(m.netfn, 6)
    eq_(data, b'\x010123456789abcdef')
コード例 #12
0
ファイル: test_chassis.py プロジェクト: smpj/python-ipmi
def test_chassiscontrol_encode_valid_req():
    m = pyipmi.msgs.chassis.ChassisControlReq()
    m.control.option = 1
    data = encode_message(m)
    eq_(m.__netfn__, 0)
    eq_(m.__cmdid__, 2)
    eq_(data, '\x01')
コード例 #13
0
 def test_encode_valid_req(self):
     m = pyipmi.msgs.fru.ReadFruDataReq()
     m.fru_id = 1
     m.offset = 0x302
     m.count = 4
     data = encode_message(m)
     self.assertEqual(data, '\x01\x02\x03\x04')
コード例 #14
0
 def test_encode_valid_rsp(self):
     m = pyipmi.msgs.fru.ReadFruDataRsp()
     m.completion_code = 0
     m.count = 5
     m.data = array('B', '\x01\x02\x03\x04\x05')
     data = encode_message(m)
     self.assertEqual(data, '\x00\x05\x01\x02\x03\x04\x05')
コード例 #15
0
ファイル: test_chassis.py プロジェクト: WadeChenX/python-ipmi
def test_chassis_id_encode_valid_req():
    m = pyipmi.msgs.chassis.ChassisIdentifyReq()
    m.interval = 0x1f
    m.force_id_on.turn_on = 0
    data = encode_message(m)
    eq_(m.__netfn__, 0)
    eq_(m.__cmdid__, 4)
    eq_(data, b'\x1f\x00')

    m = pyipmi.msgs.chassis.ChassisIdentifyReq()
    m.interval = 0x1f
    m.force_id_on.turn_on = 1
    data = encode_message(m)
    eq_(m.__netfn__, 0)
    eq_(m.__cmdid__, 4)
    eq_(data, b'\x1f\x01')
コード例 #16
0
 def test_encode_valid_req_wo_data(self):
     m = pyipmi.msgs.fru.WriteFruDataReq()
     m.fru_id = 1
     m.offset = 0x302
     m.data = array('B')
     data = encode_message(m)
     self.assertEqual(data, '\x01\x02\x03')
コード例 #17
0
def test_set_activation_lock_req():
    m = pyipmi.msgs.picmg.SetFruActivationPolicyReq()
    m.fru_id = 1
    m.mask.activation_locked = 1
    m.set.activation_locked = 1
    data = encode_message(m)
    eq_(data, b'\x00\x01\x01\x01')
コード例 #18
0
def test_clear_deactivation_lock_req():
    m = pyipmi.msgs.picmg.SetFruActivationPolicyReq()
    m.fru_id = 1
    m.mask.deactivation_locked = 1
    m.set.deactivation_locked = 0
    data = encode_message(m)
    eq_(data, b'\x00\x01\x02\x00')
コード例 #19
0
def test_setsensorthresholds_encode_req_set_ucr():
    m = pyipmi.msgs.sensor.SetSensorThresholdsReq()
    m.sensor_number = 0x55
    m.set_mask.ucr = 1
    m.threshold.ucr = 0xaa
    data = encode_message(m)
    eq_(data, b'\x55\x10\x00\x00\x00\x00\xaa\x00')
コード例 #20
0
ファイル: test_sel.py プロジェクト: yhtsnda/python-ipmi
def test_getselentry_encode_valid_rsp():
    m = pyipmi.msgs.sel.GetSelEntryRsp()
    m.completion_code = 0
    m.next_record_id = 0x0102
    m.record_data = array('B', b'\x01\x02\x03\x04')
    data = encode_message(m)
    eq_(data, '\x00\x02\x01\x01\x02\x03\x04')
コード例 #21
0
def test_setsensorhysteresis_encode_req():
    m = pyipmi.msgs.sensor.SetSensorHysteresisReq()
    m.sensor_number = 0xab
    m.positive_going_hysteresis = 0xaa
    m.negative_going_hysteresis = 0xbb
    data = encode_message(m)
    eq_(data, b'\xab\xff\xaa\xbb')
コード例 #22
0
 def test_encode_valid_rsp(self):
     m = pyipmi.msgs.sel.GetSelEntryRsp()
     m.completion_code = 0
     m.next_record_id = 0x0102
     m.record_data = array('B', '\x01\x02\x03\x04')
     data = encode_message(m)
     self.assertEqual(data, '\x00\x02\x01\x01\x02\x03\x04')
コード例 #23
0
def test_get_session_challenge_rsp_cc_not_ok():
    m = pyipmi.msgs.device_messaging.GetSessionChallengeRsp()
    m.completion_code = 0xc1
    m.temporary_session_id = 0x11121314
    m.challenge_string = '0123456789abcdef'
    data = encode_message(m)
    eq_(data, b'\xc1\x14\x13\x12\x110123456789abcdef')
コード例 #24
0
ファイル: test_sensor.py プロジェクト: Teslafly/python-ipmi
def test_setsensorhysteresis_encode_req():
    m = pyipmi.msgs.sensor.SetSensorHysteresisReq()
    m.sensor_number = 0xab
    m.positive_going_hysteresis = 0xaa
    m.negative_going_hysteresis = 0xbb
    data = encode_message(m)
    eq_(data, '\xab\xff\xaa\xbb')
コード例 #25
0
ファイル: test_picmg.py プロジェクト: jjjesus/python-ipmi
 def test_clear_activation_lock_req(self):
     m = pyipmi.msgs.picmg.SetFruActivationPolicyReq()
     m.fru_id = 1
     m.mask.activation_locked = 1
     m.set.activation_locked = 0
     data = encode_message(m)
     self.assertEqual(data, "\x00\x01\x01\x00")
コード例 #26
0
ファイル: test_chassis.py プロジェクト: hthiery/python-ipmi
def test_chassiscontrol_encode_valid_req():
    m = pyipmi.msgs.chassis.ChassisControlReq()
    m.control.option = 1
    data = encode_message(m)
    eq_(m.__netfn__, 0)
    eq_(m.__cmdid__, 2)
    eq_(data, '\x01')
コード例 #27
0
ファイル: sensor.py プロジェクト: fbeneventi/python-ipmi
 def test_encode_req_set_ucr(self):
     m = pyipmi.msgs.sensor.SetSensorThresholdsReq()
     m.sensor_number = 0x55
     m.set_mask.ucr = 1
     m.threshold.ucr = 0xaa
     data = encode_message(m)
     self.assertEqual(data, '\x55\x10\x00\x00\x00\x00\xaa\x00')
コード例 #28
0
ファイル: test_sensor.py プロジェクト: jjjesus/python-ipmi
 def test_encode_req_set_ucr(self):
     m = pyipmi.msgs.sensor.SetSensorThresholdsReq()
     m.sensor_number = 0x55
     m.set_mask.ucr = 1
     m.threshold.ucr = 0xaa
     data = encode_message(m)
     self.assertEqual(data, '\x55\x10\x00\x00\x00\x00\xaa\x00')
コード例 #29
0
ファイル: test_sel.py プロジェクト: kontron/python-ipmi
def test_getselentry_encode_valid_rsp():
    m = pyipmi.msgs.sel.GetSelEntryRsp()
    m.completion_code = 0
    m.next_record_id = 0x0102
    m.record_data = array('B', b'\x01\x02\x03\x04')
    data = encode_message(m)
    eq_(data, b'\x00\x02\x01\x01\x02\x03\x04')
コード例 #30
0
ファイル: sensor.py プロジェクト: fbeneventi/python-ipmi
 def test_encode_req(self):
     m = pyipmi.msgs.sensor.SetSensorHysteresisReq()
     m.sensor_number = 0xab
     m.positive_going_hysteresis = 0xaa
     m.negative_going_hysteresis = 0xbb
     data = encode_message(m)
     self.assertEqual(data, '\xab\xff\xaa\xbb')
コード例 #31
0
ファイル: test_sensor.py プロジェクト: jjjesus/python-ipmi
 def test_encode_req(self):
     m = pyipmi.msgs.sensor.SetSensorHysteresisReq()
     m.sensor_number = 0xab
     m.positive_going_hysteresis = 0xaa
     m.negative_going_hysteresis = 0xbb
     data = encode_message(m)
     self.assertEqual(data, '\xab\xff\xaa\xbb')
コード例 #32
0
ファイル: sensor.py プロジェクト: fbeneventi/python-ipmi
 def test_encode_req(self):
     m = pyipmi.msgs.sensor.GetDeviceSdrReq()
     m.reservation_id = 0x0123
     m.record_id = 0x4567
     m.offset = 0x89
     m.length = 0xab
     data = encode_message(m)
     self.assertEqual(data, '\x23\x01\x67\x45\x89\xab')
コード例 #33
0
ファイル: sensor.py プロジェクト: fbeneventi/python-ipmi
 def test_encode_event_enabled_req(self):
     m = pyipmi.msgs.sensor.SetSensorEventEnableReq()
     m.sensor_number = 0xab
     m.enable.config = 0
     m.enable.event_message = 1
     m.enable.sensor_scanning = 0
     data = encode_message(m)
     self.assertEqual(data, '\xab\x80')
コード例 #34
0
ファイル: test_sensor.py プロジェクト: jjjesus/python-ipmi
 def test_encode_req(self):
     m = pyipmi.msgs.sensor.GetDeviceSdrReq()
     m.reservation_id = 0x0123
     m.record_id = 0x4567
     m.offset = 0x89
     m.bytes_to_read = 0xab
     data = encode_message(m)
     self.assertEqual(data, '\x23\x01\x67\x45\x89\xab')
コード例 #35
0
ファイル: test_sensor.py プロジェクト: jjjesus/python-ipmi
 def test_encode_event_enabled_req(self):
     m = pyipmi.msgs.sensor.SetSensorEventEnableReq()
     m.sensor_number = 0xab
     m.enable.config = 0
     m.enable.event_message = 1
     m.enable.sensor_scanning = 0
     data = encode_message(m)
     self.assertEqual(data, '\xab\x80')
コード例 #36
0
ファイル: test_sensor.py プロジェクト: Teslafly/python-ipmi
def test_setsensoreventenable_encode_event_enabled_req():
    m = pyipmi.msgs.sensor.SetSensorEventEnableReq()
    m.sensor_number = 0xab
    m.enable.config = 0
    m.enable.event_message = 1
    m.enable.sensor_scanning = 0
    data = encode_message(m)
    eq_(data, '\xab\x80')
コード例 #37
0
ファイル: sdr.py プロジェクト: erik-smit/python-ipmi
 def test_encode_req(self):
     m = pyipmi.msgs.sdr.GetSdrReq()
     m.reservation_id = 0x1122
     m.record_id = 0x3344
     m.offset = 0xaa
     m.bytes_to_read = 0x55
     data = encode_message(m)
     eq_(data, '\x22\x11\x44\x33\xaa\x55')
コード例 #38
0
def test_getdevicesdr_encode_req():
    m = pyipmi.msgs.sensor.GetDeviceSdrReq()
    m.reservation_id = 0x0123
    m.record_id = 0x4567
    m.offset = 0x89
    m.bytes_to_read = 0xab
    data = encode_message(m)
    eq_(data, '\x23\x01\x67\x45\x89\xab')
コード例 #39
0
ファイル: test_sdr.py プロジェクト: zhangkeqing/python-ipmi
def test_getsdr_encode_req():
    m = pyipmi.msgs.sdr.GetSdrReq()
    m.reservation_id = 0x1122
    m.record_id = 0x3344
    m.offset = 0xaa
    m.bytes_to_read = 0x55
    data = encode_message(m)
    eq_(data, b'\x22\x11\x44\x33\xaa\x55')
コード例 #40
0
def test_setsensoreventenable_encode_event_enabled_req():
    m = pyipmi.msgs.sensor.SetSensorEventEnableReq()
    m.sensor_number = 0xab
    m.enable.config = 0
    m.enable.event_message = 1
    m.enable.sensor_scanning = 0
    data = encode_message(m)
    eq_(data, '\xab\x80')
コード例 #41
0
ファイル: msgs.py プロジェクト: erik-smit/python-ipmi
 def test_encode_req_all_zero_read(self):
     m = pyipmi.msgs.bmc.MasterWriteReadReq()
     m.bus_id.type = 0
     m.bus_id.id = 0
     m.bus_id.channel = 0
     m.bus_id.slave_address = 0
     m.read_count = 0
     data = encode_message(m)
     self.assertEqual(data,'\x00\x00\x00')
コード例 #42
0
ファイル: msgs.py プロジェクト: erik-smit/python-ipmi
 def test_encode_req_for_read(self):
     m = pyipmi.msgs.bmc.MasterWriteReadReq()
     m.bus_id.type = 1
     m.bus_id.id = 2
     m.bus_id.channel = 4
     m.bus_id.slave_address = 0x3a
     m.read_count = 5
     data = encode_message(m)
     self.assertEqual(data,'\x45\x74\x05')
コード例 #43
0
 def test_encode_req_for_read(self):
     m = pyipmi.msgs.bmc.MasterWriteReadReq()
     m.bus_id.type = 1
     m.bus_id.id = 2
     m.bus_id.channel = 4
     m.bus_id.slave_address = 0x3a
     m.read_count = 5
     data = encode_message(m)
     self.assertEqual(data, '\x45\x74\x05')
コード例 #44
0
 def test_encode_req_all_zero_read(self):
     m = pyipmi.msgs.bmc.MasterWriteReadReq()
     m.bus_id.type = 0
     m.bus_id.id = 0
     m.bus_id.channel = 0
     m.bus_id.slave_address = 0
     m.read_count = 0
     data = encode_message(m)
     self.assertEqual(data, '\x00\x00\x00')
コード例 #45
0
ファイル: sdr.py プロジェクト: erik-smit/python-ipmi
 def test_encode_req(self):
     m = pyipmi.msgs.sdr.PartialAddSdrReq()
     m.reservation_id = 0x2211
     m.record_id = 0x4433
     m.offset = 0xaa
     m.status.in_progress = 0xaa
     m.data = array('B', [0x55, 0x44])
     data = encode_message(m)
     eq_(data, '\x11\x22\x33\x44\xaa\x0a\x55\x44')
コード例 #46
0
ファイル: test_sdr.py プロジェクト: zhangkeqing/python-ipmi
def test_partialaddsdr_encode_req():
    m = pyipmi.msgs.sdr.PartialAddSdrReq()
    m.reservation_id = 0x2211
    m.record_id = 0x4433
    m.offset = 0xaa
    m.status.in_progress = 0xaa
    m.record_data = array('B', [0x55, 0x44])
    data = encode_message(m)
    eq_(data, b'\x11\x22\x33\x44\xaa\x0a\x55\x44')
コード例 #47
0
def test_masterwriteread_encode_req_all_zero_read():
    m = pyipmi.msgs.device_messaging.MasterWriteReadReq()
    m.bus_id.type = 0
    m.bus_id.id = 0
    m.bus_id.channel = 0
    m.bus_id.slave_address = 0
    m.read_count = 0
    data = encode_message(m)
    eq_(data, b'\x00\x00\x00')
コード例 #48
0
def test_masterwriteread_encode_req_for_read():
    m = pyipmi.msgs.device_messaging.MasterWriteReadReq()
    m.bus_id.type = 1
    m.bus_id.id = 2
    m.bus_id.channel = 4
    m.bus_id.slave_address = 0x3a
    m.read_count = 5
    data = encode_message(m)
    eq_(data, b'\x45\x74\x05')
コード例 #49
0
def test_get_channel_authentication_capabilities_req():
    m = pyipmi.msgs.device_messaging.GetChannelAuthenticationCapabilitiesReq()
    m.channel.number = 6
    m.channel.type = 1
    m.privilege_level.requested = 5
    data = encode_message(m)
    eq_(m.cmdid, 0x38)
    eq_(m.netfn, 6)
    eq_(data, b'\x86\x05')
コード例 #50
0
def test_masterwriteread_encode_req_for_write():
    m = pyipmi.msgs.device_messaging.MasterWriteReadReq()
    m.bus_id.type = 0
    m.bus_id.id = 0
    m.bus_id.channel = 0
    m.bus_id.slave_address = 0
    m.read_count = 0
    m.data = [1, 0x23, 0x45]
    data = encode_message(m)
    eq_(data, b'\x00\x00\x00\x01\x23\x45')