aspera-cli 4.25.3 → 4.26.0.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +39 -6
- data/CONTRIBUTING.md +119 -111
- data/README.md +9 -7
- data/lib/aspera/agent/direct.rb +10 -8
- data/lib/aspera/agent/factory.rb +3 -3
- data/lib/aspera/agent/node.rb +1 -1
- data/lib/aspera/api/alee.rb +1 -0
- data/lib/aspera/api/aoc.rb +13 -12
- data/lib/aspera/api/ats.rb +1 -1
- data/lib/aspera/api/cos_node.rb +5 -0
- data/lib/aspera/api/faspex.rb +15 -2
- data/lib/aspera/api/httpgw.rb +2 -0
- data/lib/aspera/api/node.rb +82 -29
- data/lib/aspera/ascp/installation.rb +9 -10
- data/lib/aspera/cli/error.rb +8 -0
- data/lib/aspera/cli/formatter.rb +27 -11
- data/lib/aspera/cli/info.rb +2 -1
- data/lib/aspera/cli/main.rb +30 -12
- data/lib/aspera/cli/manager.rb +43 -31
- data/lib/aspera/cli/plugins/aoc.rb +7 -5
- data/lib/aspera/cli/plugins/base.rb +2 -79
- data/lib/aspera/cli/plugins/config.rb +2 -1
- data/lib/aspera/cli/plugins/faspex.rb +1 -1
- data/lib/aspera/cli/plugins/faspex5.rb +51 -51
- data/lib/aspera/cli/plugins/node.rb +9 -14
- data/lib/aspera/cli/plugins/shares.rb +4 -2
- data/lib/aspera/cli/special_values.rb +1 -0
- data/lib/aspera/cli/transfer_agent.rb +3 -0
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/cli/wizard.rb +2 -1
- data/lib/aspera/dot_container.rb +10 -10
- data/lib/aspera/log.rb +1 -1
- data/lib/aspera/markdown.rb +1 -1
- data/lib/aspera/persistency_folder.rb +1 -1
- data/lib/aspera/rest.rb +34 -49
- data/lib/aspera/rest_list.rb +116 -0
- data/lib/aspera/sync/operations.rb +1 -1
- data/lib/aspera/transfer/parameters.rb +8 -8
- data/lib/aspera/transfer/spec.rb +1 -0
- data/lib/aspera/yaml.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +4 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fc6adc843448ed8b76da0786b419be39fe4531daa0da0254f8cdb7503a131f4f
|
|
4
|
+
data.tar.gz: 217a266117e6a2ac2f0512016d71a7fa4e9a1b67924e3e73ca5b7a29cc54a76a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8977f967425a7a53c585d64902619366c197b6897231515ec84dd1b76e4a70eb767da6ce5cbe32f0f3005e70d222e1dc5d65fcf3bfe2c8044d4cf7349396e692
|
|
7
|
+
data.tar.gz: 7ac9b790563f1f8d11c1156f337ed4fb81313c64b11e1dc7b85909b91c87f06d0a6024176352a01c51397626d75ec20a66c9311dd8a5f88042cff7b0a23fdc44
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,39 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- markdownlint-configure-file { "no-duplicate-heading": { "siblings_only": true } } -->
|
|
4
4
|
|
|
5
|
+
## 4.26.0.pre
|
|
6
|
+
|
|
7
|
+
Released: [Place date of release here]
|
|
8
|
+
|
|
9
|
+
### New Features
|
|
10
|
+
|
|
11
|
+
* `faspex5`: When sending a package, recipients specified in fields `private_recipients`, `notified_on_upload`, `notified_on_download` and `notified_on_receipt` are now also expanded like field `recipients`.
|
|
12
|
+
|
|
13
|
+
### Issues Fixed
|
|
14
|
+
|
|
15
|
+
* `sync`: #251 in `admin` command: Fixed database path on Windows: Use `~private-asp` instead of `.private-asp`.
|
|
16
|
+
* `config`: Fixed `preset update` with dot-path options.
|
|
17
|
+
|
|
18
|
+
### Breaking Changes
|
|
19
|
+
|
|
20
|
+
## 4.25.4
|
|
21
|
+
|
|
22
|
+
Released: 2026-03-04
|
|
23
|
+
|
|
24
|
+
### New Features
|
|
25
|
+
|
|
26
|
+
* **general**: If `@:` is used, then marker `END` optionally marks the end of collected arguments.
|
|
27
|
+
* `format`: `display` defaults to `info` only if `format` is set to `table`, else defaults to `data`.
|
|
28
|
+
* `node`: Parameter `accept_v4` of option `node_api` (boolean, defaults to `true`) allows using gen4 browsing with `Accept-Version: 4.0` for best performance when there are thousands of files.
|
|
29
|
+
|
|
30
|
+
### Issues Fixed
|
|
31
|
+
|
|
32
|
+
* `faspex5`: Listing content, or receiving a package requires API parameter: `recipient_user_id` or `recipient_workgroup_id`, else error `Not authorized` is returned.
|
|
33
|
+
|
|
34
|
+
### Breaking Changes
|
|
35
|
+
|
|
36
|
+
* `node`: Options `node_cache` and `default_ports` are replaced with option: `node_api` (`Hash`) with boolean parameters (keys): `cache` and `standard_ports` with default value `true`.
|
|
37
|
+
|
|
5
38
|
## 4.25.3
|
|
6
39
|
|
|
7
40
|
Released: 2026-02-18
|
|
@@ -283,7 +316,7 @@ Released: 2025-01-21
|
|
|
283
316
|
|
|
284
317
|
* Internal: Basic REST calls now return data directly. (no more `data` key). For advanced calls, use `call`.
|
|
285
318
|
* Internal: Transfer SDK download is now a 2-step procedure: First get the YAML file from GitHub with URLs for the various platforms and versions, and then download the archive from the official IBM repository.
|
|
286
|
-
**global**: Option `format=multi` is replaced with option `multi_table=yes`.
|
|
319
|
+
* **global**: Option `format=multi` is replaced with option `multi_table=yes`.
|
|
287
320
|
* `faspex5`: Removed deprecated option `value` replaced with positional parameter.
|
|
288
321
|
|
|
289
322
|
## 4.19.0
|
|
@@ -1047,7 +1080,7 @@ Released: 2021-02-03
|
|
|
1047
1080
|
|
|
1048
1081
|
### New Features
|
|
1049
1082
|
|
|
1050
|
-
* The option `value` of command `find
|
|
1083
|
+
* The option `value` of command `find` to filter on name is mandatory.
|
|
1051
1084
|
* `find` now also reports all types (file, folder, link).
|
|
1052
1085
|
* `find` now is able to report all fields (type, size, etc...).
|
|
1053
1086
|
|
|
@@ -1077,7 +1110,7 @@ Released: 2021-02-03
|
|
|
1077
1110
|
### New Features
|
|
1078
1111
|
|
|
1079
1112
|
* Improved wizard (prepare for AoC global client id).
|
|
1080
|
-
* Preview generator: Added option :
|
|
1113
|
+
* Preview generator: Added option : `skip_format` with values `png`, `mp4`.
|
|
1081
1114
|
* Removed outdated pictures from this doc.
|
|
1082
1115
|
|
|
1083
1116
|
## 0.9.19
|
|
@@ -1145,7 +1178,7 @@ Released: 2021-02-03
|
|
|
1145
1178
|
|
|
1146
1179
|
### New Features
|
|
1147
1180
|
|
|
1148
|
-
* `faspex`: Use option `once_only` set to `yes` to enable cargo like function. id=NEW deprecated.
|
|
1181
|
+
* `faspex`: Use option `once_only` set to `yes` to enable cargo like function. `id=NEW` deprecated.
|
|
1149
1182
|
* `aoc`: Share to share transfer with command `transfer`.
|
|
1150
1183
|
|
|
1151
1184
|
## 0.9.7
|
|
@@ -1154,8 +1187,8 @@ Released: 2021-02-03
|
|
|
1154
1187
|
|
|
1155
1188
|
* Homogeneous transfer spec for `node` and [`direct`](README.md#agt_direct) transfer agents.
|
|
1156
1189
|
* Preview persistency goes to unique file by default.
|
|
1157
|
-
* Catch mxf extension in preview as video.
|
|
1158
|
-
* Faspex: Possibility to download all packages by specifying id=ALL
|
|
1190
|
+
* Catch `mxf` extension in preview as video.
|
|
1191
|
+
* Faspex: Possibility to download all packages by specifying `id=ALL`.
|
|
1159
1192
|
* Faspex: To come: Cargo-like function to download only new packages with id=NEW.
|
|
1160
1193
|
|
|
1161
1194
|
## 0.9.6
|
data/CONTRIBUTING.md
CHANGED
|
@@ -2,24 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
## Reporting Issues and Vulnerabilities
|
|
4
4
|
|
|
5
|
-
If you encounter a
|
|
5
|
+
If you encounter a bug or a security vulnerability, please report it via [GitHub Issues](https://github.com/IBM/aspera-cli/issues).
|
|
6
6
|
|
|
7
|
-
Before submitting a new
|
|
7
|
+
Before submitting a new report:
|
|
8
8
|
|
|
9
|
-
- Search existing issues to
|
|
9
|
+
- **Search existing issues** to determine if the problem has already been documented or resolved.
|
|
10
10
|
|
|
11
|
-
To help us
|
|
11
|
+
To help us diagnose and resolve the issue efficiently, please include the following in your report:
|
|
12
12
|
|
|
13
|
-
- The
|
|
13
|
+
- The `ascli` version you are using:
|
|
14
14
|
|
|
15
|
-
```
|
|
16
|
-
ascli
|
|
15
|
+
```shell
|
|
16
|
+
ascli -v
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
-
|
|
20
|
-
- Your Ruby version information:
|
|
19
|
+
- **Update confirmation**: Verify that you are running the latest version.
|
|
21
20
|
|
|
22
|
-
|
|
21
|
+
- **Your Ruby environment details**:
|
|
22
|
+
|
|
23
|
+
```shell
|
|
23
24
|
ruby -v
|
|
24
25
|
```
|
|
25
26
|
|
|
@@ -29,103 +30,102 @@ We welcome contributions to improve the `aspera-cli` project!
|
|
|
29
30
|
|
|
30
31
|
### Getting Started
|
|
31
32
|
|
|
32
|
-
Clone the repository
|
|
33
|
+
Clone the repository to initialize the development environment:
|
|
33
34
|
|
|
34
|
-
```
|
|
35
|
+
```shell
|
|
35
36
|
git clone https://github.com/IBM/aspera-cli.git
|
|
36
37
|
cd aspera-cli
|
|
37
38
|
bundle install
|
|
38
39
|
bundle exec rake -T
|
|
39
40
|
```
|
|
40
41
|
|
|
41
|
-
For testing instructions, refer to [Running Tests](#running-tests).
|
|
42
|
+
For detailed testing instructions, please refer to [Running Tests](#running-tests).
|
|
42
43
|
|
|
43
44
|
### How to Contribute
|
|
44
45
|
|
|
45
|
-
To submit a contribution:
|
|
46
|
+
To submit a contribution, follow these steps:
|
|
46
47
|
|
|
47
48
|
1. **Fork** the repository on GitHub.
|
|
48
49
|
|
|
49
|
-
1. **Create a feature branch** for your changes.
|
|
50
|
+
1. **Create a feature branch** specifically for your changes.
|
|
50
51
|
|
|
51
52
|
1. **Implement** your feature or bug fix.
|
|
52
53
|
|
|
53
54
|
1. **Write tests** to ensure your changes are robust and prevent regressions.
|
|
54
55
|
|
|
55
|
-
1. Run `rubocop` to ensure your code
|
|
56
|
+
1. **Run** `rubocop` to ensure your code adheres to the Ruby style guide.
|
|
56
57
|
|
|
57
|
-
1. Update `CHANGELOG.md` with a summary of your changes.
|
|
58
|
+
1. **Update** `CHANGELOG.md` with a concise summary of your changes.
|
|
58
59
|
|
|
59
|
-
1. Submit a
|
|
60
|
+
1. **Submit a pull request** with a detailed description of your work.
|
|
60
61
|
|
|
61
62
|
> [!TIP]
|
|
62
|
-
>
|
|
63
|
+
> Keep pull requests focused; include only changes relevant to the specific feature or fix.
|
|
63
64
|
|
|
64
65
|
## Architecture
|
|
65
66
|
|
|
66
|
-
The
|
|
67
|
+
The `aspera-cli` architecture is designed to be modular and extensible.
|
|
67
68
|
|
|
68
69
|

|
|
69
70
|
|
|
70
71
|
### Structure Highlights
|
|
71
72
|
|
|
72
|
-
- Entry Point
|
|
73
|
+
- **Entry Point**:
|
|
73
74
|
|
|
74
|
-
`lib/aspera/cli/main.rb
|
|
75
|
+
`lib/aspera/cli/main.rb` contains the core CLI startup logic.
|
|
75
76
|
|
|
76
|
-
- Plugins
|
|
77
|
+
- **Plugins**:
|
|
77
78
|
|
|
78
|
-
Located in `lib/aspera/cli/plugins
|
|
79
|
+
Located in `lib/aspera/cli/plugins`, these extend CLI functionality and encapsulate specific features.
|
|
79
80
|
|
|
80
|
-
- Transfer Agents
|
|
81
|
+
- **Transfer Agents**:
|
|
81
82
|
|
|
82
|
-
|
|
83
|
+
Located in `lib/aspera/agent`, these components manage data transfer operations.
|
|
83
84
|
|
|
84
|
-
|
|
85
|
+
Detailed class diagrams are available in <docs/uml.png>
|
|
85
86
|
|
|
86
87
|
## Ruby Environment
|
|
87
88
|
|
|
88
|
-
`aspera-cli` is
|
|
89
|
-
You can
|
|
89
|
+
`aspera-cli` is built with Ruby.
|
|
90
|
+
You can manage your Ruby installation using your preferred tool (e.g., `rbenv`, `rvm`, or a system package manager).
|
|
90
91
|
|
|
91
92
|
To start with a clean state and remove all installed gems:
|
|
92
93
|
|
|
93
|
-
```
|
|
94
|
+
```shell
|
|
94
95
|
bundle exec rake tools:clean_gems
|
|
95
96
|
```
|
|
96
97
|
|
|
97
98
|
> [!TIP]
|
|
98
|
-
> This is
|
|
99
|
+
> This is particularly useful when testing across different Ruby versions or preparing for a new release.
|
|
99
100
|
|
|
100
101
|
## Toolchain
|
|
101
102
|
|
|
102
|
-
The build system
|
|
103
|
+
The build system is powered by Ruby's `rake`.
|
|
103
104
|
|
|
104
|
-
### Environment
|
|
105
|
+
### Environment Configuration
|
|
105
106
|
|
|
106
|
-
|
|
107
|
+
The following environment variables and macros control specific build behaviors:
|
|
107
108
|
|
|
108
|
-
| Environment variable | Description
|
|
109
|
-
|
|
110
|
-
| `ASPERA_CLI_TEST_CONF_URL` | URL for configuration file
|
|
111
|
-
| `ASPERA_CLI_DOC_CHECK_LINKS`|
|
|
112
|
-
| `
|
|
113
|
-
| `
|
|
114
|
-
| `ENABLE_COVERAGE` |
|
|
115
|
-
| `SIGNING_KEY` | Path to the signing key used
|
|
116
|
-
| `SIGNING_KEY_PEM` | PEM of signing key.
|
|
109
|
+
| Environment variable | Contents | Description |
|
|
110
|
+
|-----------------------------|------------| -------------------------------------------------------------|
|
|
111
|
+
| `ASPERA_CLI_TEST_CONF_URL` | URL | URL for the configuration file containing secrets for tests. |
|
|
112
|
+
| `ASPERA_CLI_DOC_CHECK_LINKS`| `yes`/`no` | Validates that links exist during documentation generation. |
|
|
113
|
+
| `LOG_SECRETS` | `yes`/`no` | Toggles the logging of secrets in `rake` tasks. |
|
|
114
|
+
| `LOG_LEVEL` | `debug`, ... | Sets the logging verbosity for `rake` tasks. |
|
|
115
|
+
| `ENABLE_COVERAGE` | set/unset | Enables test coverage analysis when defined. |
|
|
116
|
+
| `SIGNING_KEY` | File path | Path to the signing key used for building the gem file. |
|
|
117
|
+
| `SIGNING_KEY_PEM` | PEM Value | The PEM content of the signing key. |
|
|
117
118
|
|
|
118
|
-
These can be set
|
|
119
|
+
These values can be set as standard environment variables or passed directly to the `rake` command.
|
|
119
120
|
|
|
120
|
-
Setting `SIGNING_KEY_PEM`
|
|
121
|
+
Setting `SIGNING_KEY_PEM` automatically generates a file at `$HOME/.gem/signing_key.pem` and sets the `SIGNING_KEY` variable accordingly.
|
|
121
122
|
|
|
122
123
|
> [!NOTE]
|
|
123
|
-
>
|
|
124
|
-
> Others are intended for use on the command line.
|
|
124
|
+
> `ASPERA_CLI_TEST_CONF_URL` is typically defined in your shell profile for development, while others are usually for ad-hoc command-line use.
|
|
125
125
|
|
|
126
|
-
To
|
|
126
|
+
To run the CLI directly from your source directory, add the following to your shell profile (adjust the path as necessary):
|
|
127
127
|
|
|
128
|
-
```
|
|
128
|
+
```shell
|
|
129
129
|
dev_ascli=$HOME/github/aspera-cli
|
|
130
130
|
export PATH=$dev_ascli/bin:$PATH
|
|
131
131
|
export RUBYLIB=$dev_ascli/lib:$RUBYLIB
|
|
@@ -135,83 +135,83 @@ export RUBYLIB=$dev_ascli/lib:$RUBYLIB
|
|
|
135
135
|
|
|
136
136
|
Documentation is generated with `pandoc` and `LaTeX`.
|
|
137
137
|
|
|
138
|
-
The
|
|
138
|
+
The project utilizes the **IBM Plex font**.
|
|
139
|
+
Installation instructions can be found at [IBM Plex](https://www.ibm.com/plex/).
|
|
139
140
|
|
|
140
|
-
On macOS,
|
|
141
|
+
On macOS, install `lualatex` and required packages via Homebrew:
|
|
141
142
|
|
|
142
|
-
```
|
|
143
|
+
```shell
|
|
143
144
|
brew install texlive
|
|
144
145
|
```
|
|
145
146
|
|
|
146
|
-
If
|
|
147
|
+
If using an alternative installation method, ensure the following packages are present:
|
|
147
148
|
|
|
148
|
-
```
|
|
149
|
+
```shell
|
|
149
150
|
tlmgr update --self
|
|
150
151
|
tlmgr install fvextra selnolig lualatex-math
|
|
151
152
|
```
|
|
152
153
|
|
|
153
|
-
|
|
154
|
+
- Validate URLs during generation: `ASPERA_CLI_DOC_CHECK_LINKS=yes`.
|
|
154
155
|
|
|
155
|
-
|
|
156
|
+
- Debug the generation process: `ASPERA_CLI_DOC_DEBUG=debug`.
|
|
156
157
|
|
|
157
|
-
|
|
158
|
+
- Build the documentation:
|
|
158
159
|
|
|
159
|
-
```
|
|
160
|
+
```shell
|
|
160
161
|
rake doc:build
|
|
161
162
|
```
|
|
162
163
|
|
|
163
164
|
## Test Environment
|
|
164
165
|
|
|
165
|
-
|
|
166
|
+
Detailed testing information can be found in <tests/README.md>.
|
|
166
167
|
|
|
167
168
|
## Build
|
|
168
169
|
|
|
169
|
-
|
|
170
|
+
To build an unsigned gem:
|
|
170
171
|
|
|
171
|
-
```
|
|
172
|
+
```shell
|
|
172
173
|
bundle install
|
|
173
174
|
bundle exec rake unsigned
|
|
174
175
|
```
|
|
175
176
|
|
|
176
|
-
|
|
177
|
+
To exclude optional gems from the installation:
|
|
177
178
|
|
|
178
|
-
```
|
|
179
|
+
```shell
|
|
179
180
|
bundle config set without optional
|
|
180
181
|
```
|
|
181
182
|
|
|
182
183
|
### Signed gem
|
|
183
184
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
The gem is signed with the public certificate found in `certs` and the private key specified by `SIGNING_KEY` (kept secret by the maintainer).
|
|
185
|
+
Generating a signed gem requires a **private key**, specified via the `SIGNING_KEY` environment variable.
|
|
186
|
+
The gem is signed using the public certificate in `certs` and the **private key**.
|
|
187
187
|
|
|
188
|
-
```
|
|
188
|
+
```shell
|
|
189
189
|
bundle exec rake SIGNING_KEY=/path/to/vault/gem-private_key.pem
|
|
190
190
|
```
|
|
191
191
|
|
|
192
|
-
|
|
192
|
+
For more details, see <certs/README.md>.
|
|
193
193
|
|
|
194
|
-
### gRPC stubs for
|
|
194
|
+
### gRPC stubs for Transfer SDK
|
|
195
195
|
|
|
196
|
-
|
|
196
|
+
To update the stubs:
|
|
197
197
|
|
|
198
|
-
```
|
|
198
|
+
```shell
|
|
199
199
|
bundle exec rake tools:grpc
|
|
200
200
|
```
|
|
201
201
|
|
|
202
|
-
|
|
202
|
+
This task downloads the latest `.proto` files and compiles them into the Ruby source files included in the repository.
|
|
203
203
|
|
|
204
204
|
## Container image build
|
|
205
205
|
|
|
206
|
-
|
|
206
|
+
Refer to the [Container build guide](./container/README.md).
|
|
207
207
|
|
|
208
208
|
## Single executable build
|
|
209
209
|
|
|
210
|
-
|
|
210
|
+
Refer to the [Executable build guide](build/binary/README.md).
|
|
211
211
|
|
|
212
|
-
To list
|
|
212
|
+
To list related `rake` tasks:
|
|
213
213
|
|
|
214
|
-
```
|
|
214
|
+
```shell
|
|
215
215
|
bundle exec rake -T ^binary:
|
|
216
216
|
```
|
|
217
217
|
|
|
@@ -219,87 +219,95 @@ bundle exec rake -T ^binary:
|
|
|
219
219
|
|
|
220
220
|
### Branching Strategy
|
|
221
221
|
|
|
222
|
-
This project
|
|
223
|
-
During
|
|
222
|
+
This project maintains a single `main` branch.
|
|
223
|
+
During development, the version in `lib/aspera/cli/version.rb` includes a `.pre` suffix (e.g., `x.y.z.pre`).
|
|
224
|
+
|
|
225
|
+
Contributions are handled as follows:
|
|
224
226
|
|
|
225
|
-
|
|
227
|
+
- **Direct commits** to `main`: Permitted for minor changes.
|
|
226
228
|
|
|
227
|
-
-
|
|
228
|
-
- Via feature branches with pull requests for larger changes
|
|
229
|
+
- **Feature branches**: Required for significant changes via pull requests.
|
|
229
230
|
|
|
230
|
-
### Checklist
|
|
231
|
+
### Pre-Release Checklist
|
|
231
232
|
|
|
232
|
-
|
|
233
|
+
Before a new release, ensure the following:
|
|
233
234
|
|
|
234
|
-
-
|
|
235
|
+
- **Pass all tests**:
|
|
235
236
|
|
|
236
|
-
```
|
|
237
|
+
```shell
|
|
237
238
|
bundle exec rake test:run
|
|
238
239
|
```
|
|
239
240
|
|
|
240
|
-
- Verify
|
|
241
|
+
- **Verify container builds** (using the local gem):
|
|
241
242
|
|
|
242
|
-
```
|
|
243
|
+
```shell
|
|
243
244
|
bundle exec rake container:build'[local]'
|
|
244
245
|
bundle exec rake container:test
|
|
245
246
|
```
|
|
246
247
|
|
|
248
|
+
- **Check documentation links**:
|
|
249
|
+
|
|
250
|
+
```shell
|
|
251
|
+
bundle exec rake doc:build ASPERA_CLI_DOC_CHECK_LINKS=yes
|
|
252
|
+
```
|
|
253
|
+
|
|
247
254
|
### Automated Release Process
|
|
248
255
|
|
|
249
|
-
Releases are
|
|
256
|
+
Releases are managed through the GitHub Actions UI via the **New Release on GitHub** workflow (`.github/workflows/release.yml`).
|
|
257
|
+
|
|
258
|
+
1. Navigate to **Actions** > **New Release on GitHub**
|
|
259
|
+
2. Select **Run workflow**
|
|
260
|
+
3. (Optionally) Specify:
|
|
261
|
+
- **Release version**: Defaults to the current `version.rb` value (minus the `.pre` suffix).
|
|
250
262
|
|
|
251
|
-
|
|
263
|
+
e.g. current `a.b.c.pre` → `a.b.c`.
|
|
264
|
+
- **Next development version**: Defaults to an incremented minor version with the `.pre` suffix.
|
|
252
265
|
|
|
253
|
-
|
|
254
|
-
2. Click **Run workflow**
|
|
255
|
-
3. Optionally specify:
|
|
256
|
-
- **Release version**: The version to release. If left empty, uses the current version from `version.rb` without the `.pre` suffix.
|
|
257
|
-
- **Next development version**: The next version to prepare for. If left empty, auto-increments the minor version. The `.pre` suffix is added automatically.
|
|
266
|
+
e.g. release `a.b.c` → `a.(b+1).0.pre`.
|
|
258
267
|
4. Click **Run workflow**
|
|
259
268
|
|
|
260
|
-
The workflow
|
|
269
|
+
The automated workflow performs the following:
|
|
261
270
|
|
|
262
|
-
1. Updates `version.rb`
|
|
263
|
-
2. Rebuilds documentation (PDF
|
|
271
|
+
1. Updates `version.rb` to the release version
|
|
272
|
+
2. Rebuilds all documentation (PDF and Markdown)
|
|
264
273
|
3. Commits the changes
|
|
265
274
|
4. Creates and pushes the release tag
|
|
266
275
|
5. Triggers the `deploy` workflow to publish to [rubygems.org](https://rubygems.org/gems/aspera-cli)
|
|
267
|
-
6.
|
|
268
|
-
7. Commits and pushes the version bump
|
|
276
|
+
6. Increments `version.rb` to the next development version.
|
|
277
|
+
7. Commits and pushes the version bump to `main`.
|
|
269
278
|
|
|
270
279
|
### Manual Release Process (Alternative)
|
|
271
280
|
|
|
272
|
-
If
|
|
273
|
-
Basically, follow the same procedure as in the GitHub action:
|
|
281
|
+
If necessary, you can mirror the automated process manually:
|
|
274
282
|
|
|
275
283
|
- Update the version in `lib/aspera/cli/version.rb` (remove `.pre` suffix)
|
|
276
284
|
|
|
277
|
-
- Build the PDF manual
|
|
285
|
+
- Build the PDF manual:
|
|
278
286
|
|
|
279
287
|
```shell
|
|
280
288
|
bundle exec rake doc:build
|
|
281
289
|
```
|
|
282
290
|
|
|
283
|
-
- Build the signed
|
|
291
|
+
- Build the signed gem:
|
|
284
292
|
|
|
285
293
|
```shell
|
|
286
294
|
bundle exec rake SIGNING_KEY=/path/to/vault/gem-private_key.pem
|
|
287
295
|
```
|
|
288
296
|
|
|
289
|
-
-
|
|
297
|
+
- Tag the release and push to GitHub:
|
|
290
298
|
|
|
291
299
|
```shell
|
|
292
300
|
bundle exec rake release_tag
|
|
293
301
|
```
|
|
294
302
|
|
|
295
|
-
This
|
|
303
|
+
This triggers the `.github/workflows/deploy.yml` action to publish to RubyGems.
|
|
296
304
|
|
|
297
|
-
-
|
|
305
|
+
- Update `version.rb` to the next `.pre` development version.
|
|
298
306
|
|
|
299
307
|
## Future Improvements
|
|
300
308
|
|
|
301
|
-
-
|
|
302
|
-
-
|
|
303
|
-
-
|
|
304
|
-
-
|
|
305
|
-
-
|
|
309
|
+
- Evaluate replacing custom REST and OAuth implementations with standard gems:
|
|
310
|
+
- [rest-client](https://github.com/rest-client/rest-client)
|
|
311
|
+
- [oauth2](https://github.com/oauth-xx/oauth2)
|
|
312
|
+
- Integrate `thor` <http://whatisthor.com/> or another standard Ruby CLI framework.
|
|
313
|
+
- Explore [Traveling Ruby](https://github.com/phusion/traveling-ruby) for distribution.
|
data/README.md
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
[](https://bestpractices.coreinfrastructure.org/projects/5861)
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
|
|
8
|
+

|
|
9
|
+
|
|
8
10
|
**`ascli`** is the command-line interface for IBM Aspera products.
|
|
9
11
|
Use it from the terminal or in scripts to:
|
|
10
12
|
|
|
@@ -18,8 +20,8 @@ Choose what best suits you:
|
|
|
18
20
|
|
|
19
21
|
| Resource | Link |
|
|
20
22
|
| -------- | ---- |
|
|
21
|
-
| **Online manual** | [docs/README.md](docs/README.md) |
|
|
22
|
-
| **PDF manual** | In [
|
|
23
|
+
| **Online manual** | [GitHub docs/README.md](https://github.com/IBM/aspera-cli/blob/main/docs/README.md) |
|
|
24
|
+
| **PDF manual** | In [GitHub Releases](https://github.com/IBM/aspera-cli/releases) |
|
|
23
25
|
| **RubyGems** | [rubygems.org/gems/aspera-cli](https://rubygems.org/gems/aspera-cli) |
|
|
24
26
|
| **RubyDoc** | [rubydoc.info/gems/aspera-cli](https://www.rubydoc.info/gems/aspera-cli) |
|
|
25
27
|
| **Docsify** | [online](https://docsify-this.net/?basePath=https://raw.githubusercontent.com/IBM/aspera-cli/main/docs&homepage=README.md&sidebar=true&browser-tab-title=Aspera%20CLI%20Manual&hide-credits=true&maxLevel=4&externalLinkTarget=_blank&image-captions=true&dark-mode=auto) |
|
|
@@ -34,7 +36,7 @@ ascli config transferd install
|
|
|
34
36
|
```
|
|
35
37
|
|
|
36
38
|
The second command installs the **FASP** transfer engine (`ascp`).
|
|
37
|
-
For other install methods (single executable, Docker, Chocolatey, Homebrew), see the [user manual](docs/README.md#installation).
|
|
39
|
+
For other install methods (single executable, Docker, Chocolatey, Homebrew), see the [user manual](https://github.com/IBM/aspera-cli/blob/main/docs/README.md#installation).
|
|
38
40
|
|
|
39
41
|
**Quick check:**
|
|
40
42
|
|
|
@@ -44,13 +46,13 @@ ascli -v
|
|
|
44
46
|
|
|
45
47
|
## Contributing
|
|
46
48
|
|
|
47
|
-
- **Bugs & features:** [BUGS.md](BUGS.md)
|
|
48
|
-
- **How to contribute:** [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
49
|
-
- **Release notes:** [CHANGELOG.md](CHANGELOG.md)
|
|
49
|
+
- **Bugs & features:** [BUGS.md](https://github.com/IBM/aspera-cli/blob/main/BUGS.md)
|
|
50
|
+
- **How to contribute:** [CONTRIBUTING.md](https://github.com/IBM/aspera-cli/blob/main/CONTRIBUTING.md)
|
|
51
|
+
- **Release notes:** [CHANGELOG.md](https://github.com/IBM/aspera-cli/blob/main/CHANGELOG.md)
|
|
50
52
|
|
|
51
53
|
Commands map to Aspera REST APIs; see the manual for options.
|
|
52
54
|
For debugging, use `--log-level=debug`.
|
|
53
55
|
|
|
54
56
|
## License
|
|
55
57
|
|
|
56
|
-
[Apache-2.0](LICENSE)
|
|
58
|
+
[Apache-2.0](https://github.com/IBM/aspera-cli/blob/main/LICENSE)
|
data/lib/aspera/agent/direct.rb
CHANGED
|
@@ -25,25 +25,27 @@ module Aspera
|
|
|
25
25
|
private_constant :LISTEN_LOCAL_ADDRESS, :SELECT_AVAILABLE_PORT
|
|
26
26
|
|
|
27
27
|
# Options: same as values in option `transfer_info`
|
|
28
|
-
#
|
|
29
|
-
#
|
|
30
|
-
# @param
|
|
31
|
-
# @param
|
|
32
|
-
# @param
|
|
33
|
-
# @param client_ssh_key [String] (
|
|
34
|
-
# @param
|
|
28
|
+
# (Args) : Options that influence `ascp` arguments.
|
|
29
|
+
#
|
|
30
|
+
# @param ascp_args [Array] (Args) Optional Additional arguments to ascp
|
|
31
|
+
# @param wss [Boolean] (Args) `true`: if both SSH and wss in ts: prefer wss
|
|
32
|
+
# @param quiet [Boolean] (Args) By default no native `ascp` progress bar
|
|
33
|
+
# @param client_ssh_key [String] (Args) Client SSH key option (from CLIENT_SSH_KEY_OPTIONS)
|
|
34
|
+
# @param trusted_certs [Array<String>] (Args) (WSS) Optional list of files with trusted certificates (stores)
|
|
35
|
+
# @param check_ignore_cb [Proc] (Args) (WSS) Callback with host,port to check if WSS connection shall ignore certificate validity
|
|
35
36
|
# @param spawn_timeout_sec [Integer] Timeout for ascp spawn
|
|
36
37
|
# @param spawn_delay_sec [Integer] Optional delay to start between sessions
|
|
37
38
|
# @param multi_incr_udp [Boolean] Optional `true`: increment UDP port for each session
|
|
38
39
|
# @param resume [Hash] Optional Resume policy
|
|
40
|
+
# @param monitor [Boolean] Set to `false` to eliminate management port
|
|
39
41
|
# @param management_cb [Proc] callback for management events
|
|
40
42
|
# @param base_options [Hash] other options for base class
|
|
41
43
|
def initialize(
|
|
42
44
|
ascp_args: nil,
|
|
43
45
|
wss: true,
|
|
44
46
|
quiet: true,
|
|
45
|
-
trusted_certs: nil,
|
|
46
47
|
client_ssh_key: nil,
|
|
48
|
+
trusted_certs: nil,
|
|
47
49
|
check_ignore_cb: nil,
|
|
48
50
|
spawn_timeout_sec: 2,
|
|
49
51
|
spawn_delay_sec: 2,
|
data/lib/aspera/agent/factory.rb
CHANGED
|
@@ -22,11 +22,11 @@ module Aspera
|
|
|
22
22
|
Dir.children(File.dirname(File.expand_path(__FILE__)))
|
|
23
23
|
.select{ |file| file.end_with?(Environment::RB_EXT)}
|
|
24
24
|
.map{ |file| File.basename(file, Environment::RB_EXT).to_sym}
|
|
25
|
-
.reject{ |item| IGNORED_ITEMS.include?(item)}.
|
|
26
|
-
|
|
25
|
+
.reject{ |item| IGNORED_ITEMS.include?(item)}.to_h do |agent_sym|
|
|
26
|
+
[agent_sym, {
|
|
27
27
|
long: agent_sym.to_s.capitalize,
|
|
28
28
|
short: agent_sym.eql?(:direct) ? :a : agent_sym.to_s[0].to_sym
|
|
29
|
-
}.freeze
|
|
29
|
+
}.freeze]
|
|
30
30
|
end.freeze
|
|
31
31
|
private_constant :IGNORED_ITEMS
|
|
32
32
|
end
|
data/lib/aspera/agent/node.rb
CHANGED
|
@@ -59,7 +59,7 @@ module Aspera
|
|
|
59
59
|
ts_tags = transfer_spec['tags']
|
|
60
60
|
ts_tags[Transfer::Spec::TAG_RESERVED]['xfer_retry'] ||= 150 if ts_tags.is_a?(Hash) && ts_tags[Transfer::Spec::TAG_RESERVED].is_a?(Hash)
|
|
61
61
|
# Optimization in case of sending to the same node
|
|
62
|
-
# TODO: probably remove this, as /etc/hosts shall be used for that
|
|
62
|
+
# TODO: probably remove this, as /etc/hosts shall be used for that on server side.
|
|
63
63
|
transfer_spec['remote_host'] = '127.0.0.1' if !transfer_spec['wss_enabled'] && transfer_spec['remote_host'].eql?(URI.parse(node_api_.base_url).host)
|
|
64
64
|
resp = node_api_.create('ops/transfers', transfer_spec)
|
|
65
65
|
@transfer_id = resp['id']
|
data/lib/aspera/api/alee.rb
CHANGED