Reading time: | 15 min |
Last updated: | 14 Dec 2023 |
Reading time: |
15 min |
Last updated: |
14 Dec 2023 |
This guide is intended to get you up and running with this tool quickly with the most common settings. For a thorough review of all options, refer to the official documentation.
The Product Download Hub has an API to enable end users to automate management and download of their Arm products.
The easiest way to manage access is with the Entitlements and Download Manager . This Python based utility can be used to interrogate the download database, and fetch the required packages.
It can be used from Windows command line or a Linux terminal. These instructions are for Linux (Ubuntu 22.04LTS).
sudo apt update
sudo apt install -y python-is-python3 python3-pip
sudo pip install edmgr
In a browser, login to PDH and copy your token from the below:
https://developer.arm.com/downloads/token
The token is a very long text string, and is valid for one hour.
Using the token above, register your identity with the edmgr
utility.
edmgr login token <your_token>
A successful login will output:
Token saved in <save_location>
To generate a list of products you are entitled to download use:
edmgr entitlements
This may be a long list. You can filter by using the Product Code of the item you wish to download.
For example, the Product Code
of
Arm Development Studio
is DS000B
.
edmgr entitlements -p <ProductCode>
From this output, you will get a six-digit numeric ID
of the product you wish to download. This is the ProductID
.
For a given product, there will likely be multiple versions available for download. To see a list of these, use the ProductID
as follows:
edmgr releases -e <ProductID>
From this table, an ID
will be shown for each available version. This ID is referred to as the ReleaseID
.
For example, you can return the ReleaseID
of Arm Development Studio 2023.1
of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
.
Finally, you must determine the ArtifactID
, which is the specific package to download.
To determine the ArtifactID
, you need the ProductID
and ReleaseID
from above:
edmgr artifacts -e <ProductID> -r <ReleaseID>
The ID
given in the output are the available ArtifactID
s for this item.
To continue the example, the Arm Development Studio 2023.1 Linux installer
ArtifactID
is of the form yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
.
The package can now be downloaded. You must specify the various ID
s from above. Use -d
to specify a directory to store the downloaded package.
edmgr download-artifacts -e <ProductID> -r <ReleaseID> -a <ArtifactID> -d <directory>
When done, you can logout, deleting the cached token.
edmgr logout
The default output format of the above is a human readable table. Add the -f json
option to output in JSON format, which is better suited for automation. This can be applied to all relevant steps, for example.
edmgr entitlements -f json
This output can be used to implement scripts to manage your downloads. A Python script to download the latest Arm Development Studio
is shown below.
import json
import os
# Set Product Code for Arm Development Studio
ProductCode="DS000B"
# Determine ProductID
cmd1="edmgr entitlements -p "+ProductCode+" -f json > "+ProductCode+".json"
os.system(cmd1)
f1 = open(""+ProductCode+".json", "r")
data1 = json.loads(f1.read())
f1.close()
ProductID = data1[0]['id']
# Output ProductID for debug purposes
print("ProductID =", ProductID)
# Determine ReleaseID
cmd2="edmgr releases -e "+ProductID+" -f json > "+ProductID+".json"
os.system(cmd2)
f2 = open(""+ProductID+".json", "r")
data2 = json.loads(f2.read())
f2.close()
ReleaseID = data2[0]['id']
# Output ReleaseID for debug purposes
print ("ReleaseID =", ReleaseID)
# Determine ArtifactID
cmd3="edmgr artifacts -e "+ProductID+" -r "+ReleaseID+" -f json > "+ReleaseID+".json"
os.system(cmd3)
f3 = open(""+ReleaseID+".json", "r")
data3 = json.loads(f3.read())
f3.close()
ArtifactID1 = data3[0]['id']
ArtifactID2 = data3[1]['id']
# Output ArtifactID for debug purposes
print ("Two artifacts available (Windows and Linux installers)")
print ("ArtifactID1 =", ArtifactID1)
print ("ArtifactID2 =", ArtifactID2)
# Download Artifacts to current directory
cmd4="edmgr download-artifacts -e "+ProductID+" -r "+ReleaseID+" -a "+ArtifactID1+" -d ."
os.system(cmd4)
cmd5="edmgr download-artifacts -e "+ProductID+" -r "+ReleaseID+" -a "+ArtifactID2+" -d ."
os.system(cmd5)
print("Download complete")
# Tidy up (optional)
os.system("rm -rf *.json")
os.system("ls -l")
os.system("edmgr logout")
which can be executed (after logging in ) with:
python pdh.py
You should see output similar to:
ProductID = pppppp
ReleaseID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Two artifacts available (Windows and Linux installers)
ArtifactID1 = yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
ArtifactID2 = zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
Downloading <windows_installer>
...
All done!
Downloading <linux_installer>
...
All done!
Download complete
How would you rate the overall quality of this tool quick-install guide?
What is the primary reason for your feedback ?
Thank you. We're grateful for your feedback on how to improve this tool quick-install guide.