'Ping between all specified hosts and return all data.
hosts: list of hosts
timeout: time to wait for a response, as string
returns: all ping data; see function body.'

def pingFull(self, hosts=None, timeout=None):

    all_outputs = []
    if (not hosts):
        hosts = self.hosts
        output('***    Ping:    testing    ping    reachability\n')
    for node in hosts:
        output(('%s    ->    ' % node.name))
        for dest in hosts:
            if (node != dest):
                opts = ''
                if timeout:
                    opts = ('-W    %s' % timeout)
                result = node.cmd(('ping    -c1    %s    %s' % (opts, dest.IP())))
                outputs = self._parsePingFull(result)
                (sent, received, rttmin, rttavg, rttmax, rttdev) = outputs
                all_outputs.append((node, dest, outputs))
                output((('%s    ' % dest.name) if received else 'X    '))
        output('\n')
    output('***    Results:    \n')
    for outputs in all_outputs:
        (src, dest, ping_outputs) = outputs
        (sent, received, rttmin, rttavg, rttmax, rttdev) = ping_outputs
        output(('    %s->%s:    %s/%s,    ' % (src, dest, sent, received)))
        output(('rtt    min/avg/max/mdev    %0.3f/%0.3f/%0.3f/%0.3f    ms\n' % (rttmin, rttavg, rttmax, rttdev)))
    return all_outputs
