- expect solutions: [0, 1, 2] [0, 1, 2] [1, 0, 2] [1, 2, 0] - expect failure to solve: The requested resource requirements are not solvable [[0, 2], [2], [0, 2]] - test removing a Resources list from itself ok, caused exception RuntimeError: Refusing to drop a list of resources from itself. This is probably a bug where a list of Resources() should have been copied but is passed as-is. use Resources.clear() instead. - test removing a Resources list from one with the same list in it - test resources config and state dir: cnf -: DBG: Found main configuration file in [PATH]/selftest/resource_test/conf/paths.conf which is [PATH]/selftest/resource_test/conf/paths.conf cnf -: DBG: MAIN CONFIG: {'default_suites_conf_path': '[PATH]/selftest/resource_test/conf/default-suites.conf', 'defaults_conf_path': '[PATH]/selftest/resource_test/conf/defaults.conf', 'resource_conf_path': '[PATH]/selftest/resource_test/conf/resources.conf', 'scenarios_dir': ['[PATH]/selftest/resource_test/conf/scenarios'], 'state_dir': '[PATH]/selftest/resource_test/conf/test_work/state_dir', 'suites_dir': ['[PATH]/selftest/resource_test/conf/suite_test'], 'trial_dir': '[PATH]/selftest/resource_test/conf/trial'} *** all resources: {'bts': [{'_hash': 'd2aa7c1124943de352351b650ca0c751784da6b6', 'addr': '10.42.42.114', 'band': 'GSM-1800', 'ciphers': ['a5_0', 'a5_1'], 'direct_pcu': 'True', 'ipa_unit_id': '1', 'label': 'sysmoBTS 1002', 'type': 'osmo-bts-sysmo'}, {'_hash': '2158317d5e0055070e7174c2498dedf53a2957e9', 'addr': '10.42.42.50', 'band': 'GSM-1800', 'ciphers': ['a5_0', 'a5_1'], 'ipa_unit_id': '6', 'label': 'Ettus B200', 'osmo_trx': {'clock_reference': 'external', 'launch_trx': 'True'}, 'type': 'osmo-bts-trx'}, {'_hash': 'f964ba5fe7a37b97ec3e0c4ef21c9231a19de45d', 'addr': '10.42.42.51', 'band': 'GSM-1800', 'ciphers': ['a5_0', 'a5_1'], 'ipa_unit_id': '7', 'label': 'sysmoCell 5000', 'osmo_trx': {'clock_reference': 'external', 'launch_trx': 'False', 'trx_ip': '10.42.42.112'}, 'type': 'osmo-bts-trx'}], 'ip_address': [{'_hash': 'fd103b22c7cf2480d609150e06f4bbd92ac78d8c', 'addr': '10.42.42.2'}, {'_hash': '1c614d6210c551d142aadca8f25e1534ebb2a70f', 'addr': '10.42.42.3'}, {'_hash': '862b529c701adf302477bc126a8032cfc2ec4753', 'addr': '10.42.42.4'}, {'_hash': '05feb6e1e24ca4235889eb28d0a8d5cedac6e5d1', 'addr': '10.42.42.5'}, {'_hash': 'e780ac7581ad29f8f46e637b61d0c38898c4c52c', 'addr': '10.42.42.6'}], 'modem': [{'_hash': '0b538cb6ad799fbd7c2953fd3b4463a76c7cc9c0', 'auth_algo': 'comp128v1', 'ciphers': ['a5_0', 'a5_1'], 'imsi': '901700000009031', 'ki': '80A37E6FDEA931EAC92FFA5F671EFEAD', 'label': 'sierra_1', 'path': '/sierra_1'}, {'_hash': '3a6e7747dfe7dfdf817bd3351031bd08051605c3', 'auth_algo': 'comp128v1', 'ciphers': ['a5_0', 'a5_1'], 'imsi': '901700000009029', 'ki': '00969E283349D354A8239E877F2E0866', 'label': 'sierra_2', 'path': '/sierra_2'}, {'_hash': 'f6ba17db2ad13da5ba5c54b5385a774f5351bb5a', 'auth_algo': 'comp128v1', 'ciphers': ['a5_0', 'a5_1'], 'imsi': '901700000009030', 'ki': 'BB70807226393CDBAC8DD3439FF54252', 'label': 'gobi_0', 'path': '/gobi_0'}, {'_hash': 'fbff2e4f06b727fc8a70da23e1d134f9cd763919', 'auth_algo': 'comp128v1', 'ciphers': ['a5_0', 'a5_1'], 'imsi': '901700000009032', 'ki': '2F70DCA43C45ACB97E947FDD0C7CA30A', 'label': 'gobi_3', 'path': '/gobi_3'}]} *** end: all resources - request some resources --- testowner: Verifying 2 x bts (candidates: 3) --- testowner: DBG: Picked - _hash: d2aa7c1124943de352351b650ca0c751784da6b6 addr: 10.42.42.114 band: GSM-1800 ciphers: - a5_0 - a5_1 direct_pcu: 'True' ipa_unit_id: '1' label: sysmoBTS 1002 type: osmo-bts-sysmo - _hash: 2158317d5e0055070e7174c2498dedf53a2957e9 addr: 10.42.42.50 band: GSM-1800 ciphers: - a5_0 - a5_1 ipa_unit_id: '6' label: Ettus B200 osmo_trx: clock_reference: external launch_trx: 'True' type: osmo-bts-trx --- testowner: Verifying 1 x ip_address (candidates: 5) --- testowner: DBG: Picked - _hash: fd103b22c7cf2480d609150e06f4bbd92ac78d8c addr: 10.42.42.2 --- testowner: Verifying 2 x modem (candidates: 4) --- testowner: DBG: Picked - _hash: 0b538cb6ad799fbd7c2953fd3b4463a76c7cc9c0 auth_algo: comp128v1 ciphers: - a5_0 - a5_1 imsi: '901700000009031' ki: 80A37E6FDEA931EAC92FFA5F671EFEAD label: sierra_1 path: /sierra_1 - _hash: 3a6e7747dfe7dfdf817bd3351031bd08051605c3 auth_algo: comp128v1 ciphers: - a5_0 - a5_1 imsi: '901700000009029' ki: 00969E283349D354A8239E877F2E0866 label: sierra_2 path: /sierra_2 --- testowner: DBG: FileWatch: scheduling watch for directory [PATH]/selftest/resource_test/conf/test_work/state_dir --- testowner: Reserving 2 x bts (candidates: 3) --- testowner: DBG: Picked - _hash: d2aa7c1124943de352351b650ca0c751784da6b6 addr: 10.42.42.114 band: GSM-1800 ciphers: - a5_0 - a5_1 direct_pcu: 'True' ipa_unit_id: '1' label: sysmoBTS 1002 type: osmo-bts-sysmo - _hash: 2158317d5e0055070e7174c2498dedf53a2957e9 addr: 10.42.42.50 band: GSM-1800 ciphers: - a5_0 - a5_1 ipa_unit_id: '6' label: Ettus B200 osmo_trx: clock_reference: external launch_trx: 'True' type: osmo-bts-trx --- testowner: Reserving 1 x ip_address (candidates: 5) --- testowner: DBG: Picked - _hash: fd103b22c7cf2480d609150e06f4bbd92ac78d8c addr: 10.42.42.2 --- testowner: Reserving 2 x modem (candidates: 4) --- testowner: DBG: Picked - _hash: 0b538cb6ad799fbd7c2953fd3b4463a76c7cc9c0 auth_algo: comp128v1 ciphers: - a5_0 - a5_1 imsi: '901700000009031' ki: 80A37E6FDEA931EAC92FFA5F671EFEAD label: sierra_1 path: /sierra_1 - _hash: 3a6e7747dfe7dfdf817bd3351031bd08051605c3 auth_algo: comp128v1 ciphers: - a5_0 - a5_1 imsi: '901700000009029' ki: 00969E283349D354A8239E877F2E0866 label: sierra_2 path: /sierra_2 --- testowner: DBG: FileWatch: unscheduling watch ~~~ currently reserved: bts: - _hash: d2aa7c1124943de352351b650ca0c751784da6b6 _reserved_by: testowner-123-1490837279 addr: 10.42.42.114 band: GSM-1800 ciphers: - a5_0 - a5_1 direct_pcu: 'True' ipa_unit_id: '1' label: sysmoBTS 1002 type: osmo-bts-sysmo - _hash: 2158317d5e0055070e7174c2498dedf53a2957e9 _reserved_by: testowner-123-1490837279 addr: 10.42.42.50 band: GSM-1800 ciphers: - a5_0 - a5_1 ipa_unit_id: '6' label: Ettus B200 osmo_trx: clock_reference: external launch_trx: 'True' type: osmo-bts-trx ip_address: - _hash: fd103b22c7cf2480d609150e06f4bbd92ac78d8c _reserved_by: testowner-123-1490837279 addr: 10.42.42.2 modem: - _hash: 0b538cb6ad799fbd7c2953fd3b4463a76c7cc9c0 _reserved_by: testowner-123-1490837279 auth_algo: comp128v1 ciphers: - a5_0 - a5_1 imsi: '901700000009031' ki: 80A37E6FDEA931EAC92FFA5F671EFEAD label: sierra_1 path: /sierra_1 - _hash: 3a6e7747dfe7dfdf817bd3351031bd08051605c3 _reserved_by: testowner-123-1490837279 auth_algo: comp128v1 ciphers: - a5_0 - a5_1 imsi: '901700000009029' ki: 00969E283349D354A8239E877F2E0866 label: sierra_2 path: /sierra_2 ~~~ end: currently reserved ~~~ with modifiers: resources(testowner)={'bts': [{'_hash': 'd2aa7c1124943de352351b650ca0c751784da6b6', '_reserved_by': 'testowner-123-1490837279', 'addr': '10.42.42.114', 'band': 'GSM-1800', 'ciphers': ['a5_0', 'a5_1'], 'direct_pcu': 'True', 'ipa_unit_id': '1', 'label': 'sysmoBTS 1002', 'type': 'osmo-bts-sysmo'}, {'_hash': '2158317d5e0055070e7174c2498dedf53a2957e9', '_reserved_by': 'testowner-123-1490837279', 'addr': '10.42.42.50', 'band': 'GSM-1800', 'ciphers': ['a5_0', 'a5_1'], 'ipa_unit_id': '6', 'label': 'Ettus B200', 'num_trx': 2, 'osmo_trx': {'clock_reference': 'external', 'launch_trx': 'True'}, 'type': 'osmo-bts-trx'}], 'ip_address': [{'_hash': 'fd103b22c7cf2480d609150e06f4bbd92ac78d8c', '_reserved_by': 'testowner-123-1490837279', 'addr': '10.42.42.2'}], 'modem': [{'_hash': '0b538cb6ad799fbd7c2953fd3b4463a76c7cc9c0', '_reserved_by': 'testowner-123-1490837279', 'auth_algo': 'comp128v1', 'ciphers': ['a5_0', 'a5_1'], 'imsi': '901700000009031', 'ki': '80A37E6FDEA931EAC92FFA5F671EFEAD', 'label': 'sierra_1', 'path': '/sierra_1'}, {'_hash': '3a6e7747dfe7dfdf817bd3351031bd08051605c3', '_reserved_by': 'testowner-123-1490837279', 'auth_algo': 'comp128v1', 'ciphers': ['a5_0', 'a5_1'], 'imsi': '901700000009029', 'ki': '00969E283349D354A8239E877F2E0866', 'label': 'sierra_2', 'path': '/sierra_2'}]} ~~~ end: with modifiers: ~~~ currently reserved: {} ~~~ end: currently reserved - item_matches: 1st subset matches correctly, pass 2nd subset matches correctly, pass 3rd subset should not match, pass 3rd subset should not match, pass 4th subset should not match, pass *** concurrent allocation: --- testowner1: Verifying 2 x bts (candidates: 3) --- testowner1: Verifying 1 x ip_address (candidates: 5) --- testowner1: Verifying 2 x modem (candidates: 4) --- testowner1: Reserving 2 x bts (candidates: 3) --- testowner1: Reserving 1 x ip_address (candidates: 5) --- testowner1: Reserving 2 x modem (candidates: 4) - 2nd instance reserve() start --- testowner2: Verifying 2 x bts (candidates: 3) --- testowner2: Verifying 1 x ip_address (candidates: 5) --- testowner2: Verifying 2 x modem (candidates: 4) --- testowner2: Reserving 2 x bts (candidates: 1) --- testowner2: Unable to reserve resources, too many currently reserved. Waiting until some are available again - 1st instance free() --- testowner2: Reserving 2 x bts (candidates: 3) --- testowner2: Reserving 1 x ip_address (candidates: 5) --- testowner2: Reserving 2 x modem (candidates: 4) - 2nd instance reserve() done *** end: concurrent allocation