def run(self): logging.info("thread threadGetSkydiveFlows starttime %d", int(time.time() * 1000.0)) err = "" restclient = RESTClient(SKYDIVE_IP + ":" + SKYDIVE_PORT) gremlinFlow = "G.Flows().Has('Application', 'TCP')" flows = restclient.lookup(gremlinFlow) dfOldFlows = json_normalize(flows) frames = [] time_out = time.time() + TIME_OUT while (self.collectFlows) & (time.time() < time_out): flows = restclient.lookup(gremlinFlow) df = json_normalize(flows) if (not df.empty) & (not dfOldFlows.empty): cond = df['UUID'].isin(dfOldFlows['UUID']) == True df.drop(df[cond].index, inplace=True) if not df.empty: frames.append(df) sleep(1) if time.time() >= time_out: err = "Error: skydive time out" logging.info(err) df = pd.DataFrame() if len(frames) > 0: df = pd.concat(frames, sort=False) df = df.drop_duplicates() df = df.sort_values("Metric.Last", ascending=True) df = df.drop_duplicates(subset="UUID", keep='last') self._return = (df, err)
def test_injections(self): restclient = RESTClient("localhost:8082", scheme=self.schemeHTTP, username=self.username, password=self.password, insecure=True) nodes = restclient.lookup("G.V().Has('Name', 'eth0')") testnode = nodes[0]["Metadata"]["TID"] query = "G.V().Has('TID', '" + testnode + "')" num_injections_before = len(restclient.injection_list()) injection_response = restclient.injection_create(query, query, count=1000) num_injections_after = len(restclient.injection_list()) self.assertEqual(num_injections_after, num_injections_before + 1, "injection creation didn't succeed") restclient.injection_delete(injection_response.uuid) num_injections_after_deletion = len(restclient.injection_list()) self.assertEqual(num_injections_after_deletion, num_injections_before, "injection deletion didn't succeed")