def connect(self, ixLoadVersion=None, sessionId=None, timeout=90): """ For new session, provide the ixLoadVersion. If connecting to an existing session, provide the sessionId """ self.ixLoadVersion = ixLoadVersion # http://10.219.x.x:8080/api/v0/sessions if sessionId is None: response = self.post(self.httpHeader+'/api/{}/sessions'.format(self.apiVersion), data=({'ixLoadVersion': ixLoadVersion})) response = requests.get(self.httpHeader+'/api/{}/sessions'.format(self.apiVersion), verify=self.verifySsl) try: sessionId = response.json()[-1]['sessionId'] except: raise IxLoadRestApiException('connect failed. No sessionId created') self.sessionId = str(sessionId) self.sessionIdUrl = '{}/api/{}/sessions/{}'.format(self.httpHeader, self.apiVersion, self.sessionId) # Start operations if ixLoadVersion is not None: response = self.post(self.sessionIdUrl+'/operations/start') self.logInfo('\n\n', timestamp=False) counter = 0 while True: response = self.get(self.sessionIdUrl) currentStatus = response.json()['isActive'] self.logInfo('\tCurrentStatus: {0}'.format(currentStatus), timestamp=False) if counter <= timeout and currentStatus != True: self.logInfo('\tWait {0}/{1} seconds'.format(counter, timeout), timestamp=False) time.sleep(self.pollStatusInterval) counter += self.pollStatusInterval continue if counter <= timeout and currentStatus == True: break if counter >= timeout and currentStatus != True: raise IxLoadRestApiException('New session ID failed to become active')