freecwmp
[Top] [All Lists]

Re: [PATCH 16/27] update the script device_info in order to output param

To: freecwmp@lukaperkov.net
Subject: Re: [PATCH 16/27] update the script device_info in order to output parameters with ubus Contributed by Inteno Broadband Technology AB
From: Ahmed ZRIBI <ahmed.zribi@pivasoftware.com>
Date: Tue, 25 Dec 2012 17:51:25 +0100
Cc: mohamed.kallel@pivasoftware.com, freecwmp@linux-mips.org, jogo@openwrt.org
In-reply-to: <20121208105112-10595@mutt-kz>
Organization: PIVA Software
Original-recipient: rfc822;freecwmp@linux-mips.org
References: <mohamed.kallel@pivasoftware.com> <1354809292-2467-1-git-send-email-mohamed.kallel@pivasoftware.com> <1354809292-2467-17-git-send-email-mohamed.kallel@pivasoftware.com> <20121208105112-10595@mutt-kz>
Reply-to: ahmed.zribi@pivasoftware.com
Sender: freecwmp-bounce@linux-mips.org
User-agent: Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/17.0 Thunderbird/17.0

Le 08/12/2012 11:51, Luka Perkov a écrit :
Missing commit message. Contributed by must go in commit message and not
in subject.

On Thu, Dec 06, 2012 at 04:54:41PM +0100, Mohamed wrote:
Signed-off-by: Mohamed <mohamed.kallel@pivasoftware.com>
Signed-off-by: Ahmed ZRIBI <ahmed.zribi@pivasoftware.com>
---
  ext/openwrt/scripts/functions/device_info |  199 +++++++++++++++++++++++++++--
  1 files changed, 187 insertions(+), 12 deletions(-)

diff --git a/ext/openwrt/scripts/functions/device_info 
b/ext/openwrt/scripts/functions/device_info
index 86ff5c9..c3c6c33 100644
--- a/ext/openwrt/scripts/functions/device_info
+++ b/ext/openwrt/scripts/functions/device_info
@@ -2,7 +2,15 @@
  # Copyright (C) 2011-2012 Luka Perkov <freecwmp@lukaperkov.net>
get_device_info_manufacturer() {
-local val=`/sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} get 
freecwmp.@device[0].manufacturer 2> /dev/null`
+local val=""
+case "$action" in
+       get_value)
+       val=`/sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} get 
freecwmp.@device[0].manufacturer 2> /dev/null`
+       ;;
+       get_name)
+       val="0"
+       ;;
I don't like this... Tell us what why you use val? Why is it 0? What does that
mean? Generally all this information must go in commit message.
GetParameterNamesResponse must contain the parameter name and the permission ("writable" tag in soap message), in the cwmp standard "0" means the parameter is not writable; "1" means the parameter is writable.
+esac
  ubus_freecwmp_output "InternetGatewayDevice.DeviceInfo.Manufacturer" "$val"
We should have something like:

freecwmp_output "InternetGatewayDevice.DeviceInfo.Manufacturer" "$val" "$permissions" 
"$type" "$fault_code"

Same goes for all other changes.

  }
@@ -11,7 +19,15 @@ set_device_info_manufacturer() {
  }
get_device_info_oui() {
-local val=`/sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} get 
freecwmp.@device[0].oui 2> /dev/null`
+local val=""
+case "$action" in
+       get_value)
+       val=`/sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} get 
freecwmp.@device[0].oui 2> /dev/null`
+       ;;
+       get_name)
+       val="0"
+       ;;
+esac
  ubus_freecwmp_output "InternetGatewayDevice.DeviceInfo.ManufacturerOUI" "$val"
  }
@@ -20,7 +36,15 @@ set_device_info_oui() {
  }
get_device_info_product_class() {
-local val=`/sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} get 
freecwmp.@device[0].product_class 2> /dev/null`
+local val=""
+case "$action" in
+       get_value)
+       val=`/sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} get 
freecwmp.@device[0].product_class 2> /dev/null`
+       ;;
+       get_name)
+       val="0"
+       ;;
+esac
  ubus_freecwmp_output "InternetGatewayDevice.DeviceInfo.ProductClass" "$val"   
    
  }
