SOTA Client

Jon Oster jon at advancedtelematic.com
Thu Sep 29 09:45:58 EDT 2016


Hi Rudi,

Currently, the CORE_INTERACTION_PROTOCOL environment variable can be set to ‘rvi’ for RVI interaction with clients, or ‘none’ when the clients are hitting Core’s API endpoints directly. The ‘rvi’ setting restricts the endpoints Core exposes to the subset that RVI actually uses. Since (as you pointed out) RVI doesn’t include a method for sending the system info, we disable that endpoint on Core when RVI is set as the interaction protocol.

Best,

Jon

> On Sep 29, 2016, at 2:51 AM, Streif, Rudolf <rstreif at jaguarlandrover.com> wrote:
> 
> Jon, Arthur,
> 
> I enabled device registration to the sota server core. The device attempts to send its system info:
> 
> 2016-09-29T00:44:26Z (0167dce): INFO - PUT http://38.101.164.230:8080/api/v1/device_updates/b4a59275-6aa9-4682-99c8-3ee2d2bf6325/system_info <http://38.101.164.230:8080/api/v1/device_updates/b4a59275-6aa9-4682-99c8-3ee2d2bf6325/system_info>
> 2016-09-29T00:44:26Z (0167dce): INFO - Request length: 14504 bytes
> 2016-09-29T00:44:26Z (0167dce): DEBUG - body:
> { /* device info omitted for clarity */
> }
> 
> 2016-09-29T00:44:26Z (0167dce): INFO - Response status: 405 Method Not Allowed
> 2016-09-29T00:44:26Z (0167dce): DEBUG - on_response headers:
> x-ats-traceid: 10bd4662-9c47-46be-80e7-a228792fb721
> x-ats-trace-sig: 9ad8e647d413ada5b0922c00eef5dfae661b9bf5
> x-ats-version: sota-core/0.0.1-6676a0941aa428989e7becf29b1644f77a3e927b-SNAPSHOT-SNAPSHOT
> Allow: GET
> Server: akka-http/2.4.8
> Date: Thu, 29 Sep 2016 00:44:26 GMT
> Connection: close
> Content-Type: text/plain; charset=UTF-8
> Content-Length: 47
> 
> 
> Apparently the device receives "405 Method Not Allowed" when sending the device info via HTTP PUT.
> 
> On the server side there is not much info:
> 
> core_1             | I|00:44:26.463|akka.actor.ActorSystemImpl|method=PUT path=/api/v1/device_updates/b4a59275-6aa9-4682-99c8-3ee2d2bf6325/system_info service_name=sota-core stime=1 status=405 traceid=10bd4662-9c47-46be-80
> e7-a228792fb721
> 
> What's the issue?
> 
> :rjs
> 
> 
> 
> On Wed, Sep 28, 2016 at 4:47 PM, Streif, Rudolf <rstreif at jaguarlandrover.com <mailto:rstreif at jaguarlandrover.com>> wrote:
> I worked through these issues most of which are related to sbt (most likely the version that is provided with the sota server). That version is not the official sbt but one from another developer.
> 
> 
> ./sbt docker:publishLocal
> 
> creates this problem:
> 
> :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
> download failed: org.scala-sbt#main;0.13.11!main.jar
> download failed: org.scala-sbt#actions;0.13.11!actions.jar
> download failed: org.scala-sbt#io;0.13.11!io.jar
> download failed: org.scala-sbt#completion;0.13.11!completion.jar
> download failed: org.scala-sbt#collections;0.13.11!collections.jar
> download failed: org.scala-sbt#api;0.13.11!api.jar
> download failed: org.scala-sbt#incremental-compiler;0.13.11!incremental-compiler.jar
> download failed: org.scala-sbt#compile;0.13.11!compile.jar
> download failed: org.scala-sbt#ivy;0.13.11!ivy.jar
> download failed: org.scala-sbt#main-settings;0.13.11!main-settings.jar
> download failed: org.scala-sbt#command;0.13.11!command.jar
> download failed: org.scala-sbt#compiler-interface;0.13.11!compiler-interface.jar
> Error during sbt execution: Error retrieving required libraries
>  (see /home/rstreif/.sbt/boot/update.log for complete log)
> Error: Could not retrieve sbt 0.13.11
> 
> It's the same result on the GENIVI Debian-based SOTA server as well as on my dev box running Fedora 24.
> 
> sbt typically tries multiple sources (mirrors) to download the required artifacts from. Surprisingly enough quite a few do not have the artifacts available at all. Then there are several sources (mirrors) who use URL redirection to another server. The sbt tool included with the sota server repo cannot deal with redirects. That has been a known problem with the official sbt tool too. The official tool has been fixed however this tool still seems to suffer from the problem.
> 
> I ended up manually downloading the artifacts which is when I discovered the redirection.
> 
> 
> sbt docker:publishLocal
> 
> with this result:
> 
> [info] Loading project definition from /home/rstreif/develop/rvi_sota_server/project
> fatal: No names found, cannot describe anything.
> [info] Set current project to sota (in build file:/home/rstreif/develop/rvi_sota_server/)
> java.lang.UnsupportedClassVersionError: com/typesafe/config/ConfigException : Unsupported major.minor version 52.0
>        at java.lang.ClassLoader.defineClass1(Native Method)
>        at java.lang.ClassLoader.defineClass(ClassLoader.java:803)
>        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
>        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
>        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
>        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
>        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
>        at com.typesafe.sbt.web.SbtWeb$$anonfun$com$typesafe$sbt$web$SbtWeb$$load$1.apply(SbtWeb.scala:559)
>        at com.typesafe.sbt.web.SbtWeb$$anonfun$com$typesafe$sbt$web$SbtWeb$$load$1.apply(SbtWeb.scala:559)
>        at scala.Option.fold(Option.scala:157)
>        at com.typesafe.sbt.web.SbtWeb$.com$typesafe$sbt$web$SbtWeb$$load(SbtWeb.scala:573)
>        at com.typesafe.sbt.web.SbtWeb$$anonfun$globalSettings$1$$anonfun$apply$1.apply(SbtWeb.scala:143)
>        at com.typesafe.sbt.web.SbtWeb$$anonfun$globalSettings$1$$anonfun$apply$1.apply(SbtWeb.scala:143)
>        at scala.Function1$$anonfun$andThen$1.apply(Function1.scala:55)
>        at sbt.Project$.setProject(Project.scala:319)
>        at sbt.BuiltinCommands$.doLoadProject(Main.scala:503)
>        at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:484)
>        at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:484)
>        at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:59)
>        at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:59)
>        at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:61)
>        at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:61)
>        at sbt.Command$.process(Command.scala:93)
>        at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:96)
>        at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:96)
>        at sbt.State$$anon$1.process(State.scala:184)
>        at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:96)
>        at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:96)
>        at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
>        at sbt.MainLoop$.next(MainLoop.scala:96)
>        at sbt.MainLoop$.run(MainLoop.scala:89)
>        at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:68)
>        at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:63)
>        at sbt.Using.apply(Using.scala:24)
>        at sbt.MainLoop$.runWithNewLog(MainLoop.scala:63)
>        at sbt.MainLoop$.runAndClearLast(MainLoop.scala:46)
>        at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:30)
>        at sbt.MainLoop$.runLogged(MainLoop.scala:22)
>        at sbt.StandardMain$.runManaged(Main.scala:54)
>        at sbt.xMain.run(Main.scala:29)
>        at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
>        at xsbt.boot.Launch$.withContextLoader(Launch.scala:128)
>        at xsbt.boot.Launch$.run(Launch.scala:109)
>        at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:35)
>        at xsbt.boot.Launch$.launch(Launch.scala:117)
>        at xsbt.boot.Launch$.apply(Launch.scala:18)
>        at xsbt.boot.Boot$.runImpl(Boot.scala:41)
>        at xsbt.boot.Boot$.main(Boot.scala:17)
>        at xsbt.boot.Boot.main(Boot.scala)
> [error] java.lang.UnsupportedClassVersionError: com/typesafe/config/ConfigException : Unsupported major.minor version 52.0
> [error] Use 'last' for the full log.
> Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore?
> 
> This issue is related to the Play framework and the Java version installed on the system.
> 
> java.lang.UnsupportedClassVersionError: com/typesafe/config/ConfigException : Unsupported major.minor version 52.0
> 
> The error message somewhat cryptically tells us that Java 8 is required (major version = 8). Incidentally, the system I have been using only had Java 7 installed.
> 
> 
> Now the sota server builds and creates the docker images locally.
> 
> The local version now also resolves the issue with devices being added to the registry but not showing up in the device list.
> 
> So far, so good. Let's see what's next....
> 
> :rjs
> 
> 
> 
> --
> Rudolf J Streif
> System Architect - Open Source Initiative
> Open Source Technology Centre
> 
> M: +1.619.631.5383
> Email:  rstreif at jaguarlandrover.com <mailto:rstreif at jaguarlandrover.com>
> 
> 
> 
> UK: G/26/2 G02 Building 523, Engineering Centre, Gaydon, Warwick, CV35 ORR
> US: 1419 NW 14th Ave, Portland, OR 97209
> jaguar.com <http://jaguar.com/> | landrover.com <http://landrover.com/>
> -------------------
> Business Details:
> Jaguar Land Rover Limited
> Registered Office: Abbey Road, Whitley, Coventry CV3 4LF
> Registered in England No: 1672070
> 
> This e-mail and any attachments contain confidential information for a specific individual and purpose.  The information is private and privileged and intended solely for the use of the individual to whom it is addressed.  If you are not the intended recipient, please e-mail us immediately.  We apologise for any inconvenience caused but you are hereby notified that any disclosure, copying or distribution or the taking of any action in reliance on the information contained herein is strictly prohibited.
> 
> This e-mail does not constitute an order for goods or services unless accompanied by an official purchase order.
> 
> _______________________________________________
> genivi-projects mailing list
> genivi-projects at lists.genivi.org <mailto:genivi-projects at lists.genivi.org>
> http://lists.genivi.org/cgi-bin/mailman/listinfo/genivi-projects <http://lists.genivi.org/cgi-bin/mailman/listinfo/genivi-projects>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genivi.org/pipermail/genivi-projects_lists.genivi.org/attachments/20160929/4ee4ba14/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 841 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.genivi.org/pipermail/genivi-projects_lists.genivi.org/attachments/20160929/4ee4ba14/attachment.asc>


More information about the genivi-projects mailing list