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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
{
"simple": {
"abstract" : "Easy queries to display a node with properties",
"notation": [
{
"notation": "complex*('key','value')",
"description": "Display Complex with key=value"
},
{
"notation": "complex*('key1','val1')('key2','val2')",
"description": "Display Complex with key1=val1 AND key2=val2"
},
{
"notation": "complex*('key1','val1')!('key2','val2')",
"description": "Negation - Display Complex with key1=val1 AND key2!=val2"
},
{
"notation": "complex*!('key1','val1')!('key2','val2')",
"description": "Negation - Display Complex with key1!=val1 AND key2!=val2"
}
]
},
"traversal":{
"abstract" : "Build a Query to traverse from one node to the next",
"notation": [
{
"notation": "complex*('country','val') > cloud-region*",
"description": "Traverse from Complex to Cloud-region and Display Complexes and Cloud-Regions"
},
{
"notation": "complex*('country','val') > cloud-region*('key1','val1')('key2''val2')",
"description": "Traverse from Complex to Cloud-region with filters and display Complexes and Cloud-Regions"
},
{
"notation": "generic-vnf*('nf-type','abc') > vserver > tenant > cloud-region*('key','val') ",
"description": "Chain of traversals "
}
]
},
"union": {
"abstract" : "Build a Query to have a union of nodes",
"notation": [
{
"notation": " complex* (‘key’,’value’) > [cloud-region*, availability-zone*]",
"description": "Display union of nodes"
},
{
"notation": "generic-vnf('key','val')> [pserver*, vserver > pserver*]",
"description": "Traversal within a Union - Display pserver and vserver for a node"
}
]
},
"limit": {
"abstract": "Build a Query to limit the display of nodes",
"notation": [
{
"notation": " complex*('country','USA') LIMIT 1",
"description": "Display the complex in USA limiting the result to 1 "
},
{
"notation": "generic-vnf('key','val')> [pserver*, vserver > pserver*] LIMIT 5",
"description": "Display the first 5 pservers in a generic-vnf"
}
]
},
"topology": {
"abstract" : "Commonly used topology Queries",
"notation": [
{
"notation": " generic-vnf('key','val')> [vnfc*, vserver*, pnf*, pserver*, vserver > pserver*]",
"description": "Display the fn-topology "
},
{
"notation": "pnf > [complex* , p-interface* > physical-links* > p-interface >[ pserver* , pnf*]",
"description": "Display the pnf topology"
}
]
},
"negation": {
"abstract": "Build a NOT Query ",
"notation": [
{
"notation": " complex*!('country','USA') LIMIT 1",
"description": "Display the complex NOT in USA "
},
{
"notation": "complex > [cloud-region*, availability-zone*!('hypervisor-type','VMWare')]",
"description": "Display availability-zone which does NOT have hypervisor=VMWare"
}
]
},
"advanced": {
"abstract": "Build an Advanced Query ",
"notation": [
{
"notation": "complex*('key',EQ('value'))",
"description": "EQ = equals"
},
{
"notation": "complex*('key',NEQ('value'))",
"description": "NEQ = not equals"
},
{
"notation": "complex*('key',GT('value'))",
"description": "GT = greater than"
},
{
"notation": "complex*('key',LT('value'))",
"description": "LT = less than"
},
{
"notation": "complex*('key',GTE('value'))",
"description": "GTE = greater than or equal"
},
{
"notation": "complex*('key',LTE('value'))",
"description": "LTE = less than or equal"
},
{
"notation": "complex*('key',REGEX('^.*value'))",
"description": "REGEX = Matching a given POSIX regular expressions pattern"
},
{
"notation": "complex*('key',NOT_REGEX('^.*value'))",
"description": "NOT_REGEX = Not matching a given POSIX regular expression pattern"
},
{
"notation": "complex*('key', CONTAINS('value'))",
"description": "CONTAINS = containing the string"
},
{
"notation": "complex*('key',NOT_CONTAINS('value'))",
"description": "NOT_CONTAINS = not containing the string"
},
{
"notation": "complex*('key',STARTS_WITH('value'))",
"description": "STARTS_WITH = Starting with the string"
},
{
"notation": "complex*('key',NOT_STARTS_WITH('value'))",
"description": "NOT_STARTS_WITH = Not starting with the string"
},
{
"notation": "complex*('key',ENDS_WITH('value'))",
"description": "ENDS_WITH = Ending with the string"
},
{
"notation": "complex*('key',NOT_ENDS_WITH('value'))",
"description": "NOT_ENDS_WITH = Not ending with the string"
}
]
}
}
|