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

Fix for issue#687 #691

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

Ravisaketi
Copy link
Contributor

Proposed changes

Call to the QL's version endpoint #687

Types of changes

What types of changes does your code introduce to the project?
Put an x in the boxes that apply

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Maintenance (update of libraries or other dependences)

Checklist

Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

  • I have read the CONTRIBUTING doc
  • I have signed the CLA
  • I have added tests that prove my fix is effective or that my feature works
  • I have run all the existing tests locally (not just those related to my feature) and there are no errors
  • After the last push to the PR branch, I have run the lint script locally and there are no changes to the code base
  • I have updated the RELEASE NOTES
  • I have added necessary documentation (if appropriate)
  • Any dependent changes have been merged and published in downstream modules

Further comments

If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

@github-actions
Copy link
Contributor

CLA Assistant Lite bot All contributors have signed the CLA ✍️

Copy link
Member

@c0c0n3 c0c0n3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Necravisaketi I've sketched out an improved flow. If you agree, after implementing it, please run the benchmark to make sure everything is hunky-dory---those tests aren't part of our automated test suite, so you'll have to run them manually.

Comment on lines +52 to +54
version_url = f"{QL_BASE_URL}/version"
r = requests.get(version_url)
r.raise_for_status()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a good start, but there's still room for improvement :-)

The problem with this approach is that if QL starts after the requests.get call, the benchmark will exit. Ideally we should wait until we know QL is up or bail out after a max amount of secs. There's a function in reporter.tests.utils we can use to implement this flow. I'm sketching out how below in pseudo code.

from reporter.tests.utils import wait_until

def _can_get_ql_version() -> bool:
    status = requests.get(version_url)
    return status == okay

def wait_for_ql():
    wait_until(_can_get_ql_version)

class TestScript:
    ...
    def _start_docker_and_wait_for_services(self):
        self._docker.start()
        wait_for_ql()
        # If QL is up, then Redis & DB backend are up to b/c of docker deps.

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 this pull request may close these issues.

2 participants