diff --git a/lib/ansible/module_utils/openswitch.py b/lib/ansible/module_utils/openswitch.py index ba3eb7b44ab..a2fa7ee827e 100644 --- a/lib/ansible/module_utils/openswitch.py +++ b/lib/ansible/module_utils/openswitch.py @@ -35,7 +35,7 @@ NET_COMMON_ARGS = dict( port=dict(type='int'), username=dict(), password=dict(no_log=True), - use_ssl=dict(default=True, type='int'), + use_ssl=dict(default=True, type='bool'), transport=dict(default='ssh', choices=['ssh', 'cli', 'rest']), provider=dict() ) @@ -48,35 +48,38 @@ def to_list(val): else: return list() -def get_idl(): +def get_runconfig(): manager = OvsdbConnectionManager(settings.get('ovs_remote'), settings.get('ovs_schema')) manager.start() - idl = manager.idl - init_seq_no = 0 - while (init_seq_no == idl.change_seqno): - idl.run() - time.sleep(1) + timeout = 10 + interval = 0 + init_seq_no = manager.idl.change_seqno - return idl + while (init_seq_no == manager.idl.change_seqno): + if interval > timeout: + raise TypeError('timeout') + manager.idl.run() + interval += 1 + time.sleep(1) -def get_schema(): - return restparser.parseSchema(settings.get('ext_schema')) - -def get_runconfig(): - idl = get_idl() - schema = get_schema() - return runconfig.RunConfigUtil(idl, schema) + schema = restparser.parseSchema(settings.get('ext_schema')) + return runconfig.RunConfigUtil(manager.idl, schema) class Response(object): def __init__(self, resp, hdrs): - self.body = resp.read() + self.body = None self.headers = hdrs + if resp: + self.body = resp.read() + @property def json(self): + if not self.body: + return None try: return json.loads(self.body) except ValueError: @@ -95,11 +98,11 @@ class Rest(object): if self.module.params['use_ssl']: proto = 'https' if not port: - port = 443 + port = 18091 else: proto = 'http' if not port: - port = 80 + port = 8091 self.baseurl = '%s://%s:%s/rest/v1' % (proto, host, port)