aspera-cli 4.0.0.pre2 → 4.0.0.pre3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +113 -35
- data/bin/ascli +2 -0
- data/docs/Makefile +2 -1
- data/docs/README.erb.md +36 -10
- data/docs/test_env.conf +5 -5
- data/lib/aspera/cli/main.rb +2 -11
- data/lib/aspera/cli/manager.rb +19 -6
- data/lib/aspera/cli/plugins/aoc.rb +1 -1
- data/lib/aspera/cli/plugins/config.rb +42 -18
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/colors.rb +5 -1
- data/lib/aspera/environment.rb +14 -3
- data/lib/aspera/fasp/installation.rb +33 -19
- data/lib/aspera/fasp/local.rb +107 -154
- data/lib/aspera/log.rb +9 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 22041be5b72d2a1907350832239b7e3b96890e6b50cc36ab199ecdddf6fe3e89
|
4
|
+
data.tar.gz: b30116b52e35ffd5020a400fa07a519da847de1c078c2e09b91349488c95947a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d7992b721a8dc47334ad5706aa645534822ef7b9608055c1ef0c5908085c20e45dd2dc4b7a4210481b40af9f554f389fe408c8807cc7d2eb40c3e7b212f0c4f9
|
7
|
+
data.tar.gz: 16ee1fdb8ddfecac75a0674f2f4be902decc76543b3577e81a12284d899d74b4cd1c38b68f6bda126aebd1f9cddf045af0c7ef98fe0aa0aee0a2634b9a249a84
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
[comment1]: # (Do not edit this README.md, edit docs/README.erb.md, for details, read docs/README.md)
|
2
2
|
# `ascli` : a Command Line for IBM Aspera products
|
3
3
|
|
4
|
-
Version : 4.0.0.
|
4
|
+
Version : 4.0.0.pre3
|
5
5
|
|
6
6
|
_Laurent/2016-2021_
|
7
7
|
|
@@ -36,7 +36,7 @@ Once the gem is installed, `ascli` shall be accessible:
|
|
36
36
|
|
37
37
|
```
|
38
38
|
$ ascli --version
|
39
|
-
4.0.0.
|
39
|
+
4.0.0.pre3
|
40
40
|
```
|
41
41
|
|
42
42
|
## First use
|
@@ -112,8 +112,9 @@ The following sections provide information on the installation.
|
|
112
112
|
## <a name="ruby"></a>Ruby
|
113
113
|
|
114
114
|
A ruby interpreter is required to run the tool or to use the gem and tool.
|
115
|
-
The Ruby version shall be > 2.4.
|
115
|
+
The Ruby version shall be at least > 2.4.
|
116
116
|
Any type of Ruby installation can be used.
|
117
|
+
Ruby 3 is not yet tested.
|
117
118
|
|
118
119
|
Refer to the following sections for a proposed method for specific operating systems.
|
119
120
|
|
@@ -138,13 +139,13 @@ Install Latest stable Ruby using [https://rubyinstaller.org/](https://rubyinstal
|
|
138
139
|
|
139
140
|
Go to "Downloads".
|
140
141
|
|
141
|
-
Select the version "without devkit", x64 corresponding to the one recommended "with devkit".
|
142
|
+
Select the Ruby 2 version "without devkit", x64 corresponding to the one recommended "with devkit". Devkit is not needed.
|
142
143
|
|
143
|
-
|
144
|
+
At the end of the installer uncheck the box to skip the installation of "MSys2".
|
144
145
|
|
145
146
|
### Linux
|
146
147
|
|
147
|
-
Install Latest Ruby using "rvm" [https://rvm.io/](https://rvm.io/) .
|
148
|
+
Install Latest Ruby 2 using "rvm" [https://rvm.io/](https://rvm.io/) .
|
148
149
|
It installs by default in /usr/local/rvm , but you can install in another location:
|
149
150
|
|
150
151
|
```
|
@@ -507,14 +508,28 @@ It is also possible to provide a _Structured Value_ in a file using `@json:@file
|
|
507
508
|
|
508
509
|
## <a name="conffolder"></a>Configuration and Persistency Folder
|
509
510
|
|
510
|
-
`ascli` configuration and other runtime files (token cache, file lists, persistency files)
|
511
|
-
|
511
|
+
`ascli` configuration and other runtime files (token cache, file lists, persistency files, SDK) are stored in folder `[User's home folder]/.aspera/ascli`.
|
512
|
+
|
513
|
+
Note: `[User's home folder]` is found using ruby's `Dir.home` (`rb_w32_home_dir`).
|
514
|
+
It uses the `HOME` env var primarily, and on MS Windows it also looks at `%HOMEDRIVE%%HOMEPATH%` and `%USERPROFILE%`. `ascli` sets the env var `%HOME%` to the value of `%USERPROFILE%` if set and exists. So, on Windows `%USERPROFILE%` is used as it is more reliable than `%HOMEDRIVE%%HOMEPATH%`.
|
515
|
+
|
516
|
+
The main folder can be displayed using :
|
512
517
|
|
513
518
|
```
|
514
519
|
$ ascli config folder
|
515
520
|
/Users/kenji/.aspera/ascli
|
516
521
|
```
|
517
522
|
|
523
|
+
It can be overriden using the envinonment variable `ASCLI_HOME`.
|
524
|
+
|
525
|
+
Example (Windows):
|
526
|
+
|
527
|
+
```
|
528
|
+
$ set ASCLI_HOME=C:\Users\Kenji\.aspera\ascli
|
529
|
+
$ ascli config folder
|
530
|
+
C:\Users\Kenji\.aspera\ascli
|
531
|
+
```
|
532
|
+
|
518
533
|
## <a name="configfile"></a>Configuration file
|
519
534
|
|
520
535
|
On the first execution of `ascli`, an empty configuration file is created in the configuration folder.
|
@@ -751,6 +766,8 @@ EOF
|
|
751
766
|
|
752
767
|
The gem is equipped with traces. By default logging level is "warn". To increase debug level, use parameter `log_level`, so either command line `--log-level=xx` or env var `ASCLI_LOG_LEVEL`.
|
753
768
|
|
769
|
+
It is also possible to activate traces before initialisation using env var `AS_LOG_LEVEL`.
|
770
|
+
|
754
771
|
## Learning Aspera Product APIs (REST)
|
755
772
|
|
756
773
|
This CLI uses REST APIs.
|
@@ -1424,7 +1441,7 @@ ascli sync start --parameters=@json:'{"sessions":[{"name":"test","reset":true,"r
|
|
1424
1441
|
```
|
1425
1442
|
$ ascli -h
|
1426
1443
|
NAME
|
1427
|
-
ascli -- a command line tool for Aspera Applications (v4.0.0.
|
1444
|
+
ascli -- a command line tool for Aspera Applications (v4.0.0.pre3)
|
1428
1445
|
|
1429
1446
|
SYNOPSIS
|
1430
1447
|
ascli COMMANDS [OPTIONS] [ARGS]
|
@@ -1448,27 +1465,27 @@ ARGS
|
|
1448
1465
|
Some commands require mandatory arguments, e.g. a path.
|
1449
1466
|
|
1450
1467
|
OPTIONS: global
|
1451
|
-
--interactive=ENUM use interactive input of missing params: yes,
|
1452
|
-
--ask-options=ENUM ask even optional options: yes,
|
1468
|
+
--interactive=ENUM use interactive input of missing params: yes, no
|
1469
|
+
--ask-options=ENUM ask even optional options: yes, no
|
1453
1470
|
--format=ENUM output format: table, ruby, json, jsonpp, yaml, csv, nagios
|
1454
1471
|
--display=ENUM output only some information: info, data, error
|
1455
1472
|
--fields=VALUE comma separated list of fields, or ALL, or DEF
|
1456
1473
|
--select=VALUE select only some items in lists, extended value: hash (column, value)
|
1457
1474
|
--table-style=VALUE table display style
|
1458
|
-
--flat-hash=ENUM display hash values as additional keys:
|
1475
|
+
--flat-hash=ENUM display hash values as additional keys: yes, no
|
1459
1476
|
-h, --help Show this message.
|
1460
1477
|
--bash-comp generate bash completion for command
|
1461
1478
|
--show-config Display parameters used for the provided action.
|
1462
1479
|
-r, --rest-debug more debug for HTTP calls
|
1463
1480
|
-v, --version display version
|
1464
1481
|
-w, --warnings check for language warnings
|
1465
|
-
--ui=ENUM method to start browser: text,
|
1466
|
-
--log-level=ENUM Log level:
|
1467
|
-
--logger=ENUM log method:
|
1482
|
+
--ui=ENUM method to start browser: text, graphical
|
1483
|
+
--log-level=ENUM Log level: debug, info, error, warn, fatal, unknown
|
1484
|
+
--logger=ENUM log method: stderr, stdout, syslog
|
1468
1485
|
--lock-port=VALUE prevent dual execution of a command, e.g. in cron
|
1469
1486
|
--query=VALUE additional filter for API calls (extended value) (some commands)
|
1470
|
-
--insecure=ENUM do not validate HTTPS certificate:
|
1471
|
-
--once-only=ENUM process only new items (some commands): yes,
|
1487
|
+
--insecure=ENUM do not validate HTTPS certificate: yes, no
|
1488
|
+
--once-only=ENUM process only new items (some commands): yes, no
|
1472
1489
|
|
1473
1490
|
COMMAND: config
|
1474
1491
|
SUBCOMMANDS: gem_path genkey plugins flush_tokens list overview open echo id documentation wizard export_to_cli detect coffee ascp email_test smtp_settings proxy_check folder file
|
@@ -1476,10 +1493,10 @@ OPTIONS:
|
|
1476
1493
|
--value=VALUE extended value for create, update, list filter
|
1477
1494
|
--property=VALUE name of property to set
|
1478
1495
|
--id=VALUE resource identifier (modify,delete,show)
|
1479
|
-
--config-file=VALUE read parameters from file in YAML format, current=/Users/
|
1480
|
-
--override=ENUM override existing value:
|
1496
|
+
--config-file=VALUE read parameters from file in YAML format, current=/Users/FooBar/.aspera/ascli/config.yaml
|
1497
|
+
--override=ENUM override existing value: yes, no
|
1481
1498
|
-N, --no-default do not load default configuration for plugin
|
1482
|
-
--use-generic-client=ENUM wizard: AoC: use global or org specific jwt client id: yes,
|
1499
|
+
--use-generic-client=ENUM wizard: AoC: use global or org specific jwt client id: yes, no
|
1483
1500
|
--pkeypath=VALUE path to private key for JWT (wizard)
|
1484
1501
|
--ascp-path=VALUE path to ascp
|
1485
1502
|
--use-product=VALUE use ascp from specified product
|
@@ -1489,7 +1506,7 @@ OPTIONS:
|
|
1489
1506
|
--default=VALUE set as default configuration for specified plugin
|
1490
1507
|
--secret=VALUE access key secret for node
|
1491
1508
|
--secrets=VALUE access key secret for node
|
1492
|
-
--test-mode=ENUM skip user validation in wizard mode: yes,
|
1509
|
+
--test-mode=ENUM skip user validation in wizard mode: yes, no
|
1493
1510
|
--ts=VALUE override transfer spec values (Hash, use @json: prefix), current={}
|
1494
1511
|
--local-resume=VALUE set resume policy (Hash, use @json: prefix), current=
|
1495
1512
|
--to-folder=VALUE destination folder for downloaded files
|
@@ -1528,7 +1545,7 @@ OPTIONS:
|
|
1528
1545
|
--password=VALUE user's password
|
1529
1546
|
--params=VALUE parameters hash table, use @json:{"param":"value"}
|
1530
1547
|
--result=VALUE specify result value as: 'work step:parameter'
|
1531
|
-
--synchronous=ENUM work step:parameter expected as result: yes,
|
1548
|
+
--synchronous=ENUM work step:parameter expected as result: yes, no
|
1532
1549
|
--ret-style=ENUM how return type is requested in api: header, arg, ext
|
1533
1550
|
--auth-style=ENUM authentication type: arg_pass, head_basic, apikey
|
1534
1551
|
|
@@ -1611,7 +1628,7 @@ OPTIONS:
|
|
1611
1628
|
--username=VALUE username to log in
|
1612
1629
|
--password=VALUE user's password
|
1613
1630
|
--skip-format=ENUM skip this preview format (multiple possible): png, mp4
|
1614
|
-
--folder-reset-cache=ENUM force detection of generated preview by refresh cache:
|
1631
|
+
--folder-reset-cache=ENUM force detection of generated preview by refresh cache: no, header, read
|
1615
1632
|
--skip-types=VALUE skip types in comma separated list
|
1616
1633
|
--previews-folder=VALUE preview folder in storage root
|
1617
1634
|
--temp-folder=VALUE path to temp folder
|
@@ -1619,14 +1636,14 @@ OPTIONS:
|
|
1619
1636
|
--case=VALUE basename of output for for test
|
1620
1637
|
--scan-path=VALUE subpath in folder id to start scan in (default=/)
|
1621
1638
|
--scan-id=VALUE forder id in storage to start scan in, default is access key main folder id
|
1622
|
-
--overwrite=ENUM when to overwrite result file: always, never,
|
1623
|
-
--file-access=ENUM how to read and write files in repository:
|
1639
|
+
--overwrite=ENUM when to overwrite result file: always, never, mtime
|
1640
|
+
--file-access=ENUM how to read and write files in repository: local, remote
|
1624
1641
|
--max-size=VALUE maximum size (in bytes) of preview file
|
1625
1642
|
--thumb-vid-scale=VALUE png: video: size (ffmpeg scale argument)
|
1626
1643
|
--thumb-vid-fraction=VALUE png: video: position of snapshot
|
1627
1644
|
--thumb-img-size=VALUE png: non-video: height (and width)
|
1628
|
-
--video-conversion=ENUM mp4: method for preview generation:
|
1629
|
-
--video-png-conv=ENUM mp4: method for thumbnail generation:
|
1645
|
+
--video-conversion=ENUM mp4: method for preview generation: reencode, blend, clips
|
1646
|
+
--video-png-conv=ENUM mp4: method for thumbnail generation: fixed, animated
|
1630
1647
|
--video-start-sec=VALUE mp4: start offset (seconds) of video preview
|
1631
1648
|
--video-scale=VALUE mp4: video scale (ffmpeg)
|
1632
1649
|
--blend-keyframes=VALUE mp4: blend: # key frames
|
@@ -1642,10 +1659,62 @@ SUBCOMMANDS: start admin
|
|
1642
1659
|
OPTIONS:
|
1643
1660
|
--parameters=VALUE extended value for session set definition
|
1644
1661
|
--session-name=VALUE name of session to use for admin commands, by default first one
|
1645
|
-
|
1646
|
-
|
1647
|
-
|
1648
|
-
|
1662
|
+
|
1663
|
+
|
1664
|
+
COMMAND: aoc
|
1665
|
+
SUBCOMMANDS: apiinfo bearer_token organization tier_restrictions user workspace packages files gateway admin automation servers
|
1666
|
+
OPTIONS:
|
1667
|
+
--url=VALUE URL of application, e.g. https://org.asperafiles.com
|
1668
|
+
--username=VALUE username to log in
|
1669
|
+
--password=VALUE user's password
|
1670
|
+
|
1671
|
+
COMMAND: ats
|
1672
|
+
SUBCOMMANDS: cluster access_key api_key aws_trust_policy
|
1673
|
+
OPTIONS:
|
1674
|
+
--ibm-api-key=VALUE IBM API key, see https://cloud.ibm.com/iam/apikeys
|
1675
|
+
--instance=VALUE ATS instance in ibm cloud
|
1676
|
+
--ats-key=VALUE ATS key identifier (ats_xxx)
|
1677
|
+
--ats-secret=VALUE ATS key secret
|
1678
|
+
--params=VALUE Parameters access key creation (@json:)
|
1679
|
+
--cloud=VALUE Cloud provider
|
1680
|
+
--region=VALUE Cloud region
|
1681
|
+
--auth=ENUM type of Oauth authentication: body_userpass, header_userpass, web, jwt, url_token, ibm_apikey
|
1682
|
+
--operation=ENUM client operation for transfers: push, pull
|
1683
|
+
--client-id=VALUE API client identifier in application
|
1684
|
+
--client-secret=VALUE API client passcode
|
1685
|
+
--redirect-uri=VALUE API client redirect URI
|
1686
|
+
--private-key=VALUE RSA private key PEM value for JWT (prefix file path with @val:@file:)
|
1687
|
+
--workspace=VALUE name of workspace
|
1688
|
+
--eid=VALUE identifier
|
1689
|
+
--name=VALUE resource name
|
1690
|
+
--link=VALUE public link to shared resource
|
1691
|
+
--new-user-option=VALUE new user creation option
|
1692
|
+
--from-folder=VALUE share to share source folder
|
1693
|
+
--scope=VALUE scope for AoC API calls
|
1694
|
+
--notify=VALUE notify users that file was received
|
1695
|
+
--bulk=ENUM bulk operation: yes, no
|
1696
|
+
--default-ports=ENUM use standard FASP ports or get from node api: yes, no
|
1697
|
+
|
1698
|
+
|
1699
|
+
COMMAND: server
|
1700
|
+
SUBCOMMANDS: nagios nodeadmin userdata configurator ctl download upload browse delete rename ls rm mv du info mkdir cp df md5sum
|
1701
|
+
OPTIONS:
|
1702
|
+
--url=VALUE URL of application, e.g. https://org.asperafiles.com
|
1703
|
+
--username=VALUE username to log in
|
1704
|
+
--password=VALUE user's password
|
1705
|
+
--ssh-keys=VALUE ssh key path list (Array or single)
|
1706
|
+
--ssh-options=VALUE ssh options (Hash)
|
1707
|
+
--cmd-prefix=VALUE prefix to add for as cmd execution, e.g. sudo or /opt/aspera/bin
|
1708
|
+
|
1709
|
+
|
1710
|
+
COMMAND: console
|
1711
|
+
SUBCOMMANDS: transfer nagios_check
|
1712
|
+
OPTIONS:
|
1713
|
+
--url=VALUE URL of application, e.g. https://org.asperafiles.com
|
1714
|
+
--username=VALUE username to log in
|
1715
|
+
--password=VALUE user's password
|
1716
|
+
--filter-from=DATE only after date
|
1717
|
+
--filter-to=DATE only before date
|
1649
1718
|
|
1650
1719
|
|
1651
1720
|
```
|
@@ -2188,17 +2257,26 @@ $ ascli aoc admin res node --id=8669 v4 perm 82 show
|
|
2188
2257
|
Send a package:
|
2189
2258
|
|
2190
2259
|
```
|
2191
|
-
$ ascli aoc packages send --value
|
2260
|
+
$ ascli aoc packages send --value=[package extended value] [other parameters such as file list and transfer parameters]
|
2192
2261
|
```
|
2193
2262
|
|
2194
2263
|
Notes:
|
2195
2264
|
|
2196
|
-
* the `value` parameter can contain any supported package creation parameter. Refer to the API, or display an existing package.
|
2197
|
-
* to list recipients use fields: "recipients" and/or "bcc_recipients". ascli will resolve the list of email addresses to expected user ids.
|
2265
|
+
* the `value` parameter can contain any supported package creation parameter. Refer to the AoC package creation API, or display an existing package to find attributes.
|
2266
|
+
* to provide the list of recipients, use fields: "recipients" and/or "bcc_recipients". ascli will resolve the list of email addresses to expected user ids.
|
2267
|
+
* a recipîent can be a shared inbox, in this case just use the name of the shared inbox as recipient.
|
2268
|
+
* If a recipient is not already registered and the workspace allows external users, then the package is sent to an external user, and
|
2198
2269
|
* if the option `new_user_option` is `@json:{"package_contact":true}` (default), then a public link is sent and the external user does not need to create an account.
|
2199
2270
|
* if the option `new_user_option` is `@json:{}`, then external users are invited to join the workspace
|
2200
2271
|
|
2201
|
-
|
2272
|
+
Examples:
|
2273
|
+
|
2274
|
+
```
|
2275
|
+
$ ascli 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
|
2276
|
+
$ ascli aoc packages send --value=@json:'{"name":"my file in shared inbox","recipients":["The Shared Inbox"]}' my_file.dat --ts=@json:'{"target_rate_kbps":100000}'
|
2277
|
+
```
|
2278
|
+
|
2279
|
+
## <a name="aoccargo"></a>Receive new packages only
|
2202
2280
|
|
2203
2281
|
It is possible to automatically download new packages, like using Aspera Cargo:
|
2204
2282
|
|
data/bin/ascli
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
require 'rubygems'
|
3
3
|
$LOAD_PATH.unshift(File.dirname(__FILE__)+"/../lib")
|
4
4
|
require 'aspera/cli/main'
|
5
|
+
require 'aspera/environment'
|
5
6
|
Encoding.default_internal = Encoding::UTF_8
|
6
7
|
Encoding.default_external = Encoding::UTF_8
|
8
|
+
Aspera::Environment.fix_home
|
7
9
|
Aspera::Cli::Main.new(ARGV).process_command_line
|
data/docs/Makefile
CHANGED
@@ -56,7 +56,8 @@ $(INCL_COMMANDS): $(DIR_TMP).exists $(TEST_MAKEFILE)
|
|
56
56
|
# generated help of tools depends on all sources, so regenerate always
|
57
57
|
.PHONY: $(INCL_USAGE)
|
58
58
|
$(INCL_USAGE): $(DIR_TMP).exists
|
59
|
-
|
59
|
+
-$(EXETESTB) -Cnone -h 2> $(INCL_USAGE)
|
60
|
+
sed -i -e 's/\/Users\/[^\/]*/\/Users\/FooBar/g' $(INCL_USAGE)
|
60
61
|
.PHONY: $(INCL_ASESSION)
|
61
62
|
$(INCL_ASESSION): $(DIR_TMP).exists
|
62
63
|
$(DIR_BIN)/asession -h 2> $(INCL_ASESSION) || true
|
data/docs/README.erb.md
CHANGED
@@ -128,8 +128,9 @@ The following sections provide information on the installation.
|
|
128
128
|
## <a name="ruby"></a>Ruby
|
129
129
|
|
130
130
|
A ruby interpreter is required to run the tool or to use the gem and tool.
|
131
|
-
The Ruby version shall be <%= gemspec.required_ruby_version %>.
|
131
|
+
The Ruby version shall be at least <%= gemspec.required_ruby_version %>.
|
132
132
|
Any type of Ruby installation can be used.
|
133
|
+
Ruby 3 is not yet tested.
|
133
134
|
|
134
135
|
Refer to the following sections for a proposed method for specific operating systems.
|
135
136
|
|
@@ -154,13 +155,13 @@ Install Latest stable Ruby using [https://rubyinstaller.org/](https://rubyinstal
|
|
154
155
|
|
155
156
|
Go to "Downloads".
|
156
157
|
|
157
|
-
Select the version "without devkit", x64 corresponding to the one recommended "with devkit".
|
158
|
+
Select the Ruby 2 version "without devkit", x64 corresponding to the one recommended "with devkit". Devkit is not needed.
|
158
159
|
|
159
|
-
|
160
|
+
At the end of the installer uncheck the box to skip the installation of "MSys2".
|
160
161
|
|
161
162
|
### Linux
|
162
163
|
|
163
|
-
Install Latest Ruby using "rvm" [https://rvm.io/](https://rvm.io/) .
|
164
|
+
Install Latest Ruby 2 using "rvm" [https://rvm.io/](https://rvm.io/) .
|
164
165
|
It installs by default in /usr/local/rvm , but you can install in another location:
|
165
166
|
|
166
167
|
```
|
@@ -523,14 +524,28 @@ It is also possible to provide a _Structured Value_ in a file using `@json:@file
|
|
523
524
|
|
524
525
|
## <a name="conffolder"></a>Configuration and Persistency Folder
|
525
526
|
|
526
|
-
<%=tool%> configuration and other runtime files (token cache, file lists, persistency files)
|
527
|
-
|
527
|
+
<%=tool%> configuration and other runtime files (token cache, file lists, persistency files, SDK) are stored in folder `[User's home folder]/.aspera/<%=cmd%>`.
|
528
|
+
|
529
|
+
Note: `[User's home folder]` is found using ruby's `Dir.home` (`rb_w32_home_dir`).
|
530
|
+
It uses the `HOME` env var primarily, and on MS Windows it also looks at `%HOMEDRIVE%%HOMEPATH%` and `%USERPROFILE%`. <%=tool%> sets the env var `%HOME%` to the value of `%USERPROFILE%` if set and exists. So, on Windows `%USERPROFILE%` is used as it is more reliable than `%HOMEDRIVE%%HOMEPATH%`.
|
531
|
+
|
532
|
+
The main folder can be displayed using :
|
528
533
|
|
529
534
|
```
|
530
535
|
$ <%=cmd%> config folder
|
531
536
|
/Users/kenji/.aspera/<%=cmd%>
|
532
537
|
```
|
533
538
|
|
539
|
+
It can be overriden using the envinonment variable `<%=evp%>HOME`.
|
540
|
+
|
541
|
+
Example (Windows):
|
542
|
+
|
543
|
+
```
|
544
|
+
$ set <%=evp%>HOME=C:\Users\Kenji\.aspera\ascli
|
545
|
+
$ <%=cmd%> config folder
|
546
|
+
C:\Users\Kenji\.aspera\ascli
|
547
|
+
```
|
548
|
+
|
534
549
|
## <a name="configfile"></a>Configuration file
|
535
550
|
|
536
551
|
On the first execution of <%=tool%>, an empty configuration file is created in the configuration folder.
|
@@ -767,6 +782,8 @@ EOF
|
|
767
782
|
|
768
783
|
The gem is equipped with traces. By default logging level is "warn". To increase debug level, use parameter `log_level`, so either command line `--log-level=xx` or env var `<%=evp%>LOG_LEVEL`.
|
769
784
|
|
785
|
+
It is also possible to activate traces before initialisation using env var `AS_LOG_LEVEL`.
|
786
|
+
|
770
787
|
## Learning Aspera Product APIs (REST)
|
771
788
|
|
772
789
|
This CLI uses REST APIs.
|
@@ -1703,17 +1720,26 @@ $ <%=cmd%> aoc admin res node --id=8669 v4 perm 82 show
|
|
1703
1720
|
Send a package:
|
1704
1721
|
|
1705
1722
|
```
|
1706
|
-
$ <%=cmd%> aoc packages send --value
|
1723
|
+
$ <%=cmd%> aoc packages send --value=[package extended value] [other parameters such as file list and transfer parameters]
|
1707
1724
|
```
|
1708
1725
|
|
1709
1726
|
Notes:
|
1710
1727
|
|
1711
|
-
* the `value` parameter can contain any supported package creation parameter. Refer to the API, or display an existing package.
|
1712
|
-
* to list recipients use fields: "recipients" and/or "bcc_recipients". <%=cmd%> will resolve the list of email addresses to expected user ids.
|
1728
|
+
* the `value` parameter can contain any supported package creation parameter. Refer to the AoC package creation API, or display an existing package to find attributes.
|
1729
|
+
* to provide the list of recipients, use fields: "recipients" and/or "bcc_recipients". <%=cmd%> will resolve the list of email addresses to expected user ids.
|
1730
|
+
* a recipîent can be a shared inbox, in this case just use the name of the shared inbox as recipient.
|
1731
|
+
* If a recipient is not already registered and the workspace allows external users, then the package is sent to an external user, and
|
1713
1732
|
* if the option `new_user_option` is `@json:{"package_contact":true}` (default), then a public link is sent and the external user does not need to create an account.
|
1714
1733
|
* if the option `new_user_option` is `@json:{}`, then external users are invited to join the workspace
|
1715
1734
|
|
1716
|
-
|
1735
|
+
Examples:
|
1736
|
+
|
1737
|
+
```
|
1738
|
+
$ <%=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
|
1739
|
+
$ <%=cmd%> aoc packages send --value=@json:'{"name":"my file in shared inbox","recipients":["The Shared Inbox"]}' my_file.dat --ts=@json:'{"target_rate_kbps":100000}'
|
1740
|
+
```
|
1741
|
+
|
1742
|
+
## <a name="aoccargo"></a>Receive new packages only
|
1717
1743
|
|
1718
1744
|
It is possible to automatically download new packages, like using Aspera Cargo:
|
1719
1745
|
|
data/docs/test_env.conf
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
---
|
2
2
|
config:
|
3
|
-
version: 4.0.0
|
3
|
+
version: 4.0.0
|
4
4
|
default:
|
5
5
|
config: cli_default
|
6
|
-
aoc:
|
6
|
+
aoc: tst_aoc1
|
7
7
|
faspex: tst_faspex
|
8
8
|
faspex5: tst_faspex5
|
9
9
|
shares: tst_shares
|
10
10
|
shares2: tst_shares2
|
11
11
|
node: tst_node
|
12
12
|
server: tst_server
|
13
|
-
orchestrator:
|
13
|
+
orchestrator: tst_orch
|
14
14
|
console: tst_console
|
15
15
|
preview: tst_ak_preview
|
16
16
|
ats: tst_ats
|
@@ -31,7 +31,7 @@ smtp_config:
|
|
31
31
|
from_name: your value here
|
32
32
|
username: your value here
|
33
33
|
password: your value here
|
34
|
-
|
34
|
+
tst_aoc1:
|
35
35
|
url: your value here
|
36
36
|
username: your value here
|
37
37
|
auth: your value here
|
@@ -79,7 +79,7 @@ tst_server:
|
|
79
79
|
tst_server_bykey:
|
80
80
|
url: your value here
|
81
81
|
username: your value here
|
82
|
-
|
82
|
+
tst_orch:
|
83
83
|
url: your value here
|
84
84
|
username: your value here
|
85
85
|
password: your value here
|
data/lib/aspera/cli/main.rb
CHANGED
@@ -21,18 +21,9 @@ module Aspera
|
|
21
21
|
# name of application, also foldername where config is stored
|
22
22
|
PROGRAM_NAME = 'ascli'
|
23
23
|
GEM_NAME = 'aspera-cli'
|
24
|
-
# Container module of current class : Aspera::Cli
|
25
|
-
CLI_MODULE=Module.nesting[1].to_s
|
26
|
-
# Path to Plugin classes: Aspera::Cli::Plugins
|
27
|
-
PLUGINS_MODULE=CLI_MODULE+'::Plugins'
|
28
24
|
VERBOSE_LEVELS=[:normal,:minimal,:quiet]
|
29
25
|
|
30
|
-
private_constant :PROGRAM_NAME,:GEM_NAME,:
|
31
|
-
|
32
|
-
# find the root folder of gem where this class is
|
33
|
-
def self.gem_root
|
34
|
-
File.expand_path(CLI_MODULE.to_s.gsub('::','/').gsub(%r([^/]+),'..'),File.dirname(__FILE__))
|
35
|
-
end
|
26
|
+
private_constant :PROGRAM_NAME,:GEM_NAME,:VERBOSE_LEVELS
|
36
27
|
|
37
28
|
# =============================================================
|
38
29
|
# Parameter handlers
|
@@ -140,7 +131,7 @@ module Aspera
|
|
140
131
|
require @plugin_env[:config].plugins[plugin_name_sym][:require_stanza]
|
141
132
|
# load default params only if no param already loaded before plugin instanciation
|
142
133
|
env[:config].add_plugin_default_preset(plugin_name_sym)
|
143
|
-
command_plugin=
|
134
|
+
command_plugin=Plugins::Config.plugin_new(plugin_name_sym,env)
|
144
135
|
Log.log.debug("got #{command_plugin.class}")
|
145
136
|
# TODO: check that ancestor is Plugin?
|
146
137
|
return command_plugin
|