VOL-4750: Introduce DEVICE_UNREACHABLE error code in the StopManagingDevice DMI rpc

Change-Id: Icdcc9d66bf95faa651848ed7e568526709f17cf1
diff --git a/cpp/dmi/hw_management_service.pb.cc b/cpp/dmi/hw_management_service.pb.cc
index 322b85f..082e7d4 100644
--- a/cpp/dmi/hw_management_service.pb.cc
+++ b/cpp/dmi/hw_management_service.pb.cc
@@ -826,113 +826,113 @@
   "IN_PROGRESS\020\002\022\022\n\016INVALID_PARAMS\020\003\022\022\n\016INT"
   "ERNAL_ERROR\020\004\022\032\n\026AUTHENTICATION_FAILURE\020"
   "\005\022\027\n\023INCOMPATIBLE_DEVICE\020\006\")\n\031StopManagi"
-  "ngDeviceRequest\022\014\n\004name\030\001 \001(\t\"\274\001\n\032StopMa"
+  "ngDeviceRequest\022\014\n\004name\030\001 \001(\t\"\324\001\n\032StopMa"
   "nagingDeviceResponse\022\033\n\006status\030\001 \001(\0162\013.d"
   "mi.Status\0226\n\006reason\030\002 \001(\0162&.dmi.StopMana"
   "gingDeviceResponse.Reason\022\025\n\rreason_deta"
