'Allocate credentials and create the client managers from them.
For every element of credentials param function creates tenant/user,
Then it creates client manager for that credential.
Network related tests must override this function with
set_network_resources() method, otherwise it will create
network resources(network resources are created in a later step).'

@classmethod
def setup_credentials(cls):

    for credentials_type in cls.credentials:
        if isinstance(credentials_type, six.string_types):
            manager = cls.get_client_manager(credential_type=credentials_type)
            setattr(cls, ('os_%s' % credentials_type), manager)
            if (credentials_type == 'primary'):
                cls.os = debtcollector.moves.moved_read_only_property('os', 'os_primary', version='Pike', removal_version='Queens')
                cls.manager = debtcollector.moves.moved_read_only_property('manager', 'os_primary', version='Pike', removal_version='Queens')
            if (credentials_type == 'admin'):
                cls.os_adm = debtcollector.moves.moved_read_only_property('os_adm', 'os_admin', version='Pike', removal_version='Queens')
                cls.admin_manager = debtcollector.moves.moved_read_only_property('admin_manager', 'os_admin', version='Pike', removal_version='Queens')
            if (credentials_type == 'alt'):
                cls.alt_manager = debtcollector.moves.moved_read_only_property('alt_manager', 'os_alt', version='Pike', removal_version='Queens')
        elif isinstance(credentials_type, list):
            manager = cls.get_client_manager(roles=credentials_type[1:], force_new=True)
            setattr(cls, ('os_roles_%s' % credentials_type[0]), manager)
