auto-completion in no-policy, no-tunnel and policy config (tunnelId)
diff --git a/cli/cli/desc/version200/policy.py b/cli/cli/desc/version200/policy.py
index 685a86c..57c29ae 100644
--- a/cli/cli/desc/version200/policy.py
+++ b/cli/cli/desc/version200/policy.py
@@ -21,6 +21,7 @@
'parent-field' : None,
'doc' : 'policy|policy',
'doc-example' : 'policy|policy-example',
+ #'completion' : 'policy-id-completion',
'args' : {
'action' : (
{
@@ -238,7 +239,6 @@
),
},
}
-
POLICY_TUNNEL_ID_COMMAND_DESCRIPTION = {
'name' : 'tunnel',
'mode' : 'config-policy',
@@ -254,6 +254,7 @@
'proc' : 'create-policy',
},
),
+ 'completion' : 'tunnel-id-completion',
'field' : 'tunnel-id',
'type' : 'identifier',
'syntax-help' : 'Enter tunnel id',
@@ -282,7 +283,7 @@
}
}
-SWITCH_TUNNEL_COMMAND_DESCRIPTION = {
+SHOW_POLICY_COMMAND_DESCRIPTION = {
'name' : 'show',
'mode' : 'login',
'command-type' : 'display-table',
@@ -304,4 +305,34 @@
'format' : 'show_policy',
},
)
-}
\ No newline at end of file
+}
+
+
+def tunnel_id_completion(prefix, completions):
+ query_url = "http://127.0.0.1:8000/rest/v1/showtunnel"
+ result = command.sdnsh.store.rest_simple_request(query_url)
+ entries = json.loads(result)
+ for entry in entries:
+ if entry['tunnelId'].startswith(prefix):
+ completions[entry['tunnelId']+' '] = entry['tunnelId']
+ return
+
+command.add_completion('tunnel-id-completion', tunnel_id_completion,
+ {'kwargs': { 'prefix' : '$text',
+ 'completions' : '$completions',
+ }})
+
+
+def policy_id_completion(prefix, completions):
+ query_url = "http://127.0.0.1:8000/rest/v1/showpolicy"
+ result = command.sdnsh.store.rest_simple_request(query_url)
+ entries = json.loads(result)
+ for entry in entries:
+ if entry['policyId'].startswith(prefix):
+ completions[entry['policyId']+' '] = entry['policyId']
+ return
+
+command.add_completion('policy-id-completion', policy_id_completion,
+ {'kwargs': { 'prefix' : '$text',
+ 'completions' : '$completions',
+ }})
\ No newline at end of file
diff --git a/cli/cli/desc/version200/tunnel.py b/cli/cli/desc/version200/tunnel.py
index 67a37ab..d79b012 100644
--- a/cli/cli/desc/version200/tunnel.py
+++ b/cli/cli/desc/version200/tunnel.py
@@ -17,10 +17,11 @@
{
'field' : 'tunnel-id',
'type' : 'identifier',
- 'completion' : 'complete-object-field',
+ #'completion' : 'complete-object-field',
'syntax-help' : 'Enter a tunnel name',
'doc' : 'tunnel|tunnel',
'doc-include' : [ 'type-doc' ],
+ 'completion' : 'tunnel-id-completion',
'action' : (
{
'proc' : 'create-tunnel',
@@ -177,4 +178,19 @@
),
}
)
-}
\ No newline at end of file
+}
+
+
+def tunnel_id_completion(prefix, completions):
+ query_url = "http://127.0.0.1:8000/rest/v1/showtunnel"
+ result = command.sdnsh.store.rest_simple_request(query_url)
+ entries = json.loads(result)
+ for entry in entries:
+ if entry['tunnelId'].startswith(prefix):
+ completions[entry['tunnelId']+' '] = entry['tunnelId']
+ return
+
+command.add_completion('tunnel-id-completion', tunnel_id_completion,
+ {'kwargs': { 'prefix' : '$text',
+ 'completions' : '$completions',
+ }})
\ No newline at end of file