@@ -29,7 +53,15 @@ set_device_info_product_class() {
  }
get_device_info_serial_number() {
-local val=`/sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} get 
freecwmp.@device[0].serial_number 2> /dev/null`
+local val=""
+case "$action" in
+       get_value)
+       local val=`/sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} get 
freecwmp.@device[0].serial_number 2> /dev/null`
+       ;;
+       get_name)
+       local val="0"
+       ;;
+esac
  ubus_freecwmp_output "InternetGatewayDevice.DeviceInfo.SerialNumber" "$val"
  }
@@ -38,7 +70,15 @@ set_device_info_serial_number() {
  }
get_device_info_hardware_version() {
-local val=`/sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} get 
freecwmp.@device[0].hardware_version 2> /dev/null`
+local val=""
+case "$action" in
+       get_value)
+       val=`/sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} get 
freecwmp.@device[0].hardware_version 2> /dev/null`
+       ;;
+       get_name)
+       val="0"
+       ;;
+esac
  ubus_freecwmp_output "InternetGatewayDevice.DeviceInfo.HardwareVersion" "$val"
  }
@@ -47,7 +87,15 @@ set_device_info_hardware_version() {
  }
get_device_info_software_version() {
-local val=`/sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} get 
freecwmp.@device[0].software_version 2> /dev/null`
+local val=""
+case "$action" in
+       get_value)
+       val=`/sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} get 
freecwmp.@device[0].software_version 2> /dev/null`
+       ;;
+       get_name)
+       val="0"
+       ;;
+esac
  ubus_freecwmp_output "InternetGatewayDevice.DeviceInfo.SoftwareVersion" "$val"
  }
@@ -56,17 +104,32 @@ set_device_info_software_version() {
  }
get_device_info_uptime() {
-local val=`cat /proc/uptime | awk -F "." '{ print $1 }'`
+local val=""
+case "$action" in
+       get_value)
+       val=`cat /proc/uptime | awk -F "." '{ print $1 }'`
+       ;;
+       get_name)
+       val="0"
+       ;;
+esac
  ubus_freecwmp_output "InternetGatewayDevice.DeviceInfo.UpTime" "$val"
  }
get_device_info_device_log() {
  local val=""
-if [ ${FLAGS_last} -eq ${FLAGS_TRUE} ]; then
-       val=`dmesg | tail -n1`
-else
-       val=`dmesg | tail -n10`
-fi
+case "$action" in
+       get_value)
+       if [ ${FLAGS_last} -eq ${FLAGS_TRUE} ]; then
+               val=`dmesg | tail -n1`
+       else
+               val=`dmesg | tail -n10`
+       fi
+       ;;
+       get_name)
+       val="0"
+       ;;
+esac
  ubus_freecwmp_output "InternetGatewayDevice.DeviceInfo.DeviceLog" "$val"
  }
@@ -130,6 +193,94 @@ esac
  return $FAULT_CPE_INVALID_PARAMETER_NAME
  }
