Code Monkey home page Code Monkey logo

kuksa.cloud's People

Contributors

anntexx avatar bs-jokri avatar daschubert avatar eriksven avatar max-grzanna avatar phil-hei avatar sebastianschildt avatar trademkose avatar unly avatar vladrotea avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kuksa.cloud's Issues

/user - Create user

When successfully create a new user a wrong http status code will be returned.
It should be 201 (CREATED) instead of 200 (OK).

[Appstore] Issue connecting to Hawkbit

I built the new app-store (amd) with the new HawkBit-Ip and ran it locally.
Despite the correct IP inside the application.properties, creating new apps inside the app-store return an connection error and prompt me to change the properties IP-address .

Bug: POST /app - json property "hawkbitname"

Somehow the json property "hawkbitname" can only be at fourth or higher place in the request body.

When I try this
{
"hawkbitname":"test.app.hawkbit.name",
"version":"test.app.version",
"owner":"test.app.owner",
"name":"test.app.name",
"description":"test.app.description",
"publishdate":15432489869
}

I get this
as response
{
"timestamp": "2018-11-26T16:28:31.355+0000",
"status": 400,
"error": "Bad Request",
"message": "JSON parse error: null; nested exception is com.fasterxml.jackson.databind.JsonMappingException: N/A\n at [Source: (PushbackInputStream); line: 2, column: 16] (through reference chain: org.eclipse.kuksa.appstore.model.App["hawkbitname"])",
"path": "/api/1.0/app"
}

