def test_set(self, mock_cmdgen): var_bind = (self.oid, self.value) mock_cmdgenerator = mock_cmdgen.return_value mock_cmdgenerator.setCmd.return_value = ("", None, 0, [var_bind]) client = snmp.SNMPClient(self.address, self.port, snmp.SNMP_V3) client.set(self.oid, self.value) mock_cmdgenerator.setCmd.assert_called_once_with( mock.ANY, mock.ANY, var_bind)
def get_capabilities_properties(d_info, capa_keys, gpu_ids, fpga_ids=None, **kwargs): """get capabilities properties This function returns a dictionary which contains keys and their values from the report. :param d_info: the dictionary of ipmitool parameters for accessing a node. :param capa_keys: a list of keys for additional capabilities properties. :param gpu_ids: the list of string contains <vendorID>/<deviceID> for GPU. :param fpga_ids: the list of string contains <vendorID>/<deviceID> for CPU FPGA. :param kwargs: additional arguments passed to scciclient. :returns: a dictionary which contains keys and their values. """ snmp_client = snmp.SNMPClient(d_info['irmc_address'], d_info['irmc_snmp_port'], d_info['irmc_snmp_version'], d_info['irmc_snmp_community'], d_info['irmc_snmp_security']) try: v = {} if 'rom_firmware_version' in capa_keys: v['rom_firmware_version'] = \ snmp.get_bios_firmware_version(snmp_client) if 'irmc_firmware_version' in capa_keys: v['irmc_firmware_version'] = \ snmp.get_irmc_firmware_version(snmp_client) if 'server_model' in capa_keys: v['server_model'] = snmp.get_server_model(snmp_client) # Sometime the server started but PCI device list building is # still in progress so system will response error. We have to wait # for some more seconds. if kwargs.get('sleep_flag', False) and \ any(k in capa_keys for k in ('pci_gpu_devices', 'cpu_fpga')): time.sleep(5) if 'pci_gpu_devices' in capa_keys: v['pci_gpu_devices'] = ipmi.get_pci_device(d_info, gpu_ids) if fpga_ids is not None and 'cpu_fpga' in capa_keys: v['cpu_fpga'] = ipmi.get_pci_device(d_info, fpga_ids) if 'trusted_boot' in capa_keys: v['trusted_boot'] = ipmi.get_tpm_status(d_info) return v except (snmp.SNMPFailure, ipmi.IPMIFailure) as err: raise SCCIClientError('Capabilities inspection failed: %s' % err)
def test_set_err_engine(self, mock_cmdgen): var_bind = (self.oid, self.value) mock_cmdgenerator = mock_cmdgen.return_value mock_cmdgenerator.setCmd.return_value = ("engine error", None, 0, [var_bind]) client = snmp.SNMPClient(self.address, self.port, snmp.SNMP_V3) self.assertRaises(snmp.SNMPFailure, client.set, self.oid, self.value) mock_cmdgenerator.setCmd.assert_called_once_with( mock.ANY, mock.ANY, var_bind)
def test___init__(self, mock_cmdgen): client = snmp.SNMPClient(self.address, self.port, snmp.SNMP_V1) mock_cmdgen.assert_called_once_with() self.assertEqual(self.address, client.address) self.assertEqual(self.port, client.port) self.assertEqual(snmp.SNMP_V1, client.version) self.assertIsNone(client.community) self.assertNotIn('security', client.__dict__) self.assertEqual(mock_cmdgen.return_value, client.cmd_gen)
def test_get_next(self, mock_cmdgen): var_bind = (self.oid, self.value) mock_cmdgenerator = mock_cmdgen.return_value mock_cmdgenerator.nextCmd.return_value = ("", None, 0, [[var_bind, var_bind]]) client = snmp.SNMPClient(self.address, self.port, snmp.SNMP_V3) val = client.get_next(self.oid) self.assertEqual([self.value, self.value], val) mock_cmdgenerator.nextCmd.assert_called_once_with( mock.ANY, mock.ANY, self.oid)
def test_set_pdu_err(self, mock_cmdgen): var_bind = (self.oid, self.value) error_status = mock.Mock() error_status.prettyPrint = lambda: "pdu error" mock_cmdgenerator = mock_cmdgen.return_value mock_cmdgenerator.setCmd.return_value = (None, error_status, 1, [var_bind]) client = snmp.SNMPClient(self.address, self.port, snmp.SNMP_V3) self.assertRaises(snmp.SNMPFailure, client.set, self.oid, self.value) mock_cmdgenerator.setCmd.assert_called_once_with( mock.ANY, mock.ANY, var_bind)
def test_set_err_transport(self, mock_transport, mock_cmdgen): mock_transport.side_effect = snmp_error.PySnmpError mock_cmdgenerator = mock_cmdgen.return_value client = snmp.SNMPClient(self.address, self.port, snmp.SNMP_V3) self.assertRaises(snmp.SNMPFailure, client.set, self.oid, self.value) self.assertFalse(mock_cmdgenerator.setCmd.called)
def test__get_transport_err(self, mock_transport, mock_cmdgen): mock_transport.side_effect = snmp_error.PySnmpError() client = snmp.SNMPClient(self.address, self.port, snmp.SNMP_V3) self.assertRaises(snmp_error.PySnmpError, client._get_transport) mock_cmdgen.assert_called_once_with() mock_transport.assert_called_once_with((client.address, client.port))
def test__get_transport(self, mock_transport, mock_cmdgen): client = snmp.SNMPClient(self.address, self.port, snmp.SNMP_V3) client._get_transport() mock_cmdgen.assert_called_once_with() mock_transport.assert_called_once_with((client.address, client.port))
def test__get_auth_v3(self, mock_user, mock_cmdgen): client = snmp.SNMPClient(self.address, self.port, snmp.SNMP_V3) client._get_auth() mock_cmdgen.assert_called_once_with() mock_user.assert_called_once_with(client.security)
def test__get_auth_v2c(self, mock_community, mock_cmdgen): client = snmp.SNMPClient(self.address, self.port, snmp.SNMP_V2C) client._get_auth() mock_cmdgen.assert_called_once_with() mock_community.assert_called_once_with(client.community, mpModel=1)