+get_device_info_name() {
+case "$1" in
+       InternetGatewayDevice.)
+       ubus_freecwmp_output "InternetGatewayDevice.DeviceInfo." "0"
+       if [ "$2" = "0" ]; then
+               get_device_info_manufacturer
+               get_device_info_oui
+               get_device_info_product_class
+               get_device_info_serial_number
+               get_device_info_hardware_version
+               get_device_info_software_version
+               get_device_info_uptime
+               get_device_info_device_log
+       fi
+       return $FAULT_CPE_NO_FAULT
+       ;;
+       InternetGatewayDevice.DeviceInfo.)
+       ubus_freecwmp_output "InternetGatewayDevice.DeviceInfo." "0"
+       get_device_info_manufacturer
+       get_device_info_oui
+       get_device_info_product_class
+       get_device_info_serial_number
+       get_device_info_hardware_version
+       get_device_info_software_version
+       get_device_info_uptime
+       get_device_info_device_log
+       return $FAULT_CPE_NO_FAULT
+       ;;
+       InternetGatewayDevice.DeviceInfo.Manufacturer)
+       if [ "$2" = "1" ]; then
+               return $FAULT_CPE_INVALID_ARGUMENTS
+       fi
+       get_device_info_manufacturer
+       return $FAULT_CPE_NO_FAULT
+       ;;
+       InternetGatewayDevice.DeviceInfo.ManufacturerOUI)
+       if [ "$2" = "1" ]; then
+               return $FAULT_CPE_INVALID_ARGUMENTS
+       fi
+       get_device_info_oui
+       return $FAULT_CPE_NO_FAULT
+       ;;
+       InternetGatewayDevice.DeviceInfo.ProductClass)
+       if [ "$2" = "1" ]; then
+               return $FAULT_CPE_INVALID_ARGUMENTS
+       fi
+       get_device_info_product_class
+       return $FAULT_CPE_NO_FAULT
+       ;;
+       InternetGatewayDevice.DeviceInfo.SerialNumber)
+       if [ "$2" = "1" ]; then
+               return $FAULT_CPE_INVALID_ARGUMENTS
+       fi
+       get_device_info_serial_number
+       return $FAULT_CPE_NO_FAULT
+       ;;
+       InternetGatewayDevice.DeviceInfo.HardwareVersion)
+       if [ "$2" = "1" ]; then
+               return $FAULT_CPE_INVALID_ARGUMENTS
+       fi
+       get_device_info_hardware_version
+       return $FAULT_CPE_NO_FAULT
+       ;;
+       InternetGatewayDevice.DeviceInfo.SoftwareVersion)
+       if [ "$2" = "1" ]; then
+               return $FAULT_CPE_INVALID_ARGUMENTS
+       fi
+       get_device_info_software_version
+       return $FAULT_CPE_NO_FAULT
+       ;;
+       InternetGatewayDevice.DeviceInfo.UpTime)
+       if [ "$2" = "1" ]; then
+               return $FAULT_CPE_INVALID_ARGUMENTS
+       fi
+       get_device_info_uptime
+       return $FAULT_CPE_NO_FAULT
+       ;;
+       InternetGatewayDevice.DeviceInfo.DeviceLog)
+       if [ "$2" = "1" ]; then
+               return $FAULT_CPE_INVALID_ARGUMENTS
+       fi
+       get_device_info_device_log
+       return $FAULT_CPE_NO_FAULT
+       ;;
+esac
+return $FAULT_CPE_INVALID_PARAMETER_NAME
+}
+
  set_device_info() {
  case "$1" in
        InternetGatewayDevice.DeviceInfo.Manufacturer)
@@ -179,6 +330,30 @@ get_device_info_generic() {
        return $FAULT_CPE_NO_FAULT
  }
+get_device_info_generic_name() {
+       local val=""
+       case "$1" in
+       InternetGatewayDevice.DeviceInfo.ModelName|\
+       InternetGatewayDevice.DeviceInfo.Description|\
+       InternetGatewayDevice.DeviceInfo.ModemFirmwareVersion|\
+       InternetGatewayDevice.DeviceInfo.EnabledOptions|\
+       InternetGatewayDevice.DeviceInfo.AdditionalHardwareVersion|\
+       InternetGatewayDevice.DeviceInfo.AdditionalSoftwareVersion|\
+       InternetGatewayDevice.DeviceInfo.SpecVersion|\
+       InternetGatewayDevice.DeviceInfo.FirstUseDate)
+       val="0"
+       ubus_freecwmp_output "$1" "$val"
+       return $FAULT_CPE_NO_FAULT
+       ;;
+       InternetGatewayDevice.DeviceInfo.ProvisioningCode)
+       val="1"
+       ubus_freecwmp_output "$1" "$val"
+       return $FAULT_CPE_NO_FAULT
+       ;;
+       esac
+return $FAULT_CPE_INVALID_PARAMETER_NAME
+}
+
  set_device_info_generic() {
        check_parameter_device_info_generic "$1" ; _tmp=$? ; if [ "$_tmp" -eq 1 
]; then return 0; fi
--
1.7.4.1
Luka




<Prev in Thread] Current Thread [Next in Thread>