def _parse_probe(self, parts, last_probe=None):
        """Internal helper, parses the next probe's results from a line."""
        try:
            probe = Probe() if last_probe is None else last_probe.clone()

            tok1 = parts.pop(0)
            if tok1 == '*':
                return probe

            tok2 = parts.pop(0)
            if tok2 == 'ms':
                probe.rtt = float(tok1)
                if len(parts) > 0 and parts[0].startswith('!'):
                    probe.anno = parts.pop(0)
            else:
                probe.name = tok1
                probe.ipaddr = tok2[1:][:-1]
                probe.rtt = float(parts.pop(0))
                parts.pop(0) # Drop "ms"
                if len(parts) > 0 and parts[0].startswith('!'):
                    probe.anno = parts.pop(0)

            #Add group information for probe
            probe.group = getip.get_ip6('confine')

            return probe

        except (IndexError, ValueError):
            return None
    def get_probe_json(self):
        probe_result = []

        #add itself as the first hop and continue
        myself = Probe()
        myself.ipaddr = getip.get_ip6('confine')
        myself.group = myself.ipaddr
        myself.name = getname.get_name_from_API()
        probe_result.append(myself.json())

        for hop in self.hops:
            for probe in hop.probes:
                if probe.ipaddr:
                    #print probe.ipaddr
                    probe_result.append(probe.json())
        return probe_result
def get_inter_node_trace():

    probe=[]

    nodelist = constants.nodes

    #First element in the List is always Self!!!
    ipaddr = getip.get_ip6('confine')
    group = ipaddr
    name = getname.get_name_from_API()
    probe.append({'IP Address':ipaddr,'Name':name.encode('utf8'), 'Status':True,'Loss':None,'Min':None,'Avg':None,'Max':None})

    for nodes in nodelist:
        ping_info = ping.ping6(nodes['IP Address'])
        node_info = {'IP Address':nodes['IP Address'],'Name':nodes['Name'].encode('utf8')}
        node_info.update(ping_info)
        probe.append(node_info)

    return probe
from common import view, getip

view.main(host=getip.get_ip6("confine"), port=8000)