Propagate resource of upgrade_state when firmware upgrade is done 42/128542/2 accepted/tizen/unified/20170510.183633 submit/tizen/20170510.100505
authorSangkoo Kim <sangkoo.kim@samsung.com>
Wed, 10 May 2017 09:55:53 +0000 (18:55 +0900)
committerSangkoo Kim <sangkoo.kim@samsung.com>
Wed, 10 May 2017 09:57:23 +0000 (18:57 +0900)
Change-Id: I960cf70ef98269420e9b04a4660f05ff88ea084f

packaging/ua-client.spec
src/ua_client.cpp

index 3db3dfaff78a47dea46b996b22d130e267a563c3..dee289176e3520e57e01bf29489472c807639fd9 100755 (executable)
@@ -1,5 +1,5 @@
 Name:           ua-client
-Version:        0.0.1
+Version:        0.0.2
 Release:        1
 License:        Apache-2.0
 Summary:        Upgrade agent client
index 9dff1f84b3515ebe6923889f90f880b9ee54a393..30266ccbb994b88a4fc1af397a01f0d55abceaa0 100755 (executable)
@@ -199,7 +199,7 @@ class FirmwareResource : public Resource // x.samsung.firmware
             : Resource(uri, rt, itf)
         {
             m_currentversion = cur_ver;
-            update_state == 3 ? m_state = 0 : m_state = update_state;
+            m_state = update_state;
             m_result = 0;
             m_packageuri = url;
             m_newversion = new_ver;
@@ -260,33 +260,12 @@ class FirmwareResource : public Resource // x.samsung.firmware
                                //Updating
                m_state = 3;
                                m_representation.setValue<int>("state", m_update);
+                               m_representation.setValue<int>("result", 0);
                                propagate();
 
                                snprintf(szState, sizeof(szState), "%d", m_state);
                                _set_device_info("firmware_update_state", szState);
-
-                   //After Upgrade, state = Idle
-                               m_state = 0;
-                   m_representation.setValue<int>("state", m_state);
-                   m_representation.setValue<int>("result", 1);
-
-                   m_newversion = m_representation.getValue<string>("newversion");
-                   m_currentversion = m_representation.getValue<string>("currentversion");
-
-                   UA_LOG("*** Update completed from %s to %s ***", m_currentversion.c_str(), m_newversion.c_str());
-
-                   m_representation.setValue<string>("currentversion", m_newversion);
-                   m_representation.setValue<string>("newversion", "");
-                   m_representation.setValue<string>("packageuri", "");
-                               m_currentversion = m_newversion;
-                               m_newversion ="";
-                               m_packageuri ="";
-                   propagate();
-
-                               snprintf(szState, sizeof(szState), "%d", m_state);
-                               _set_device_info("firmware_update_state", szState);
-
-                               _set_device_info("firmware_ver", m_currentversion.c_str());
+                               _set_device_info("firmware_ver", m_newversion.c_str());
 
                                _exec_update();
 
@@ -300,6 +279,23 @@ class FirmwareResource : public Resource // x.samsung.firmware
             return NULL;
         }
 
+        void checkFirmwareUpgraded()
+        {
+                       if (m_state == 3) {
+                               UA_LOG("***Firmware Upgrade Done***");
+
+                               m_state = 0;
+                               m_representation.setValue<int>("result", 1);
+                               m_representation.setValue<int>("state", m_state);
+
+                               propagate();
+
+                               snprintf(szState, sizeof(szState), "%d", m_state);
+                               _set_device_info("firmware_update_state", szState);
+                               _set_device_info("firmware_ver", m_currentversion.c_str());
+                       }
+        }
+
         void setFirmwareRepresentation(OCRepresentation &rep)
         {
                UA_LOG("");
@@ -1352,6 +1348,8 @@ void *_start_ua_client(void *data)
 
        g_callbackLock.wait(lock);
 
+       firmware.checkFirmwareUpgraded();
+
        OCStackResult ret = OC_STACK_OK;
        ret = OC::CAManager::setNetworkMonitorHandler((OC::CAManager::AdapterChangedCallback)NSProviderAdapterStateListener,
                        (OC::CAManager::ConnectionChangedCallback)NSProviderConnectionStateListener);