Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] issue with datatrail-cli scout function #96

Closed
rmck1 opened this issue Jun 19, 2024 · 0 comments · Fixed by #97
Closed

[BUG] issue with datatrail-cli scout function #96

rmck1 opened this issue Jun 19, 2024 · 0 comments · Fixed by #97
Assignees

Comments

@rmck1
Copy link

rmck1 commented Jun 19, 2024

Describe the bug

│ /Users/ryanmckinven/anaconda3/envs/py3.9/lib/python3.9/site-packages/cadcutils/net/ws.py:1040 in │
│ check_status                                                                                     │
│                                                                                                  │
│   1037 │   │   """                                                                               │
│   1038 │   │   _check_server_version(self.server_versions, response.headers.get('server', None)  │
│   1039 │   │   try:                                                                              │
│ ❱ 1040 │   │   │   response.raise_for_status()                                                   │
│   1041 │   │   except requests.HTTPError as e:                                                   │
│   1042 │   │   │   if e.response.status_code == requests.codes.not_found:                        │
│   1043 │   │   │   │   raise exceptions.NotFoundException(orig_exception=e)                      │
│                                                                                                  │
│ /Users/ryanmckinven/anaconda3/envs/py3.9/lib/python3.9/site-packages/requests/models.py:1021 in  │
│ raise_for_status                                                                                 │
│                                                                                                  │
│   1018 │   │   │   )                                                                             │
│   1019 │   │                                                                                     │
│   1020 │   │   if http_error_msg:                                                                │
│ ❱ 1021 │   │   │   raise HTTPError(http_error_msg, response=self)                                │
│   1022 │                                                                                         │
│   1023 │   def close(self):                                                                      │
│   1024 │   │   """Releases the connection back to the pool. Once this method has been            │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
HTTPError: 503 Server Error: Service Unavailable for url: 
https://ws-uv.canfar.net/luskan/sync?LANG=ADQL&QUERY=select+count%28%2A%29+from+inventory.Artifact+where+uri+like+%27cadc%3ACHIMEFRB%2Fdata%2Fchime%2Fbaseband%2Fraw%2F2024%
2F06%2F13%2Fastro_390147281%25%27&FORMAT=csv

During handling of the above exception, another exception occurred:

╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /Users/ryanmckinven/anaconda3/envs/py3.9/bin/datatrail:8 in <module>                             │
│                                                                                                  │
│   5 from dtcli.cli import cli                                                                    │
│   6 if __name__ == '__main__':                                                                   │
│   7 │   sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])                         │
│ ❱ 8 │   sys.exit(cli())                                                                          │
│   9                                                                                              │
│                                                                                                  │
│ /Users/ryanmckinven/anaconda3/envs/py3.9/lib/python3.9/site-packages/click/core.py:1130 in       │
│ __call__                                                                                         │
│                                                                                                  │
│   1127 │                                                                                         │
│   1128 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:                           │
│   1129 │   │   """Alias for :meth:`main`."""                                                     │
│ ❱ 1130 │   │   return self.main(*args, **kwargs)                                                 │
│   1131                                                                                           │
│   1132                                                                                           │
│   1133 class Command(BaseCommand):                                                               │
│                                                                                                  │
│ /Users/ryanmckinven/anaconda3/envs/py3.9/lib/python3.9/site-packages/click/core.py:1055 in main  │
│                                                                                                  │
│   1052 │   │   try:                                                                              │
│   1053 │   │   │   try:                                                                          │
│   1054 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:                  │
│ ❱ 1055 │   │   │   │   │   rv = self.invoke(ctx)                                                 │
│   1056 │   │   │   │   │   if not standalone_mode:                                               │
│   1057 │   │   │   │   │   │   return rv                                                         │
│   1058 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!                               │
│                                                                                                  │
│ /Users/ryanmckinven/anaconda3/envs/py3.9/lib/python3.9/site-packages/click/core.py:1657 in       │
│ invoke                                                                                           │
│                                                                                                  │
│   1654 │   │   │   │   super().invoke(ctx)                                                       │
│   1655 │   │   │   │   sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)                    │
│   1656 │   │   │   │   with sub_ctx:                                                             │
│ ❱ 1657 │   │   │   │   │   return _process_result(sub_ctx.command.invoke(sub_ctx))               │
│   1658 │   │                                                                                     │
│   1659 │   │   # In chain mode we create the contexts step by step, but after the                │
│   1660 │   │   # base command has been invoked.  Because at that point we do not                 │
│                                                                                                  │
│ /Users/ryanmckinven/anaconda3/envs/py3.9/lib/python3.9/site-packages/click/core.py:1404 in       │
│ invoke                                                                                           │
│                                                                                                  │
│   1401 │   │   │   echo(style(message, fg="red"), err=True)                                      │
│   1402 │   │                                                                                     │
│   1403 │   │   if self.callback is not None:                                                     │
│ ❱ 1404 │   │   │   return ctx.invoke(self.callback, **ctx.params)                                │
│   1405 │                                                                                         │
│   1406 │   def shell_complete(self, ctx: Context, incomplete: str) -> t.List["CompletionItem"]:  │
│   1407 │   │   """Return a list of completions for the incomplete value. Looks                   │
│                                                                                                  │
│ /Users/ryanmckinven/anaconda3/envs/py3.9/lib/python3.9/site-packages/click/core.py:760 in invoke │
│                                                                                                  │
│    757 │   │                                                                                     │
│    758 │   │   with augment_usage_errors(__self):                                                │
│    759 │   │   │   with ctx:                                                                     │
│ ❱  760 │   │   │   │   return __callback(*args, **kwargs)                                        │
│    761 │                                                                                         │
│    762 │   def forward(                                                                          │
│    763 │   │   __self, __cmd: "Command", *args: t.Any, **kwargs: t.Any  # noqa: B902             │
│                                                                                                  │
│ /Users/ryanmckinven/anaconda3/envs/py3.9/lib/python3.9/site-packages/click/decorators.py:26 in   │
│ new_func                                                                                         │
│                                                                                                  │
│    23 │   """                                                                                    │
│    24 │                                                                                          │
│    25 │   def new_func(*args, **kwargs):  # type: ignore                                         │
│ ❱  26 │   │   return f(get_current_context(), *args, **kwargs)                                   │
│    27 │                                                                                          │
│    28 │   return update_wrapper(t.cast(F, new_func), f)                                          │
│    29                                                                                            │
│                                                                                                  │
│ /Users/ryanmckinven/anaconda3/envs/py3.9/lib/python3.9/site-packages/dtcli/scout.py:110 in scout │
│                                                                                                  │
│   107 │   │   basepath = data.get(scope).get("basepath")                                         │
│   108 │   │   query = f"select count(*) from inventory.Artifact where uri like 'cadc:CHIMEFRB/   │
│   109 │   │   try:                                                                               │
│ ❱ 110 │   │   │   count, _ = cadcclient.query(query)                                             │
│   111 │   │   │   count = int(count[0])                                                          │
│   112 │   │   except BadRequestException as error:                                               │
│   113 │   │   │   error_console.print("Query failed.")                                           │
│                                                                                                  │
│ /Users/ryanmckinven/anaconda3/envs/py3.9/lib/python3.9/site-packages/dtcli/utilities/cadcclient. │
│ py:354 in query                                                                                  │
│                                                                                                  │
│   351 │   buffer = StringIO()                                                                    │
│   352 │   sys.stdout = buffer                                                                    │
│   353 │   _, _, queryClient = _connect()                                                         │
│ ❱ 354 │   queryClient.query(  # type: ignore                                                     │
│   355 │   │   query=query,                                                                       │
│   356 │   │   output_file=None,                                                                  │
│   357 │   │   response_format="csv",                                                             │
│                                                                                                  │
│ /Users/ryanmckinven/anaconda3/envs/py3.9/lib/python3.9/site-packages/cadctap/core.py:407 in      │
│ query                                                                                            │
│                                                                                                  │
│    404 │   │   │   resource = self._tap_client._get_url((QUERY_CAPABILITY_ID, 'sync'))           │
│    405 │   │                                                                                     │
│    406 │   │   rows = 0                                                                          │
│ ❱  407 │   │   with self._tap_client.post(resource, params=fields,                               │
│    408 │   │   │   │   │   │   │   │      data=m, headers={                                      │
│    409 │   │   │   │   │   │   │   │   │      'Content-Type': m.content_type},                   │
│    410 │   │   │   │   │   │   │   │      stream=True, timeout=timeout*60) as result:            │
│                                                                                                  │
│ /Users/ryanmckinven/anaconda3/envs/py3.9/lib/python3.9/site-packages/cadcutils/net/ws.py:334 in  │
│ post                                                                                             │
│                                                                                                  │
│    331 │   │   """                                                                               │
│    332 │   │   session = self._get_session()                                                     │
│    333 │   │   session.server_versions = self._server_versions                                   │
│ ❱  334 │   │   return session.post(self._get_url(resource), verify=self.verify, **kwargs)        │
│    335 │                                                                                         │
│    336 │   def put(self, resource=None, **kwargs):                                               │
│    337 │   │   """Wrapper for PUT so that we use this client's session                           │
│                                                                                                  │
│ /Users/ryanmckinven/anaconda3/envs/py3.9/lib/python3.9/site-packages/requests/sessions.py:635 in │
│ post                                                                                             │
│                                                                                                  │
│   632 │   │   :rtype: requests.Response                                                          │
│   633 │   │   """                                                                                │
│   634 │   │                                                                                      │
│ ❱ 635 │   │   return self.request("POST", url, data=data, json=json, **kwargs)                   │
│   636 │                                                                                          │
│   637 │   def put(self, url, data=None, **kwargs):                                               │
│   638 │   │   r"""Sends a PUT request. Returns :class:`Response` object.                         │
│                                                                                                  │
│ /Users/ryanmckinven/anaconda3/envs/py3.9/lib/python3.9/site-packages/requests/sessions.py:587 in │
│ request                                                                                          │
│                                                                                                  │
│   584 │   │   │   "allow_redirects": allow_redirects,                                            │
│   585 │   │   }                                                                                  │
│   586 │   │   send_kwargs.update(settings)                                                       │
│ ❱ 587 │   │   resp = self.send(prep, **send_kwargs)                                              │
│   588 │   │                                                                                      │
│   589 │   │   return resp                                                                        │
│   590                                                                                            │
│                                                                                                  │
│ /Users/ryanmckinven/anaconda3/envs/py3.9/lib/python3.9/site-packages/cadcutils/net/ws.py:1027 in │
│ send                                                                                             │
│                                                                                                  │
│   1024 │   │   │   raise exceptions.HttpException(current_error)                                 │
│   1025 │   │   else:                                                                             │
│   1026 │   │   │   response = super(RetrySession, self).send(request, **kwargs)                  │
│ ❱ 1027 │   │   │   self.check_status(response, retry=False)                                      │
│   1028 │   │   │   return response                                                               │
│   1029 │                                                                                         │
│   1030 │   def check_status(self, response, retry=True):                                         │
│                                                                                                  │
│ /Users/ryanmckinven/anaconda3/envs/py3.9/lib/python3.9/site-packages/cadcutils/net/ws.py:1063 in │
│ check_status                                                                                     │
│                                                                                                  │
│   1060 │   │   │   elif retry and e.response.status_code in self.retry_errors:                   │
│   1061 │   │   │   │   raise e                                                                   │
│   1062 │   │   │   else:                                                                         │
│ ❱ 1063 │   │   │   │   raise exceptions.UnexpectedException(orig_exception=e)                    │
│   1064                                                                                           │
│   1065                                                                                           │
│   1066 DEFAULT_REGISTRY = \                                                                      │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
UnexpectedException: <html><body><h1>503 Service Unavailable</h1>
No server is available to handle this request.
</body></html>```

**To Reproduce**
Provide the steps to reproduce the bug.

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**

- OS: [e.g. MacOS]
- Datatrail Version [e.g. 2.1.1, `datatrail version` output]

**Additional context**
Add any other context about the problem here.
@tjzegmott tjzegmott linked a pull request Jun 20, 2024 that will close this issue
8 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants