def claim_asds(alba_backend, nr_of_asds, disk_type=''):
        """
        Claim disks
        :param alba_backend: ALBA Backend
        :param nr_of_asds: Amount of disks to claim
        :param disk_type: Type of disks
        :return: None
        """
        def _wait_for_asd_count_with_status(_alba_backend, _nr_of_asds, status):
            counter = GeneralAlba.ALBA_TIMER / GeneralAlba.ALBA_TIMER_STEP
            asds_with_status = {}
            while counter > 0:
                GeneralAlba.logger.info('counter: {0}'.format(counter))
                _alba_backend.invalidate_dynamics(['local_stack'])
                for node_id in _alba_backend.local_stack:
                    for _disk in _alba_backend.local_stack[node_id].values():
                        for _osd_id, _asd in _disk['asds'].iteritems():
                            if _asd['status'] == status:
                                asds_with_status[_osd_id] = _disk.get('guid')
                GeneralAlba.logger.info('looking for {0} asds with status {1}: {2}'.format(_nr_of_asds, status, asds_with_status))
                if len(asds_with_status) >= _nr_of_asds:
                    break
                counter -= 1
                time.sleep(GeneralAlba.ALBA_TIMER_STEP)
            assert len(asds_with_status) >= _nr_of_asds,\
                "Unable to find {0} asds, only found {1} asds with status: {2}.\n".format(_nr_of_asds, len(asds_with_status), status)
            return asds_with_status

        claimed_asds = []
        alba_backend.invalidate_dynamics(['local_stack'])
        local_stack = alba_backend.local_stack
        for disks in local_stack.values():
            for disk in disks.values():
                for osd_id, asd in disk['asds'].iteritems():
                    if asd['status'] == 'claimed':
                        claimed_asds.append(osd_id)
        nr_asds_to_claim = nr_of_asds - len(claimed_asds)
        if nr_asds_to_claim <= 0:
            return True

        # @TODO: Initialize disks should be parameterized to be parallel or sequential with parallel being the default
        GeneralAlba.initialise_disks(alba_backend, nr_asds_to_claim, disk_type)

        claimable_asds = _wait_for_asd_count_with_status(alba_backend, nr_asds_to_claim, 'available')

        GeneralAlba.logger.info('osds: {0}'.format(claimable_asds))
        AlbaController.add_units(alba_backend.guid, claimable_asds)

        _wait_for_asd_count_with_status(alba_backend, nr_of_asds, 'claimed')