shill: Implement GetEntry on Profile

Implement "GetEntry" on profile_dbus_adaptor.  This change adds
the ability to look up a Service in the Manager by its
StorageIdentifier and then to return its properties to the caller.
If the Service does not exist in the manager, we have to read
directly out of the Profile's store and build a DBus property dict
out of its contents.  This is a pretty gross method, and I've already
created a bug to remove this as soon as we can diverge from the
flimflam Profile API.  crosbug.com/25813

BUG=chromium-os:25542
TEST=New unit tests + Manual: chrome://settings/internet now lists
both visible and unavailable networks under "Remembered Networks"
and clikcing on "Forget Network" purges the network from the profile.

Change-Id: Ib2f0ab772e40a1f615206a7b985be446fc7facde
Reviewed-on: https://gerrit.chromium.org/gerrit/15200
Commit-Ready: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
19 files changed
tree: 39316f6c483a41245c0f000de9972638a73cc110
  1. dbus_bindings/
  2. accessor_interface.h
  3. adaptor_interfaces.h
  4. async_call_handler.cc
  5. async_call_handler.h
  6. async_connection.cc
  7. async_connection.h
  8. async_connection_unittest.cc
  9. byte_string.cc
  10. byte_string.h
  11. byte_string_unittest.cc
  12. callback_list.cc
  13. callback_list.h
  14. callback_list_unittest.cc
  15. cellular.cc
  16. cellular.h
  17. cellular_capability.cc
  18. cellular_capability.h
  19. cellular_capability_cdma.cc
  20. cellular_capability_cdma.h
  21. cellular_capability_cdma_unittest.cc
  22. cellular_capability_gsm.cc
  23. cellular_capability_gsm.h
  24. cellular_capability_gsm_unittest.cc
  25. cellular_capability_unittest.cc
  26. cellular_error.cc
  27. cellular_error.h
  28. cellular_service.cc
  29. cellular_service.h
  30. cellular_service_unittest.cc
  31. cellular_unittest.cc
  32. connection.cc
  33. connection.h
  34. connection_unittest.cc
  35. control_interface.h
  36. crypto_des_cbc.cc
  37. crypto_des_cbc.h
  38. crypto_des_cbc_unittest.cc
  39. crypto_interface.h
  40. crypto_provider.cc
  41. crypto_provider.h
  42. crypto_provider_unittest.cc
  43. crypto_rot47.cc
  44. crypto_rot47.h
  45. crypto_rot47_unittest.cc
  46. dbus_adaptor.cc
  47. dbus_adaptor.h
  48. dbus_adaptor_unittest.cc
  49. dbus_control.cc
  50. dbus_control.h
  51. dbus_properties.cc
  52. dbus_properties.h
  53. dbus_properties_proxy.cc
  54. dbus_properties_proxy.h
  55. dbus_properties_proxy_interface.h
  56. dbus_properties_unittest.cc
  57. default_profile.cc
  58. default_profile.h
  59. default_profile_unittest.cc
  60. device.cc
  61. device.h
  62. device_dbus_adaptor.cc
  63. device_dbus_adaptor.h
  64. device_info.cc
  65. device_info.h
  66. device_info_unittest.cc
  67. device_stub.h
  68. device_unittest.cc
  69. dhcp_config.cc
  70. dhcp_config.h
  71. dhcp_config_unittest.cc
  72. dhcp_provider.cc
  73. dhcp_provider.h
  74. dhcp_provider_unittest.cc
  75. dhcp_proxy_interface.h
  76. dhcpcd_proxy.cc
  77. dhcpcd_proxy.h
  78. dns_client.cc
  79. dns_client.h
  80. dns_client_unittest.cc
  81. endpoint.cc
  82. endpoint.h
  83. ephemeral_profile.cc
  84. ephemeral_profile.h
  85. error.cc
  86. error.h
  87. error_unittest.cc
  88. ethernet.cc
  89. ethernet.h
  90. ethernet_service.cc
  91. ethernet_service.h
  92. event_dispatcher.cc
  93. event_dispatcher.h
  94. glib.cc
  95. glib.h
  96. glib_io_input_handler.cc
  97. glib_io_input_handler.h
  98. glib_io_ready_handler.cc
  99. glib_io_ready_handler.h
  100. HACKING
  101. http_proxy.cc
  102. http_proxy.h
  103. http_proxy_unittest.cc
  104. http_request.cc
  105. http_request.h
  106. http_request_unittest.cc
  107. http_url.cc
  108. http_url.h
  109. http_url_unittest.cc
  110. ieee80211.h
  111. io_handler.h
  112. ip_address.cc
  113. ip_address.h
  114. ip_address_unittest.cc
  115. ipconfig.cc
  116. ipconfig.h
  117. ipconfig_dbus_adaptor.cc
  118. ipconfig_dbus_adaptor.h
  119. ipconfig_unittest.cc
  120. key_file_store.cc
  121. key_file_store.h
  122. key_file_store_unittest.cc
  123. key_value_store.cc
  124. key_value_store.h
  125. LICENSE
  126. Makefile
  127. manager.cc
  128. manager.h
  129. manager_dbus_adaptor.cc
  130. manager_dbus_adaptor.h
  131. manager_unittest.cc
  132. metrics.cc
  133. metrics.h
  134. metrics_unittest.cc
  135. mock_adaptors.cc
  136. mock_adaptors.h
  137. mock_ares.cc
  138. mock_ares.h
  139. mock_async_connection.cc
  140. mock_async_connection.h
  141. mock_callback.h
  142. mock_callback_unittest.cc
  143. mock_connection.cc
  144. mock_connection.h
  145. mock_control.cc
  146. mock_control.h
  147. mock_dbus_properties_proxy.cc
  148. mock_dbus_properties_proxy.h
  149. mock_device.cc
  150. mock_device.h
  151. mock_device_info.cc
  152. mock_device_info.h
  153. mock_dhcp_config.cc
  154. mock_dhcp_config.h
  155. mock_dhcp_provider.cc
  156. mock_dhcp_provider.h
  157. mock_dhcp_proxy.cc
  158. mock_dhcp_proxy.h
  159. mock_dns_client.cc
  160. mock_dns_client.h
  161. mock_event_dispatcher.cc
  162. mock_event_dispatcher.h
  163. mock_glib.cc
  164. mock_glib.h
  165. mock_ipconfig.cc
  166. mock_ipconfig.h
  167. mock_manager.cc
  168. mock_manager.h
  169. mock_metrics.cc
  170. mock_metrics.h
  171. mock_modem_cdma_proxy.cc
  172. mock_modem_cdma_proxy.h
  173. mock_modem_gsm_card_proxy.cc
  174. mock_modem_gsm_card_proxy.h
  175. mock_modem_gsm_network_proxy.cc
  176. mock_modem_gsm_network_proxy.h
  177. mock_modem_manager_proxy.cc
  178. mock_modem_manager_proxy.h
  179. mock_modem_proxy.cc
  180. mock_modem_proxy.h
  181. mock_modem_simple_proxy.cc
  182. mock_modem_simple_proxy.h
  183. mock_power_manager_proxy.cc
  184. mock_power_manager_proxy.h
  185. mock_profile.cc
  186. mock_profile.h
  187. mock_property_store.cc
  188. mock_property_store.h
  189. mock_resolver.cc
  190. mock_resolver.h
  191. mock_routing_table.cc
  192. mock_routing_table.h
  193. mock_rtnl_handler.cc
  194. mock_rtnl_handler.h
  195. mock_service.cc
  196. mock_service.h
  197. mock_sockets.cc
  198. mock_sockets.h
  199. mock_store.cc
  200. mock_store.h
  201. mock_supplicant_interface_proxy.cc
  202. mock_supplicant_interface_proxy.h
  203. mock_supplicant_process_proxy.cc
  204. mock_supplicant_process_proxy.h
  205. mock_time.cc
  206. mock_time.h
  207. mock_wifi.cc
  208. mock_wifi.h
  209. mock_wifi_service.cc
  210. mock_wifi_service.h
  211. modem.cc
  212. modem.h
  213. modem_cdma_proxy.cc
  214. modem_cdma_proxy.h
  215. modem_cdma_proxy_interface.h
  216. modem_gsm_card_proxy.cc
  217. modem_gsm_card_proxy.h
  218. modem_gsm_card_proxy_interface.h
  219. modem_gsm_network_proxy.cc
  220. modem_gsm_network_proxy.h
  221. modem_gsm_network_proxy_interface.h
  222. modem_info.cc
  223. modem_info.h
  224. modem_info_unittest.cc
  225. modem_manager.cc
  226. modem_manager.h
  227. modem_manager_proxy.cc
  228. modem_manager_proxy.h
  229. modem_manager_proxy_interface.h
  230. modem_manager_unittest.cc
  231. modem_proxy.cc
  232. modem_proxy.h
  233. modem_proxy_interface.h
  234. modem_simple_proxy.cc
  235. modem_simple_proxy.h
  236. modem_simple_proxy_interface.h
  237. modem_unittest.cc
  238. nice_mock_control.cc
  239. nice_mock_control.h
  240. power_manager_proxy.cc
  241. power_manager_proxy.h
  242. power_manager_proxy_interface.h
  243. profile.cc
  244. profile.h
  245. profile_dbus_adaptor.cc
  246. profile_dbus_adaptor.h
  247. profile_dbus_property_exporter.cc
  248. profile_dbus_property_exporter.h
  249. profile_dbus_property_exporter_unittest.cc
  250. profile_unittest.cc
  251. property_accessor.h
  252. property_accessor_unittest.cc
  253. property_iterator.h
  254. property_store.cc
  255. property_store.h
  256. property_store_unittest.cc
  257. property_store_unittest.h
  258. provider_db_unittest.bfd
  259. proxy_factory.cc
  260. proxy_factory.h
  261. refptr_types.h
  262. resolver.cc
  263. resolver.h
  264. resolver_unittest.cc
  265. routing_table.cc
  266. routing_table.h
  267. routing_table_entry.h
  268. routing_table_unittest.cc
  269. rtnl_handler.cc
  270. rtnl_handler.h
  271. rtnl_handler_unittest.cc
  272. rtnl_listener.cc
  273. rtnl_listener.h
  274. rtnl_listener_unittest.cc
  275. rtnl_message.cc
  276. rtnl_message.h
  277. rtnl_message_unittest.cc
  278. service.cc
  279. service.h
  280. service_dbus_adaptor.cc
  281. service_dbus_adaptor.h
  282. service_sorter.h
  283. service_under_test.cc
  284. service_under_test.h
  285. service_unittest.cc
  286. shill.conf
  287. shill_ares.cc
  288. shill_ares.h
  289. shill_config.cc
  290. shill_config.h
  291. shill_daemon.cc
  292. shill_daemon.h
  293. shill_main.cc
  294. shill_test_config.cc
  295. shill_test_config.h
  296. shill_time.cc
  297. shill_time.h
  298. shill_unittest.cc
  299. sockets.cc
  300. sockets.h
  301. store_interface.h
  302. supplicant_interface_proxy.cc
  303. supplicant_interface_proxy.h
  304. supplicant_interface_proxy_interface.h
  305. supplicant_process_proxy.cc
  306. supplicant_process_proxy.h
  307. supplicant_process_proxy_interface.h
  308. technology.cc
  309. technology.h
  310. TESTING
  311. testrunner.cc
  312. wifi.cc
  313. wifi.h
  314. wifi_endpoint.cc
  315. wifi_endpoint.h
  316. wifi_endpoint_unittest.cc
  317. wifi_service.cc
  318. wifi_service.h
  319. wifi_service_unittest.cc
  320. wifi_unittest.cc
  321. wpa_supplicant.cc
  322. wpa_supplicant.h