-
Notifications
You must be signed in to change notification settings - Fork 7
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
Add support for staging RPM or binary installed from Pivotal Network #4
Comments
This would also be useful for installing GPCC, but we may actually run GPCC elsewhere on its own. |
Is "releases/6810" and "product_files/28864" stable, or does it change with package versions? |
@Reckhardt-pivotal - any idea how stable the URLs are for Pivnet API-based downloads? I've had no issue storing these invocations in a doc and copy-pasting from them months later. |
I have no idea. I assume very stable but I've been very wrong before.
…-- Rob
On Thu, Sep 7, 2017 at 7:59 PM, Kyle Dunn ***@***.***> wrote:
@Reckhardt-pivotal <https://github.com/reckhardt-pivotal> - any idea how
stable the URLs are for Pivnet API-based downloads? I've had no issue
storing these invocations in a doc and copy-pasting from them months later.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#4 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AEwzzVyjrRzO6g31hMUlEOgBG7UpHoH1ks5sgINdgaJpZM4PPMhk>
.
|
Who can verify this? |
Jim Thompson. I'll send an email.
…-- Rob
On Thu, Sep 7, 2017 at 8:49 PM, Andreas Scherbaum ***@***.***> wrote:
Who can verify this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#4 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AEwzzdHVQ5nj7WL2bYcoWkHmXGiWvF0zks5sgI8lgaJpZM4PPMhk>
.
|
Just looked into this, and it will not work: 4.3.16.0: https://network.pivotal.io/products/pivotal-gpdb#/releases/6342 Although these are stable URLs, how can I find out what is the URL, based on the version number? |
This might be the very issue @ysung-pivotal was mentioning. It's quick n' dirty but something like this can help:
we could easily append a |
You are not seriously suggesting this as a solution ... When I check the "_links" href link, I end up on another JSON page, which contains yet another link with another files ID, and that is the download link. But this second JSON page, as example, does not even contain the full filename, just the download link. I potentially end up with a filename which is different from what the webserver is suggesting in the end. You know, in automation you can't just accept what the webserver is suggesting, you need to provide the output filename before. This is not idempotent. Therefore in order to make this somehow work it needs 2 curl calls with additional Python parsing, and then a third curl call for the download, plus guess my own filename. This is wrong on too many levels ... |
Well, I wanted to defend myself but you've inadvertently teased out my very pervasive hack nature. No matter what we do, having the nodes fetch stuff on their own, rather than depending on workstation local files is my preference still. More than willing to discuss the merits of this though. |
I'm in favor of this approach as well. Given that Pivotal changed the filename format quite a few times in the past (see examples here, probably not even catching all of them): https://github.com/andreasscherbaum/gpdb-ansible/blob/master/roles/gpdb4/vars/main.yml I really would like to have a way to specify a version and get back a filename which the Playbook should download. Not just a link, I need to know the final name in order to make this idempotent. |
Hi folks, I'm in the Pivnet team (today pairing with @mbildner). Our understanding of @andreasscherbaum's concerns is:
Some background: Pivnet cannot behave like a static repository (as most OSS distributions do) for legal reasons. We have to be able to show who downloaded which files, when, from where, and that they agreed to a relevant EULA. A lot of the gymnastics imposed on API consumers and downloaders comes from those constraints. Finding the latest releaseThis is a common request, so we added an endpoint for it. Unfortunately, it only works for products following the semver scheme. GPDB uses a different scheme. So as you are probably already aware, you will need to use the Stability of the download URL provided by PivnetOnce you've identified the release you want, you'd follow In As you know, the process works by redirecting you to a generated Cloudfront URL. This URL is not stable and will expire. The signed-URL scheme is relied on to prevent unauthenticated users from downloading product release files. If you need to store URLs, always store the one you find in Knowing the final on-disk filename before following the Cloudfront redirectLooking again at The For example, if What about stable Cloudfront URLs?We've used "stable" or "static" loosely with regards to Cloudfront URLs. Our intention is that the hostname will be stable. Right now you can see hostnames like We don't anticipate having to replace this distributions; in this respect the hostnames are already stable. However, we plan to introduce CNAME mappings for each of our environments (eg To reiterate: the URL provided in the redirect is not stable. It will expire. Only the URL provided in Some additional notesAPI chattinessYou mentioned sequentially following multiple links provided in API responses. This chattiness is by design. The API is intended to have self-describing, symbolic names for the components of the data model. As a consumer, once you begin to navigate from a high-level endpoint, you should never need to manually construct a URL yourself. You can always rely on the API to tell you the correct URLs for related endpoints. EULAsPivnet users outside of Pivotal need to manually accept EULAs for major and minor releases, but not for other kinds. By "manually accept", we mean that someone will need to log into the Pivnet website and accept the EULA there. That someone will need to be identified by the token being used for upgrades. This is also a legal requirement. We'd like to automate it, but cannot safely do so. TokensIn future, Pivnet-provided API tokens will be replaced with UAA tokens. There will be a deprecation period and will provide guidance on switching when the time comes. |
Hi @jchesterpivotal, thanks for the detailed explanation. Let me summarize: in order to download a specific version (not just the latest version) of the product, I still need to jump through all the websites, and figure out my download link. And that is only after someone manually clicked "OK" on the website? And I need to look into S3 if I need the filename. Also I better should not depend on any "stable" name if it's not on the Pivnet website. That's ok. That is a many number steps required in order to download a file. I'm more and more inclined to say that this is a job for a generic Pivnet Ansible module: This would not only benefit @kdunn-pivotal but anyone using Ansible to automate deployments. The module should be written in a generic way which let's one specify the product name, version (or "latest") and API key. What do you think? |
Yes, the API works by navigating from top-level endpoints.
Correct. Upon download, if no accepted EULA is found for that user, they'll receive a
No. To be clear, we mean interpreting the value of the
I'm not deeply familiar with Ansible, but that does sound reasonable to me. |
Here's an example rest call, once you've enabled an API token for your account in the profile page:
The text was updated successfully, but these errors were encountered: