aspera-cli 4.0.0.pre1 → 4.0.0.pre2

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,27 +3,29 @@
3
3
 
4
4
  DIR_TOP=../
5
5
  include $(DIR_TOP)common.make
6
+ # "make" shall be executed inside the folder containing this makefile
6
7
  DIR_DOC=
7
8
 
8
9
  # files generated to be included in README.md
9
10
  INCL_USAGE=$(DIR_TMP)$(EXENAME)_usage.txt
10
11
  INCL_COMMANDS=$(DIR_TMP)$(EXENAME)_commands.txt
11
12
  INCL_ASESSION=$(DIR_TMP)asession_usage.txt
13
+ INCL_TRSPEC=$(DIR_DOC)transfer_spec.html
14
+ # env var used in README.erb.md
15
+ export EXENAME GEMSPEC INCL_USAGE INCL_COMMANDS INCL_ASESSION INCL_TRSPEC
16
+
12
17
  TMPL_TEST_CONF=$(DIR_DOC)$(TEST_CONF_FILE_BASE)
13
- TMPL_SECRETS=$(DIR_DOC)$(SECRETS_FILE_NAME)
14
18
 
15
19
  MANUAL_BASE=$(DIR_DOC)Manual_$(EXENAME)_$(GEMVERSION)
16
20
  MANUAL_PDF=$(MANUAL_BASE).pdf
17
21
  MANUAL_HTML=$(MANUAL_BASE).html
18
22
 
19
23
  # main target to build doc
20
- all:: $(MANUAL_PDF) $(TMPL_SECRETS) $(TMPL_TEST_CONF)
24
+ all:: $(MANUAL_PDF) $(TMPL_TEST_CONF)
21
25
 
22
26
  doc: all
23
27
 
24
- # generate template configuration files, remove own secrets
25
- $(TMPL_SECRETS): $(SECRETS_FILE_PATH)
26
- sed 's/=.*/=_value_here_/' < $(SECRETS_FILE_PATH) > $(TMPL_SECRETS)
28
+ # generate template configuration file for tests, remove own secrets
27
29
  $(TMPL_TEST_CONF): $(TEST_CONF_FILE_PATH)
28
30
  ruby -e 'require "yaml";n={};c=YAML.load_file("$(TEST_CONF_FILE_PATH)").each{|k,v| n[k]=["config","default"].include?(k)?v:v.keys.inject({}){|m,i|m[i]="your value here";m}};File.write("$(TMPL_TEST_CONF)",n.to_yaml)'
29
31
 
@@ -31,21 +33,25 @@ $(MANUAL_PDF): $(DIR_TOP)README.md
31
33
  pandoc --number-sections --resource-path=. --toc -o $(MANUAL_HTML) $(DIR_TOP)README.md
32
34
  wkhtmltopdf toc $(MANUAL_HTML) $(MANUAL_PDF)
33
35
 
34
- $(DIR_TOP)README.md: $(DIR_DOC)README.erb.md $(INCL_COMMANDS) $(INCL_USAGE) $(INCL_ASESSION)
35
- DIR_DOC=$(DIR_DOC) COMMANDS=$(INCL_COMMANDS) USAGE=$(INCL_USAGE) ASESSION=$(INCL_ASESSION) VERSION=`$(EXETESTB) -Cnone --version` TOOLNAME=$(EXENAME) erb $(DIR_DOC)README.erb.md > $(DIR_TOP)README.md
36
+ $(DIR_TOP)README.md: $(DIR_DOC)README.erb.md $(DIR_DOC)transfer_spec.html $(INCL_COMMANDS) $(INCL_USAGE) $(INCL_ASESSION)
37
+ erb -T - --encoding UTF-8:UTF-8 $(DIR_DOC)README.erb.md > $(DIR_TOP)README.md
36
38
 
37
39
  $(INCL_COMMANDS): $(DIR_TMP).exists $(TEST_MAKEFILE)
38
40
  sed -nEe 's/.*\$$\(EXE_MAN.?\)/$(EXENAME)/p' $(TEST_MAKEFILE) > $(DIR_TMP)usg1.txt
39
- sed -i.bak -Ee 's/\$$\((DIR_[^)]+)\)/\1\//g' $(DIR_TMP)usg1.txt
41
+ sed -i.bak -Ee 's/\$$\$$\{([a-z_]+)\}/my_\1/g' $(DIR_TMP)usg1.txt
40
42
  sed -i.bak -Ee 's/\$$\(([^)]+)\)/\1/g' $(DIR_TMP)usg1.txt
41
- sed -i.bak -Ee 's/CF_([0-9A-Z_]*)/MY_\1/g' $(DIR_TMP)usg1.txt
42
43
  sed -i.bak -Ee 's/\$$(\$$)/\1/g' $(DIR_TMP)usg1.txt
43
- sed -i.bak -Ee 's/"'"'"'"\$${([a-z_]+)}"'"'"'"/"my_\1"/g' $(DIR_TMP)usg1.txt
44
- sed -i.bak -Ee 's/="\$${([a-z_]+)}"/="my_\1"/g' $(DIR_TMP)usg1.txt
45
- sed -i.bak -Ee 's/\$$@/xyz/g' $(DIR_TMP)usg1.txt
46
- sed -i.bak -Ee 's/"'"'"'"/"/g' $(DIR_TMP)usg1.txt
44
+ sed -i.bak -Ee 's/\$$@/test/g' $(DIR_TMP)usg1.txt
47
45
  sed -i.bak -Ee 's/"'"'"'/"/g' $(DIR_TMP)usg1.txt
48
46
  sed -i.bak -Ee 's/'"'"'"/"/g' $(DIR_TMP)usg1.txt
47
+ sed -i.bak -Ee 's/""/"/g' $(DIR_TMP)usg1.txt
48
+ sed -i.bak -Ee 's/CF_//g' $(DIR_TMP)usg1.txt
49
+ sed -i.bak -Ee 's/DIR_[A-Z]+//g' $(DIR_TMP)usg1.txt
50
+ sed -i.bak -Ee 's/LOCAL_SAMPLE_FILE(NAME|PATH)/testfile.bin/g' $(DIR_TMP)usg1.txt
51
+ sed -i.bak -Ee 's/HSTS_FOLDER_UPLOAD/folder_1/g' $(DIR_TMP)usg1.txt
52
+ sed -i.bak -Ee 's/PKG_TEST_TITLE/Important files delivery/g' $(DIR_TMP)usg1.txt
53
+ sed -i.bak -Ee 's/AOC_EXTERNAL_EMAIL/external.user@example.com/g' $(DIR_TMP)usg1.txt
54
+ sed -i.bak -Ee 's/EMAIL_ADDR/internal.user@example.com/g' $(DIR_TMP)usg1.txt
49
55
  sort -u < $(DIR_TMP)usg1.txt > $(INCL_COMMANDS)
50
56
  # generated help of tools depends on all sources, so regenerate always
51
57
  .PHONY: $(INCL_USAGE)
@@ -1,16 +1,30 @@
1
1
  [comment1]: # (Do not edit this README.md, edit docs/README.erb.md, for details, read docs/README.md)
2
- <%cmd=ENV["TOOLNAME"];tool='`'+cmd+'`';evp=cmd.upcase+'_';opprst='option preset';prst='['+opprst+'](#lprt)';prsts='['+opprst+'s](#lprt)';prstt=opprst.capitalize%>
3
-
2
+ <%
3
+ # check that required env vars exist, and files
4
+ %w{EXENAME GEMSPEC INCL_USAGE INCL_COMMANDS INCL_ASESSION INCL_TRSPEC}.each do |e|
5
+ raise "missing env var #{e}" unless ENV.has_key?(e)
6
+ raise "missing file #{ENV[e]}" unless File.exist?(ENV[e]) or !e.start_with?('INCL_') #_
7
+ end
8
+ cmd=ENV["EXENAME"] # just command name
9
+ tool='`'+cmd+'`' # used in text with formatting of command
10
+ evp=cmd.upcase+'_' # prefix for env vars
11
+ opprst='option preset' # just the name for "option preset"
12
+ prst='['+opprst+'](#lprt)'
13
+ prsts='['+opprst+'s](#lprt)'
14
+ prstt=opprst.capitalize # in title
15
+ gemspec=Gem::Specification::load(ENV["GEMSPEC"]) or raise "error loading #{ENV["GEMSPEC"]}"
16
+ geminstadd=gemspec.version.to_s.match(/\.[^0-9]/)?' --pre':''
17
+ -%>
4
18
  # <%=tool%> : a Command Line for IBM Aspera products
5
19
 
6
- Version : <%= ENV["VERSION"] %>
20
+ Version : <%= gemspec.version.to_s %>
7
21
 
8
22
  _Laurent/2016-<%=Time.new.year%>_
9
23
 
10
24
  This gem provides a command line interface to Aspera Applications.
11
25
 
12
26
  Location (once released):
13
- [https://rubygems.org/gems/aspera-cli](https://rubygems.org/gems/aspera-cli)
27
+ [<%= gemspec.metadata['rubygems_uri'] %>](<%= gemspec.metadata['rubygems_uri'] %>)
14
28
 
15
29
  Disclaimers:
16
30
 
@@ -38,7 +52,7 @@ Once the gem is installed, <%=tool%> shall be accessible:
38
52
 
39
53
  ```
40
54
  $ <%=cmd%> --version
41
- <%= ENV["VERSION"] %>
55
+ <%= gemspec.version.to_s %>
42
56
  ```
43
57
 
44
58
  ## First use
@@ -106,7 +120,7 @@ Then, follow the section relative to the product you want to interact with ( Asp
106
120
  In order to use the tool or the gem, it is necessary to install those components:
107
121
 
108
122
  * [Ruby](#ruby)
109
- * [aspera-cli](#the_gem)
123
+ * [<%= gemspec.name %>](#the_gem)
110
124
  * [FASP](#fasp_prot)
111
125
 
112
126
  The following sections provide information on the installation.
@@ -114,8 +128,7 @@ The following sections provide information on the installation.
114
128
  ## <a name="ruby"></a>Ruby
115
129
 
116
130
  A ruby interpreter is required to run the tool or to use the gem and tool.
117
- It is required to have privilege to install gems.
118
- Ruby 2.5+ is prefered, but it should also work with 2.1+.
131
+ The Ruby version shall be <%= gemspec.required_ruby_version %>.
119
132
  Any type of Ruby installation can be used.
120
133
 
121
134
  Refer to the following sections for a proposed method for specific operating systems.
@@ -123,10 +136,10 @@ Refer to the following sections for a proposed method for specific operating sys
123
136
  ### macOS
124
137
 
125
138
 
126
- MacOS 10.13+ (High Sierra) comes with a recent Ruby, so you can use it directly, you will need to install aspera-cli using `sudo` :
139
+ MacOS 10.13+ (High Sierra) comes with a recent Ruby, so you can use it directly, you will need to install <%= gemspec.name %> using `sudo` :
127
140
 
128
141
  ```
129
- $ sudo gem install aspera-cli
142
+ $ sudo gem install <%= gemspec.name %><%=geminstadd%>
130
143
  ```
131
144
 
132
145
  Alternatively, if you use [Homebrew](https://brew.sh/) already you can install Ruby with it:
@@ -200,18 +213,18 @@ For instance to build from source, and install in `/opt/ruby` :
200
213
  # make install
201
214
  ```
202
215
 
203
- ## <a name="the_gem"></a>`aspera-cli` gem
216
+ ## <a name="the_gem"></a>`<%= gemspec.name %>` gem
204
217
 
205
218
  Once you have Ruby and rights to install gems: Install the gem and its dependencies:
206
219
 
207
220
  ```
208
- # gem install aspera-cli
221
+ # gem install <%= gemspec.name %><%=geminstadd%>
209
222
  ```
210
223
 
211
224
  To upgrade to the latest version:
212
225
 
213
226
  ```
214
- # gem update aspera-cli
227
+ # gem update <%= gemspec.name %>
215
228
  ```
216
229
 
217
230
  ## <a name="fasp_prot"></a>FASP Protocol
@@ -222,7 +235,13 @@ an Aspera Transfer:
222
235
  * ascp
223
236
  * aspera-license (in same folder, or ../etc)
224
237
 
225
- Those can be found in one of IBM Asprea transfer server or client with its license file (some are free):
238
+ This can be installed directly with
239
+
240
+ ```
241
+ $ <%=cmd%> conf ascp install
242
+ ```
243
+
244
+ Those can be found in one of IBM Aspera transfer server or client with its license file (some are free):
226
245
 
227
246
  * IBM Aspera Connect Client (Free)
228
247
  * IBM Aspera Desktop Client (Free)
@@ -241,7 +260,7 @@ other methods are available. Refer to section: [Transfer Agents](#agents)
241
260
 
242
261
  # <a name="cli"></a>Command Line Interface: <%=tool%>
243
262
 
244
- The `aspera-cli` Gem provides a command line interface (CLI) which interacts with Aspera Products (mostly using REST APIs):
263
+ The `<%= gemspec.name %>` Gem provides a command line interface (CLI) which interacts with Aspera Products (mostly using REST APIs):
245
264
 
246
265
  * IBM Aspera High Speed Transfer Server (FASP and Node)
247
266
  * IBM Aspera on Cloud (including ATS)
@@ -385,7 +404,7 @@ The style of output can be set using the `format` parameter, supporting:
385
404
  Table output can be filtered using the `select` parameter. Example:
386
405
 
387
406
  ```
388
- $ <%=cmd%> aspera admin res user list --fields=name,email,ats_admin --query=@json:'{"per_page":1000,"page":1,"sort":"name"}' --select=@json:'{"ats_admin":true}'
407
+ $ <%=cmd%> aoc admin res user list --fields=name,email,ats_admin --query=@json:'{"per_page":1000,"page":1,"sort":"name"}' --select=@json:'{"ats_admin":true}'
389
408
  :...............................:..................................:...........:
390
409
  : name : email : ats_admin :
391
410
  :...............................:..................................:...........:
@@ -988,7 +1007,7 @@ All standard _transfer-spec_ parameters can be overloaded. To display parameters
988
1007
  run in debug mode (--log-level=debug). [_transfer-spec_](#transferspec) can
989
1008
  also be saved/overridden in the config file.
990
1009
 
991
- <%= File.read("#{ENV['DIR_DOC']}transfer_spec.html").gsub(/.*<body>(.*)<\/body>.*/m,'\1') %>
1010
+ <%= File.read(ENV['INCL_TRSPEC']).gsub(/.*<body>(.*)<\/body>.*/m,'\1') %>
992
1011
 
993
1012
  ### Destination folder for transfers
994
1013
 
@@ -1134,7 +1153,7 @@ Usually the OS native scheduler shall already provide some sort of such protecti
1134
1153
  A non complete list of commands used in unit tests:
1135
1154
 
1136
1155
  ```
1137
- <%= File.read(ENV["COMMANDS"]) %>
1156
+ <%= File.read(ENV["INCL_COMMANDS"]) %>
1138
1157
  ...and more
1139
1158
  ```
1140
1159
 
@@ -1142,7 +1161,7 @@ A non complete list of commands used in unit tests:
1142
1161
 
1143
1162
  ```
1144
1163
  $ <%=cmd%> -h
1145
- <%= File.read(ENV["USAGE"]) %>
1164
+ <%= File.read(ENV["INCL_USAGE"]) %>
1146
1165
 
1147
1166
  ```
1148
1167
 
@@ -1182,7 +1201,7 @@ Preparing preset: aoc_myorg
1182
1201
  Please provide path to your private RSA key, or empty to generate one:
1183
1202
  option: pkeypath>
1184
1203
  using existing key:
1185
- /Users/myself/.aspera/<%=cmd%>/aspera_on_cloud_key
1204
+ /Users/myself/.aspera/<%=cmd%>/aspera_aoc_key
1186
1205
  Using global client_id.
1187
1206
  option: username> john@example.com
1188
1207
  Updating profile with new key
@@ -1191,7 +1210,7 @@ Setting config preset as default for aspera
1191
1210
  saving config file
1192
1211
  Done.
1193
1212
  You can test with:
1194
- $ <%=cmd%> aspera user info show
1213
+ $ <%=cmd%> aoc user info show
1195
1214
  ```
1196
1215
 
1197
1216
  Optionally, it is possible to create a new organization-specific "integration".
@@ -1319,13 +1338,13 @@ If you are not using the built-in client_id and secret, JWT needs to be authoriz
1319
1338
  * Using command line
1320
1339
 
1321
1340
  ```
1322
- $ <%=cmd%> aspera admin res client list
1341
+ $ <%=cmd%> aoc admin res client list
1323
1342
  :............:.........:
1324
1343
  : id : name :
1325
1344
  :............:.........:
1326
1345
  : BJLPObQiFw : <%=cmd%> :
1327
1346
  :............:.........:
1328
- $ <%=cmd%> aspera admin res client --id=BJLPObQiFw modify @json:'{"jwt_grant_enabled":true,"explicit_authorization_required":false}'
1347
+ $ <%=cmd%> aoc admin res client --id=BJLPObQiFw modify @json:'{"jwt_grant_enabled":true,"explicit_authorization_required":false}'
1329
1348
  modified
1330
1349
  ```
1331
1350
 
@@ -1346,14 +1365,14 @@ open the previously generated public key located here: `$HOME/.aspera/<%=cmd%>/a
1346
1365
  * Using command line
1347
1366
 
1348
1367
  ```
1349
- $ <%=cmd%> aspera admin res user list
1368
+ $ <%=cmd%> aoc admin res user list
1350
1369
  :........:................:
1351
1370
  : id : name :
1352
1371
  :........:................:
1353
1372
  : 109952 : Tech Support :
1354
1373
  : 109951 : LAURENT MARTIN :
1355
1374
  :........:................:
1356
- $ <%=cmd%> aspera user info modify @ruby:'{"public_key"=>File.read(File.expand_path("~/.aspera/<%=cmd%>/aocapikey.pub"))}'
1375
+ $ <%=cmd%> aoc user info modify @ruby:'{"public_key"=>File.read(File.expand_path("~/.aspera/<%=cmd%>/aocapikey.pub"))}'
1357
1376
  modified
1358
1377
  ```
1359
1378
 
@@ -1383,7 +1402,7 @@ After this last step, commands do not require web login anymore.
1383
1402
  Once client has been registered and <%=prst%> created: <%=tool%> can be used:
1384
1403
 
1385
1404
  ```
1386
- $ <%=cmd%> aspera files br /
1405
+ $ <%=cmd%> aoc files br /
1387
1406
  Current Workspace: Default Workspace (default)
1388
1407
  empty
1389
1408
  ```
@@ -1417,7 +1436,7 @@ In order to access some administrative actions on "nodes" (in fact, access keys)
1417
1436
  secret is required, it is usually provided using the `secret` option. For example in a command like:
1418
1437
 
1419
1438
  ```
1420
- $ <%=cmd%> aspera admin res node --id="access_key1" --secret="secret1" v3 info
1439
+ $ <%=cmd%> aoc admin res node --id="access_key1" --secret="secret1" v3 info
1421
1440
  ```
1422
1441
 
1423
1442
  It is also possible to provide a set of secrets used on a regular basis. This can be done using the `secrets` option. The value provided shall be a Hash, where keys are access key ids, and values are the associated secrets.
@@ -1444,7 +1463,7 @@ A secret repository can always be selected at runtime using `--secrets=@preset:x
1444
1463
  * Bulk creation
1445
1464
 
1446
1465
  ```
1447
- $ <%=cmd%> aspera admin res user create --bulk=yes @json:'[{"email":"dummyuser1@example.com"},{"email":"dummyuser2@example.com"}]'
1466
+ $ <%=cmd%> aoc admin res user create --bulk=yes @json:'[{"email":"dummyuser1@example.com"},{"email":"dummyuser2@example.com"}]'
1448
1467
  :.......:.........:
1449
1468
  : id : status :
1450
1469
  :.......:.........:
@@ -1456,17 +1475,17 @@ $ <%=cmd%> aspera admin res user create --bulk=yes @json:'[{"email":"dummyuser1@
1456
1475
  * Find with filter and delete
1457
1476
 
1458
1477
  ```
1459
- $ <%=cmd%> aspera admin res user list --query='@json:{"q":"dummyuser"}' --fields=id,email
1478
+ $ <%=cmd%> aoc admin res user list --query='@json:{"q":"dummyuser"}' --fields=id,email
1460
1479
  :.......:........................:
1461
1480
  : id : email :
1462
1481
  :.......:........................:
1463
1482
  : 98398 : dummyuser1@example.com :
1464
1483
  : 98399 : dummyuser2@example.com :
1465
1484
  :.......:........................:
1466
- $ thelist=$(echo $(<%=cmd%> aspera admin res user list --query='@json:{"q":"dummyuser"}' --fields=id,email --field=id --format=csv)|tr ' ' ,)
1485
+ $ thelist=$(echo $(<%=cmd%> aoc admin res user list --query='@json:{"q":"dummyuser"}' --fields=id,email --field=id --format=csv)|tr ' ' ,)
1467
1486
  $ echo $thelist
1468
1487
  98398,98399
1469
- $ <%=cmd%> aspera admin res user --bulk=yes --id=@json:[$thelist] delete
1488
+ $ <%=cmd%> aoc admin res user --bulk=yes --id=@json:[$thelist] delete
1470
1489
  :.......:.........:
1471
1490
  : id : status :
1472
1491
  :.......:.........:
@@ -1478,7 +1497,7 @@ $ <%=cmd%> aspera admin res user --bulk=yes --id=@json:[$thelist] delete
1478
1497
  * Display current user's workspaces
1479
1498
 
1480
1499
  ```
1481
- $ <%=cmd%> aspera user workspaces
1500
+ $ <%=cmd%> aoc user workspaces
1482
1501
  :......:............................:
1483
1502
  : id : name :
1484
1503
  :......:............................:
@@ -1493,13 +1512,13 @@ $ <%=cmd%> aspera user workspaces
1493
1512
  Creation of a sub-access key is like creation of access key with the following difference: authentication to node API is made with accesskey (master access key) and only the path parameter is provided: it is relative to the storage root of the master key. (id and secret are optional)
1494
1513
 
1495
1514
  ```
1496
- $ <%=cmd%> aspera admin resource node --name=_node_name_ --secret=_secret_ v4 access_key create --value=@json:'{"storage":{"path":"/folder1"}}'
1515
+ $ <%=cmd%> aoc admin resource node --name=_node_name_ --secret=_secret_ v4 access_key create --value=@json:'{"storage":{"path":"/folder1"}}'
1497
1516
  ```
1498
1517
 
1499
1518
  * Display transfer events (ops/transfer)
1500
1519
 
1501
1520
  ```
1502
- $ <%=cmd%> aspera admin res node --secret=_secret_ v3 transfer list --value=@json:'[["q","*"],["count",5]]'
1521
+ $ <%=cmd%> aoc admin res node --secret=_secret_ v3 transfer list --value=@json:'[["q","*"],["count",5]]'
1503
1522
  ```
1504
1523
 
1505
1524
  # page=1&per_page=10&q=type:(file_upload+OR+file_delete+OR+file_download+OR+file_rename+OR+folder_create+OR+folder_delete+OR+folder_share+OR+folder_share_via_public_link)&sort=-date
@@ -1517,13 +1536,13 @@ $ <%=cmd%> aspera admin res node --secret=_secret_ v3 transfer list --value=@jso
1517
1536
  * Display node events (events)
1518
1537
 
1519
1538
  ```
1520
- $ <%=cmd%> aspera admin res node --secret=_secret_ v3 events
1539
+ $ <%=cmd%> aoc admin res node --secret=_secret_ v3 events
1521
1540
  ```
1522
1541
 
1523
1542
  * display members of a workspace
1524
1543
 
1525
1544
  ```
1526
- $ <%=cmd%> aspera admin res workspace_membership list --fields=member_type,manager,member.email --query=@json:'{"page":1,"per_page":50,"embed":"member","inherited":false,"workspace_id":11363,"sort":"name"}'
1545
+ $ <%=cmd%> aoc admin res workspace_membership list --fields=member_type,manager,member.email --query=@json:'{"page":1,"per_page":50,"embed":"member","inherited":false,"workspace_id":11363,"sort":"name"}'
1527
1546
  :.............:.........:..................................:
1528
1547
  : member_type : manager : member.email :
1529
1548
  :.............:.........:..................................:
@@ -1548,20 +1567,20 @@ a- get id of first workspace
1548
1567
 
1549
1568
  ```
1550
1569
  WS1='First Workspace'
1551
- WS1ID=$(<%=cmd%> aspera admin res workspace list --query=@json:'{"q":"'"$WS1"'"}' --select=@json:'{"name":"'"$WS1"'"}' --fields=id --format=csv)
1570
+ WS1ID=$(<%=cmd%> aoc admin res workspace list --query=@json:'{"q":"'"$WS1"'"}' --select=@json:'{"name":"'"$WS1"'"}' --fields=id --format=csv)
1552
1571
  ```
1553
1572
 
1554
1573
  b- get id of second workspace
1555
1574
 
1556
1575
  ```
1557
1576
  WS2='Second Workspace'
1558
- WS2ID=$(<%=cmd%> aspera admin res workspace list --query=@json:'{"q":"'"$WS2"'"}' --select=@json:'{"name":"'"$WS2"'"}' --fields=id --format=csv)
1577
+ WS2ID=$(<%=cmd%> aoc admin res workspace list --query=@json:'{"q":"'"$WS2"'"}' --select=@json:'{"name":"'"$WS2"'"}' --fields=id --format=csv)
1559
1578
  ```
1560
1579
 
1561
1580
  c- extract membership information and change workspace id
1562
1581
 
1563
1582
  ```
1564
- $ <%=cmd%> aspera admin res workspace_membership list --fields=manager,member_id,member_type,workspace_id --query=@json:'{"per_page":10000,"workspace_id":'"$WS1ID"'}' --format=jsonpp > ws1_members.json
1583
+ $ <%=cmd%> aoc admin res workspace_membership list --fields=manager,member_id,member_type,workspace_id --query=@json:'{"per_page":10000,"workspace_id":'"$WS1ID"'}' --format=jsonpp > ws1_members.json
1565
1584
  ```
1566
1585
 
1567
1586
  d- convert to creation data for second workspace:
@@ -1579,13 +1598,13 @@ jq '[.[] | {member_type,member_id,workspace_id,manager,workspace_id:"'"$WS2ID"'"
1579
1598
  e- add members to second workspace
1580
1599
 
1581
1600
  ```
1582
- $ <%=cmd%> aspera admin res workspace_membership create --bulk=yes @json:@file:ws2_members.json
1601
+ $ <%=cmd%> aoc admin res workspace_membership create --bulk=yes @json:@file:ws2_members.json
1583
1602
  ```
1584
1603
 
1585
1604
  * get users who did not log since a date
1586
1605
 
1587
1606
  ```
1588
- $ <%=cmd%> aspera admin res user list --fields=email --query=@json:'{"per_page":10000,"q":"last_login_at:<2018-05-28"}'
1607
+ $ <%=cmd%> aoc admin res user list --fields=email --query=@json:'{"per_page":10000,"q":"last_login_at:<2018-05-28"}'
1589
1608
  :...............................:
1590
1609
  : email :
1591
1610
  :...............................:
@@ -1597,7 +1616,7 @@ $ <%=cmd%> aspera admin res user list --fields=email --query=@json:'{"per_page":
1597
1616
  * list "Limited" users
1598
1617
 
1599
1618
  ```
1600
- $ <%=cmd%> aspera admin res user list --fields=email --query=@json:'{"per_page":10000}' --select=@json:'{"member_of_any_workspace":false}'
1619
+ $ <%=cmd%> aoc admin res user list --fields=email --query=@json:'{"per_page":10000}' --select=@json:'{"member_of_any_workspace":false}'
1601
1620
  ```
1602
1621
 
1603
1622
  * Perform a multi Gbps transfer between two remote shared folders
@@ -1611,7 +1630,7 @@ $ <%=cmd%> conf wizard --url=https://sedemo.ibmaspera.com --username=laurent.mar
1611
1630
  Detected: Aspera on Cloud
1612
1631
  Preparing preset: aoc_sedemo
1613
1632
  Using existing key:
1614
- /Users/laurent/.aspera/<%=cmd%>/aspera_on_cloud_key
1633
+ /Users/laurent/.aspera/<%=cmd%>/aspera_aoc_key
1615
1634
  Using global client_id.
1616
1635
  Please Login to your Aspera on Cloud instance.
1617
1636
  Navigate to your "Account Settings"
@@ -1626,7 +1645,7 @@ Setting config preset as default for aspera
1626
1645
  saving config file
1627
1646
  Done.
1628
1647
  You can test with:
1629
- $ <%=cmd%> aspera user info show
1648
+ $ <%=cmd%> aoc user info show
1630
1649
  ```
1631
1650
 
1632
1651
  This creates the option preset "aoc_&lt;org name&gt;" to allow seamless command line access and sets it as default for aspera on cloud.
@@ -1641,14 +1660,14 @@ $ <%=cmd%> -Paoc_show aspera files transfer --from-folder='IBM Cloud SJ' --to-fo
1641
1660
 
1642
1661
  * create registration key to register a node
1643
1662
  ```
1644
- $ <%=cmd%> aspera admin res admin/client create @json:'{"data":{"name":"laurentnode","client_subject_scopes":["alee","aejd"],"client_subject_enabled":true}}' --fields=token --format=csv
1663
+ $ <%=cmd%> aoc admin res admin/client create @json:'{"data":{"name":"laurentnode","client_subject_scopes":["alee","aejd"],"client_subject_enabled":true}}' --fields=token --format=csv
1645
1664
  jfqslfdjlfdjfhdjklqfhdkl
1646
1665
  ```
1647
1666
 
1648
1667
  * delete all registration keys
1649
1668
 
1650
1669
  ```
1651
- $ <%=cmd%> aspera admin res admin/client list --fields=id --format=csv|<%=cmd%> aspera admin res admin/client delete --bulk=yes --id=@lines:@stdin:
1670
+ $ <%=cmd%> aoc admin res admin/client list --fields=id --format=csv|<%=cmd%> aoc admin res admin/client delete --bulk=yes --id=@lines:@stdin:
1652
1671
  +-----+---------+
1653
1672
  | id | status |
1654
1673
  +-----+---------+
@@ -1664,19 +1683,19 @@ $ <%=cmd%> aspera admin res admin/client list --fields=id --format=csv|<%=cmd%>
1664
1683
  * list shared folders in node
1665
1684
 
1666
1685
  ```
1667
- $ <%=cmd%> aspera admin res node --id=8669 shared_folders
1686
+ $ <%=cmd%> aoc admin res node --id=8669 shared_folders
1668
1687
  ```
1669
1688
 
1670
1689
  * list shared folders in workspace
1671
1690
 
1672
1691
  ```
1673
- $ <%=cmd%> aspera admin res workspace --id=10818 shared_folders
1692
+ $ <%=cmd%> aoc admin res workspace --id=10818 shared_folders
1674
1693
  ```
1675
1694
 
1676
1695
  * list members of shared folder
1677
1696
 
1678
1697
  ```
1679
- $ <%=cmd%> aspera admin res node --id=8669 v4 perm 82 show
1698
+ $ <%=cmd%> aoc admin res node --id=8669 v4 perm 82 show
1680
1699
  ```
1681
1700
 
1682
1701
  ## Send a Package
@@ -1684,7 +1703,7 @@ $ <%=cmd%> aspera admin res node --id=8669 v4 perm 82 show
1684
1703
  Send a package:
1685
1704
 
1686
1705
  ```
1687
- $ <%=cmd%> aspera packages send --value=@json:'{"name":"my title","note":"my note","recipients":["laurent.martin.aspera@fr.ibm.com","other@example.com"]}' --sources=@args my_file.dat
1706
+ $ <%=cmd%> aoc packages send --value=@json:'{"name":"my title","note":"my note","recipients":["laurent.martin.aspera@fr.ibm.com","other@example.com"]}' --sources=@args my_file.dat
1688
1707
  ```
1689
1708
 
1690
1709
  Notes:
@@ -1699,7 +1718,7 @@ Notes:
1699
1718
  It is possible to automatically download new packages, like using Aspera Cargo:
1700
1719
 
1701
1720
  ```
1702
- $ <%=cmd%> aspera packages recv --id=ALL --once-only=yes --lock-port=12345
1721
+ $ <%=cmd%> aoc packages recv --id=ALL --once-only=yes --lock-port=12345
1703
1722
  ```
1704
1723
 
1705
1724
  * `--id=ALL` (case sensitive) will download all packages
@@ -1743,19 +1762,19 @@ f["type"].eql?("file") and (DateTime.now-DateTime.parse(f["modified_time"]))<100
1743
1762
  * expression to find files older than 1 year on a given node and store in file list
1744
1763
 
1745
1764
  ```
1746
- $ <%=cmd%> aspera admin res node --name='my node name' --secret='my secret' v4 find / --fields=path --value='exec:f["type"].eql?("file") and (DateTime.now-DateTime.parse(f["modified_time"]))<100' --format=csv > my_file_list.txt
1765
+ $ <%=cmd%> aoc admin res node --name='my node name' --secret='my secret' v4 find / --fields=path --value='exec:f["type"].eql?("file") and (DateTime.now-DateTime.parse(f["modified_time"]))<100' --format=csv > my_file_list.txt
1747
1766
  ```
1748
1767
 
1749
1768
  * delete the files, one by one
1750
1769
 
1751
1770
  ```
1752
- $ cat my_file_list.txt|while read path;do echo <%=cmd%> aspera admin res node --name='my node name' --secret='my secret' v4 delete "$path" ;done
1771
+ $ cat my_file_list.txt|while read path;do echo <%=cmd%> aoc admin res node --name='my node name' --secret='my secret' v4 delete "$path" ;done
1753
1772
  ```
1754
1773
 
1755
1774
  * delete the files in bulk
1756
1775
 
1757
1776
  ```
1758
- cat my_file_list.txt | <%=cmd%> aspera admin res node --name='my node name' --secret='my secret' v3 delete @lines:@stdin:
1777
+ cat my_file_list.txt | <%=cmd%> aoc admin res node --name='my node name' --secret='my secret' v3 delete @lines:@stdin:
1759
1778
  ```
1760
1779
 
1761
1780
  ## Activity
@@ -1763,13 +1782,13 @@ cat my_file_list.txt | <%=cmd%> aspera admin res node --name='my node name' --se
1763
1782
  The activity app can be queried with:
1764
1783
 
1765
1784
  ```
1766
- $ <%=cmd%> aspera admin analytics transfers
1785
+ $ <%=cmd%> aoc admin analytics transfers
1767
1786
  ```
1768
1787
 
1769
1788
  It can also support filters and send notification email with a template:
1770
1789
 
1771
1790
  ```
1772
- $ <%=cmd%> aspera admin analytics transfers --once-only=yes --lock-port=123455 \
1791
+ $ <%=cmd%> aoc admin analytics transfers --once-only=yes --lock-port=123455 \
1773
1792
  --query=@json:'{"status":"completed","direction":"receive"}' \
1774
1793
  --notify=@json:'{"to":"<''%=transfer[:user_email.to_s]%>","subject":"<''%=transfer[:files_completed.to_s]%> files received","body":"Dear <''%=transfer[:user_email.to_s]%>\nWe received <''%=transfer[:files_completed.to_s]%> files for a total of <''%=transfer[:transferred_bytes.to_s]%> bytes, starting with file:\n<''%=transfer[:content.to_s]%>\n\nThank you."}'
1775
1794
  ```
@@ -1789,9 +1808,9 @@ By default transfer nodes are expected to use ports TCP/UDP 33001. The web UI en
1789
1808
 
1790
1809
  ATS is usable either :
1791
1810
 
1792
- * from an AoC subscription : <%=cmd%> aspera admin ats
1811
+ * from an AoC subscription : <%=cmd%> aoc admin ats : use AoC authentication
1793
1812
 
1794
- * or from an IBM Cloud subscription : <%=cmd%> ats
1813
+ * or from an IBM Cloud subscription : <%=cmd%> ats : use IBM Cloud API key authentication
1795
1814
 
1796
1815
  ## IBM Cloud ATS : creation of api key
1797
1816
 
@@ -1895,21 +1914,35 @@ $ <%=cmd%> server --ssh-keys=@list:,~/.ssh/id_rsa
1895
1914
  $ <%=cmd%> server --ssh-keys=@json:'["~/.ssh/id_rsa"]'
1896
1915
  ```
1897
1916
 
1898
- The underlying ssh library `net::ssh` provides several options that may be used
1899
- depending on environment. By default the ssh library expect that an ssh-agent is running, but if you get the error message:
1917
+ The underlying ssh library `net::ssh` provides several options that may be used depending on environment. By default the ssh library expect that an ssh-agent is running.
1918
+
1919
+ If you get an error message such as:
1900
1920
 
1901
1921
  ```
1922
+ [Linux]
1902
1923
  ERROR -- net.ssh.authentication.agent: could not connect to ssh-agent: Agent not configured
1903
1924
  ```
1904
1925
 
1905
- This means that you dont have such agent, check env var: `SSH_AGENT_SOCK`, check if the key is protected with a passphrase. [check the manual](https://net-ssh.github.io/ssh/v1/chapter-2.html#s2)
1926
+ or
1927
+
1928
+ ```
1929
+ [Windows]
1930
+ ERROR -- net.ssh.authentication.agent: could not connect to ssh-agent: pageant process not running
1931
+ ```
1932
+
1933
+ This means that you dont have such an ssh agent running:
1906
1934
 
1907
- To diable use of `ssh-agent`, use the option `ssh_option` like this (or set in preset):
1935
+ * check env var: `SSH_AGENT_SOCK`
1936
+ * check if the key is protected with a passphrase
1937
+ * [check the manual](https://net-ssh.github.io/ssh/v1/chapter-2.html#s2)
1938
+ * To diable use of `ssh-agent`, use the option `ssh_option` like this (or set in preset):
1908
1939
 
1909
1940
  ```
1910
1941
  $ <%=cmd%> server --ssh-options=@ruby:'{use_agent: false}' ...
1911
1942
  ```
1912
1943
 
1944
+ This can also be set as default using a preset
1945
+
1913
1946
  ## Example
1914
1947
 
1915
1948
  One can test the "server" application using the well known demo server:
@@ -2204,7 +2237,7 @@ To change this parameter in `aspera.conf`, use `asconfigurator`. To display the
2204
2237
 
2205
2238
  If you use a value different than 16777216, then specify it using option `max_size`.
2206
2239
 
2207
- Note: the HSTS parameter (max_request_file_create_size_kb) is in kilobytes while the generator parameter is in bytes (factor of 1024).
2240
+ Note: the HSTS parameter (max_request_file_create_size_kb) is in *kiloBytes* while the generator parameter is in *Bytes* (factor of 1024).
2208
2241
 
2209
2242
  ## <a name="prev_ext"></a>External tools: Linux
2210
2243
 
@@ -2334,8 +2367,7 @@ using one of three overwrite method:
2334
2367
 
2335
2368
  Deletion of preview for deleted source files: not implemented yet.
2336
2369
 
2337
- If the `scan` or `events` detection method is used, then the option : `skip_folders` can be used
2338
- to skip some folders. It expects a list of path starting with slash, use the `@json:` notation, example:
2370
+ If the `scan` or `events` detection method is used, then the option : `skip_folders` can be used to skip some folders. It expects a list of path relative to the storage root (docroot) starting with slash, use the `@json:` notation, example:
2339
2371
 
2340
2372
  ```
2341
2373
  $ <%=cmd%> preview scan --skip-folders=@json:'["/not_here"]'
@@ -2343,14 +2375,14 @@ $ <%=cmd%> preview scan --skip-folders=@json:'["/not_here"]'
2343
2375
 
2344
2376
  The option `folder_reset_cache` forces the node service to refresh folder contents using various methods.
2345
2377
 
2346
- ## output preview Files types
2378
+ ## Preview File types
2347
2379
 
2348
2380
  Two types of preview can be generated:
2349
2381
 
2350
2382
  * png: thumbnail
2351
2383
  * mp4: video preview (only for video)
2352
2384
 
2353
- To skip generation of a format use option `skip_format`
2385
+ Use option `skip_format` to skip generation of a format.
2354
2386
 
2355
2387
  ## Supported input Files types
2356
2388
 
@@ -2508,7 +2540,7 @@ Nodejs: [https://www.npmjs.com/package/aspera](https://www.npmjs.com/package/asp
2508
2540
 
2509
2541
  ```
2510
2542
  $ asession -h
2511
- <%= File.read(ENV["ASESSION"]) %>
2543
+ <%= File.read(ENV["INCL_ASESSION"]) %>
2512
2544
  ```
2513
2545
 
2514
2546
  # Hot folder
@@ -2606,15 +2638,16 @@ So, it evolved into <%=tool%>:
2606
2638
 
2607
2639
  # Release Notes
2608
2640
 
2609
- * 4.0.0.pre1
2641
+ * 4.0.0.pre2
2610
2642
 
2611
- * now available as open source at [https://github.com/IBM/aspera-cli](https://github.com/IBM/aspera-cli) with general cleanup
2612
- * changed default tool name from `mlia` to `ascli`
2613
- * changed `aspera` command to `oncloud`
2614
- * changed gem name from `asperalm` to `aspera-cli`
2615
- * changed module name from `Asperalm` to `Aspera`
2616
- * removed command `folder` in `preview`, merged to `scan`
2617
- * persistency files go to sub folder instead of main folder
2643
+ * now available as open source at [<%= gemspec.homepage %>](<%= gemspec.homepage %>) with general cleanup
2644
+ * changed default tool name from `mlia` to `ascli`
2645
+ * changed `aspera` command to `aoc`
2646
+ * changed gem name from `asperalm` to `aspera-cli`
2647
+ * changed module name from `Asperalm` to `Aspera`
2648
+ * removed command `folder` in `preview`, merged to `scan`
2649
+ * persistency files go to sub folder instead of main folder
2650
+ * added possibility to install SDK: `config ascp install`
2618
2651
 
2619
2652
  * 0.11.8
2620
2653