Details
-
Bug
-
Status: Closed
-
Normal
-
Resolution: Fixed
-
None
-
Mac 10.14.1
Internet Connection Speed: Tested on 50MBits and 1 Gbit
-
Coremunity
-
Platform Core KANBAN
-
Needs Assessment
-
Bug Fix
-
-
Needs Assessment
Description
Puppet Version: 6.0.4
Puppet Server Version: -
OS Name/Version: Mac OS 10.14.1 (Probably all?)
When running a lot of beaker tests, i realized that most time is used by `puppet module install ...` commands.
Desired Behavior:
Fast installation of module by using puppet module install ...
Actual Behavior:
$ ls -la modules/
|
total 0 |
drwxr-xr-x 2 mbaur staff 64 Dec 15 15:37 . |
drwxr-xr-x+ 76 mbaur staff 2432 Dec 15 15:37 .. |
mbaur(2018-12-15 15:37:26) ~ |
$ time puppet module install puppetlabs-firewall -v 1.14.0 --modulepath $HOME/modules/ |
Notice: Preparing to install into /Users/mbaur/modules ...
|
Notice: Downloading from https://forgeapi.puppet.com ... |
Notice: Installing -- do not interrupt ... |
/Users/mbaur/modules
|
└─┬ puppetlabs-firewall (v1.14.0) |
└── puppetlabs-stdlib (v5.1.0)real 0m26.044s |
user 0m2.615s
|
sys 0m1.211s
|
I think the biggest problem is, that the command posted above makes 8 API calls to forgeapi.puppet.com which just take way to long:
$ puppet module install puppetlabs-firewall -v 1.14.0 --modulepath $HOME/modules/ --debug | grep forgeapi |
Notice: Downloading from https://forgeapi.puppet.com ... |
Debug: HTTP GET https://forgeapi.puppet.com/v3/releases?module=puppetlabs-firewall&sort_by=version |
Debug: HTTP GET https://forgeapi.puppet.com/v3/releases?module=puppetlabs-firewall&sort_by=version&limit=20&offset=20 |
Debug: HTTP GET https://forgeapi.puppet.com/v3/releases?module=puppetlabs-stdlib&sort_by=version |
Debug: HTTP GET https://forgeapi.puppet.com/v3/releases?module=puppetlabs-stdlib&sort_by=version&limit=20&offset=20 |
Debug: HTTP GET https://forgeapi.puppet.com/v3/releases?module=puppetlabs-stdlib&sort_by=version&limit=20&offset=40 |
Debug: HTTP GET https://forgeapi.puppet.com/v3/releases?module=puppetlabs-stdlib&sort_by=version&limit=20&offset=60 |
Debug: HTTP GET https://forgeapi.puppet.com/v3/files/puppetlabs-firewall-1.14.0.tar.gz |
Debug: HTTP GET https://forgeapi.puppet.com/v3/files/puppetlabs-stdlib-5.1.0.tar.gz |
I tried to measure the data which gets transfer:
https://forgeapi.puppet.com/v3/releases?module=puppetlabs-firewall&sort_by=version -> 1.4M |
https://forgeapi.puppet.com/v3/releases?module=puppetlabs-firewall&sort_by=version&limit=20&offset=20 -> 621K |
https://forgeapi.puppet.com/v3/releases?module=puppetlabs-stdlib&sort_by=version -> 2.4M |
https://forgeapi.puppet.com/v3/releases?module=puppetlabs-stdlib&sort_by=version&limit=20&offset=20 -> 1.1M |
https://forgeapi.puppet.com/v3/releases?module=puppetlabs-stdlib&sort_by=version&limit=20&offset=40 -> 496K |
https://forgeapi.puppet.com/v3/releases?module=puppetlabs-stdlib&sort_by=version&limit=20&offset=60 -> 10K |
https://forgeapi.puppet.com/v3/files/puppetlabs-firewall-1.14.0.tar.gz -> 121K |
https://forgeapi.puppet.com/v3/files/puppetlabs-stdlib-5.1.0.tar.gz -> 242K |
|
Complete: 6.3M |
I think there is just way to much data which we need to retrieve for every module.
Attachments
Issue Links
- is blocked by
-
FORGE-471 API pagination links mangle value of "exclude_fields" query param
-
- Closed
-