Skip to content

Instantly share code, notes, and snippets.

@sjlongland
Created December 22, 2016 00:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sjlongland/b9f6e49b5e803f8b7962e4fc2d62f597 to your computer and use it in GitHub Desktop.
Save sjlongland/b9f6e49b5e803f8b7962e4fc2d62f597 to your computer and use it in GitHub Desktop.
pyhaystack 0.91.0 on Debian, works with nHaystack
In [1]: from pyhaystack.client.niagara import NiagaraHaystackSession
In [2]: import logging; logging.basicConfig(level=logging.DEBUG)
In [3]: ax = NiagaraHaystackSession(uri='http://…', username='…', password='…', http_args=dict(debug=True))
In [4]: op = ax.about()
DEBUG:pyhaystack.client.NiagaraHaystackSession.http_client:Merging None with None, exclude None -> {}
DEBUG:pyhaystack.client.NiagaraHaystackSession.http_client:Merging {} with None, exclude True -> {}
DEBUG:pyhaystack.client.NiagaraHaystackSession.http_client:Merging {} with None, exclude True -> {}
DEBUG:pyhaystack.client.NiagaraHaystackSession.http_client:Merging None with None, exclude None -> {}
DEBUG:pyhaystack.client.NiagaraHaystackSession.http_client:Performing operation GET of http://…/login, headers: {}, cookies: {}, body: None
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): …
DEBUG:requests.packages.urllib3.connectionpool:"GET /login HTTP/1.1" 200 None
DEBUG:pyhaystack.client.NiagaraHaystackSession.http_client:Merging {'absPathBase': '/', 'cookiePostfix': 'sb073a319cfe1cff832acb5d4b80a8d5b874714a23d2d0605e4', 'accept': 'text/zinc; charset=utf-8', 'token': '', 'Referer': 'http://…login/', 'scheme': 'cookieDigest', 'content-type': 'application/x-niagara-login-support'} with None, exclude None -> {'token': '', 'Referer': 'http://…login/', 'absPathBase': '/', 'content-type': 'application/x-niagara-login-support', 'scheme': 'cookieDigest', 'cookiePostfix': 'sb073a319cfe1cff832acb5d4b80a8d5b874714a23d2d0605e4', 'accept': 'text/zinc; charset=utf-8'}
DEBUG:pyhaystack.client.NiagaraHaystackSession.http_client:Merging {} with None, exclude None -> {}
DEBUG:pyhaystack.client.NiagaraHaystackSession.http_client:Merging {'niagara_session': 'sb073a319cfe1cff832acb5d4b80a8d5b874714a23d2d0605e4'} with None, exclude True -> {'niagara_session': 'sb073a319cfe1cff832acb5d4b80a8d5b874714a23d2d0605e4'}
DEBUG:pyhaystack.client.NiagaraHaystackSession.http_client:Merging None with None, exclude True -> {}
DEBUG:pyhaystack.client.NiagaraHaystackSession.http_client:Performing operation POST of http://…/login?token=&Referer=http%3A%2F%2F…login%2F&absPathBase=%2F&content-type=application%2Fx-niagara-login-support&scheme=cookieDigest&cookiePostfix=sb073a319cfe1cff832acb5d4b80a8d5b874714a23d2d0605e4&accept=text%2Fzinc%3B+charset%3Dutf-8, headers: {}, cookies: {'niagara_session': 'sb073a319cfe1cff832acb5d4b80a8d5b874714a23d2d0605e4'}, body: None
DEBUG:requests.packages.urllib3.connectionpool:"POST /login?token=&Referer=http%3A%2F%2F…login%2F&absPathBase=%2F&content-type=application%2Fx-niagara-login-support&scheme=cookieDigest&cookiePostfix=sb073a319cfe1cff832acb5d4b80a8d5b874714a23d2d0605e4&accept=text%2Fzinc%3B+charset%3Dutf-8 HTTP/1.1" 404 809
DEBUG:pyhaystack.client.NiagaraHaystackSession.http_client:Exception in request POST of http://…/login?token=&Referer=http%3A%2F%2F…login%2F&absPathBase=%2F&content-type=application%2Fx-niagara-login-support&scheme=cookieDigest&cookiePostfix=sb073a319cfe1cff832acb5d4b80a8d5b874714a23d2d0605e4&accept=text%2Fzinc%3B+charset%3Dutf-8 with body None, headers {}, cookies {'niagara_session': 'sb073a319cfe1cff832acb5d4b80a8d5b874714a23d2d0605e4'}, auth <requests.auth.HTTPBasicAuth object at 0xb5171b8c>
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pyhaystack/client/http/sync.py", line 47, in _request
response.raise_for_status()
File "/usr/local/lib/python2.7/dist-packages/requests/models.py", line 844, in raise_for_status
raise HTTPError(http_error_msg, response=self)
HTTPError: 404 Client Error: Not Found for url: http://…/login?token=&Referer=http%3A%2F%2F…login%2F&absPathBase=%2F&content-type=application%2Fx-niagara-login-support&scheme=cookieDigest&cookiePostfix=sb073a319cfe1cff832acb5d4b80a8d5b874714a23d2d0605e4&accept=text%2Fzinc%3B+charset%3Dutf-8
DEBUG:pyhaystack.client.NiagaraHaystackSession.get_grid.about:Authenticated, trying again
DEBUG:pyhaystack.client.NiagaraHaystackSession.http_client:Merging None with None, exclude None -> {}
DEBUG:pyhaystack.client.NiagaraHaystackSession.http_client:Merging {'Accept': 'text/zinc'} with None, exclude None -> {'Accept': 'text/zinc'}
DEBUG:pyhaystack.client.NiagaraHaystackSession.http_client:Merging None with {'niagara_session': 'sb073a319cfe1cff832acb5d4b80a8d5b874714a23d2d0605e4'}, exclude None -> {'niagara_session': 'sb073a319cfe1cff832acb5d4b80a8d5b874714a23d2d0605e4'}
DEBUG:pyhaystack.client.NiagaraHaystackSession.http_client:Merging None with None, exclude None -> {}
DEBUG:pyhaystack.client.NiagaraHaystackSession.http_client:Performing operation GET of http://…/haystack/about, headers: {'Accept': 'text/zinc'}, cookies: {'niagara_session': 'sb073a319cfe1cff832acb5d4b80a8d5b874714a23d2d0605e4'}, body: None
DEBUG:requests.packages.urllib3.connectionpool:"GET /haystack/about HTTP/1.1" 200 None
DEBUG:iso8601.iso8601:Parsed 2016-12-22T10:42:59.173+10:00 into {'tz_sign': u'+', 'second_fraction': u'173', 'hour': u'10', 'daydash': u'22', 'tz_hour': u'10', 'month': None, 'timezone': u'+10:00', 'second': u'59', 'tz_minute': u'00', 'year': u'2016', 'separator': u'T', 'monthdash': u'12', 'day': None, 'minute': u'42'} with default timezone <iso8601.iso8601.Utc object at 0xb518e08c>
DEBUG:iso8601.iso8601:Got u'10' for 'tz_hour' with default None
DEBUG:iso8601.iso8601:Got u'00' for 'tz_minute' with default None
DEBUG:iso8601.iso8601:Got u'2016' for 'year' with default None
DEBUG:iso8601.iso8601:Got u'12' for 'monthdash' with default 1
DEBUG:iso8601.iso8601:Got 12 for 'month' with default 12
DEBUG:iso8601.iso8601:Got u'22' for 'daydash' with default 1
DEBUG:iso8601.iso8601:Got 22 for 'day' with default 22
DEBUG:iso8601.iso8601:Got u'10' for 'hour' with default None
DEBUG:iso8601.iso8601:Got u'42' for 'minute' with default None
DEBUG:iso8601.iso8601:Got u'59' for 'second' with default None
DEBUG:iso8601.iso8601:Parsed 2016-12-22T00:17:32.933+10:00 into {'tz_sign': u'+', 'second_fraction': u'933', 'hour': u'00', 'daydash': u'22', 'tz_hour': u'10', 'month': None, 'timezone': u'+10:00', 'second': u'32', 'tz_minute': u'00', 'year': u'2016', 'separator': u'T', 'monthdash': u'12', 'day': None, 'minute': u'17'} with default timezone <iso8601.iso8601.Utc object at 0xb518e08c>
DEBUG:iso8601.iso8601:Got u'10' for 'tz_hour' with default None
DEBUG:iso8601.iso8601:Got u'00' for 'tz_minute' with default None
DEBUG:iso8601.iso8601:Got u'2016' for 'year' with default None
DEBUG:iso8601.iso8601:Got u'12' for 'monthdash' with default 1
DEBUG:iso8601.iso8601:Got 12 for 'month' with default 12
DEBUG:iso8601.iso8601:Got u'22' for 'daydash' with default 1
DEBUG:iso8601.iso8601:Got 22 for 'day' with default 22
DEBUG:iso8601.iso8601:Got u'00' for 'hour' with default None
DEBUG:iso8601.iso8601:Got u'17' for 'minute' with default None
DEBUG:iso8601.iso8601:Got u'32' for 'second' with default None
In [5]: op.result
Out[5]:
<Grid>
Columns:
haystackVersion
productUri
serverTime
productName
moduleVersion
moduleName
productVersion
tz
serverName
serverBootTime
moduleUri
Row 0: haystackVersion=u'2.0', productUri=Uri(u'http://www.tridium.com/'), serverTime=datetime.datetime(2016, 12, 22, 10, 42, 59, 173000, tzinfo=<DstTzInfo 'Australia/Brisbane' AEST+10:00:00 STD>), productName=u'Niagara AX', moduleVersion=u'1.2.5', moduleName=u'nhaystack', productVersion=u'3.8.111', tz=u'Brisbane', serverName=u'demo', serverBootTime=datetime.datetime(2016, 12, 22, 0, 17, 32, 933000, tzinfo=<DstTzInfo 'Australia/Brisbane' AEST+10:00:00 STD>), moduleUri=Uri(u'https://bitbucket.org/jasondbriggs/nhaystack')
</Grid>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment