'Check that providers of virtual specs are compatible.'

def satisfies(self, other):

    common = (set(self.providers) & set(other.providers))
    if (not common):
        return True
    result = {}
    for name in common:
        crossed = self._cross_provider_maps(self.providers[name], other.providers[name])
        if crossed:
            result[name] = crossed
    return all(((c in result) for c in common))
