Skip to content

Commit

Permalink
Merge pull request #156 from qbicsoftware/development
Browse files Browse the repository at this point in the history
Release PR
  • Loading branch information
KochTobi authored Mar 14, 2023
2 parents afbd407 + 0a3b50c commit 2fc4f02
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 22 deletions.
26 changes: 26 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -191,9 +191,35 @@ Number of datasets found for identifier NGSQSTTS019AW : 1
# Registration 2021-12-15T02:44:09Z
# Size 1.05MB
1.05MB testfile
```
##### Options
When using the subcommand `list`, there are further options available:
```
--with-checksum print the crc32 checksum as second column.
Default: false
```
```bash
[bbbfs01@u-003-ncmu03 ~]$ java -jar postman.jar list --with-checksum -u bbbfs01 NGSQSTTS016A8 NGSQSTTS019AW
Provide password for user 'bbbfs01':
Number of datasets found for identifier NGSQSTTS016A8 : 1
# Dataset NGSQSTTS016A8 (20211215154407692-131872)
# Source QSTTS016A8
# Registration 2021-12-15T02:44:07Z
# Size 2.10MB
1.05MB 83d57075 testfile1
1.05MB dff8e2e2 testfile2
Number of datasets found for identifier NGSQSTTS019AW : 1
# Dataset NGSQSTTS019AW (20211215154408961-131875)
# Source QSTTS019AW
# Registration 2021-12-15T02:44:09Z
# Size 1.05MB
1.05MB 0a84cf87 testfile
```
##### Dataset vs. File
The structure of samples can sometimes seem a little confusing. To clarify the difference of a dataset and a file, you can take a look at the example result above.
- A sample can contain several datasets.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
package life.qbic.io.commandline;

import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;

import java.io.IOException;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import life.qbic.App;
import life.qbic.io.parser.IdentifierParser;
import life.qbic.model.download.Authentication;
Expand All @@ -10,17 +17,10 @@
import org.apache.logging.log4j.Logger;
import picocli.CommandLine;
import picocli.CommandLine.Command;
import picocli.CommandLine.Help.Visibility;
import picocli.CommandLine.Option;
import picocli.CommandLine.Parameters;

import java.io.IOException;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;

import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;

// main command with format specifiers for the usage help message
@Command(name = "postman-cli",
versionProvider = ManifestVersionProvider.class,
Expand Down Expand Up @@ -93,12 +93,15 @@ void download(
parameterListHeading = "%nParameters:%n",
optionListHeading = "%nOptions:%n",
footerHeading = "%n")
void listDatasets()
void listDatasets(
@Option(names = "--with-checksum", defaultValue = "false", description = "print the crc32 checksum as second column.", showDefaultValue = Visibility.ALWAYS)
boolean withChecksum)
throws IOException {

Authentication authentication = App.loginToOpenBIS(passwordEnvVariable, user, as_url);
QbicDataDisplay qbicDataDisplay = new QbicDataDisplay(as_url,
dss_urls,
authentication.getSessionToken());
authentication.getSessionToken(), withChecksum);
ids = verifyProvidedIdentifiers();
qbicDataDisplay.getInformation(ids, suffixes);
}
Expand Down
37 changes: 25 additions & 12 deletions src/main/java/life/qbic/model/download/QbicDataDisplay.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,18 @@
import ch.ethz.sis.openbis.generic.dssapi.v3.IDataStoreServerApi;
import ch.ethz.sis.openbis.generic.dssapi.v3.dto.datasetfile.DataSetFile;
import ch.systemsx.cisd.common.spring.HttpInvokerUtils;
import life.qbic.model.files.FileSize;
import life.qbic.model.files.FileSizeFormatter;

import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.util.*;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import life.qbic.model.files.FileSize;
import life.qbic.model.files.FileSizeFormatter;

/**
* Lists information about requested datasets and their files
Expand All @@ -31,23 +34,28 @@ public class QbicDataDisplay {

private final QbicDataFinder qbicDataFinder;

private final boolean printWithChecksums;

/**
* Constructor for a QbicDataDisplay instance
*
* @param AppServerUri The openBIS application server URL (AS)
* @param AppServerUri The openBIS application server URL (AS)
* @param dataServerUris The openBIS datastore server URLs (DSS)
* @param sessionToken The session token for the datastore & application servers
* @param sessionToken The session token for the datastore & application servers
*/
public QbicDataDisplay(
String AppServerUri,
List<String> dataServerUris,
String sessionToken) {
String AppServerUri,
List<String> dataServerUris,
String sessionToken,
boolean printWithChecksums) {
this.printWithChecksums = printWithChecksums;
this.sessionToken = sessionToken;
IApplicationServerApi applicationServer;
if (!AppServerUri.isEmpty()) {
applicationServer =
HttpInvokerUtils.createServiceStub(
IApplicationServerApi.class, AppServerUri + IApplicationServerApi.SERVICE_URL, 10000);
HttpInvokerUtils.createServiceStub(
IApplicationServerApi.class, AppServerUri + IApplicationServerApi.SERVICE_URL,
10000);
} else {
applicationServer = null;
}
Expand Down Expand Up @@ -118,7 +126,12 @@ private void printInformation(Map<Sample, List<DataSet>> sampleDataSets, List<St
for (DataSetFile file : sortedFiles) {
String name = getFileName(file);
String fileSize = FileSizeFormatter.format(FileSize.of(file.getFileLength()),6);
System.out.printf("%s\t%s%n", fileSize, name);
int crc32 = file.getChecksumCRC32();
if (printWithChecksums) {
System.out.printf("%s\t%08x\t%s%n", fileSize, crc32, name);
} else {
System.out.printf("%s\t%s%n", fileSize, name);
}
}
System.out.print("\n");
}
Expand Down

0 comments on commit 2fc4f02

Please sign in to comment.