stork issueshttps://gitlab.isc.org/isc-projects/stork/-/issues2024-02-13T14:38:49Zhttps://gitlab.isc.org/isc-projects/stork/-/issues/1293UI code coverage2024-02-13T14:38:49ZSlawek FigielUI code coverageWe have a utility to generate coverage for the backend but not for the frontend. We should fill this gap.
The development of this feature was excluded from #800.We have a utility to generate coverage for the backend but not for the frontend. We should fill this gap.
The development of this feature was excluded from #800.1.16https://gitlab.isc.org/isc-projects/stork/-/issues/1251LDAP hook: Build fails on some Linux distributions2023-12-19T14:47:34ZSlawek FigielLDAP hook: Build fails on some Linux distributionsThe issue was found by @andrei during 1.14 sanity checks: https://gitlab.isc.org/isc-projects/stork/-/issues/1240#note_421471
```
Another one I had forgotten. I understand that this one as well is not a task that you usually run on a ta...The issue was found by @andrei during 1.14 sanity checks: https://gitlab.isc.org/isc-projects/stork/-/issues/1240#note_421471
```
Another one I had forgotten. I understand that this one as well is not a task that you usually run on a tarball.
rake hook:init MODULE=stork-server-ldap; rake hook:build results in error when run on a tarball. It seems like it is not picking up on DEFAULT_HOOK_DIRECTORY.
rm -f
Removing old compiled hooks...
cp go.mod go.sum /tmp/d20231205-1147463-kn7j49
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/tools/golang/go/bin/go mod edit -replace isc.org/stork=../../../../../Descărcări/sanity-checks/stork-1.14.0/backend
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/tools/golang/go/bin/go mod tidy
rake build
Building stork-server-ldap...
mkdir -p build
rm
rm: missing operand
Try 'rm --help' for more information.
rake aborted!
Command failed with status (1): [rm...]
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/hooks/stork-server-ldap/Rakefile:17:in `block in <top (required)>'
Tasks: TOP => build
(See full trace by running task with --trace)
rake aborted!
Command failed with status (1): [rake build...]
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:150:in `block (4 levels) in <top (required)>'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:141:in `block (3 levels) in <top (required)>'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:66:in `block (3 levels) in forEachHook'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:65:in `chdir'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:65:in `block (2 levels) in forEachHook'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:46:in `chdir'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:46:in `block in forEachHook'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:42:in `foreach'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:42:in `forEachHook'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:139:in `block (2 levels) in <top (required)>'
Tasks: TOP => hook:build
(See full trace by running task with --trace)
```1.16https://gitlab.isc.org/isc-projects/stork/-/issues/1234Update the build from sources guide for Ubuntu 20.04 LTS2024-02-06T14:42:33ZSlawek FigielUpdate the build from sources guide for Ubuntu 20.04 LTSSince the Stork build system requires Python 3.10 and Ruby 2.3, [the guide to build Stork from sources](https://gitlab.isc.org/isc-projects/stork/-/wikis/Install) is no longer applicable on Ubuntu 20.04 LTS.
The guide recommends install...Since the Stork build system requires Python 3.10 and Ruby 2.3, [the guide to build Stork from sources](https://gitlab.isc.org/isc-projects/stork/-/wikis/Install) is no longer applicable on Ubuntu 20.04 LTS.
The guide recommends installing Python and Ruby from the package repository, but the available versions of the above dependencies are outdated. Users need to install Python and Ruby from their maintainers' external, official packages. We should mention it in the guide.1.16https://gitlab.isc.org/isc-projects/stork/-/issues/1227Put hook binaries outside /var by default2024-02-02T12:57:44ZSlawek FigielPut hook binaries outside /var by defaultThe problem was reported [on our mailing list](https://lists.isc.org/pipermail/stork-users/2023-November/000231.html).
The default hook directories are `/var/lib/stork-agent/hooks` and `/var/lib/stork-server/hooks`.
But the various Linu...The problem was reported [on our mailing list](https://lists.isc.org/pipermail/stork-users/2023-November/000231.html).
The default hook directories are `/var/lib/stork-agent/hooks` and `/var/lib/stork-server/hooks`.
But the various Linux distros in the `enforcing` mode disallow the libraries from the `/var` directory.
It causes the Stork hooks not to be loaded, producing the message: `failed to map segment from shared object`.1.16https://gitlab.isc.org/isc-projects/stork/-/issues/1292Restore storybook plugins2024-02-13T14:37:10ZSlawek FigielRestore storybook pluginsDue to compatibility problems with the dynamic forms in Angular, we turned off some default Storybook plugins some time ago. We should restore them because they are pretty useful.
List of disabled plugins:
- `@storybook/addon-controls`...Due to compatibility problems with the dynamic forms in Angular, we turned off some default Storybook plugins some time ago. We should restore them because they are pretty useful.
List of disabled plugins:
- `@storybook/addon-controls`
- `@storybook/addon-actions`
This code was implemented originally in #800, but it is out-of-scope of that issue.backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/789Fix strict template typing errors2022-07-05T13:53:28ZSlawek FigielFix strict template typing errorsI enabled the strict template typing option in the TypeScript configuration file (`tsconfig.json`), and I got a long list of minor issues. They shouldn't be dangerous as JavaScript has some flexibility in type interpretation. But fixing ...I enabled the strict template typing option in the TypeScript configuration file (`tsconfig.json`), and I got a long list of minor issues. They shouldn't be dangerous as JavaScript has some flexibility in type interpretation. But fixing them will allow us to enable more advanced features of the TypeScript compiler and get more help from IDE, for example, the IntelliSense feature and type checking in template files. Eliminating these bugs also prevents them from growing and becoming significant issues.
My configuration `tsconfig.json`:
```json
{
...
"angularCompilerOptions": {
...
"strictTemplates": true
}
}
```
Issue list:
```
Error: src/app/config-review-panel/config-review-panel.component.html:50:13 - error TS2322: Type 'string' is not assignable to type 'number'.
50 pageLinkSize="3"
~~~~~~~~~~~~
src/app/config-review-panel/config-review-panel.component.ts:30:18
30 templateUrl: './config-review-panel.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component ConfigReviewPanelComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:20:25 - error TS2322: Type 'string' is not assignable to type 'number'.
20 min="1"
~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:21:25 - error TS2322: Type 'string' is not assignable to type 'number'.
21 max="{{ v6 ? 65535 : 255 }}"
~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:36:25 - error TS2322: Type 'string' is not assignable to type 'number'.
36 min="1"
~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:37:25 - error TS2322: Type 'string' is not assignable to type 'number'.
37 max="{{ v6 ? 65535 : 255 }}"
~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:88:43 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
88 <div [ngSwitch]="fieldControl.data.fieldType" class="p-d-flex p-ai-center p-mt-5 p-ml-3">
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:92:49 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
92 id="{{ fieldControl.data.getInputId() }}"
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:96:29 - error TS2322: Type 'string' is not assignable to type 'boolean'.
96 autoResize="true"
~~~~~~~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:100:53 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
100 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:100:91 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
100 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:106:49 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
106 id="{{ fieldControl.data.getInputId() }}"
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:111:53 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
111 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:111:91 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
111 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:115:46 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
115 <div id="{{ fieldControl.data.getInputId() }}" class="p-inputtext option-field p-p-0">
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:131:54 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
131 inputId="{{ fieldControl.data.getInputId() }}"
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:132:29 - error TS2322: Type 'string' is not assignable to type 'number'.
132 min="0"
~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:133:29 - error TS2322: Type 'string' is not assignable to type 'number'.
133 max="255"
~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:138:53 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
138 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:138:91 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
138 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:145:54 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
145 inputId="{{ fieldControl.data.getInputId() }}"
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:146:29 - error TS2322: Type 'string' is not assignable to type 'number'.
146 min="0"
~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:147:29 - error TS2322: Type 'string' is not assignable to type 'number'.
147 max="65535"
~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:152:53 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
152 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:152:91 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
152 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:159:54 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
159 inputId="{{ fieldControl.data.getInputId() }}"
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:160:29 - error TS2322: Type 'string' is not assignable to type 'number'.
160 min="0"
~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:161:29 - error TS2322: Type 'string' is not assignable to type 'number'.
161 max="4294967295"
~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
0m ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:166:53 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
166 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:166:91 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
166 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:172:49 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
172 id="{{ fieldControl.data.getInputId() }}"
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:177:53 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
177 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:177:91 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
177 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:183:49 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
7m183 id="{{ fieldControl.data.getInputId() }}"
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:188:53 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
188 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:188:91 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
188 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:194:49 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
194 id="{{ fieldControl.data.getInputId(0) }}"
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:200:54 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
200 inputId="{{ fieldControl.data.getInputId(1) }}"
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:202:29 - error TS2322: Type 'string' is not assignable to type 'number'.
202 min="1"
~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:203:29 - error TS2322: Type 'string' is not assignable to type 'number'.
203 max="128"
~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:208:53 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
208 <label for="{{ fieldControl.data.getInputId(0) }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:208:92 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
208 <label for="{{ fieldControl.data.getInputId(0) }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:214:54 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
214 inputId="{{ fieldControl.data.getInputId(0) }}"
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:216:29 - error TS2322: Type 'string' is not assignable to type 'number'.
216 min="0"
~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:217:29 - error TS2322: Type 'string' is not assignable to type 'number'.
217 max="65535"
~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:222:53 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
222 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:222:91 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
222 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:224:54 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
224 inputId="{{ fieldControl.data.getInputId(1) }}"
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:226:29 - error TS2322: Type 'string' is not assignable to type 'number'.
226 min="0"
~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:227:29 - error TS2322: Type 'string' is not assignable to type 'number'.
227 max="16"
~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:238:53 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
238 id="{{ fieldControl.data.getInputId() }}"
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:243:57 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
243 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:243:95 - error TS2339: Property 'data' does not exist on type 'AbstractControl'.
243 <label for="{{ fieldControl.data.getInputId() }}">{{ fieldControl.data.fieldType }}</label>
~~~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-form/dhcp-option-form.component.html:279:17 - error TS2322: Type 'string' is not assignable to type 'boolean'.
279 v6="false"
~~
src/app/dhcp-option-form/dhcp-option-form.component.ts:38:18
38 templateUrl: './dhcp-option-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionFormComponent.
Error: src/app/dhcp-option-set-form/dhcp-option-set-form.component.html:7:10 - error TS2322: Type 'AbstractControl' is not assignable to type 'FormGroup'.
7 [formGroup]="formArray.at(i)"
~~~~~~~~~
src/app/dhcp-option-set-form/dhcp-option-set-form.component.ts:13:18
13 templateUrl: './dhcp-option-set-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionSetFormComponent.
Error: src/app/dhcp-option-set-form/dhcp-option-set-form.component.html:7:10 - error TS2322: Type 'AbstractControl' is not assignable to type 'FormGroup'.
7 [formGroup]="formArray.at(i)"
~~~~~~~~~
src/app/dhcp-option-set-form/dhcp-option-set-form.component.ts:13:18
13 templateUrl: './dhcp-option-set-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component DhcpOptionSetFormComponent.
Error: src/app/events-panel/events-panel.component.html:44:9 - error TS2322: Type 'string' is not assignable to type 'number'.
44 pageLinkSize="3"
~~~~~~~~~~~~
src/app/events-panel/events-panel.component.ts:15:18
15 templateUrl: './events-panel.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component EventsPanelComponent.
Error: src/app/events-panel/events-panel.component.html:74:21 - error TS2322: Type 'string' is not assignable to type 'boolean'.
74 showClear="true"
~~~~~~~~~
src/app/events-panel/events-panel.component.ts:15:18
15 templateUrl: './events-panel.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component EventsPanelComponent.
Error: src/app/events-panel/events-panel.component.html:91:21 - error TS2322: Type 'string' is not assignable to type 'boolean'.
91 showClear="true"
~~~~~~~~~
src/app/events-panel/events-panel.component.ts:15:18
15 templateUrl: './events-panel.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component EventsPanelComponent.
Error: src/app/events-panel/events-panel.component.html:108:21 - error TS2322: Type 'string' is not assignable to type 'boolean'.
108 showClear="true"
~~~~~~~~~
src/app/events-panel/events-panel.component.ts:15:18
15 templateUrl: './events-panel.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component EventsPanelComponent.
Error: src/app/events-panel/events-panel.component.html:125:21 - error TS2322: Type 'string' is not assignable to type 'boolean'.
125 showClear="true"
~~~~~~~~~
src/app/events-panel/events-panel.component.ts:15:18
15 templateUrl: './events-panel.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component EventsPanelComponent.
Error: src/app/ha-status/ha-status.component.html:17:17 - error TS2322: Type 'string' is not assignable to type 'boolean'.
17 showServerLink="true"
~~~~~~~~~~~~~~
src/app/ha-status/ha-status.component.ts:12:18
12 templateUrl: './ha-status.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component HaStatusComponent.
Error: src/app/host-form/host-form.component.html:92:32 - error TS2740: Type 'AbstractControl' is missing the following properties from type 'FormGroup': controls, registerControl, addControl, removeControl, and 3 more.
92 <ng-container [formGroup]="ipGroup" class="p-d-flex p-ai-start">
~~~~~~~~~
src/app/host-form/host-form.component.ts:163:18
163 templateUrl: './host-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component HostFormComponent.
Error: src/app/host-form/host-form.component.html:125:65 - error TS2322: Type 'string' is not assignable to type 'number'.
125 <p-inputNumber ngDefaultControl min="1" max="128" formControlName="inputPDLength">
~~~
src/app/host-form/host-form.component.ts:163:18
163 templateUrl: './host-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component HostFormComponent.
Error: src/app/host-form/host-form.component.html:125:73 - error TS2322: Type 'string' is not assignable to type 'number'.
125 <p-inputNumber ngDefaultControl min="1" max="128" formControlName="inputPDLength">
~~~
src/app/host-form/host-form.component.ts:163:18
163 templateUrl: './host-form.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component HostFormComponent.
Error: src/app/json-tree/json-tree.component.html:56:14 - error TS2322: Type 'string | number' is not assignable to type 'string'.
Type 'number' is not assignable to type 'string'.
56 [key]="item.key"
~~~
src/app/json-tree/json-tree.component.ts:30:18
30 templateUrl: './json-tree.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component JsonTreeComponent.
Error: src/app/json-tree/json-tree.component.html:71:13 - error TS2322: Type 'string' is not assignable to type 'boolean'.
71 showCurrentPageReport="true"
~~~~~~~~~~~~~~~~~~~~~
src/app/json-tree/json-tree.component.ts:30:18
30 templateUrl: './json-tree.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component JsonTreeComponent.
Error: src/app/json-tree/json-tree.component.html:131:42 - error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.
131 (keyup.enter)="onEnterJumpToPage(jumpToPageBox.value - 1); jumpToPageBox.value = ''"
~~~~~~~~~~~~~~~~~~~~~~~
src/app/json-tree/json-tree.component.ts:30:18
30 templateUrl: './json-tree.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component JsonTreeComponent.
Error: src/app/kea-app-tab/kea-app-tab.component.html:7:11 - error NG8007: The property and event halves of the two-way binding 'visible' are not bound to the same target.
Find more at https://angular.io/guide/two-way-binding#how-two-way-binding-works
7 [(visible)]="appRenameDialogVisible"
~~~~~~~
src/app/rename-app-dialog/rename-app-dialog.component.ts:21:14
21 export class RenameAppDialogComponent implements OnInit, OnChanges {
~~~~~~~~~~~~~~~~~~~~~~~~
The property half of the binding is to the 'RenameAppDialogComponent' component.
src/app/kea-app-tab/kea-app-tab.component.ts:1:45
1 import { Component, OnInit, Input, Output, EventEmitter, OnDestroy } from '@angular/core'
~~~~~~~~~~~~~~~~~~~~~
The event half of the binding is to a native event called 'visible' on the <app-rename-app-dialog> DOM element.
Are you missing an output declaration called 'visibleChange'?
src/app/kea-app-tab/kea-app-tab.component.ts:23:18
23 templateUrl: './kea-app-tab.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component KeaAppTabComponent.
Error: src/app/kea-app-tab/kea-app-tab.component.html:298:34 - error TS2739: Type '{ machine: any; appType: any; daemonType: any; }' is missing the following properties from type '{ level: number; machine: any; appType: any; daemonType: any; user: any; }': level, user
298 [filter]="{
~~~~~~
src/app/kea-app-tab/kea-app-tab.component.ts:23:18
23 templateUrl: './kea-app-tab.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component KeaAppTabComponent.
Error: src/app/machines-page/machines-page.component.html:569:45 - error TS2739: Type '{ machine: any; }' is missing the following properties from type '{ level: number; machine: any; appType: any; daemonType: any; user: any; }': level, appType, daemonType, user
569 <app-events-panel #eventsTable [filter]="{ machine: machineTab.machine.id }"></app-events-panel>
~~~~~~
src/app/machines-page/machines-page.component.ts:21:18
21 templateUrl: './machines-page.component.html',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component MachinesPageComponent.
```backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1300Check the minimum Java version in build system and describe it in docs2024-02-13T14:52:11ZSlawek FigielCheck the minimum Java version in build system and describe it in docsThe issue was found by @marcin during 1.15 sanity checks: https://gitlab.isc.org/isc-projects/stork/-/issues/1296#note_434164
The current version of the OpenAPI generator requires at least OpenJRE 11. The build system checks only if the...The issue was found by @marcin during 1.15 sanity checks: https://gitlab.isc.org/isc-projects/stork/-/issues/1296#note_434164
The current version of the OpenAPI generator requires at least OpenJRE 11. The build system checks only if the `java` binary is present and the documentation specifies that Java is required without providing a minimum version.
We should somehow cover the java requirement checks in the rake files or/and the docs.backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1288404 if stork-server is installed in custom path2024-02-06T14:53:55ZAndrei Pavelandrei@isc.org404 if stork-server is installed in custom pathSteps
1. Install server in a custom location.
```sh
$ rake install:server DEST=/opt/stork-server
mkdir -p /opt/stork-server
cp -a -f dist/server/. /opt/stork-server
```
2. Start server.
```sh
$ stork-server
WARN[2024-01-30 15:16:24]...Steps
1. Install server in a custom location.
```sh
$ rake install:server DEST=/opt/stork-server
mkdir -p /opt/stork-server
cp -a -f dist/server/. /opt/stork-server
```
2. Start server.
```sh
$ stork-server
WARN[2024-01-30 15:16:24] restservice.go:354 Cannot read the base URL in the '/usr/share/stork/www/index.html' file because it is missing. If the files are located on separate machine, you need manually change the 'href' value of the <base> HTML tag to '/' error="open /usr/share/stork/www/index.html: no such file or directory"
```
3. Attempt to open the UI in browser.
> 404 page not found
Expectation was that I get served `/opt/stork-server/usr/share/stork/www/index.html` which exists.
---
Similarly, stork-server logs on startup:
```
WARN[2024-01-30 15:16:24] server.go:102 The hook directory: '/var/lib/stork-server/hooks' doesn't exist error="cannot find plugin paths in: /var/lib/stork-server/hooks: cannot list hook directory: /var/lib/stork-server/hooks: open /var/lib/stork-server/hooks: no such file or directory"
```
It would be nice if this was also looked up from the installation path and that the directory would be created on installation, so there would be no warnings by default.
This last one also happens with stork-agent.backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1250Syncing a new hook directory fails when running from tarball2023-12-19T14:43:29ZSlawek FigielSyncing a new hook directory fails when running from tarballThe issue was found by @andrei during 1.14 sanity checks: https://gitlab.isc.org/isc-projects/stork/-/issues/1240#note_421415
* If I do `rake hook:init MODULE=stork-server-ldap`, it initializes the git module correctly relative to the t...The issue was found by @andrei during 1.14 sanity checks: https://gitlab.isc.org/isc-projects/stork/-/issues/1240#note_421415
* If I do `rake hook:init MODULE=stork-server-ldap`, it initializes the git module correctly relative to the tarball content. However, if I do `rake hook:sync`, because the tarball is not a git repo, it goes all the way to the nearest parent git repository, and does some syncing there. I happen to have my home directory set up as a git repo, so I ended up with having some of my modules there modified. The task could instead check if there is a `.git` directory created at the same level as `Rakefile` first to determine if it is a tarball or a git repo. I also understand that this is not a task that you usually run on a tarball.
```
modified: .config/awesome/lain (new commits, modified content)
modified: .zprezto (modified content)
```backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1249Problem installing danger on operating system with non-US locale2023-12-19T14:42:10ZSlawek FigielProblem installing danger on operating system with non-US localeThe issue was found by @andrei during 1.14 sanity checks: https://gitlab.isc.org/isc-projects/stork/-/issues/1240#note_421412
* I could not run system tests. I get this error on `rake systemtest`. Not sure what is wrong. Sounds like an ...The issue was found by @andrei during 1.14 sanity checks: https://gitlab.isc.org/isc-projects/stork/-/issues/1240#note_421412
* I could not run system tests. I get this error on `rake systemtest`. Not sure what is wrong. Sounds like an encoding could be enforced somewhere.
```
143.7 Bundler version 2.3.26
143.7 /app/tools/ruby/bin/bundle install --gemfile /app/rakelib/init_deps/danger/Gemfile --path /app/tools/ruby --binstubs /app/tools/ruby/bin_bundle
143.7 Preparing: /app/tools/ruby/bin_bundle/danger...
143.7 mkdir -p /app/tools/ruby/bin_bundle
143.9 /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/yaml_serializer.rb:54:in `split': invalid byte sequence in US-ASCII (ArgumentError)
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/yaml_serializer.rb:54:in `load'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/settings.rb:459:in `block in load_config'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/shared_helpers.rb:103:in `filesystem_access'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/settings.rb:455:in `load_config'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/settings.rb:91:in `initialize'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler.rb:342:in `new'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler.rb:342:in `settings'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/env.rb:20:in `report'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/friendly_errors.rb:74:in `request_issue_report_for'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/friendly_errors.rb:53:in `log_error'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/friendly_errors.rb:126:in `rescue in with_friendly_errors'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/friendly_errors.rb:118:in `with_friendly_errors'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/exe/bundle:36:in `<top (required)>'
143.9 from /app/tools/ruby/bin/bundle:25:in `load'
143.9 from /app/tools/ruby/bin/bundle:25:in `<main>'
143.9 /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/yaml_serializer.rb:54:in `split': invalid byte sequence in US-ASCII (ArgumentError)
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/yaml_serializer.rb:54:in `load'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/settings.rb:459:in `block in load_config'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/shared_helpers.rb:103:in `filesystem_access'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/settings.rb:455:in `load_config'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/settings.rb:91:in `initialize'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler.rb:342:in `new'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler.rb:342:in `settings'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/cli.rb:66:in `initialize'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/vendor/thor/lib/thor.rb:388:in `new'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/vendor/thor/lib/thor.rb:388:in `dispatch'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/cli.rb:31:in `dispatch'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/cli.rb:25:in `start'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/exe/bundle:48:in `block in <top (required)>'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/lib/bundler/friendly_errors.rb:120:in `with_friendly_errors'
143.9 from /app/tools/ruby/gems/bundler-2.3.26/exe/bundle:36:in `<top (required)>'
143.9 from /app/tools/ruby/bin/bundle:25:in `load'
143.9 from /app/tools/ruby/bin/bundle:25:in `<main>'
143.9 rake aborted!
143.9 Command failed with status (1): [/app/tools/ruby/bin/bundle install --gemfi...]
143.9 /app/rakelib/00_init.rake:795:in `block in <top (required)>'
143.9 /app/rakelib/00_init.rake:133:in `block in find_and_prepare_deps'
143.9 /app/rakelib/00_init.rake:115:in `each'
143.9 /app/rakelib/00_init.rake:115:in `find_and_prepare_deps'
143.9 /app/rakelib/00_init.rake:1113:in `block in <top (required)>'
143.9 Tasks: TOP => /app/tools/ruby/bin_bundle/danger
143.9 (See full trace by running task with --trace)
```backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1245Deprecation warning in mockery2023-12-19T14:37:31ZSlawek FigielDeprecation warning in mockeryThe issue was found by @piotrek during [1.14 sanity checks](https://gitlab.isc.org/isc-projects/stork/-/issues/1240#note_421364).
```shell
$ rake unittest:backend
WRN DEPRECATION: use of the packages config will be the only way to gener...The issue was found by @piotrek during [1.14 sanity checks](https://gitlab.isc.org/isc-projects/stork/-/issues/1240#note_421364).
```shell
$ rake unittest:backend
WRN DEPRECATION: use of the packages config will be the only way to generate mocks in v3. Please migrate your config to use the packages feature. dry-run=false migration=https://vektra.github.io/mockery/v2.34/migrating_to_packages/ url=https://vektra.github.io/mockery/v2.34/features/#packages-configuration version=v2.34.0
```backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1182Hooks: Enable -trimpath compiler flag2023-10-17T13:27:12ZSlawek FigielHooks: Enable -trimpath compiler flagThe Golang runtime requires the main executable, and plugins have precisely the same dependencies. The dependencies are compared by path embedded in the binaries. By default, Go uses the absolute paths.
It causes the GOPATH directory fo...The Golang runtime requires the main executable, and plugins have precisely the same dependencies. The dependencies are compared by path embedded in the binaries. By default, Go uses the absolute paths.
It causes the GOPATH directory for compiling the hook to point to the same directory for compiling the main executable. It is problematic when we compile the main Stork binary, but external developers compile a hook. They need to configure their environment exactly the same as us.
The solution is to use the `-trimpath` flag for compiling the main binary and plugins. It causes the embedded paths to be relative to the GOPATH directory. It shouldn't be visible to the end-users or have any side effects.backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1162Hadolint for Dockerfiles2023-09-19T13:45:30ZSlawek FigielHadolint for DockerfilesI propose adding the Hadolint - Docker linter to our build kit for easier following the best practices and force consistent formatting.I propose adding the Hadolint - Docker linter to our build kit for easier following the best practices and force consistent formatting.backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1161Linter and formatter for Ruby2023-09-22T10:07:43ZSlawek FigielLinter and formatter for RubyOut Rakefiles (written in Ruby) are no longer trivial. We should add the Ruby linter and formatter to force the consistent and proper coding style for these files.Out Rakefiles (written in Ruby) are no longer trivial. We should add the Ruby linter and formatter to force the consistent and proper coding style for these files.backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1157Process: Investigate and enable Pyre/mypy and Pysa, if useful2023-09-21T10:16:32ZTomek MrugalskiProcess: Investigate and enable Pyre/mypy and Pysa, if usefulAs @manu reported in his [security audit](https://gitlab.isc.org/isc-private/kea/-/wikis/Kea-Security-Review-02-2023#7-github-security-features-pyrepysa-related-to-stork), we might take a look at Pyre or mypy (type checker) and Pysa (sta...As @manu reported in his [security audit](https://gitlab.isc.org/isc-private/kea/-/wikis/Kea-Security-Review-02-2023#7-github-security-features-pyrepysa-related-to-stork), we might take a look at Pyre or mypy (type checker) and Pysa (static analyzer) that could improve our code quality.
- [ ] Pyre/mypy
- [ ] Pysa
If the tools are unsuitable, please document the reasons here and close the ticket.backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1114Replace fpm with nfpm2023-07-04T13:29:57ZSlawek FigielReplace fpm with nfpmI found a Go replacement for the `fpm` program we use to build the packages: [nfpm](https://github.com/goreleaser/nfpm).
We need to check if it can build valid APK packages. If yes, we should discuss using it instead `fpm`.
Additionall...I found a Go replacement for the `fpm` program we use to build the packages: [nfpm](https://github.com/goreleaser/nfpm).
We need to check if it can build valid APK packages. If yes, we should discuss using it instead `fpm`.
Additionally, introducing it will reduce the Ruby-related tools in the project.backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1032Install and Enable TSDoc linter2023-05-09T13:42:32ZMarcin SiodelskiInstall and Enable TSDoc linterOn the in-person 2023 meeting the team have agreed to follow the TSDoc style for documenting the typescript code. Having said that, we need a linter to validate the documentation formatting. To do it:
```
npm install --save-dev eslint-p...On the in-person 2023 meeting the team have agreed to follow the TSDoc style for documenting the typescript code. Having said that, we need a linter to validate the documentation formatting. To do it:
```
npm install --save-dev eslint-plugin-tsdoc
```
Then, update the `.eslintrc.json` with the following contents:
```
"plugins": ["eslint-plugin-tsdoc"],
"rules": {
"tsdoc/syntax": "warn"
},
```
Finally, correct the issues reported by the linter. Most of the errors seem to be related to not using a hyphen after function parameter names (`tsdoc-param-tag-missing-hyphen`).backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1002Run demo on RHEL92023-03-07T14:32:28ZTomek MrugalskiRun demo on RHEL9@cstrotm reported building demo on RHEL9 was really painful. We should:
- [ ] build the demo on fresh RHEL9
- [ ] update outdated dependencies (outdated docker-compose was mentioned, but there may be others)
- [ ] come up with a proposa...@cstrotm reported building demo on RHEL9 was really painful. We should:
- [ ] build the demo on fresh RHEL9
- [ ] update outdated dependencies (outdated docker-compose was mentioned, but there may be others)
- [ ] come up with a proposal how to run tests on RHEL9 (this may end up in a separate ticket)backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/886Tar command does not suit Openbsd: tar zxf instead of tar -zxf2022-12-07T09:04:07ZmikygeeTar command does not suit Openbsd: tar zxf instead of tar -zxfHello,
I started the command
`# rake31 build:server`
And got this error
```
tar -zxf /home/user/stork/tools/golang/goswagger.tar.gz -C /home/user/stork/tools/golang/goswagger-sources --strip-components=1
tar: unknown option -- -
usage: t...Hello,
I started the command
`# rake31 build:server`
And got this error
```
tar -zxf /home/user/stork/tools/golang/goswagger.tar.gz -C /home/user/stork/tools/golang/goswagger-sources --strip-components=1
tar: unknown option -- -
usage: tar {crtux}[014578befHhjLmNOoPpqsvwXZz]
[blocking-factor | archive | replstr] [-C directory] [-I file]
[file ...]
tar {-crtux} [-014578eHhjLmNOoPpqvwXZz] [-b blocking-factor]
[-C directory] [-f archive] [-I file] [-s replstr] [file ...]
rake aborted!
Command failed with status (1): [tar -zxf /home/user/stork/tools/golang/g...]
```
On openbsd the dash is not necessary. Also the --strip-components option doesn't exist.
Could you make a if statement (if openbsd then tar zxf ...) to handle this problem ?
Regardsbackloghttps://gitlab.isc.org/isc-projects/stork/-/issues/885Installation of NPM modules fails when using FreeBSD walkthrough2022-11-08T14:56:24ZSlawek FigielInstallation of NPM modules fails when using FreeBSD walkthroughI downloaded the fresh VM drive image (`FreeBSD-13.1-RELEASE-amd64.vhd.xz`) from the official FreeBSD page and performed all steps from the FreeBSD installation guide from our documentation. It finished successfully.
Next, I tried to bu...I downloaded the fresh VM drive image (`FreeBSD-13.1-RELEASE-amd64.vhd.xz`) from the official FreeBSD page and performed all steps from the FreeBSD installation guide from our documentation. It finished successfully.
Next, I tried to build the server package (`rake build:server_pkg`). Unfortunately, it fails to install frontend dependencies. I got the error:
```
npm ERR! code 127
npm ERR! /root/stork/webui/node_modules/@parcel/watcher
npm ERR! command failed
npm ERR! sh -c -- node-gyp-build
npm ERR! node-gyp-build: --: not found
```
![image](/uploads/f9069323a3dfb2676cc215f40d7965ce/image.png)
I didn't found the solution yet. The `node-gyp-build` exists. Maybe something is wrong with the project directory permissions or the `NodeJS` installation.backlog