示例#1
0
    def test_delete_device(self, management_api, devices):
        # try delete an existing device, verify decommissioning workflow was started
        # setup single device and poke devauth
        dev, _ = devices[0]
        ourdev = management_api.get_single_device()
        assert ourdev

        with orchestrator.run_fake_for_device_id(ourdev.id) as server:
            rsp = management_api.delete_device(
                ourdev.id,
                {
                    "X-MEN-RequestID": "delete_device",
                    "Authorization": "Bearer foobar",
                },
            )
        print("decommission request finished with status:", rsp.status_code)
        assert rsp.status_code == 204

        found = None
        status_code = None
        try:
            found = management_api.get_device(id=ourdev.id)
        except bravado.exception.HTTPError as e:
            status_code = e.response.status_code

        assert status_code == 404
        assert not found
示例#2
0
    def test_get_device_single(self, management_api, devices):
        dev, _ = devices[0]

        # try to find our devices in all devices listing
        ourdev = management_api.find_device_by_identity(dev.identity)

        authdev = management_api.get_device(id=ourdev.id)
        assert authdev == ourdev
示例#3
0
    def _test_delete_authset_preauth_OK(self, management_api, devices,
                                        **kwargs):
        # preauthorize a device
        aid = 'aid-preauth'
        device_id = 'id-preauth'
        iddata = json.dumps({'mac': 'mac-preauth'})
        key = '''-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzogVU7RGDilbsoUt/DdH
VJvcepl0A5+xzGQ50cq1VE/Dyyy8Zp0jzRXCnnu9nu395mAFSZGotZVr+sWEpO3c
yC3VmXdBZmXmQdZqbdD/GuixJOYfqta2ytbIUPRXFN7/I7sgzxnXWBYXYmObYvdP
okP0mQanY+WKxp7Q16pt1RoqoAd0kmV39g13rFl35muSHbSBoAW3GBF3gO+mF5Ty
1ddp/XcgLOsmvNNjY+2HOD5F/RX0fs07mWnbD7x+xz7KEKjF+H7ZpkqCwmwCXaf0
iyYyh1852rti3Afw4mDxuVSD7sd9ggvYMc0QHIpQNkD4YWOhNiE1AB0zH57VbUYG
UwIDAQAB
-----END PUBLIC KEY-----
'''

        req = management_api.make_preauth_req(aid, device_id, iddata, key)
        _, rsp = management_api.preauthorize(req, **kwargs)

        assert rsp.status_code == 201

        # check device created
        dev = management_api.get_device(id=device_id, **kwargs)
        assert dev
        assert len(dev.auth_sets) == 1
        assert dev.auth_sets[0].status == 'preauthorized'
        assert dev.auth_sets[0].id == aid

        # delete auth set, check device deleted
        rsp = management_api.delete_authset(dev.id, aid, **kwargs)
        assert rsp.status_code == 204

        found = None
        try:
            found = management_api.get_device(id=device_id, **kwargs)
        except bravado.exception.HTTPError as e:
            assert e.response.status_code == 404

        assert not found

        # check all other devices intact
        after_devs = management_api.list_devices(**kwargs)
        assert len(after_devs) == len(devices)
示例#4
0
    def _test_delete_authset_OK(self, management_api, devices, **kwargs):
        d, da = devices[0]

        dev = management_api.find_device_by_identity(d.identity, **kwargs)
        assert dev

        print('found matching device with ID:', dev.id)
        aid = dev.auth_sets[0].id

        rsp = management_api.delete_authset(dev.id, aid, **kwargs)
        assert rsp.status_code == 204

        found = management_api.get_device(id=dev.id, **kwargs)
        assert found

        assert len(found.auth_sets) == 0
示例#5
0
    def _do_test_ok_preauth(self, management_api, device_api, tenant_token=""):
        d = Device(IDDATA)
        d.public_key = PUBKEY
        d.private_key = PRIVKEY

        da = DevAuthorizer(tenant_token=tenant_token)

        # get the authset id - need it for the url
        auth = management_api.make_auth(tenant_token)

        dbg = management_api.list_devices()
        print(dbg)

        dev = management_api.find_device_by_identity(d.identity, **auth)
        assert dev

        with devadm_fake_status_update(AID), \
             orchestrator.run_fake_for_device_id(DEVID):
            rsp = device_auth_req(device_api.auth_requests_url, da, d)
            assert rsp.status_code == 200

        dev = management_api.get_device(id=dev.id, **auth)
        assert dev.auth_sets[0].status == 'accepted'
示例#6
0
 def test_get_single_device_none(self, management_api):
     try:
         management_api.get_device(id='some-devid-foo')
     except bravado.exception.HTTPError as e:
         assert e.response.status_code == 404