<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>11490</bug_id>
          
          <creation_ts>2017-05-10 09:45:18 +0000</creation_ts>
          <short_desc>Configuration Management Solution Study</short_desc>
          <delta_ts>2017-08-09 11:00:05 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>6</classification_id>
          <classification>Yocto Project Subprojects</classification>
          <product>IoT Reference OS Kit</product>
          <component>intel-iot-refkit-default</component>
          <version>2.4</version>
          <rep_platform>All</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>2.4 M2</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Krisztian Litkey">krisztian.litkey</reporter>
          <assigned_to name="Amaranth Valluri">amarnath.valluri</assigned_to>
          <cc>amarnath.valluri</cc>
    
    <cc>jose.perez.carranza</cc>
    
    <cc>patrick.ohly</cc>
          
          <qa_contact name="Jair Gonzalez">jair.de.jesus.gonzalez.plascencia</qa_contact>
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>No (bug/feature does not impact docs)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>73157</commentid>
    <comment_count>0</comment_count>
    <who name="Krisztian Litkey">krisztian.litkey</who>
    <bug_when>2017-05-10 09:45:18 +0000</bug_when>
    <thetext>Evaluate the suitability of existing configuration management solutions (uci/luci, etc.) for integration into refkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75078</commentid>
    <comment_count>1</comment_count>
    <who name="Patrick Ohly">patrick.ohly</who>
    <bug_when>2017-07-17 18:53:09 +0000</bug_when>
    <thetext>Amarnath, are you now working on this instead of Krisztian? Is it realistic to finish this before 2.4 M2 (basically end of this month)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75098</commentid>
    <comment_count>2</comment_count>
    <who name="Amaranth Valluri">amarnath.valluri</who>
    <bug_when>2017-07-18 09:15:15 +0000</bug_when>
    <thetext>(In reply to comment #1)
&gt; Amarnath, are you now working on this instead of Krisztian? Is it realistic
&gt; to finish this before 2.4 M2 (basically end of this month)?

Yes, i been working on this. Currently evaluating the usage of UCI/LuCI on refkit. I think we can finish this for M2 scope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75766</commentid>
    <comment_count>3</comment_count>
    <who name="Amaranth Valluri">amarnath.valluri</who>
    <bug_when>2017-08-09 11:00:05 +0000</bug_when>
    <thetext>Here is the update on OpenWRT&apos;s uci/LuCI evaluation:

- UCI: is the configuration solution for OpenWRT&apos;s systems.
- LuCI/LuCI2/JuCI : is the web interface for configuring devices running OpenWRT system, built on top of UCI. License: Apache-2.0
- LuCI is Lua based, and uses Lua extensions to access subsystem info and is appeared to be quite resource consuming and didn&apos;t work well on devices with slow CPU and little amount of RAM.
- LuCI2 is a new(experimental) web interface with a different architecture written using JavaScript. It uses XHR(XmlHTTPRequest) method., that means building the HTML pages is done at client side. LuCI2 uses ubus(inter-process communication bus system) to communicate with the subsystem. License: Apache v2.0
- JuCI is modern web interface build using HTML5 and angular.js, and uses websockets for communicating with a compact and fast lua backend running o the device. License: GPLv3
- LuCI2 is preferred web interface over Luci and Juci due to it&apos;s simple architecture, less external dependencies and flexible licensing.
- LuCI2 web interface provides configuration ui for:
    - System information such as host name, device model, Firmware version, Kernel version, Device memory information, Storage details.
    - Routes –     IPv4/v6 routes active on the system
    - Kernel logs
    - System logs     (/var/log/messages)
    - Sending signals to running processes     
    - Add/remove ssh keys(dropbear)
    - Adding/removing network interfaces
    - enable/disable a network device
- Luci2 provides base widgets(JS objects) which can be extended to customize the ui. New UI tabs/views can be added by extending Luci&apos;s L.ui.view JavaScript object.

- External dependencies we bring-in:
    libubox – C utility functions for OpenWrt
    uci  - A small utility written in C, intended to centralize the configuration
    ubus – OpenWrt micro bus for inter process communication
    rpcd – ubus RPC backend server
    luci2 - OpenWrt web user interface
    uhttp2     – light weight web server
    ustream-ssl - Ustream SSL wrapper library

The Yocto meta data for these components are grouped under meta-configuration layer:
   https://github.com/avalluri/meta-configuration

There needs to be work done at system adaptation., i.e, Make refkit core components such as openssh, connman etc., aware of UCI configuration, by writing adapters. Similar proof of concept work is done here:
https://github.com/avalluri/rpcd-system-plugin
https://github.com/avalluri/connman-uci</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>