on console
2018-11-26 17:28:31.343 WARN 5760 --- [nio-8082-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: null; nested exception is com.fasterxml.jackson.databind.JsonMappingException: N/A
at [Source: (PushbackInputStream); line: 2, column: 16] (through reference chain: org.eclipse.kuksa.appstore.model.App["hawkbitname"])

Bug: POST /app - mandatory fields but not documented

The code indicates that for creating an app object it only requires "name" and "version" in request body but it requires almost every member variable of the app class.

I tried
{
"name":"test.create.app",
"version":"1.0"
}

But worked only with
{
"name":"test.create.app",
"version":"1.0",
"hawkbitname" : "test.create.app.hawkbit.name",
"description" : "test.create.app.description",
"owner" : "test.create.app.owner",
"publishdate" : 1543245051
}

Please make them either all mandatory or optional.

integrate Keycloak into the Kuksa cloud

To enable applications in the Kuksa platform to use authentication and authorization we need an service that acts as authorization server. Keycloak (https://www.keycloak.org/) provides such a services and could be integrated into the Kuksa cloud. The first step is to add the deployment of a Keycloak instance to the deployment scripts.

[HonoInfluxDBConnector] Support numerical values

Currently, the HonoInfluxDBConnector stores all incomming values as String:

pointBuilder.addField(entry.getKey(), entry.getValue().toString());

This prevents, for example, Grafana to query and visualize such data. Thus, data should be stored according to their incomming data type. As a workaround, I used the following code to store all numercial values as double:

for (Map.Entry<String, Object> entry : entries.entrySet()) { if (entry.getValue() instanceof Integer || entry.getValue() instanceof Float || entry.getValue() instanceof Double) { pointBuilder.addField(entry.getKey(), ((Number) entry.getValue()).doubleValue()); } else { pointBuilder.addField(entry.getKey(), entry.getValue().toString()); } }

provide scripts for Hono deployment

As an administrator of an Eclipse Kuksa cloud, I would like to be able to deploy and configure the required Hono services as easy as possible. Therefore, we provide a script (or a similar solution) for the deployment of Hono to an existing Kubernetes cluster.

[HonoInfluxDbConnector] Missing Dependency

When starting the HonoInfluxDBConnector, there is a compilation error regarding a missing package "javax.annotation", which is used in the InfluxDBClient (@PreDestroy). Adding

<dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.2</version> </dependency>

solved that issue for me. I'm using openjdk 11.0.3 on Ubuntu 16.04

JDK 9 support

Are there plans to support Java versions from 9 upwards in the near future?

provide scripts for Hawkbit deployment

As an administrator of a Eclipse Kuksa cloud, I want to be able to deploy and configure the required Hawkbit services as easy as possible. Therefore, there could be a script (or a similar solution) for the deployment of Hawkbit to an existing Kubernetes cluster.

[Appstore] OEM documentation

From the documentation in the Appstore README, I'm not sure what the purpose of the OEM is. It is part of a convention for names and controllerIds of targets which looks purely informational to me.

However, GroupAdmin users can also be assigned a single OEM. Why is that? Do you know an explanation, @trademkose?

Thanks!

[HonoInfluxDBConnector] SocketTimeoutException

Running the HonoInfluxDBConnector for a longer time caused the following exception:

`2019-04-24 14:08:03.694 ERROR 5517 --- [pool-1-thread-1] org.influxdb.impl.BatchProcessor : Batch could not be sent. Data will be lost

org.influxdb.InfluxDBIOException: java.net.SocketTimeoutException: timeout
at org.influxdb.impl.InfluxDBImpl.execute(InfluxDBImpl.java:514) ~[influxdb-java-2.7.jar:na]
at org.influxdb.impl.InfluxDBImpl.write(InfluxDBImpl.java:312) ~[influxdb-java-2.7.jar:na]
at org.influxdb.impl.BatchProcessor.write(BatchProcessor.java:248) ~[influxdb-java-2.7.jar:na]
at org.influxdb.impl.BatchProcessor$1.run(BatchProcessor.java:202) [influxdb-java-2.7.jar:na]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:514) [na:na]
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) [na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [na:na]
at java.base/java.lang.Thread.run(Thread.java:844) [na:na]
Caused by: java.net.SocketTimeoutException: timeout
`
Did anyone else stumbled into this kind of issue?

Kuksa-Appstore still uses DUMMY_SOFTWARE_MODULE after the UNINSTALL_ALL Changes

It seems the appstore still uses the DUMMY_SOFTWARE_MODULE in its deployment after it was removed as part of the UNINSTALL_ALL change. I checked out the new version of appstore and tried deploying an app and found that the DUMMY_SOFTWARE_MODULE is deployed along with the actual app artifacts (see image below). I was expecting only the app artifacts to be deployed and not the DUMMY_SOFTWARE_MODULE.

kuksa-bug

App-manager log running on raspberrypi. The version of app-manager used is latest from github and modified to work with UNINSTALL_ALL change.

kuksa-bug2

[hawkbit] UI does not work behind TLS termination

When running hawkbit behind TLS termination, it is problematic that hawkbit redirects requests for https://<hostname>:<port>/ to http://<host>:<port>/UI/. I.e. https is replaced by http and UI/ is appended instead of using a relative redirect only. Then the browser tries to connect to the HTTPS port using HTTP, which fails.

update Eclipse Hono

The current Eclipse Kuksa Cloud deployment uses Eclipse Hono in version 0.8. In the meantime Eclipse Hono 0.9 and milestones for Eclipse Hono 1.0 have been released. Because of that we should update the deployment of the Eclipse Kuksa Cloud to use a more recent Eclipse Hono version than 0.8.

Hawkbit -> Appstore Delete Sync Issue

When deleting a Software Distribution in Hawkbit, it's previously app in the Appstore remains in the database, and is even visible. However it can not be removed, even if chaning the Appname - neither can the Category of this app be removed. This naturally prevents the reusing of the Appname, even though there is no such functioning app with this Appname in Hawkbit.

Error: Software Module not found on Hawkbit

Documentation

The documentation for swagger.io is sometimes just copy-paste from other methods.

undeployment

To enable administrators to remove the changes introduced by the deployment of the Eclipse Kuksa Cloud we should provide a solution to undeploy/delete all resources that are created during the deployment of the Eclipse Kuksa Cloud.

[Appstore] Configuration should permit HTTPS connections to hawkBit

We use a hawkbit deployment that is secured using TLS so clients shall use HTTPS to connect to it. Currently the appstore uses hawkbit.host and hawkbit.port to configure a plain HTTP connection and the schema http:// is constant in the sources.

The sources, property files and documentation need to be updated to be able to use hawkbit.url (that's just a suggestion but the most meaningful one that came to my mind) instead of hawkbit.host and hawkbit.port to configure e.g. http://myHawkbitHost:8443.

This issue resulted from #63 . @trademkose could you work on this?

Exception while running appstore

Hi,
I receive an exeception when i execute "Java -jar kuksa...jar". I have configured the mariadb and created a new database called "appstore". Below are the application.properties entries
I have created a user admin2 with password admin in mariadb server. I have also checked for empty spaces in the properties file.

debug=false
spring.jpa.hibernate.ddl-auto=none
spring.datasource.url=jdbc:mariadb://localhost:3306/appstore
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.username=admin2
spring.datasource.password=admin
spring.h2.console.enabled=true
spring.h2.console.path=/console
spring.datasource.initialization-mode=always
spring.jpa.show-sql=true

hawkbit.host= localhost
hawkbit.port= 8080

hawkbit.username= admin
hawkbit.password= admin

appstore.username= admin2
appstore.password= admin

server.port=8082

Here is the exception i get

kuksa@kuksa:~/kuksa-appstore/kuksa.cloud/kuksa.appstore/target$ java -jar kuksa.appstore-0.0.1-SNAPSHOT.jar
2018-10-22 15:26:17.644 INFO 1453 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@52feb982: startup date [Mon Oct 22 15:26:17 CEST 2018]; root of context hierarchy
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.springframework.cglib.core.ReflectUtils$1 (jar:file:/home/kuksa/kuksa-appstore/kuksa.cloud/kuksa.appstore/target/kuksa.appstore-0.0.1-SNAPSHOT.jar!/BOOT-INF/lib/spring-core-5.0.8.RELEASE.jar!/) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of org.springframework.cglib.core.ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2018-10-22 15:26:18.214 INFO 1453 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'configurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$49730185] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)

. ____ _ __ _ _
/\ / ' __ _ () __ __ _ \ \ \
( ( )_
_ | '_ | '| | ' / ` | \ \ \
\/ )| |)| | | | | || (| | ) ) ) )
' |
| .__|| ||| |_, | / / / /
=========|
|==============|/=////
:: Spring Boot :: (v2.0.4.RELEASE)

2018-10-22 15:26:18.576 INFO 1453 --- [ main] o.e.kuksa.appstore.AppStoreApplication : No active profile set, falling back to default profiles: default
2018-10-22 15:26:18.608 INFO 1453 --- [ main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@59309333: startup date [Mon Oct 22 15:26:18 CEST 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@52feb982
2018-10-22 15:26:20.244 INFO 1453 --- [ main] o.s.b.f.s.DefaultListableBeanFactory : Overriding bean definition for bean 'dataSource' with a different definition: replacing [Root bean: class [null]; scope=refresh; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=false; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Hikari; factoryMethodName=dataSource; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]] with [Root bean: class [org.springframework.aop.scope.ScopedProxyFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in BeanDefinition defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]]
2018-10-22 15:26:20.271 WARN 1453 --- [ main] o.s.c.a.ConfigurationClassPostProcessor : Cannot enhance @configuration bean definition 'com.vaadin.spring.VaadinConfiguration' since its singleton instance has been created too early. The typical cause is a non-static @bean method with a BeanDefinitionRegistryPostProcessor return type: Consider declaring such methods as 'static'.
2018-10-22 15:26:20.511 INFO 1453 --- [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=4453f2db-b1eb-3014-bebb-2928591e446f
2018-10-22 15:26:20.869 INFO 1453 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$2d58fe88] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2018-10-22 15:26:20.963 INFO 1453 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$49730185] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2018-10-22 15:26:21.616 INFO 1453 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8082 (http)
2018-10-22 15:26:21.665 INFO 1453 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2018-10-22 15:26:21.666 INFO 1453 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.32
2018-10-22 15:26:21.684 INFO 1453 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib]
2018-10-22 15:26:21.802 INFO 1453 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2018-10-22 15:26:21.802 INFO 1453 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 3195 ms
2018-10-22 15:26:21.828 INFO 1453 --- [ost-startStop-1] c.v.s.b.i.VaadinServletConfiguration : Registering Vaadin servlet
2018-10-22 15:26:21.828 INFO 1453 --- [ost-startStop-1] c.v.s.b.i.VaadinServletConfiguration : Servlet will be mapped to URLs [/vaadinServlet/, /VAADIN/]
2018-10-22 15:26:21.887 INFO 1453 --- [ost-startStop-1] c.v.s.b.i.VaadinServletConfiguration : Setting servlet init parameters
2018-10-22 15:26:21.888 INFO 1453 --- [ost-startStop-1] c.v.s.b.i.VaadinServletConfiguration : Set servlet init parameter [productionMode] = [false]
2018-10-22 15:26:21.890 INFO 1453 --- [ost-startStop-1] c.v.s.b.i.VaadinServletConfiguration : Set servlet init parameter [resourceCacheTime] = [3600]
2018-10-22 15:26:21.890 INFO 1453 --- [ost-startStop-1] c.v.s.b.i.VaadinServletConfiguration : Set servlet init parameter [heartbeatInterval] = [300]
2018-10-22 15:26:21.890 INFO 1453 --- [ost-startStop-1] c.v.s.b.i.VaadinServletConfiguration : Set servlet init parameter [closeIdleSessions] = [false]
2018-10-22 15:26:22.057 INFO 1453 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/]
2018-10-22 15:26:22.058 INFO 1453 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/
]
2018-10-22 15:26:22.058 INFO 1453 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/]
2018-10-22 15:26:22.058 INFO 1453 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/
]
2018-10-22 15:26:22.059 INFO 1453 --- [ost-startStop-1] .s.DelegatingFilterProxyRegistrationBean : Mapping filter: 'springSecurityFilterChain' to: [/]
2018-10-22 15:26:22.059 INFO 1453 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
2018-10-22 15:26:22.062 INFO 1453 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Servlet springVaadinServlet mapped to [/vaadinServlet/
, /VAADIN/]
2018-10-22 15:26:22.063 INFO 1453 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Servlet webServlet mapped to [/console/
]
2018-10-22 15:26:22.325 INFO 1453 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2018-10-22 15:26:22.441 INFO 1453 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2018-10-22 15:26:22.449 INFO 1453 --- [ main] o.s.jdbc.datasource.init.ScriptUtils : Executing SQL script from URL [jar:file:/home/kuksa/kuksa-appstore/kuksa.cloud/kuksa.appstore/target/kuksa.appstore-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/schema.sql]
2018-10-22 15:26:22.454 INFO 1453 --- [ main] o.s.jdbc.datasource.init.ScriptUtils : Executed SQL script from URL [jar:file:/home/kuksa/kuksa-appstore/kuksa.cloud/kuksa.appstore/target/kuksa.appstore-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/schema.sql] in 5 ms.
2018-10-22 15:26:22.682 INFO 1453 --- [ main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default'
2018-10-22 15:26:22.713 INFO 1453 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
name: default
...]
2018-10-22 15:26:22.861 INFO 1453 --- [ main] org.hibernate.Version : HHH000412: Hibernate Core {5.2.17.Final}
2018-10-22 15:26:22.864 INFO 1453 --- [ main] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found
2018-10-22 15:26:22.892 WARN 1453 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
2018-10-22 15:26:22.893 INFO 1453 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2018-10-22 15:26:22.902 INFO 1453 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
2018-10-22 15:26:22.903 INFO 1453 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]

