- 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 <ObservedWatch: path=[PATH]/selftest/resource_test/conf/test_work/state_dir, is_recursive=False>
~~~ 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