-  "il\030\003 \001(\t\"2\n\006Reason\022\024\n\020UNDEFINED_REASON\020\000"
-  "\022\022\n\016UNKNOWN_DEVICE\020\001\"[\n\021ManagedDeviceInf"
-  "o\022&\n\004info\030\001 \001(\0132\030.dmi.ModifiableComponen"
-  "t\022\036\n\013device_uuid\030\002 \001(\0132\t.dmi.Uuid\"\306\001\n\026Ma"
-  "nagedDevicesResponse\022\033\n\006status\030\001 \001(\0162\013.d"
-  "mi.Status\0222\n\006reason\030\002 \001(\0162\".dmi.ManagedD"
-  "evicesResponse.Reason\022\'\n\007devices\030\003 \003(\0132\026"
-  ".dmi.ManagedDeviceInfo\"2\n\006Reason\022\024\n\020UNDE"
-  "FINED_REASON\020\000\022\022\n\016INTERNAL_ERROR\020\001\"o\n\031Se"
-  "tLoggingEndpointRequest\022\036\n\013device_uuid\030\001"
-  " \001(\0132\t.dmi.Uuid\022\030\n\020logging_endpoint\030\002 \001("
-  "\t\022\030\n\020logging_protocol\030\003 \001(\t\"\303\002\n\031SetRemot"
-  "eEndpointResponse\022\033\n\006status\030\001 \001(\0162\013.dmi."
-  "Status\0225\n\006reason\030\002 \001(\0162%.dmi.SetRemoteEn"
-  "dpointResponse.Reason\022\025\n\rreason_detail\030\003"
-  " \001(\t\"\272\001\n\006Reason\022\024\n\020UNDEFINED_REASON\020\000\022\022\n"
-  "\016UNKNOWN_DEVICE\020\001\022\022\n\016INTERNAL_ERROR\020\002\022\032\n"
-  "\026LOGGING_ENDPOINT_ERROR\020\003\022#\n\037LOGGING_END"
-  "POINT_PROTOCOL_ERROR\020\004\022\031\n\025MSGBUS_ENDPOIN"
-  "T_ERROR\020\005\022\026\n\022DEVICE_UNREACHABLE\020\006\"\234\002\n\032Ge"
-  "tLoggingEndpointResponse\022\033\n\006status\030\001 \001(\016"
-  "2\013.dmi.Status\0226\n\006reason\030\002 \001(\0162&.dmi.GetL"
-  "oggingEndpointResponse.Reason\022\030\n\020logging"
-  "_endpoint\030\003 \001(\t\022\030\n\020logging_protocol\030\004 \001("
-  "\t\022\025\n\rreason_detail\030\005 \001(\t\"^\n\006Reason\022\024\n\020UN"
-  "DEFINED_REASON\020\000\022\022\n\016UNKNOWN_DEVICE\020\001\022\022\n\016"
-  "INTERNAL_ERROR\020\002\022\026\n\022DEVICE_UNREACHABLE\020\003"
-  "\"3\n\030SetMsgBusEndpointRequest\022\027\n\017msgbus_e"
-  "ndpoint\030\001 \001(\t\"\353\001\n\031GetMsgBusEndpointRespo"
-  "nse\022\033\n\006status\030\001 \001(\0162\013.dmi.Status\0225\n\006reas"
-  "on\030\002 \001(\0162%.dmi.GetMsgBusEndpointResponse"
-  ".Reason\022\027\n\017msgbus_endpoint\030\003 \001(\t\022\025\n\rreas"
-  "on_detail\030\004 \001(\t\"J\n\006Reason\022\024\n\020UNDEFINED_R"
-  "EASON\020\000\022\022\n\016INTERNAL_ERROR\020\001\022\026\n\022DEVICE_UN"
-  "REACHABLE\020\002\"E\n\020EntitiesLogLevel\022\037\n\010logLe"
-  "vel\030\001 \001(\0162\r.dmi.LogLevel\022\020\n\010entities\030\002 \003"
-  "(\t\"^\n\022SetLogLevelRequest\022\036\n\013device_uuid\030"
-  "\001 \001(\0132\t.dmi.Uuid\022(\n\tloglevels\030\002 \003(\0132\025.dm"
-  "i.EntitiesLogLevel\"\222\002\n\023SetLogLevelRespon"
-  "se\022\036\n\013device_uuid\030\001 \001(\0132\t.dmi.Uuid\022\033\n\006st"
-  "atus\030\002 \001(\0162\013.dmi.Status\022/\n\006reason\030\003 \001(\0162"
-  "\037.dmi.SetLogLevelResponse.Reason\022\025\n\rreas"
-  "on_detail\030\004 \001(\t\"v\n\006Reason\022\024\n\020UNDEFINED_R"
-  "EASON\020\000\022\022\n\016UNKNOWN_DEVICE\020\001\022\022\n\016INTERNAL_"
-  "ERROR\020\002\022\026\n\022UNKNOWN_LOG_ENTITY\020\003\022\026\n\022DEVIC"
-  "E_UNREACHABLE\020\004\"F\n\022GetLogLevelRequest\022\036\n"
-  "\013device_uuid\030\001 \001(\0132\t.dmi.Uuid\022\020\n\010entitie"
-  "s\030\002 \003(\t\"\274\002\n\023GetLogLevelResponse\022\036\n\013devic"
-  "e_uuid\030\001 \001(\0132\t.dmi.Uuid\022(\n\tlogLevels\030\002 \003"
-  "(\0132\025.dmi.EntitiesLogLevel\022\033\n\006status\030\003 \001("
-  "\0162\013.dmi.Status\022/\n\006reason\030\004 \001(\0162\037.dmi.Get"
-  "LogLevelResponse.Reason\022\025\n\rreason_detail"
-  "\030\005 \001(\t\"v\n\006Reason\022\024\n\020UNDEFINED_REASON\020\000\022\022"
-  "\n\016UNKNOWN_DEVICE\020\001\022\022\n\016INTERNAL_ERROR\020\002\022\026"
-  "\n\022UNKNOWN_LOG_ENTITY\020\003\022\026\n\022DEVICE_UNREACH"
-  "ABLE\020\004\"<\n\032GetLoggableEntitiesRequest\022\036\n\013"
-  "device_uuid\030\001 \001(\0132\t.dmi.Uuid\"(\n\tHeartbea"
-  "t\022\033\n\023heartbeat_signature\030\001 \001(\007\"5\n\023Reboot"
-  "DeviceRequest\022\036\n\013device_uuid\030\001 \001(\0132\t.dmi"
-  ".Uuid\"\367\001\n\024RebootDeviceResponse\022\033\n\006status"
-  "\030\003 \001(\0162\013.dmi.Status\0220\n\006reason\030\004 \001(\0162 .dm"
-  "i.RebootDeviceResponse.Reason\022\025\n\rreason_"
-  "detail\030\005 \001(\t\"y\n\006Reason\022\024\n\020UNDEFINED_REAS"
-  "ON\020\000\022\022\n\016UNKNOWN_DEVICE\020\001\022\022\n\016INTERNAL_ERR"
-  "OR\020\002\022\026\n\022DEVICE_UNREACHABLE\020\003\022\031\n\025DEVICE_I"
-  "N_WRONG_STATE\020\0042\256\t\n\031NativeHWManagementSe"
-  "rvice\022S\n\023StartManagingDevice\022\030.dmi.Modif"
-  "iableComponent\032 .dmi.StartManagingDevice"
-  "Response0\001\022U\n\022StopManagingDevice\022\036.dmi.S"
-  "topManagingDeviceRequest\032\037.dmi.StopManag"
-  "ingDeviceResponse\022H\n\021GetManagedDevices\022\026"
-  ".google.protobuf.Empty\032\033.dmi.ManagedDevi"
-  "cesResponse\022W\n\024GetPhysicalInventory\022\035.dm"
-  "i.PhysicalInventoryRequest\032\036.dmi.Physica"
-  "lInventoryResponse0\001\022W\n\022GetHWComponentIn"
-  "fo\022\036.dmi.HWComponentInfoGetRequest\032\037.dmi"
-  ".HWComponentInfoGetResponse0\001\022U\n\022SetHWCo"
-  "mponentInfo\022\036.dmi.HWComponentInfoSetRequ"
-  "est\032\037.dmi.HWComponentInfoSetResponse\022T\n\022"
-  "SetLoggingEndpoint\022\036.dmi.SetLoggingEndpo"
-  "intRequest\032\036.dmi.SetRemoteEndpointRespon"
-  "se\022F\n\022GetLoggingEndpoint\022\017.dmi.HardwareI"
-  "D\032\037.dmi.GetLoggingEndpointResponse\022R\n\021Se"
-  "tMsgBusEndpoint\022\035.dmi.SetMsgBusEndpointR"
-  "equest\032\036.dmi.SetRemoteEndpointResponse\022K"
-  "\n\021GetMsgBusEndpoint\022\026.google.protobuf.Em"
-  "pty\032\036.dmi.GetMsgBusEndpointResponse\022P\n\023G"
-  "etLoggableEntities\022\037.dmi.GetLoggableEnti"
-  "tiesRequest\032\030.dmi.GetLogLevelResponse\022@\n"
-  "\013SetLogLevel\022\027.dmi.SetLogLevelRequest\032\030."
-  "dmi.SetLogLevelResponse\022@\n\013GetLogLevel\022\027"
-  ".dmi.GetLogLevelRequest\032\030.dmi.GetLogLeve"
-  "lResponse\0228\n\016HeartbeatCheck\022\026.google.pro"
-  "tobuf.Empty\032\016.dmi.Heartbeat\022C\n\014RebootDev"
-  "ice\022\030.dmi.RebootDeviceRequest\032\031.dmi.Rebo"
-  "otDeviceResponseB;Z9github.com/opencord/"
-  "device-management-interface/v3/go/dmib\006p"
-  "roto3"
+  "il\030\003 \001(\t\"J\n\006Reason\022\024\n\020UNDEFINED_REASON\020\000"
+  "\022\022\n\016UNKNOWN_DEVICE\020\001\022\026\n\022DEVICE_UNREACHAB"
+  "LE\020\002\"[\n\021ManagedDeviceInfo\022&\n\004info\030\001 \001(\0132"
+  "\030.dmi.ModifiableComponent\022\036\n\013device_uuid"
+  "\030\002 \001(\0132\t.dmi.Uuid\"\306\001\n\026ManagedDevicesResp"
+  "onse\022\033\n\006status\030\001 \001(\0162\013.dmi.Status\0222\n\006rea"
+  "son\030\002 \001(\0162\".dmi.ManagedDevicesResponse.R"
+  "eason\022\'\n\007devices\030\003 \003(\0132\026.dmi.ManagedDevi"
+  "ceInfo\"2\n\006Reason\022\024\n\020UNDEFINED_REASON\020\000\022\022"
+  "\n\016INTERNAL_ERROR\020\001\"o\n\031SetLoggingEndpoint"
+  "Request\022\036\n\013device_uuid\030\001 \001(\0132\t.dmi.Uuid\022"
+  "\030\n\020logging_endpoint\030\002 \001(\t\022\030\n\020logging_pro"
+  "tocol\030\003 \001(\t\"\303\002\n\031SetRemoteEndpointRespons"
+  "e\022\033\n\006status\030\001 \001(\0162\013.dmi.Status\0225\n\006reason"
+  "\030\002 \001(\0162%.dmi.SetRemoteEndpointResponse.R"
+  "eason\022\025\n\rreason_detail\030\003 \001(\t\"\272\001\n\006Reason\022"
+  "\024\n\020UNDEFINED_REASON\020\000\022\022\n\016UNKNOWN_DEVICE\020"
+  "\001\022\022\n\016INTERNAL_ERROR\020\002\022\032\n\026LOGGING_ENDPOIN"
+  "T_ERROR\020\003\022#\n\037LOGGING_ENDPOINT_PROTOCOL_E"
+  "RROR\020\004\022\031\n\025MSGBUS_ENDPOINT_ERROR\020\005\022\026\n\022DEV"
+  "ICE_UNREACHABLE\020\006\"\234\002\n\032GetLoggingEndpoint"
+  "Response\022\033\n\006status\030\001 \001(\0162\013.dmi.Status\0226\n"
+  "\006reason\030\002 \001(\0162&.dmi.GetLoggingEndpointRe"
+  "sponse.Reason\022\030\n\020logging_endpoint\030\003 \001(\t\022"
+  "\030\n\020logging_protocol\030\004 \001(\t\022\025\n\rreason_deta"
+  "il\030\005 \001(\t\"^\n\006Reason\022\024\n\020UNDEFINED_REASON\020\000"
+  "\022\022\n\016UNKNOWN_DEVICE\020\001\022\022\n\016INTERNAL_ERROR\020\002"
+  "\022\026\n\022DEVICE_UNREACHABLE\020\003\"3\n\030SetMsgBusEnd"
+  "pointRequest\022\027\n\017msgbus_endpoint\030\001 \001(\t\"\353\001"
+  "\n\031GetMsgBusEndpointResponse\022\033\n\006status\030\001 "
+  "\001(\0162\013.dmi.Status\0225\n\006reason\030\002 \001(\0162%.dmi.G"
+  "etMsgBusEndpointResponse.Reason\022\027\n\017msgbu"
+  "s_endpoint\030\003 \001(\t\022\025\n\rreason_detail\030\004 \001(\t\""
+  "J\n\006Reason\022\024\n\020UNDEFINED_REASON\020\000\022\022\n\016INTER"
+  "NAL_ERROR\020\001\022\026\n\022DEVICE_UNREACHABLE\020\002\"E\n\020E"
+  "ntitiesLogLevel\022\037\n\010logLevel\030\001 \001(\0162\r.dmi."
+  "LogLevel\022\020\n\010entities\030\002 \003(\t\"^\n\022SetLogLeve"
+  "lRequest\022\036\n\013device_uuid\030\001 \001(\0132\t.dmi.Uuid"
+  "\022(\n\tloglevels\030\002 \003(\0132\025.dmi.EntitiesLogLev"
+  "el\"\222\002\n\023SetLogLevelResponse\022\036\n\013device_uui"
+  "d\030\001 \001(\0132\t.dmi.Uuid\022\033\n\006status\030\002 \001(\0162\013.dmi"
+  ".Status\022/\n\006reason\030\003 \001(\0162\037.dmi.SetLogLeve"
+  "lResponse.Reason\022\025\n\rreason_detail\030\004 \001(\t\""
+  "v\n\006Reason\022\024\n\020UNDEFINED_REASON\020\000\022\022\n\016UNKNO"
+  "WN_DEVICE\020\001\022\022\n\016INTERNAL_ERROR\020\002\022\026\n\022UNKNO"
+  "WN_LOG_ENTITY\020\003\022\026\n\022DEVICE_UNREACHABLE\020\004\""
+  "F\n\022GetLogLevelRequest\022\036\n\013device_uuid\030\001 \001"
+  "(\0132\t.dmi.Uuid\022\020\n\010entities\030\002 \003(\t\"\274\002\n\023GetL"
+  "ogLevelResponse\022\036\n\013device_uuid\030\001 \001(\0132\t.d"
+  "mi.Uuid\022(\n\tlogLevels\030\002 \003(\0132\025.dmi.Entitie"
+  "sLogLevel\022\033\n\006status\030\003 \001(\0162\013.dmi.Status\022/"
+  "\n\006reason\030\004 \001(\0162\037.dmi.GetLogLevelResponse"
+  ".Reason\022\025\n\rreason_detail\030\005 \001(\t\"v\n\006Reason"
+  "\022\024\n\020UNDEFINED_REASON\020\000\022\022\n\016UNKNOWN_DEVICE"
+  "\020\001\022\022\n\016INTERNAL_ERROR\020\002\022\026\n\022UNKNOWN_LOG_EN"
+  "TITY\020\003\022\026\n\022DEVICE_UNREACHABLE\020\004\"<\n\032GetLog"
+  "gableEntitiesRequest\022\036\n\013device_uuid\030\001 \001("
+  "\0132\t.dmi.Uuid\"(\n\tHeartbeat\022\033\n\023heartbeat_s"
+  "ignature\030\001 \001(\007\"5\n\023RebootDeviceRequest\022\036\n"
+  "\013device_uuid\030\001 \001(\0132\t.dmi.Uuid\"\367\001\n\024Reboot"
+  "DeviceResponse\022\033\n\006status\030\003 \001(\0162\013.dmi.Sta"
+  "tus\0220\n\006reason\030\004 \001(\0162 .dmi.RebootDeviceRe"
+  "sponse.Reason\022\025\n\rreason_detail\030\005 \001(\t\"y\n\006"
+  "Reason\022\024\n\020UNDEFINED_REASON\020\000\022\022\n\016UNKNOWN_"
+  "DEVICE\020\001\022\022\n\016INTERNAL_ERROR\020\002\022\026\n\022DEVICE_U"
+  "NREACHABLE\020\003\022\031\n\025DEVICE_IN_WRONG_STATE\020\0042"
+  "\256\t\n\031NativeHWManagementService\022S\n\023StartMa"
+  "nagingDevice\022\030.dmi.ModifiableComponent\032 "
+  ".dmi.StartManagingDeviceResponse0\001\022U\n\022St"
+  "opManagingDevice\022\036.dmi.StopManagingDevic"
+  "eRequest\032\037.dmi.StopManagingDeviceRespons"
+  "e\022H\n\021GetManagedDevices\022\026.google.protobuf"
+  ".Empty\032\033.dmi.ManagedDevicesResponse\022W\n\024G"
+  "etPhysicalInventory\022\035.dmi.PhysicalInvent"
+  "oryRequest\032\036.dmi.PhysicalInventoryRespon"
+  "se0\001\022W\n\022GetHWComponentInfo\022\036.dmi.HWCompo"
+  "nentInfoGetRequest\032\037.dmi.HWComponentInfo"
+  "GetResponse0\001\022U\n\022SetHWComponentInfo\022\036.dm"
+  "i.HWComponentInfoSetRequest\032\037.dmi.HWComp"
+  "onentInfoSetResponse\022T\n\022SetLoggingEndpoi"
+  "nt\022\036.dmi.SetLoggingEndpointRequest\032\036.dmi"
+  ".SetRemoteEndpointResponse\022F\n\022GetLogging"
+  "Endpoint\022\017.dmi.HardwareID\032\037.dmi.GetLoggi"
+  "ngEndpointResponse\022R\n\021SetMsgBusEndpoint\022"
+  "\035.dmi.SetMsgBusEndpointRequest\032\036.dmi.Set"
+  "RemoteEndpointResponse\022K\n\021GetMsgBusEndpo"
+  "int\022\026.google.protobuf.Empty\032\036.dmi.GetMsg"
+  "BusEndpointResponse\022P\n\023GetLoggableEntiti"
+  "es\022\037.dmi.GetLoggableEntitiesRequest\032\030.dm"
+  "i.GetLogLevelResponse\022@\n\013SetLogLevel\022\027.d"
+  "mi.SetLogLevelRequest\032\030.dmi.SetLogLevelR"
+  "esponse\022@\n\013GetLogLevel\022\027.dmi.GetLogLevel"
+  "Request\032\030.dmi.GetLogLevelResponse\0228\n\016Hea"
+  "rtbeatCheck\022\026.google.protobuf.Empty\032\016.dm"
+  "i.Heartbeat\022C\n\014RebootDevice\022\030.dmi.Reboot"
+  "DeviceRequest\032\031.dmi.RebootDeviceResponse"
+  "B;Z9github.com/opencord/device-managemen"
+  "t-interface/v3/go/dmib\006proto3"
   ;
 ::google::protobuf::internal::DescriptorTable descriptor_table_dmi_2fhw_5fmanagement_5fservice_2eproto = {
   false, InitDefaults_dmi_2fhw_5fmanagement_5fservice_2eproto, 
   descriptor_table_protodef_dmi_2fhw_5fmanagement_5fservice_2eproto,
-  "dmi/hw_management_service.proto", &assign_descriptors_table_dmi_2fhw_5fmanagement_5fservice_2eproto, 5725,
+  "dmi/hw_management_service.proto", &assign_descriptors_table_dmi_2fhw_5fmanagement_5fservice_2eproto, 5749,
 };
 
 void AddDescriptors_dmi_2fhw_5fmanagement_5fservice_2eproto() {
@@ -1070,6 +1070,7 @@
   switch (value) {
     case 0:
     case 1:
+    case 2:
       return true;
     default:
       return false;
@@ -1079,6 +1080,7 @@
 #if !defined(_MSC_VER) || _MSC_VER >= 1900
 const StopManagingDeviceResponse_Reason StopManagingDeviceResponse::UNDEFINED_REASON;
 const StopManagingDeviceResponse_Reason StopManagingDeviceResponse::UNKNOWN_DEVICE;
+const StopManagingDeviceResponse_Reason StopManagingDeviceResponse::DEVICE_UNREACHABLE;
 const StopManagingDeviceResponse_Reason StopManagingDeviceResponse::Reason_MIN;
 const StopManagingDeviceResponse_Reason StopManagingDeviceResponse::Reason_MAX;
 const int StopManagingDeviceResponse::Reason_ARRAYSIZE;
diff --git a/cpp/dmi/hw_management_service.pb.h b/cpp/dmi/hw_management_service.pb.h
index 02f966a..57c82a7 100644
--- a/cpp/dmi/hw_management_service.pb.h
+++ b/cpp/dmi/hw_management_service.pb.h
@@ -262,12 +262,13 @@
 enum StopManagingDeviceResponse_Reason {
   StopManagingDeviceResponse_Reason_UNDEFINED_REASON = 0,
   StopManagingDeviceResponse_Reason_UNKNOWN_DEVICE = 1,
+  StopManagingDeviceResponse_Reason_DEVICE_UNREACHABLE = 2,
   StopManagingDeviceResponse_Reason_StopManagingDeviceResponse_Reason_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(),
   StopManagingDeviceResponse_Reason_StopManagingDeviceResponse_Reason_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max()
 };
 bool StopManagingDeviceResponse_Reason_IsValid(int value);
 const StopManagingDeviceResponse_Reason StopManagingDeviceResponse_Reason_Reason_MIN = StopManagingDeviceResponse_Reason_UNDEFINED_REASON;
-const StopManagingDeviceResponse_Reason StopManagingDeviceResponse_Reason_Reason_MAX = StopManagingDeviceResponse_Reason_UNKNOWN_DEVICE;
+const StopManagingDeviceResponse_Reason StopManagingDeviceResponse_Reason_Reason_MAX = StopManagingDeviceResponse_Reason_DEVICE_UNREACHABLE;
 const int StopManagingDeviceResponse_Reason_Reason_ARRAYSIZE = StopManagingDeviceResponse_Reason_Reason_MAX + 1;
 
 const ::google::protobuf::EnumDescriptor* StopManagingDeviceResponse_Reason_descriptor();
@@ -1769,6 +1770,8 @@
     StopManagingDeviceResponse_Reason_UNDEFINED_REASON;
   static const Reason UNKNOWN_DEVICE =
     StopManagingDeviceResponse_Reason_UNKNOWN_DEVICE;
+  static const Reason DEVICE_UNREACHABLE =
+    StopManagingDeviceResponse_Reason_DEVICE_UNREACHABLE;
   static inline bool Reason_IsValid(int value) {
     return StopManagingDeviceResponse_Reason_IsValid(value);
   }