Enhancement to CLI/sdncon framework to connect to a remote SDN controller platform
diff --git a/cli/cli.py b/cli/cli.py
index e6987af..a2dd0d8 100755
--- a/cli/cli.py
+++ b/cli/cli.py
@@ -297,6 +297,9 @@
# talk to eth0 addr instead of 127.0.0.1
controller_for_prompt = "127.0.0.1:8000"
cluster = "default"
+
+ known_sdn_platforms = ["127.0.0.1:8080"]
+ sdn_controller_paltform = None
run = True
@@ -780,7 +783,7 @@
parser = OptionParser()
parser.add_option("-c", "--controller", dest="controller",
help="set default controller to CONTROLLER",
- metavar="CONTROLLER", default=self.controller)
+ metavar="CONTROLLER", default=self.sdn_controller_paltform)
parser.add_option("-S", "--syntax", dest='dump_syntax',
help="display syntax of loaded commands",
action='store_true', default=False)
@@ -799,9 +802,11 @@
help='suppress warning messages',
action='store_true', default=False)
(self.options, self.args) = parser.parse_args()
- self.controller = self.options.controller
- if not self.controller:
+ if self.controller is None:
self.controller = "127.0.0.1:8000"
+ self.sdn_controller_paltform = self.options.controller
+ if not self.sdn_controller_paltform:
+ self.sdn_controller_paltform = "127.0.0.1:8080"
self.dump_syntax = self.options.dump_syntax
if not self.dump_syntax:
self.dump_syntax = False
@@ -826,6 +831,7 @@
self.store = StoreClient()
self.store.set_controller(self.controller)
+ self.store.set_sdn_controller_platform_rest_if(self.sdn_controller_paltform)
mi = Modi(self, CliModelInfo())
self.mi = mi
diff --git a/cli/storeclient.py b/cli/storeclient.py
index e7fb50c..fb56372 100755
--- a/cli/storeclient.py
+++ b/cli/storeclient.py
@@ -80,6 +80,7 @@
table_read_url = "http://%s/rest/v1/model/%s/"
entry_post_url = "http://%s/rest/v1/model/%s/"
user_data_url = "http://%s/rest/v1/data/"
+ sdn_platform_data_url = "http://%s/rest/v1/system/"
def set_controller(self,controller):
self.controller = controller
@@ -89,6 +90,11 @@
def display_reply_mode(self, mode):
self.display_rest_reply = mode
+
+ def set_sdn_controller_platform_rest_if(self, sdn_controller_rest_if):
+ url = self.sdn_platform_data_url % (self.controller)
+ url = url + "restifaddr/"
+ data = self.rest_post_request(url, sdn_controller_rest_if)
def rest_simple_request(self,url, use_cache = None, timeout = None):
# include a trivial retry mechanism ... other specific