Commit Graph

256 Commits

Author SHA1 Message Date
Peter Vigier
44a85f20eb Feature/fix sonar warnings (#1226)
* Fixed sonar warnings

- "Cognitive Complexity"
- "Do not use replaceAll when not using a regex"
- java:S5869 - Character classes in regular expressions should not contain the same character twice
- Improved bad name
- Typos
- reduced code duplications
- Replaced hand-made wait-utility with Awaitility
- Log messages
- Duplicate code
- Typos
- Removed Thread.sleep, instead relaxed check condition
- Removed use of deprecated API
- Removed use of deprecated API
- Added supress-warnings as I do not see a better way to write the tests
- Removed Thread.sleep / redundant functionality to Awaitility
- Fixed other warnings (use isZero, isEmpty, hasToString)
- Removed/Reduced duplicate code
- Added generics
- Fixed asserts
- removed: field.setAccessible(true) actually should not be needed for public static fields!
- Too long constructor passes arguments in wrong order - how surprisingly...
- Clean-up use of varargs arguments
- Fixed regex
- Fixed typos and other minor stuff
- Making public constructors protected in abstract classes
- Swapped expected and asserted argument
- volatile not enough for syncing threads
- volatile not enough for syncing threads
- out-commented code
- Made regex not-greedy, added tests for verification
- Avoid exposure of thread-local member var

Signed-off-by: Peter Vigier <Peter.Vigier@bosch.io>

* Fixed Sonar warnings

* License header fix

Signed-off-by: Peter Vigier <Peter.Vigier@bosch.io>

* License header fix #2

Signed-off-by: Peter Vigier <Peter.Vigier@bosch.io>

* Fixing review findings

Signed-off-by: Peter Vigier <Peter.Vigier@bosch.io>

* Fixing tests

- Fixed '&' usage in javadoc and typos
- Fixing some warnings

Signed-off-by: Peter Vigier <Peter.Vigier@bosch.io>
2022-01-31 21:59:46 +01:00
Natalia Kislicyn
69e6488004 DDI API: /controller/v1/{controllerid}/installedBase/{actionId} (#1220)
* installedBase DDI: initial impl + rest docs

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* refactor installedBase implementation

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* ddi installed base tests

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* restructure root controller rest docs

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* fix some java docs and formatting

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* don't add action history message when calling /installedBase

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* fix test after removing action history message

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* fix review comments

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* fix review comments

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>
2022-01-24 18:13:03 +01:00
Stefan Klotz
476d1c37ed Make entity object of event optional (#1209)
* explicitly return an optional entity by an event

Signed-off-by: Stefan Klotz <stefan.klotz@bosch.io>

* fix assertions in tests

Signed-off-by: Stefan Klotz <stefan.klotz@bosch.io>
2021-12-08 11:28:01 +01:00
Bondar Bogdan
146735012a Artifact Encryption plug point (#1202)
* added ArtifactEncryption interface, injected it into SM creation UI module, added encryption metadata key generation upon SM creation, used encryptor during file upload

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* add default artifact encryption implementation based on gcm aes algorithm

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* changed ArtifactEncryptor interface to manage encryption secrets by itself

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* cleaned up stale code, fixed sonar

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* fixed software module encryption within transaction

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* added artifact encryption secrets store

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* extended ArtifactEncryption interface to allow decryption, secrets store provides removeSecret, added missing javadocs

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* intriduced DbArtifact interface, use EncryptionAwareDbArtifact for artifact decryption during download

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* introduced ArtifactEncryptionService to minimize duplications and unneccessary dependency injections

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* declared ArtifactEncryptionService as a bean

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* added persistant encryption flag to software module

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* further adptations for encryption flag persistence

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* added ArtifactEncryptionException, fixed encryption check in UI

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* added encryption error handling

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* added encrypted flag to DDI/DMF, adapted exception handling

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* adapted rest docs

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* Add test to verify artifact encryption is not given by default

Signed-off-by: Florian Ruschbaschan <Florian.Ruschbaschan@bosch.io>

* Add isEncrypted() to toString() of JpaSoftwareModule, fix typos

Signed-off-by: Florian Ruschbaschan <Florian.Ruschbaschan@bosch.io>

* Fix sql migration scripts

Signed-off-by: Florian Ruschbaschan <Florian.Ruschbaschan@bosch.io>

* Calculate encrypted artifact size by subtract encryption size overhead

Signed-off-by: Florian Ruschbaschan <Florian.Ruschbaschan@bosch.io>

* publish upload failed without waiting for interuption during UI file upload

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* upgraded cron utils to 9.1.6

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

Co-authored-by: Florian Ruschbaschan <Florian.Ruschbaschan@bosch.io>
2021-11-18 09:07:05 +01:00
Anand Kumar
70779d1ac7 Feature target type filter (#1197)
* Added Target type filter with drag and drop support

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Removed the unused enums and target type filter button class

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Resolved merge conflicts

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Fixed java doc issue with the method link in the comment

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Fixed the IN query overflow for target Type assignment

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Fixed Review comments

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>
2021-10-27 15:24:09 +02:00
Robert Sing
dea6fa3ce6 Adapt UI for target type compatibility check (#1189)
* Added compatibility calls needed for UI

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* Adapted UI for target type compatibility checks

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* improved exception handling for incompatibility check

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* added & fixed unit tests

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* fixed merged conflicts

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* fixed target type incompatibly specification

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* changed UI behaviour to close assignment popup in case of IncompatibleTargetTypeException

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* added unit test to validate incompatibly specification fix

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* fixed review findings

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* fixed review findings

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* fix potential null pointer

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* Fixed rolloutcopy by adding dsTypeId to ProxyDistributionSetInfo

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* suppressed warning

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>
2021-10-22 16:23:25 +02:00
Alexander Dobler
3621015f93 Specification and BaseRepositotyProvider improvements (#1182)
* Introduce custom base repository factory bean

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch.io>

* Simplify ordered DS service call by using specs

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch.io>

* Annotate getBaseRepoType interface as FunctionalInterface

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch.io>

* Use CustomBaseRepositoryFactory instead of static BaseClass

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch.io>

* Fix license headers

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch.io>

* Add ordered specification back

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch.io>
2021-10-21 15:46:13 +02:00
Virginijus Kandrotas
d80d0d6349 Implement target type CRUD UI operations (#1184)
* implement target type CRUD UI operations

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>

* fix licenses

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>

* code clean up

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>

* code clean up

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>

* refactor proxy target type

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>

* refactor proxy target type

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>

* fix review comments

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>

* fix review comments

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>

* fix review comments

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>

* update class description

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>

* fix review comments

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>

* fix review comments

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>

* fix review comments

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>

* fix sonar issue

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>

* fix sonar issue

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>

* fix sonar issue

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>

* fix showing assigned ds types

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>

* remove unused import

Signed-off-by: Virginijus Kandrotas <Virginijus.Kandrotas@bosch.io>
2021-10-21 15:18:39 +02:00
Natalia Kislicyn
745a0c6a10 Docu for target type endpoints in Target API (#1185)
* add assign/unassign type endpoints to target api docs

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* fix target type creation for api rest docs test

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* fix review comments: rename tests

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* adapt test to avoid failing when translated

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>
2021-10-15 16:22:20 +02:00
Robert Sing
76be812cf1 Feature - TargetType compatibility check (#1180)
* added targettype compatibility check in deployment

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* added targettype compatibility for autssignment

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* added / fixed tests for auto assignment compatibility check

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* adapted rollout creation to use JPA specifications for compatibility checks

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* fix unit tests and javadoc

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* fix copyright header

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* fixed review findings

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* fixed review findings

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* replaced validated-DS management calls

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* improved compatibility check in DeploymentManagementTest

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>

* fixed review findings

Signed-off-by: Robert Sing <robert.sing@bosch-si.com>
2021-10-15 15:39:21 +02:00
Anand Kumar
39ccf65f2e Feature target with target type in UI (#1178)
* Added the target type combo box to add or update Target in UI

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Fixed NPE for empty target type

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added target type option to target bulk upload

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added Target type filter

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added Named entity mapper for target type UI

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Fixed review comments

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Fixed sonar issues for serialization

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Fixed Review comments

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Fixed Bulk upload target type combo box

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>
2021-10-11 15:00:16 +02:00
Natalia Kislicyn
70d0fe879e Feature mass cancel running actions on ds invalidation (#1177)
* Extend DS invalidation dialog to include mass-cancellation of actions

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

add component id for cancelation type radio buttons

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* add infos about ds invalidation to UI documentation;
update UI images; add screenshot about ds invalidation

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* fix review findings

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* add link property to invalidation docu

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* Put invalidation counts into one object

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* add hint to invalidation dialog, that invalidation is unrepeatable

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* disable invalidate button if insufficient permission

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* fix auto assignment error with insufficient permission

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* implement permissions check for invalidation dialog

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>

* add update_target permission to api doc description

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch.io>
2021-10-05 14:15:43 +02:00
Sebastian Firsching
825cb64448 Introduce basic functionality for invalidation of distributionsets (#1179)
* Basic DS invalidation functionality

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Add checks for valid/complete DS

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Stop rollouts + auto assignments when invalidating a DS

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Add methods to count AAs + rollouts for invalidation

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Small refactoring for DS management

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Add invalidation functionality to REST API

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Fix update stopped rollouts status

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Add various tests

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Introduce countActionsForInvalidation

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Fix event tests with incomplete DS

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Add H2 migration script

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Fix action count method

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Fix REST documentation tests

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Change flyway version number

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Add lock for DS invalidation + adapt tests

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Move concurrency test to own class

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Handle possible InterruptedException

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Fix concurrency test

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Use one transaction for all invalidations

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Add invalidate endpoint to REST docu

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Execute invalidation in transaction when actions are cancelled

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Check that distribution set is valid when editing/creating metadata

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Remove all changes in UI

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Add DB migration files for all databases

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Implement review findings

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Move DS invalidation to own class to check permissions for single steps

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Move invalidation count methods to management classes

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Fix failing tests

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>
2021-09-30 15:26:36 +02:00
Anand Kumar
3fa1dd1be4 Feature target type entity (#1162)
* Added Target Type model

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added Target Type JPA model

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added Target Type repository model classes

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Removed the name entity from Target Type

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Refactored the Target Type models

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added the DB migration script and updated the Target Type models

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added target type in target Mapper

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Changed the target type ID to Long

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added MYSQL DB migration script and removed the deleted column for target type

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Updated the DB migration script for target table

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added manyToMany reltation between target type and Ds type

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added POSTGRESQL DB migration script

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added MSSQL SERVER DB migration script

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added DB2 DB migration script

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added missing license header and java docs

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added on delete cascade in DB migration script

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added Target Type specification

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Removed the delete cascade and Added type API
Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* fixed API doc build

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added target type management test

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added target type events test

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added target type update and unassign to target

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added API tests for assigning target type to target

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added missing license header

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added missing docs

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Fixed sonar issues

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Fixed license header build issue

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Updated the attribute name to target type

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Fixed the review comments

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Removed unused error status variable

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added target API to assign target type

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Added the tests for assigning target type to target

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>

* Fixed the review comments for null check

Signed-off-by: Anand kumar <anand.kumar@bosch-si.com>
2021-08-25 12:13:27 +02:00
Bondar Bogdan
98535c96b4 Optional controller attributes for THING_CREATED (#1154)
* added optional attributes payload to THING_CREATED DMF message

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* added optional attributes unit test for THING_CREATED message handler

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* extended Target interface with getControllerAttributes method, extended DMF message handler integration tests

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* updated hawkbit docs

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>

* fixed review findings

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>
2021-08-02 17:45:48 +02:00
Stefan Behl
1a285849e6 Make RSQL visitor pluggable via a managed bean (#1145)
* Add a managed bean for a RsqlVisitorFactory

Signed-off-by: Stefan Behl <stefan.behl@bosch.io>

* Fix failing unit tests

* Fix Sonar findings

* Fix PR review findings
2021-07-22 09:41:06 +02:00
Michael Herdt
2bdab157cf Publish target assign event (#1136)
* Throw the TargetAssignDistributionSetEvent even if there are actions in CANCELING state present. Filter the actions on the receiver side. In this case at the DMF.

Signed-off-by: Michael Herdt <Michael.Herdt@bosch.io>

* Fix deploymentManagementTest

Signed-off-by: Michael Herdt <Michael.Herdt@bosch.io>

* Add debug logs and fix tests to verify correct DMF message behaviour

Signed-off-by: Michael Herdt <Michael.Herdt@bosch.io>

* Extend test case for the DMF in case the cancel is confirmed by the device

Signed-off-by: Michael Herdt <Michael.Herdt@bosch.io>

* Remove unsued import

Signed-off-by: Michael Herdt <Michael.Herdt@bosch.io>

* Fix review findings by filtering the list of targets first before querying the database for distribution set and software module.

Signed-off-by: Michael Herdt <Michael.Herdt@bosch.io>

* flip list verification logic

Signed-off-by: Michael Herdt <Michael.Herdt@bosch.io>

* Refactor amqp tests

Signed-off-by: Michael Herdt <Michael.Herdt@bosch.io>
2021-07-02 19:50:04 +02:00
Ahmed Sayed
8f8cfeb53a Simplified JpaRolloutManagement, moved rollout handling logic to JpaRolloutHandler (#1094)
* introduce RolloutExecutor
* removed unused method

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch.io>
2021-05-20 07:41:55 +02:00
Stefan Klotz
78d784f3c4 Fix error for downloading soft deleted artifact binary (#1102)
* download soft deleted artifact throws binary gone exception

Signed-off-by: Stefan Klotz <stefan.klotz@bosch.io>

* add test and update documentation

Signed-off-by: Stefan Klotz <stefan.klotz@bosch.io>

* fix javadoc

Signed-off-by: Stefan Klotz <stefan.klotz@bosch.io>

* test soft deleted artifact has no download link

Signed-off-by: Stefan Klotz <stefan.klotz@bosch.io>
2021-03-24 15:17:34 +01:00
Michael Herdt
84740a2b1c Introduce new tenant configuration events (#1059)
* Introduce new events that are triggered when changes are made to the tenant configuration.
* Add new events to EventTypes
* Fix DeploymentManagement tests.
* Fix AmqpMessageDispatcherServiceIntegration tests.
* Fix DdiRootControlle test.
* Remove unused imports.
* TenantConfigUpdatedEvent should implement EntityUpdatedEvent

Signed-off-by: Michael Herdt <Michael.Herdt@bosch.io>
2021-03-19 11:00:59 +01:00
Dominic Schabel
81defa10a6 Migration to JUnit5 as default test runtime (#1082)
* Migrate tests to JUnit5

Signed-off-by: Dominic Schabel <dominic.schabel@bosch.io>

* REST docs tests migrated to JUnit5

Signed-off-by: Dominic Schabel <dominic.schabel@bosch.io>

* Migrated security and UI tests to JUnit5

Signed-off-by: Dominic Schabel <dominic.schabel@bosch.io>

* Migrated management tests to JUnit5

Signed-off-by: Dominic Schabel <dominic.schabel@bosch.io>

* Reflecting changes from JUnit5 migration

Signed-off-by: Dominic Schabel <dominic.schabel@bosch.io>

* Fix RabbitMQ test detection

Signed-off-by: Dominic Schabel <dominic.schabel@bosch.io>

* Drop support for JUnit4

Signed-off-by: Dominic Schabel <dominic.schabel@bosch.io>
2021-03-15 13:40:40 +01:00
Dominic Schabel
9c5360e59d JUnit5 support (#1063)
* First preparation for JUnit5

Signed-off-by: Dominic Schabel <dominic.schabel@bosch.io>

* Exclusion of JUnit5 removed

Signed-off-by: Dominic Schabel <dominic.schabel@bosch.io>
2021-02-12 08:22:26 +01:00
Ammar Bikic
ac8c174b2c Merge remote-tracking branch 'origin/master' into fix_migration_to_new_spring_boot_version_merge_master
Signed-off-by: Ammar Bikic <ammar.bikic@bosch.io>
2021-01-15 17:28:49 +01:00
Florian Ruschbaschan
8816396d18 Add existsByInstalledOrAssignedDistributionSet (#1064)
Signed-off-by: Florian Ruschbaschan <Florian.Ruschbaschan@bosch.io>
2021-01-12 11:29:48 +01:00
Ammar Bikic
458bc8cb03 Merge remote-tracking branch 'origin/master' into fix_migration_to_new_spring_boot_version_merge_master
Signed-off-by: Ammar Bikic <ammar.bikic@bosch.io>
2020-12-04 13:40:31 +01:00
Markus Block
cb2b2ca4e8 Increase cronutils version (#1053)
* CVE-2020-26238

Signed-off-by: Markus Block <markus.block@bosch-si.com>

* adapted code to new cron-utils versions

Signed-off-by: Markus Block <markus.block@bosch-si.com>
2020-11-27 12:19:49 +01:00
Ammar Bikic
165f6e0435 Change to proper versioning
Signed-off-by: Ammar Bikic <ammar.bikic@bosch.io>
2020-11-03 09:59:21 +01:00
Ammar Bikic
bd382c3725 Adaptations due to PR comments
Signed-off-by: Ammar Bikic <ammar.bikic@bosch.io>
2020-10-15 11:45:08 +02:00
Ammar Bikic
ddabbc5249 Replace MediaTypes and make use of proper Identifiable.class
Signed-off-by: Ammar Bikic <ammar.bikic@bosch.io>
2020-10-05 05:11:48 +02:00
Ammar Bikic
c17ba89c6c Use best practise annotation for SAM interfaces in Java 8
Signed-off-by: Ammar Bikic <ammar.bikic@bosch.io>
2020-10-02 18:17:30 +02:00
Ammar Bikic
8e90ffd95e Adaptations due to Vaadin 8 merge
Signed-off-by: Ammar Bikic <ammar.bikic@bosch.io>
2020-10-02 18:17:04 +02:00
Ammar Bikic
28b65a290d Update Spring Boot to 2.3.2
-Update Spring Cloud to Hoxton.SR7
-Replace ResourceSupport by RepresentationModel (Spring Hateoas 1.0)
-Replace ControllerLinkBuilder by WebMvcLinkBuilder (Spring Hateoas 1.0)
-Move getId() from Identifiable to BaseEntity (Spring Hateoas 1.0)
-Remove hamcrest.Factory
-Use static Sort.by reference
-Place http security anyRequest().authenticated()
-Replace MockMvcRequestBuilders.fileUpload by MockMvcRequestBuilders.multipart
-Deprecate MEDIA_TYPE_CBOR_UTF8
-Replace MEDIA_TYPE_CBOR_UTF8 by MEDIA_TYPE_CBOR in tests
-Replace HAL_JSON_UTF8 by HAL_JSON in tests
-Replace APPLICATION_JSON_UTF8 by APPLICATION_JSON in tests
-Use org.mockito.junit.MockitoJUnitRunner
-Remove overridden dependency versions
-Removing not needed comments in pom.xml
-Downgrade flyway-core to be MySQL 5.6 compatible
-Add maven-site-plugin since it was removed with spring-boot 2.3
-Set servlet encoding properties
-Introducing Test that verifies the charset inside the content-type of a response
-Add @DirtiesContext to CorsTest and ContentTypeTest
-Add content-type mockmvc test with adapted mockmvc config
-Move encoding.force property to test class
-Switch expected and actual parameter values in content-type test
-Delete deprecated content-type test with TestRestTemplate
-Exclude JUnit5 from spring-boot-starter-test
-Upgrade allure-junit4 to 2.13.5
-Add aspectjweaver 1.9.6 to surefire test execution
-Add flyway-core version to property
-Use getRequiredLink() within MgmtBaseEntity.getId()

Signed-off-by: Ammar Bikic <ammar.bikic@bosch.io>
2020-10-02 18:11:18 +02:00
Ahmed Sayed
ba96c68eb0 added triggeredBy for rollouts and autoassignment (#1017)
* added triggeredBy for rollouts and autoassignment

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* use createdBy as fallback for triggeredBy in AutoAssignChecker

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* removed 'NOT NULL' from db migration scripts for JpaTargetFilterQuery

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* fixed tests

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* fixed review findings

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* inlined redundant method in JpaDeploymentManagement

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* added tests + renamed property to 'initiatedBy'

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* fixed review findings

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>
2020-09-28 09:35:19 +02:00
Michael Herdt
e82b9cee70 Feature/type for multi actions (#986)
* Introduce different types of Multi Action Event to distinguish between an Assignment and a Cancel.
* Minimize the payload for the multiAction assignment and cancel event. Write tests for the MultiActionCancelEvent.
* Remove unused action status.
* Move list of actionIds to MultiActionEvent and declare it as abstract.
* Remove unused imports.

Signed-off-by: Michael Herdt <Michael.Herdt2@bosch-si.com>
2020-09-25 13:12:42 +02:00
Michael Herdt
1921fbf607 Decouple auto assign check (#1000)
* Introduce auto assign executer interface to override check method.
* Add copyright header.
* Move documentation to interface. Annotate the AutoAssignExecutor as FunctionalInterface.
* Rename method to match interface name

Signed-off-by: Michael Herdt <Michael.Herdt2@bosch-si.com>
2020-09-04 10:18:52 +02:00
Bondar Bogdan
9f3ff40658 Migrated Hawkbit UI to Vaadin 8 (#980)
* Migrated Hawkbit UI to Vaadin 8

* fixed tag assignment messages
* disable rollout buttons instead of hinding them in Rollout Grid
* fix mssql db error
* small improvements to remove duplications while creating labels and distribution set type combo
* upgraded Vaadin to 8.11.1, upgraded jsoup to 1.11.2 (used by Vaadin 8.11.1), fixed selection in Metadata window, moved Rollout Window components to separate components package
* moved DS/SM type combobox creation to FormComponentBuilder, fixed add to collection error in SoftwareModuleDetails, changed save entity icons to harddrive, common refactoring
* removed duplications between breadcrumb grid headers (RolloutGroupGridHeader, RolloutGroupTargetGridHeader, TargetFilterDetailsGridHeader)
* replace proxy type in proxy objects with simple type info
* made all text fileds lazy (the timeout is 500ms), fixed add rollout window error on getting the bean from layout to controller
* removed duplications between ds to tag and target to tag assignment supports, extracted assignment notification from HawkbitCommonUtils
* fixed search input with caption overlap
* refactored layout visibility and resize listeners
* fixed approval strategy, adapted rollout advanced group ids to always increase
* Combine created and modified column creation
* remove Column<?, ?> variables
* fix confirmation dialog line breaks
* fix grids in details and filters
* fix column creation for upload grids
* add default ExpandRatio, fix rollouts and target filter
* add default addColumn method and fix action grids
* update deployment and rollout grid and grid css
* fix grid column widths
* refactored approval layout
* adapted approval layout
* refactored advanced rollout group layout
* refactored advanced group definitions to use proxy bean
* fixed copy rollout window enable save button
* third draft of Rollout Window validation: added UNKNOWN validation status, validate all layouts after validation listener is added
* second draft of Rollout Window Validation
* first Rollout Window Validation draft for enable/disable save button
* fixed custom target filter de-selection on delete, re-selection on update, reset edit/delete crud menu mode on custom filter tab selection
* added error threshold validation on total target and number of groups change
* added random ids to Proxy identifiable entities without defined ids
* add universal check box generator
* adapted Update and Approve Rollout Window Layout
* adapted setting and getting bean values for Add and Copy Rollout layouts
* fix setting ConfirmationDialog ID
* refactor ConfirmationDialog to use a CommonDialogWindow internally
* fix rollout group definition input width
* remove code duplication in UI grid column creation
* refactored rollout group pie chart and legend by extracing them to their own class VisualGroupDefinitionLayout
* remove code duplication on link creation
* moved creation of AutoStartOptionGroupLayout to FormComponentBuilder
* extracted RolloutFormLayout and SimpleGroupsLayout together with corresponding proxy beans from AddRolloutWindowLayout, adapted code accordingly
* move TimeforcedIcon generation to StatusIconBuilder
* move code to StatusIconBuilder
* use objects to build labels from entity states
* use generic method to generate status icon labels
* moved AdvancedGroupRow from DefineGroupsLayout to separate class
* remove code duplication on icon creation
* removed Optionals from Data Providers
* fixed remaining parts of xss vulnarable components (tags/types)
* added description to key-value details pairs, moved the logic of paginated database access to HawkbitCommonUtils
* further adapted xss atack posibilities
* adapted details header and key-value details
* adapted MetaData header
* adapted Artifact and Action History Grid headers
* adapted artifact download
* adapted already assigned notification and rollout approval permission check
* removed tenant and username cookies from hawkbit login
* adapted attributes sorting by key
* adapted controller attributes details
* removed grid ResizeSupport (can be introduced later if needed)
* refactored grids to not use resizeSupport but rather removing all columns and re-adding them after max/min state transition
* fixed selection of added items
* moved restoreState to AbstractGrid
* unified Ds grids on Distribution and Deployment Views
* moved filter support and drag and drop support to AbstractGrid
* removed stale Sm grid id for Upload view
* removed duplication between SwModuleGrid and SoftwareModuleGrid
* removed unneccessary status icons css properties
* added grid MasterEntitySupport, adapted grids
* fixed tags/types filter deselection after deletion
* fixed deletion success notification, added artifact uploads count check to software module table
* unified target/ds/sm grid headers
* unified DS and SM grid headers and details
* added Delete Support to Rollout, adapted deletion permissions
* introduced EntityResizeSupport, upgraded vaadin version to 8.10.4
* unified ds and sm type filter components
* removed duplications between Target and Ds tag filters
* removed duplication for #buildActionButton
* initial iteration of removing duplications between grids
* added GridActionsVisibilityListener
* added layout visibility listener to filter and rollout views
* unified LayoutResizeListener and LayoutVisibilityListener
* extracted ShowEntityFormLayoutListener
* refactored grid filter listeners
* refactored target filter listeners, introduced filter support
* added GenericEventListener, further unified listeners
* partially unified LayoutViewAware event listeners, added PinningChangedListener, TagFilterListener and TypeFilterListener
* fixed sql exception in case NO_TAG is selected without any additional tags active
* unified entity modified listeners, adapted tag token modified update
* fixed Upload View drop area enable on SM select
* unified selection listeners
* unified search listeners
* added common SearchFilterListener, added temporare EntityModifiedMasterAwareSupport for EntityModifiedListener, fixed Rollout View change after rollout deletion/modification, adapted state restore
* refactored entity modified and selection listeners together with support classes
* added maintenance window and created/modified at tooltips in Action History Window, added id to Bulk Upload popup window and main popup layout, fixed duplicated DS error during DS edit/update
* substituted ShowEntityDetailsEventPayload with SelectionChangedEventPayload in Rollout View for consistency with other Views, unified rollout ui state class
* added builder to EntityModifiedListener, adapted code
* refactored sm type modification of ds type
* fix removing sm type from ds type via ui
* refresh rollout group targets table on group-updated-event
* moved grid label icon creation to SpUiComponent builder
* fixed edit tag/type with invalid colour
* added range validator(0-100) to trigger threshold
* fixed rollout auto start option updates, fixed rollout grid search state restore, extended SPDateTimeUtil
* Rollout Window Form fixes
* small partial fix for error threshold percent/count validation and value change
* fixed time forced empty datetime in Rollouts Update Window
* added workaround for target/ds tags drag and drop due to the missing selection support
* fixed ds unpinning after deletion and completion state change
* added reason to bulk upload failed notification
* fixed target add/update window form name id, introduced separate layout listeners for entity modified events and selection/master changed events, extended grid selection support, refactored corresponding grids, layouts and listeners
* fixed required messages in the from builder, changed asyncExecutor to ui executor for file streaming, fixed auto-assignment for layout
* fixed drag and drop registration for non-selection grid model, small restore state refactoring
* fixed action remote events tests, adapted crudMenu/resize/search header supports to use mode-{mode} classes instead of ids modification
* changed id of metadata popup grid to 'metadata.window.table.id' and details grid to '{typePrefix}.metadata.details.table.id', fixed tag/type cell text wrapping, tooltip shows full tag/type name, removed checkboxes from Distributions Set Type Software module selection grids
* added tooltip to Rollout/RolloutGroup status bar, small bug fixes for Rollout Window target filter and approval
* fixed edit permission validation in DetailsHeader
* unbind distributionsview javascript from vaadin theme
* small refactoring of form component builder, assignment and rollout layout
* remove ds combobox code duplication, fix assig and autoassign popup
* add BoundComponent class, fix assignment popup
* remove duplicates for name, version description and actiontype fields
* removed code duplication, fix assign- and autoassign-popup
* adapted Action history eventing, changed entity modified parent event propagation
* added id to DS details modules grid
* started adapting Action History View
* adapted filter by ds drop area restore
* align drop styling with previous
* fix filter target table by assigned ds
* small refactoring of Deployment View and System config View layouts
* adapted DS tag layout
* fixed incompelete DS deselection and unpinning
* added filter to RemoteEventListener in order to ignore remote events, added select entity on add to grids
* fixed DS modules details, explained why session scope is used for bulk upload
* adapted bulk upload window to be lazy loaded, fixed restore by usinng session scope
* fixed user cell text selection in grid, drop hint highlighting
* fixed undo for iot-update-server config option
* fixed parsing in DurationField and refactored system config view
* removed unused variable from DurationField
* refactored config option view
* fixed polling option value in config option view
* fixed token refresh value in config option view
* added binder auth config option
* added binder to save config option
* added binder for auto cleanup option
* upgraded vaadin to 8.10.0, removed dd package together with CustomAcceptCriteria extension, removed CustomAcceptCriteria tests, removed all vaadin v7 dependencies, removed compatibility server and client
* added selection by pressing key up/down, refactored range selection handler and connector, drag and drop support drop style listener, removed unneccessary styles for selection extension
* show drop hint
* fix h2 cast error
* make unselected row dragable
* add support for selection using Shift and CTRL
* remove grid checkboxes, fix selection and drag and drop
* moved bulk upload classes to own package, started implementing bulk upload window builder
* further adaptations of bulk upload
* started adapting bulk upload
* partially removed stale classes/methods, vaadin v7 imports
* completeted pinning refactoring
* further pinning refactoring, added restore to distributions grid in deployment view
* started adapting pinning of target and distribution set
* further remote eventing refactoring, small styling adaptations
* added 'maximize' and 'minimize' ids to max/min grid icons
* removed event containers, adapting the delayed event bus push strategy, event provider and remote events listener
* small eventing refactoring
* adapted tag filter eventing, removed old event classes
* adapted selection eventing, fixed color styling for grid selection, added countByAssignedId to softwaremodulemanagement
* adapted type filter eventing
* adapted search filter eventing
* adapted actions visibility change eventing in filter layouts
* adapted layout eventing in Deployment View
* adapted layout eventing in Distributions View
* adapted layout eventing in Upload View
* adapted entity modified eventing
* adapted rollout eventing
* fix rollout view and window styling
* handle rollouts view remote events
* adapted eventing in Rollouts View
* fixed Target Filter session state management in Edit Form mode
* adapted target filter query add/update layout to use form layout
* started adapting tags assignment
* removed AbstractNotificationView
* added row border in grids
* fixed restoreState in Target Filters and Target Grid, refatored eventing in Deployment View
* Added event listener for DsSetType
* added confirmation window id for deletion support, added id for action type radio group, reworked restore state, small changes in Deployment view
* started adapting ds grid, ds tags, action history and Deployment View layout
* started adapting target grid
* reworked Target Filter View and event handling
* fixed Target Details error, started adapting Target Grid Layout
* refactored Date time parser
* fixed Date time parser
* fixed formatting
* fixed errors in auto close option
* fixed errors in auto cleanup option
* fixed errors in Polling view option
* adapted filter management view and selection listener behaviour
* cleanup, fix vaadin query to spring pageable convertion
* adapted target tag filter layout
* started adapting Deployment view
* fixed software modules details grid rendering under Distribution Set Details
* adapted artifact details grid popup window for Software Module details
* adapted auto assignment details grid for DS
* added get by ids to target tag management, adapted tag details layout for distribution set tag and target tag
* package structure refactoring
* started adapting software module details tab within distribution set details layout
* excluded javax.validation because of a reference to an old sources file
* fixed system config view misconfiguration
* fixed ids formating, added UI access call for updating entities through listeners
* refactored sm and ds types saving in proxy sm and ds entities
* fixed software module to distribution set assignment and software module dataprovider in Distributions View
* adapted add/update notification for software module and distribution set to show name and version, fixed search text field id
* adapted software module color highlighting in Distributions View
* adapted login ui
* started adapting Distributions View
* unified filter buttons click behaviour, added restore clicked filter to Upload View
* removed duplications in filter headers
* removed duplication in filter type/tag layouts
* added sm and ds type remote events matchers for listener
* adapted metadata details grid, update eventing fo details layout in Upload View
* adapted entity deletion eventing and selection on restore state for Upload View
* adapted file upload events handling, introduced RemoteEventsListener for the complete UI
* adapted Details Header to render two separate labels for caption prefix (entity type) and entity name to prevent xss attack
* upgraded vaadin to version 8.9.3, adapted upload artifact view and corresponding eventing further
* change visibility of components instead of removing them in Upload View
* adapted metadata popup window for target, distribution set and software module
* first iteration of adapting metadata window layout: created meta data dataproviders and window grids for target, ds and sm
* adapted auto assign window layout
* further refactoring of Target filter view and layouts
* adapted software module add/update window layout
* adapted distribution set add/update window layout
* refactored window layouts
* fixed software module add/update layout, adapted target add/update layout
* added validation of empty distribution set type software module types and mandatory property change
* further refactoring of distribution set type add/update window
* adapted distribution set type add/update window
* adapted software module type add/update window layout
* adapted tag layouts and color picker structure
* adapted target and ds tag add/update windows, refactored color picker
* added ds and sm type event containers
* refactored local eventing and remote events handling, mainly only for distributions view
* fixed ui alignment on the right side of the page
* Finalized upload view migration
* Fixed upload layout not enabled problem
* Migrated Upload view. Some small glitches still open.
* moved details headers to layouts
* added callback to update last selected entity in UI state after each grid selection, unified all details layouts
* further refactoring of Target Details
* added selected event publishing to selection support, refactored target details
* started unifying details layouts and adding details support classes
* unified grid layouts
* unified Target Filter Header
* fixed glitches in UI regarding Headers, dapted eventing for crud menu and close header supports
* unified types and tags headers
* unified more headers
* adapted TargetTableHeader to use AbstractGridHeader with Header Support classes, renamed to TargetGridHeader, removed unsused css properties
* added CrudMenuHeaderSupport, refactored AbstractGridHeader
* added AddHeaderSupport, BulkUploadHeaderSupport, CloseHeaderSupport, FilterButtonsHeaderSupport, ResizeHeaderSupport, SearchHeaderSupport, refactored ConfigMenuBar behaviour in MultipleTargetFilter
* started unifying headers
* extracted BulkUpload from AbstractTableHeader to TargetTableHeader
* removed header row for tags and types grids, adapted margin/padding for some layouts, modified css properties for borders, updated vaadin version to 8.8.6, vaadin-spring to 3.2.1
* added javax servlet api maven dependency to hawkbit-autoconfigure, because gwt-user is not used anymore, fixed a couple of runtime errors, hawkbit starts :)
* adapted TargetTableHeader drag and drop in order to filter targets by Distribution Sets, adapted gwt modules to inherit from compatibility Vaadin7WidgetSet, upgraded DistributionBar addon to be compatible with vaadin 8
* added NO TAG button to Target Tag and Distribution Tag layouts
* adapted Distribution Set Types and Software Module Types layouts
* adapted Target Tags layout, Distribution Set Tags Layout, added corresponding drag and drop supports
* migrated from Table to Grid in TargetFilterQueryButtons, adapted click listeners
* adapted twin columns layout for creating/updating Distribution Set Type
* adapted MetaData Details classes
* adapted AbstractMetadataPopupLayout and all children classes, refactored DeleteSupport
* adapted Grid in UploadProgressInfoWindow
* adapted software module details, target filter query details, removed custom combobox for autoassignment, adapted layouts and details
* removed obsolete classes, adapted layouts as needed, removed Custom Renderers because components are used directly within the grids
* added ArtifactDetailsGrid for Upload View, modified Artifact Layout to be consistent with Action History Layout in Deployment View, adapted Views and Layouts
* added SoftwareModuleGrid to Upload View
* migrated SwModuleTable to SwModuleGrid
* migrated Distribution Set Table from Distributions View to Grid, refactored drag and drop
* refactored target grid in Create/Update Filter View
* refactored tag classes to use TagData where possible
* migrated CreateOrupdateFilterTable to grid
* adapted tag token classes
* adapted Layouts, chaned Base Ui Event to except Proxy Entities
* adapted TargetFilterGrid
* Migrated TargetFilterTable to grid
* Removed vaadin Tokenfield dependency
* removed ConfirmationTab, using Component ConfirmationDialog instead; adapted MaintenanceWindowLayout, introduced AssignmentWindowLayout together with corresponding ComponentBuilder and Controller; added Drag and Drop support with differen Assignments support, adapted TargetGrid and DistributionGrid correspondingly; removed TargetAssignmentOperations utility class
* second version of PinSupport
* added DeleteSupport for target and distribution set items deletion
* first draft of PinSupport for pinning targets and distribution setes
* added first draft of Management Distribution Set Grid, adapted the corresponding data provider, adapted AbstractBaseViewFilter (should be checked)
* first draft of Target Grid, refactored Selection support to include multi-selection mode
* extracted single selection support, resize support and master details support from AbstractGrid, added filter type to AbstractGrid so the dataproviders are filterable by default, adapted some data providers to use filters, refactored master-details scenario for action history/status/msg layouts
* Adapted AbstractGrid for resize support, adapted ActionHistoryGrid, ActionStatusGrid, ActionStatusMsgGrid
* added rollout window specific classes (layouts, controllers, component builders)
* changed Rollout/Group/Target List Grids to use vaadin 8 concepts, added temp utility classes
* added ArtifactDataProvider and corresponding ProxyArtifact, SoftwareModuleArtifactsStateDataProvider, SoftwareModuleDistributionsStateDataProvider, TargetFilterStateDataProvider, TargetManagementStateDataProvider, TargetTagDataProvider and corresponding mappers
* added parent Type model class for DistributionSetType and SoftwareModuleType and corresponding ProxyType, added ActionDataProvider, ActionStatusDataProvider, ActionStatusMsgDataProvider, DistributionSetTagDataProvider, DistributionSetTypeDataProvider, SoftwareModuleTypeDataProvider and corresponding mappers
* extended data providers with filter, implemented multiple distribution set data providers for sifferent ui state (views), added target tag data provider, adapted Proxy Tag
* added data providers, mappers and proxy classes for fetching entities from backend and mapping them to ui proxy entities
* removed setImmediate on classes
* fixed usage of option group layouts, removed all setImmediate calls
* removed flexibleoptiongroup dependency and adapted the Option Group Layouts to use the default RadioButtonGroup
* adapted Vaadin Security and fixed Notifications
* Migrated vaadin 7 sources with the Vaadin migration tool to vaadin 8 compatibility mode
* fixed some minor sonar issues
* fixed license headers
* fixed dynamic stylesheet js license header
* adapted java docs parameters description, removed unused event classes
* fixed icon styles, made action icons a little bigger
* fixed download artifact action icon column header, fixed styling for the target filter query add/update layout, made it more responsive instead of hardcoding pixel values
* fixed Notification rendering regarding word wrap
* fixed restore behaviour with the invalid target filter query in Filter View
* replaced List collection with Set for better performance during DS pinning, tag assignment, target status filtering and rollout add/update window validation, ignored irrelevant sonar issues
* disable crud menu button on no CUD permissions, disable Rollout Group Button on missing permissions, removed Target Metadata details tab on missing repository read permissions, removed Autoassignment DS details tab on missing target read permissions, added UIEventPermissionChecker/HawkbitEventPermissionChecker to verify if current user has the required permissions in order to receive push events/notifications
* disable Autoassignment link in case of missing read repository permissions, disable TFQ save button in case of missing update target permissions
* adapted ordering of columns in maximized state
* limited selection in grids to 1000 entities, removed shift+ctrl selection behaviour (due to complex logic for preserving and limiting selection) disable edit/copy rollout on creation, small naming changes and java docs improvements
* added java docs to notification class
* fixed restoration of the default filter value for grids
* added caption to Delete column in grids, made target filter grid columns hidable, stoped propagation of select all event in order to not select the text on the page
* removed com.google.gwt.gwtmockito test dependency
* renamed RemoteEventsListener to HawkbitEntityEventListener to better describe the use-case for the listener
* changed Guava cache to Caffeine cache for EntityModified UI events
* removed obsolete HawkbitErrorNotificationMessage, UINotification is used instead
* added stacked notifications custom extension
* removed unused JUnitParams dependency
* fixed license header for ParallelNotificationConnector
* set ui mode back to production

Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io>
2020-08-21 16:57:00 +02:00
Sandeep Ravindranath
cf7add7aaa add method to get a single action by externalRef (#942)
* add method to get a single action by externalRef
* adding junit test for ControllerManagement::getActionByExternalRef
* fixing sonarQube findings
* improve assert statement

Signed-off-by: Ravindranath Sandeep <Sandeep.Ravindranath@bosch-si.com>
2020-03-19 10:16:30 +01:00
Sebastian Firsching
5feb5873c4 Feature mgmtapi add sha256 to softwaremodules (#918)
* Add sha256 hash to softwaremodules in mgmt api

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Adapt rest docs

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Edit comments

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>

* Add proper license header

Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>
2020-01-13 12:36:14 +01:00
Michael Herdt
e731585c45 Explain the toggle behavior in JavaDoc better. (#911)
Signed-off-by: Michael Herdt <Michael.Herdt2@bosch-si.com>
2019-11-13 12:59:18 +01:00
Stefan Klotz
9cb5d31396 Prioritisation of assignments via mgmt-API (#895)
* Updating the schema for targetfilterquery and rollout
* Updating the weight validation logic and tests
* Make weight optional
* Fix existing multi assignment tests by adding weight, remove weight from TargetFilterQuery
* Add weight validation tests, fix tests
* Add mgmt api tests for assignment and getting action with weight
* Add management layer validation and tests for creating rollouts with weight
* Fix amqp test, add repo level validation to resource tests
* Add weight to rollout mgmt-api and tests
* Add weight to mgmt api target Filter create and update
* Add target filter auto assign weight. disable enforcement of setting a weight in multiassign mode
* Remove ignored tests, fix api doc
* Fix minor findings
* Fix findings
* Remove hardcoded min weight
* Add docu text, fix findings
* Fix api documentation
* Expose weight via DMF
* Expose actions according to weight via ddi
* Fix documentation
* Add method to get actions ordered by weight to deploymentManagement
* Updating the schema for targetfilterquery and rollout
* Updated the indentation
* Updated the helper class, fixed the randomUID in test factory
* Updated the class name with prefix JPA
* Adding the missing License for WeightValidationHelper class
* Adding documentation to the dmf api on weight
* Removed the merger markers
* Updated the class name
* Removed the redundant method
* Addressed final PR comments
* Updated the missing testcase with latest default weight value
* Reverting the default value of weight back to 1000 and updated tests

Signed-off-by: Shruthi Manavalli Ramanna <shruthimanavalli.ramanna@bosch-si.com>
Signed-off-by: Stefan Klotz <stefan.klotz@bosch-si.com>
2019-11-08 10:47:35 +01:00
Alexander Dobler
09f2d8a481 Fix upload quota check and provide better error message (#893)
* Adjusted upload quota check to include file size and show proper error message

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch-si.com>

* Fixed failing upload quota tests

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch-si.com>

* Moved quota check to stream, fixed review findings

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch-si.com>

* Added missing license header to QuotaInputStream

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch-si.com>

* Reworked uploadLock, ensured error messages may be translated, review fixes

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch-si.com>

* Added local artifactrepo to gitignore

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch-si.com>

* Fixed sonar issues and assignment quota message

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch-si.com>

* PR review fixes

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch-si.com>

* Split quota exceptions, PR fixes

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch-si.com>

* Removed left over conversion method in quota helper

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch-si.com>

* Made conversion helper class final

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch-si.com>
2019-10-30 11:24:33 +01:00
Ammar Bikic
af0f7ceb5a Feature add optional name to thing created (#888)
* First implementation pushed because of debugging purpose

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Add name field and tests regarding name field functionality in THING_CREATED

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* SonarQube realted changes in name field functionality in THING_CREATED

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Add name field and tests regarding name field functionality in UPDATE_ATTRIBUTES

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Adapt documentation due to name field in THING_CREATED and UPDATE_ATTRIBUTES

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Add integration tests regarding name field functionality in THING_CREATED

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Reformat after finding format bug regarding THING_CREATED

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Reformat after finding the real format bug regarding THING_CREATED

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Reformat regarding THING_CREATED

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Use constant in THING_CREATED

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Format in THING_CREATED

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Resolving peer review comments regarding THING_CREATED

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Resolving peer review comments (organize imports) regarding THING_CREATED

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Refactoring regarding THING_CREATED

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Refactoring due to peer review

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Refactoring due to peer review

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Excluding UPDATE_ATTRIBUTES changes and provide functionality of updating the name property in THING_CREATED message

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Refactoring due to peer review

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Refactoring due to peer review

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Fix SonarQube finding

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Merge master into current branch

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>

* Fix peer review findings

Signed-off-by: Ammar Bikic <ammar.bikic@bosch-si.com>
2019-10-24 12:13:35 +02:00
Natalia Kislicyn
193603282a Introduce new DMF message THING_REMOVED (#891)
* Introduce new DMF message THING_REMOVED

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch-si.com>

* rename test to its original name

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch-si.com>

* API documentation adapted; constant defined for duplicated string

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch-si.com>

* Resolve review comments; Replace try/catch blocks in exceptions testing

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch-si.com>

* Re-add finally block in test cases

Signed-off-by: Natalia Kislicyn <natalia.kislicyn@bosch-si.com>
2019-10-10 14:41:47 +02:00
Stefan Klotz
8687510131 Assign multiple distribution sets to a target via mgmt api (#886)
* Add multiassignment to mgmt api target endpoint
* Remove single assignment ds to targets offline
* Fix tests
* Add quota for maxResultingActionsPerManualAssignment
* Fix assignment with same target or distribution set multiple times in one request
* Log UI error
* Add tests
* Enable single assignment requests with multiple DSs and types
* Remove redundant target to DS assignment methods
* Add tests, fix assignment
* Fix possible nullpointer during target assignment request
* Update api docu
* Clean up deployment management code
* Enforce MaxActions quota for offline assignment
* Fix review findings
* Rename property, add migration into
* Add builder for DeploymentRequest
* Change offline assignment method to accept an assignment list, like online assignment
* Fix PR findings

Signed-off-by: Stefan Klotz <stefan.klotz@bosch-si.com>
2019-09-17 14:20:26 +02:00
Ahmed Sayed
d40b11d2ab introduced open actionIds in MgmtTargetAssignmentResponseBody (#864)
* introduced open actionIds in MgmtTargetAssignmentResponseBody

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* fixed SonarQube issues

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* removed unused method parameter

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* updated documentation tests

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* added limit to the alreadyAssignedActions in the AssignmentResult

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* moved alreadyAssignedActions limitation to MgmtDistributionSetMapper

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* fixed review findings

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* removed alreadyAssignedActions

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* fixed sonarQube issues

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* fixed compilation error

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* fixed PR review findings

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* fixed PR review findings

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* Renamed AssignmentResult to AbstractAssignmentResult

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* fixed review findings

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* fixed formatting

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>

* reverted method visibility

Signed-off-by: Ahmed Sayed <ahmed.sayed@bosch-si.com>
2019-08-20 11:31:20 +02:00
Alexander Dobler
bde3548846 DDI supports sha256 (#869)
* Add SHA256 file hash to ddi GET outputs

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch-si.com>

* Integrate review findings for SHA256 changes

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch-si.com>

* Renamed hashes to base16hases in store() parameters

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch-si.com>

* Added missing javadoc according to sonarqube findings

Signed-off-by: Alexander Dobler <alexander.dobler3@bosch-si.com>
2019-07-29 14:11:40 +02:00
Sandeep Ravindranath
fba6cf9787 External ref for actions and status-update events (#830)
* Add feature to listen to rollout status update
* With this feature, extensions can update back the status of a given rollout using an event(containing distributionSetId and targetId).
* In future, AmqpMessageHandlerService can make use of this feature and de-couple its own implementation from performing status update of an action.
* Implement ActionStatusUpdateHandlerService using actionId
* Extend actions to support externalRef
* Update the action status using externalRef.
* Update securityContext to support running a callable under specific authorities.
* Fixing the review comments
* Increase length of externalRef to 128 chars
* Remove actionStatusUpdateEvent and the handler service
* Use 256 chars for externalRef
* Increment the version for migration script
* Another feature had use v1_12_12 in a recent PR. So incrementing the version.
* Create length limit for externalRef and add it to index
* Externalref will be much longer than 256 chars if controllerId is as long as 256 chars
* Adding tests for verifying externalRef in controllerManagement
* Improve test to consider multiple externalRefs
* Fix issue in migration script for mssql server
* Fix documentation

Signed-off-by: Ravindranath Sandeep (INST-IOT/ESW-Imb) <Sandeep.Ravindranath@bosch-si.com>
2019-07-25 09:45:07 +02:00
Robert Sing
749218098f Fixed typos in server error codes and messages (#867)
* fixed typos in server error codes and messages

Signed-off-by: Robert Sing <Robert.Sing@bosch-si.com>

* reverted changes of server error message keys

Signed-off-by: Robert Sing <Robert.Sing@bosch-si.com>
2019-07-18 09:55:13 +02:00
Florian Ruschbaschan
f6c0edffa5 Increase target name to 128 and target controller id to 256 (#849)
* Increase target name to 128 and target controller id to 256
* Fix test failures by using constant NamedEntity.NAME_MAX_SIZE + 1
* Use constant NamedEntity.NAME_MAX_SIZE + 1 for mgmt-resource tests
* Add db migration scripts to increase the controllerId and name limit
* Fix review issues
* Use correct constant field for junit tests
* Change Hawkbit documentation url of application-<db>.properties
* Add new line at the end of db migration scripts
* Update assertion description
* Revert copyright years to its creator year
* Add DDI-, AMQP- and controller management-tests

Signed-off-by: Florian Ruschbaschan <Florian.Ruschbaschan@bosch-si.com>
2019-06-18 15:29:15 +02:00
Jeroen Laverman
34fc7a7012 Add fix for Download-Only deployment type on DDI-API (#848)
Signed-off-by: Jeroen Laverman <jeroen.laverman@bosch-si.com>
2019-06-12 15:43:29 +02:00