document the order of the steps for the deployment

At the moment, the documentation of the deployment in the respective Readme file describes the different step. But for a user or administrator being new to the project it is cumbersome to figure out which steps are necessary and in which order the steps shall be executed. Because of that it would be great to extend the documentation for the deployment in that direction.

[Appstore] Feature Request: Advanced API for testing

atm. we are testing the process of buying and installing manually.
Is it possible to expose those actions on the API?
This would allow us to automate those tests and give more detailed feed-back on possible issues.

Bug: GET /apps/user/{userId} - Possibly wrong method

Either the documentation or the implementation itself is strange.

The documetnation says that I get the user's installed apps but the code calls
appService.findByNameStartsWithIgnoreCaseAndInstalledusersId("", userId, pageable). This method does not return me the desired user's installed apps. Maybe the structure of this query is not right.

There is a method that can be the right query
findUsersApps(String userId, List oemList, Pageable pageable) but I do not understand the necessary of oemList in this query.

My actions:
1.) Create a user
2.) Create an app category
3.) Create an app
4.) Update app with category
5.) Update user with installed app from 3
6.) Get all installed apps from user from 1

[HonoInfluxDBConnector] Run it with rover as tenant

Currently, one instance of the HonoInfluxDBConnector runs and stores all data that goes to the "DEFAULT_TENANT". Due to seperation of concerns and to support the storing of Rover telemetry data, an instance should also be configured and run for the "rover" tenant.

