Skip to content

Commit be9043c

Browse files
authored
Merge pull request #50 from ncsa/release/4.8.0
Release 4.8.0
2 parents 3b45fd1 + e76927c commit be9043c

File tree

41 files changed

+240
-58
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+240
-58
lines changed

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,20 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](http://keepachangelog.com/)
55
and this project adheres to [Semantic Versioning](http://semver.org/).
66

7+
## [4.8.0] - 2025-07-23
8+
9+
### Added
10+
- Will now use nodes with datawolf/node-purpose={core,worker} to launch engine and jobs.[#49](https://github.com/ncsa/datawolf/issues/49)
11+
12+
### Changed
13+
- WorkflowToolData to allow optional datasets [#39](https://github.com/ncsa/datawolf/issues/39)
14+
- IncoreFileStorage to use the filename as the dataset name [#47](https://github.com/ncsa/datawolf/issues/47)
15+
16+
### Fixed
17+
- Build failure from update to maven assembly plugin configuration element [#44](https://github.com/ncsa/datawolf/issues/44)
18+
- Workflow steps didn't fail when tools used wildcards to find outputs and no outputs were found [#41](https://github.com/ncsa/datawolf/issues/41)
19+
20+
721
## [4.7.0] - 2024-10-29
822

923
### Added

Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ ENV [email protected] \
2323
KUBERNETES_DATA="/data" \
2424
KUBERNETES_CPU=2 \
2525
KUBERNETES_MEMORY=4 \
26+
KUBERNETES_WORKER_NODE_AFFINITY_REQUIRED=false \
2627
DATASET_PERMISSIONS=private
2728

2829
EXPOSE 8888

charts/datawolf/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ version: 1.1.0
1313
# This is the version number of the application being deployed. This version number should be
1414
# incremented each time you make changes to the application. Versions are not expected to
1515
# follow Semantic Versioning. They should reflect the version the application is using.
16-
appVersion: 4.7.0
16+
appVersion: 4.8.0
1717

1818
# List of people that maintain this helm chart.
1919
maintainers:

charts/datawolf/templates/deployment.yaml

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ spec:
9494
value: {{ .Values.jobs.cpu | quote }}
9595
- name: KUBERNETES_MEMORY
9696
value: {{ .Values.jobs.memory | quote }}
97+
- name: KUBERNETES_WORKER_NODE_AFFINITY_REQUIRED
98+
value: {{ .Values.jobs.nodeAffinityRequired | quote }}
9799
{{- if .Values.extraEnvVars }}
98100
{{ .Values.extraEnvVars | toYaml | nindent 12 }}
99101
{{- end }}
@@ -131,8 +133,27 @@ spec:
131133
nodeSelector:
132134
{{- toYaml . | nindent 8 }}
133135
{{- end }}
134-
{{- with .Values.affinity }}
135136
affinity:
137+
nodeAffinity:
138+
{{- if .Values.engine.nodeAffinityRequired }}
139+
requiredDuringSchedulingIgnoredDuringExecution:
140+
nodeSelectorTerms:
141+
- matchExpressions:
142+
- key: datawolf/node-purpose
143+
operator: In
144+
values:
145+
- core
146+
{{- else }}
147+
preferredDuringSchedulingIgnoredDuringExecution:
148+
- weight: 1
149+
preference:
150+
matchExpressions:
151+
- key: datawolf/node-purpose
152+
operator: In
153+
values:
154+
- core
155+
{{- end }}
156+
{{- with .Values.affinity }}
136157
{{- toYaml . | nindent 8 }}
137158
{{- end }}
138159
{{- with .Values.tolerations }}

charts/datawolf/values.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,18 @@ engine:
2626
extralocalexecutor: 1
2727
localexecutorthreads: 8
2828
pagesize: 250
29+
# default node selector for engine, this will use the nodes labeled with datawolf/node-purpose=core
30+
# if set to true the label must be present on the node, otherwise it will prefer the node.
31+
nodeAffinityRequired: false
2932

3033
jobs:
3134
# default number of cpus per job
3235
cpu: 2.0
3336
# default memory in GB per job
3437
memory: 4.0
38+
# default node selector for jobs, this will use the nodes labeled with datawolf/node-purpose=core
39+
# if set to true the label must be present on the node, otherwise it will prefer the node.
40+
nodeAffinityRequired: false
3541

3642
extraEnvVars: {}
3743

datawolf-core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>edu.illinois.ncsa</groupId>
77
<artifactId>datawolf</artifactId>
8-
<version>4.7.0</version>
8+
<version>4.8.0</version>
99
</parent>
1010
<artifactId>datawolf-core</artifactId>
1111

datawolf-core/src/main/java/edu/illinois/ncsa/datawolf/Engine.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import javax.inject.Named;
4646
import javax.inject.Singleton;
4747

48+
import edu.illinois.ncsa.datawolf.domain.WorkflowToolData;
4849
import org.slf4j.Logger;
4950
import org.slf4j.LoggerFactory;
5051

@@ -566,17 +567,22 @@ public void run() {
566567
if (local >= (LocalExecutor.getWorkers() + getExtraLocalExecutor())) {
567568
canrun = 1;
568569
} else {
569-
// Transaction transaction = null;
570+
// Map of step inputs and whether they are required
571+
Map<String, Boolean> requiredInputs = new HashMap<>();
570572
try {
571573
unitOfWork.begin();
572-
// transaction =
573-
// SpringData.getTransaction();
574-
// transaction.start();
575574

576575
execution = executionDao.findOne(exec.getExecutionId());
577576
execution.getDatasets().values();
578577
step = workflowStepDao.findOne(exec.getStepId());
579-
step.getInputs().values();
578+
579+
// Populate map of step inputs and whether they are required
580+
for(String inputKey : step.getInputs().values()) {
581+
WorkflowToolData inputData = step.getInput(inputKey);
582+
requiredInputs.put(inputKey, inputData.isAllowNull());
583+
}
584+
585+
// step.getInputs().values();
580586
} catch (Exception e) {
581587
logger.error("Error getting job information.", e);
582588
} finally {
@@ -594,7 +600,8 @@ public void run() {
594600
if (step != null) {
595601
for (String id : step.getInputs().values()) {
596602
if (execution != null) {
597-
if (!execution.hasDataset(id)) {
603+
boolean allowNull = requiredInputs.get(id);
604+
if (!execution.hasDataset(id) && !allowNull) {
598605
canrun = 1;
599606
} else if (execution.getDataset(id) == null) {
600607
canrun = 2;

datawolf-doc/doc/manual/index.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -247,18 +247,18 @@
247247

248248
https://opensource.ncsa.illinois.edu/projects/artifacts.php?key=WOLF
249249

250-
By default, the latest release is selected in the page (currently 4.7.0). To get early access to development releases, check the box **Show also prereleases.**
250+
By default, the latest release is selected in the page (currently 4.8.0). To get early access to development releases, check the box **Show also prereleases.**
251251

252252
* Click on **Version**
253-
* Select **4.7.0**
254-
* Under **Files** select **datawolf-webapp-all-4.7.0-bin.zip**
253+
* Select **4.8.0**
254+
* Under **Files** select **datawolf-webapp-all-4.8.0-bin.zip**
255255
* Click **I Accept** to accept the License.
256256

257257
This will give you the latest stable build that includes both the Data Wolf Server and the Web Editor. You can also find links to the javacode there as well as the manual. The link to the source code can be found at the end of this document.
258258

259259
### Installation and Setup
260260

261-
To install the files necessary for the Server and Editor, find where you downloaded Data Wolf and unzip it somewhere. This will create a folder called **datawolf-webapp-all-4.7.0**. In the next few sections, we'll discuss some of the important files that come with the installation you just unzipped so you can tailor your setup to meet your needs. If you wish to skip this, you can go directly to the section **Running Data Wolf Server and Editor**.
261+
To install the files necessary for the Server and Editor, find where you downloaded Data Wolf and unzip it somewhere. This will create a folder called **datawolf-webapp-all-4.8.0**. In the next few sections, we'll discuss some of the important files that come with the installation you just unzipped so you can tailor your setup to meet your needs. If you wish to skip this, you can go directly to the section **Running Data Wolf Server and Editor**.
262262

263263
#### Data Wolf properties
264264

@@ -443,7 +443,7 @@
443443

444444
#### Launch Scripts
445445

446-
If you go back to the folder **Data Wolf-webapp-all-4.7.0** you will see a sub-folder called **bin**, open this. Inside you will find two scripts, **datawolf-service** and **datawolf-service.bat**. The latter is intended for running Data Wolf on a Windows machine and the former is for running on Mac & Linux. As with the previous section, knowledge of this file is not required unless you are interested in configuring the Data Wolf Server and Editor beyond the default settings. We will show snippets of the file **datawolf-service** and discuss what each section is configuring.
446+
If you go back to the folder **Data Wolf-webapp-all-4.8.0** you will see a sub-folder called **bin**, open this. Inside you will find two scripts, **datawolf-service** and **datawolf-service.bat**. The latter is intended for running Data Wolf on a Windows machine and the former is for running on Mac & Linux. As with the previous section, knowledge of this file is not required unless you are interested in configuring the Data Wolf Server and Editor beyond the default settings. We will show snippets of the file **datawolf-service** and discuss what each section is configuring.
447447

448448
```
449449
# port for the jetty server

datawolf-doc/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>edu.illinois.ncsa</groupId>
55
<artifactId>datawolf</artifactId>
6-
<version>4.7.0</version>
6+
<version>4.8.0</version>
77
</parent>
88
<artifactId>datawolf-doc</artifactId>
99
</project>

datawolf-domain/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>edu.illinois.ncsa</groupId>
77
<artifactId>datawolf</artifactId>
8-
<version>4.7.0</version>
8+
<version>4.8.0</version>
99
</parent>
1010
<artifactId>datawolf-domain</artifactId>
1111

0 commit comments

Comments
 (0)