1*9c5db199SXin Li# Lint as: python2, python3 2*9c5db199SXin Li# Copyright (c) 2020 The Chromium OS Authors. All rights reserved. 3*9c5db199SXin Li# Use of this source code is governed by a BSD-style license that can be 4*9c5db199SXin Li# found in the LICENSE file. 5*9c5db199SXin Li 6*9c5db199SXin Li""" 7*9c5db199SXin LiThis module provides bindings for HermesManager DBus constants, such as 8*9c5db199SXin Liinterface names, enumerations, and errors. 9*9c5db199SXin Li 10*9c5db199SXin Li""" 11*9c5db199SXin Li 12*9c5db199SXin Li#Hermes DBus Binding errors 13*9c5db199SXin LiDBUS_HERMES_UNKNOWN = 'org.chromium.Hermes.Error.Unknown' 14*9c5db199SXin LiDBUS_HERMES_UNSUPPORTED = 'org.chromium.Hermes.Error.Unsupported' 15*9c5db199SXin LiDBUS_HERMES_WRONGSTATE = 'rg.chromium.Hermes.Error.WrongState' 16*9c5db199SXin Li 17*9c5db199SXin Li#Hermes DBus other errors 18*9c5db199SXin LiDBUS_HERMES_PROFILE_ALREADY_DISABLED = 'org.chromium.Hermes.Error.AlreadyDisabled' 19*9c5db199SXin LiDBUS_HERMES_PROFILE_ALREADY_ENABLED = 'org.chromium.Hermes.Error.AlreadyEnabled' 20*9c5db199SXin LiDBUS_HERMES_BAD_NOTIFICATION = 'org.chromium.Hermes.Error.BadNotification' 21*9c5db199SXin LiDBUS_HERMES_BAD_REQUEST = 'org.chromium.Hermes.Error.BadRequest' 22*9c5db199SXin LiDBUS_HERMES_INTERNAL_LPA_FAILURE = 'org.chromium.Hermes.Error.InternalLpaFailure' 23*9c5db199SXin LiDBUS_HERMES_INVALID_ACTIVATION_CODE = 'org.chromium.Hermes.Error.InvalidActivationCode' 24*9c5db199SXin LiDBUS_HERMES_INVALID_ICCID = 'org.chromium.Hermes.Error.InvalidIccid' 25*9c5db199SXin LiDBUS_HERMES_INVALID_PARAM = 'org.chromium.Hermes.Error.InvalidParameter' 26*9c5db199SXin LiDBUS_HERMES_MALFORMED_RESPONSE = 'org.chromium.Hermes.Error.MalformedResponse' 27*9c5db199SXin LiDBUS_HERMES_NEED_CONFIRMATION_CODE = 'org.chromium.Hermes.Error.NeedConfirmationCode' 28*9c5db199SXin LiDBUS_HERMES_NO_RESPONSE = 'org.chromium.Hermes.Error.NoResponse' 29*9c5db199SXin LiDBUS_HERMES_PENDING_PROFILE = 'org.chromium.Hermes.Error.PendingProfile' 30*9c5db199SXin LiDBUS_HERMES_SEND_APDU_FAILURE = 'org.chromium.Hermes.Error.SendApduFailur' 31*9c5db199SXin LiDBUS_HERMES_SEND_HTTP_FAILURE = 'org.chromium.Hermes.Error.SendHttpsFailure' 32*9c5db199SXin LiDBUS_HERMES_SEND_NOTIFICATION_FAILURE = 'org.chromium.Hermes.Error.SendNotificationFailure' 33*9c5db199SXin LiDBUS_HERMES_TEST_PROFILE_INPROD = 'org.chromium.Hermes.Error.TestProfileInProd' 34*9c5db199SXin Li 35*9c5db199SXin Li# Interfaces 36*9c5db199SXin Li# Standard Interfaces 37*9c5db199SXin LiI_PROPERTIES = 'org.freedesktop.DBus.Properties' 38*9c5db199SXin LiI_INTROSPECTABLE = 'org.freedesktop.DBus.Introspectable' 39*9c5db199SXin LiI_OBJECT_MANAGER = 'org.freedesktop.DBus.ObjectManager' 40*9c5db199SXin Li 41*9c5db199SXin Li# 42*9c5db199SXin Li# For eSIM interactions. 43*9c5db199SXin Li# 44*9c5db199SXin LiHERMES_SERVICE = 'org.chromium.Hermes' 45*9c5db199SXin LiHERMES_OBJECT = '/org/chromium/Hermes' 46*9c5db199SXin LiHERMES_MANAGER_OBJECT = '/org/chromium/Hermes/Manager' 47*9c5db199SXin LiHERMES_MANAGER_IFACE = 'org.chromium.Hermes.Manager' 48*9c5db199SXin Li 49*9c5db199SXin LiHERMES_EUICC_OBJECT = '/org/chromium/Hermes/Euicc' 50*9c5db199SXin LiHERMES_EUICC_IFACE = 'org.chromium.Hermes.Euicc' 51*9c5db199SXin Li 52*9c5db199SXin LiHERMES_PROFILE_OBJECT = '/org/chromium/Hermes/Profile' 53*9c5db199SXin LiHERMES_PROFILE_IFACE = 'org.chromium.Hermes.Profile' 54*9c5db199SXin Li 55*9c5db199SXin Li 56*9c5db199SXin LiEUICC_ENUMERATION_TIMEOUT = 20 57*9c5db199SXin LiEUICC_ENABLE_DISABLE_TIMEOUT = 10 58*9c5db199SXin LiPROFILE_ENABLE_DISABLE_TIMEOUT = 10 59*9c5db199SXin LiPROFILE_REFRESH_TIMEOUT = 10 60*9c5db199SXin Li# Amount of time to wait between attempts to connect to HermesManager. 61*9c5db199SXin LiCONNECT_WAIT_INTERVAL_SECONDS = 20 62*9c5db199SXin LiHERMES_RESTART_WAIT_SECONDS = 30 63*9c5db199SXin Li# DBus method reply timeout in milliseconds 64*9c5db199SXin LiHERMES_DBUS_METHOD_REPLY_TIMEOUT = 120 * 1000 65*9c5db199SXin Li 66*9c5db199SXin Lidef ProfileStateToString(state): 67*9c5db199SXin Li """ 68*9c5db199SXin Li Returns a string for the given state. 69*9c5db199SXin Li 70*9c5db199SXin Li @param state: Profile state value. 71*9c5db199SXin Li 72*9c5db199SXin Li @return A string that describes the given state. 73*9c5db199SXin Li 74*9c5db199SXin Li """ 75*9c5db199SXin Li PROFILE_STATE_STRINGS = [ 76*9c5db199SXin Li 'PENDING', 77*9c5db199SXin Li 'INACTIVE', 78*9c5db199SXin Li 'ACTIVE' 79*9c5db199SXin Li ] 80*9c5db199SXin Li return PROFILE_STATE_STRINGS[state] 81*9c5db199SXin Li 82*9c5db199SXin Li 83*9c5db199SXin Lidef ProfileClassToString(pclass): 84*9c5db199SXin Li """ 85*9c5db199SXin Li Returns a string for the given class. 86*9c5db199SXin Li 87*9c5db199SXin Li @param state: Profile class value. 88*9c5db199SXin Li 89*9c5db199SXin Li @return A string that describes the given class. 90*9c5db199SXin Li 91*9c5db199SXin Li """ 92*9c5db199SXin Li PROFILE_CLASS_STRINGS = [ 93*9c5db199SXin Li 'TESTING', 94*9c5db199SXin Li 'PROVISIONING', 95*9c5db199SXin Li 'OPERATIONAL' 96*9c5db199SXin Li ] 97*9c5db199SXin Li return PROFILE_CLASS_STRINGS[pclass] 98