[Appstore] Indexing of database

The indexing of the entire database seems to be off.

IDs to Users, Apps, Categories are assigned as follows: 1, 2, 3, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 56 ... 117, 127 etc.
Furthermore, IDs for separate entities (Category, OEMs) are not assigend chronologically for each entity, but are interleaved at the point of creation. e.g: Category 1, OEM 2

Apart from that, IDs are never reset, or counted down on removal of any entry. Is this the desired behavior or also a bug?

Please have a look into this

Exception during app installation

Details:

Problem:

  • When I try to install an app via the appstore a click on the install button leads to the following exception:

grafik

Detailed exception description:

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(ArrayList.java:657) ~[na:1.8.0_171] at java.util.ArrayList.get(ArrayList.java:433) ~[na:1.8.0_171] at org.eclipse.kuksa.appstore.service.AppService.InstallApp(AppService.java:390) ~[classes/:na] at org.eclipse.kuksa.appstore.ui.AppView$1.buttonClick(AppView.java:184) ~[classes/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_171] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_171] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171] at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:499) ~[vaadin-server-8.6.0.jar:8.6.0] at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:273) ~[vaadin-server-8.6.0.jar:8.6.0] at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:237) ~[vaadin-server-8.6.0.jar:8.6.0] at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1014) ~[vaadin-server-8.6.0.jar:8.6.0] at com.vaadin.ui.Button.fireClick(Button.java:384) ~[vaadin-server-8.6.0.jar:8.6.0] at com.vaadin.ui.Button$1.click(Button.java:57) ~[vaadin-server-8.6.0.jar:8.6.0] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_171] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_171] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171] at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:155) ~[vaadin-server-8.6.0.jar:8.6.0] at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:116) ~[vaadin-server-8.6.0.jar:8.6.0] at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:445) [vaadin-server-8.6.0.jar:8.6.0] at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:410) [vaadin-server-8.6.0.jar:8.6.0] at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:274) [vaadin-server-8.6.0.jar:8.6.0] at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90) [vaadin-server-8.6.0.jar:8.6.0] at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40) [vaadin-server-8.6.0.jar:8.6.0] at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1601) [vaadin-server-8.6.0.jar:8.6.0] at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:445) [vaadin-server-8.6.0.jar:8.6.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) [tomcat-embed-websocket-8.5.32.jar:8.5.32] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:209) [spring-security-web-5.0.7.RELEASE.jar:5.0.7.RELEASE] at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) [spring-security-web-5.0.7.RELEASE.jar:5.0.7.RELEASE] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) [spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) [spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) [spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109) [spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93) [spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) [spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.0.8.RELEASE.jar:5.0.8.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1471) [tomcat-embed-core-8.5.32.jar:8.5.32] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.32.jar:8.5.32] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_171] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_171] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.32.jar:8.5.32] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_171]

