1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
/////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) and others /
// /
// All rights reserved. This program and the accompanying materials /
// are made available under the terms of the Apache License, Version 2.0 /
// which accompanies this distribution, and is available at /
// http://www.apache.org/licenses/LICENSE-2.0 /
/////////////////////////////////////////////////////////////////////////////////////////
import * as R from 'ramda';
export function createGraphQuerySchema(
env,
object_id,
type,
flowType,
timeStart,
timeEnd,
sourceMacAddress,
destinationMacAddress,
sourceIPv4Address,
destinationIPv4Address) {
let schema = {
environment: env,
object_id: object_id,
type: type,
flowType: flowType,
/*
averageArrivalNanoSeconds: {
$gte: timeStart,
//$lt: timeEnd
}
*/
data_arrival_avg: {
$gte: timeStart,
}
};
if (! R.isNil(timeEnd)) {
//schema = R.assocPath(['averageArrivalNanoSeconds', '$lt'], timeEnd, schema);
schema = R.assocPath(['data_arrival_avg', '$lt'], timeEnd, schema);
}
switch (flowType) {
case 'L2':
schema = R.merge(schema, {
sourceMacAddress: sourceMacAddress,
destinationMacAddress: destinationMacAddress
});
break;
case 'L3':
schema = R.merge(schema, {
sourceIPv4Address: sourceIPv4Address,
destinationIPv4Address: destinationIPv4Address
});
break;
default:
break;
}
return schema;
}
|