Tradefed כולל את הרעיון של מאגר מפתחות, שבו אפשר לאחסן סודות בשירות מאגר מפתחות ולבקש אותם בזמן הריצה של הבדיקה לשימוש במהלך הבדיקה.
שימוש במאגר מפתחות
כדי להשתמש במאגר מפתחות, קודם צריך להגדיר את המקור של מאגר המפתחות בההגדרה הגלובלית.
אחרי שמסיימים, אפשר להשתמש במפתחות המאוחסנים באמצעות: USE_KEYSTORE@{key}
JSONFileKeyStore
ההטמעה לדוגמה בליבת Tradefed משתמשת במאגר מפתחות JSON,
JSONFileKeyStoreClient. כדי להשתמש במאגר המפתחות הזה, צריך להגדיר קובץ מפתח JSON שמכיל מיפויים של מפתח לערך.
לדוגמה, אפשר להגדיר קובץ /path/to/keystore.json כ
{
"test_account": "foo@gmail.com",
"test_account_pwd": "helloworld",
"wifi_lab_ssid": "Google_private_AP",
"wifi_lab_pwd": "secret123",
}
לאחר מכן, מוסיפים את השורות הבאות לקובץ התצורה הגלובלי של TF:
<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
</key_store>
כשמריצים בדיקות קשורות, אפשר להעביר ערכים בתור USE_KEYSTORE@test_account, ואז TF ישלח שאילתה למאגר המפתחות וישתמש בערך שלו כחלק מהבדיקה.
קובץ מאגר מפתחות שמבוסס על מארח
כדי להגדיר צמדי מפתח/ערך שמבוססים על מארח, אפשר להגדיר קובץ /path/to/keystore_ssid.json באופן הבא:
{
"host_a.*\\.corp\\.com": {
"wifi_lab_ssid": "ssid_a",
"wifi_lab_pwd": "secret_a"
},
"host_b.*\\.corp\\.com": {
"wifi_lab_ssid": "ssid_b",
"wifi_lab_pwd": "secret_b"
}
}
המפתח של רשומה בקובץ הוא דפוס של ביטוי רגולרי (regex) לשם המארח, והערך הוא קבוצת צמדי מפתח/ערך לכל מארח עם שם מארח תואם.
לאחר מכן מעדכנים את קובץ ההגדרות הכלליות של TF כך שיכלול את קובץ מאגר המפתחות שמבוסס על מארח:
<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
<option name="host-based-key-store-file" value="/path/to/keystore-ssid.json" />
</key_store>
הערך של מפתח שמוגדר בקובץ מאגר מפתחות שמבוסס על מארח מבטל את הערך שמוגדר בקובץ מאגר המפתחות שצוין באמצעות json-key-store-file.
אם יש כמה קבצים של מאגר מפתחות שמבוסס על מארח במאגר המפתחות, הסדר חשוב. אם הערך של מפתח מוגדר בכמה קבצים, הערך בקובץ האחרון מבטל את הערכים בקבצים הקודמים.