Persistent Grafana dashboards and Influxdb data

@rohoet noticed that when a Grafana container is restarted, only the Hono dashboard is recreated. Manually added dashboards are lost. Likewise, Influxdb does not retain data between container restarts.

We would like both Grafana and Influxdb to use persistent volume claims to become persistent.

A default dashboard for the Rover should be pre-installed, like the default Hono dashboard.

add deployment for InfluxDB

The current version of the Eclipse Kuksa Cloud contains a deployment of the InfluxDB. This database is part of the deployment of Eclipse Hono. With Eclipse Hono release 0.9-M1 (https://www.eclipse.org/hono/release-notes/), the InfluxDB deployment has been replaced by Prometheus. However, other services in the Eclipse Kuksa Cloud make use of the InfluxDB so we need to add the deployment of the database directly to the Eclipse Kuksa Cloud deployment when updating to a new version of Eclipse Hono.

Automated Checks

Hi,

currently this repository lacks any automated tests and checks except the contributor agreement with the Eclipse Foundation. Personally, I would prefer to have at least a compile and unit test pipeline to have a quick feedback on a new pull request. There are plenty of free offers like https://travis-ci.org/ and https://circleci.com/ that could be used.

Pipelines are not necessarily limited to compiling. They could also help checking formatting, build images or run integration tests.

For the moment, I would propose to start with a basic job to make sure sources can be compiled in a certain environment.

add deployment script for the mil use example

In /examples there is the /malfunction-indicator-light folder containing the code for that use case. However, it would be great to have a script or a similar solution to deploy the components of that use case preferably under /deployment. The needed template for the kubernetes descriptors are already present in /examples/malfunction-indicator-light/deploy/kubernetes .

add more information to pom.xml of the app-store

We need to adapt the pom.xml of the app store a bit by adding the license () and a link to the website of Eclipse Kuksa ().
Automatic code analysis tools (e.g. ORT https://github.com/heremaps/oss-review-toolkit) may use the information from the parent pom.xml are. In the case of the app-store this is the information for the spring-boot-starter-parent which has another license (Apache 2.0) and obviously another website.

[InfluxDB] Performance with multiple rovers sending data

During BCX we had multiple rovers and the demonstrator send data to InfluxDB via InfluxDBConnector. After a quick analysis it seemed like data was sent to InfluxDB but was not available via the InfluxDB HTTP API in time. There seemed to be a delay after which data became visible.

We should try to reproduce the problem and then analyze it. Could be a configuration issue or maybe an update of InfluxDB would help.

Bug: PUT /user/{userId} - UserService

The user with the given id will not be updated with the request body because there is a bug in UserService.

1.) There is no merge with currentUser (user fetched from db) and the parameter userObject (request body).

2.) UserObject (request body) will be saved as new user (see userRepository.save(userObject)).
The newly created user will not have the same id as the given url parameter.

3.) Instead of the currentUser (fetched from db) the user from request body (saved as new user in db) will be returned.

Solution: After validate the userObject (request body) merge the given data to the currentUser (fetched fom db). Then update currentUser ind db and return it from the response.

add deployment files for the appstore

The scripts and files for the deployment of the Eclipse Kuksa Cloud should contain the option to deploy the Eclipse Kuksa App Store that which is part of the Eclipse Cloud repository.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.