Lorawan-stack: إعادة استخدام EUIs الخاصة بالبوابات المحذوفة

تم إنشاؤها على ٧ أغسطس ٢٠١٩  ·  7تعليقات  ·  مصدر: TheThingsNetwork/lorawan-stack

ملخص

عندما تحذف بوابة ثم تضيف بوابة جديدة بنفس EUI ، إذا فشلت لأنها تشكو من وجود البوابة بالفعل.

خطوات التكاثر

  1. قم بإزالة بوابة موجودة
  2. قم بإضافته باستخدام CLI أو
  3. قم بإضافته باستخدام API

ماذا ترى الآن؟

{
    "code": 6,
    "message": "error:pkg/identityserver/store:already_exists (entity already exists)",
    "details": [
        {
            "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
            "namespace": "pkg/identityserver/store",
            "name": "already_exists",
            "message_format": "entity already exists",
            "attributes": {
                "field": "gateway_eui",
                "value": "'3135313749005303'"
            },
            "correlation_id": "c0dc6bb73d714702bd8d0be57e83f369"
        }
    ]
}

ماذا تريد ان ترى بدلا من ذلك؟


قم بإنشاء البوابة الجديدة بنجاح

بيئة

أمازون لينكس باستخدام TTN CLI و Postman باستخدام API Call

كيف تقترح تنفيذ ذلك؟

عندما يحاول المستخدم إدخال بوابة محذوفة ، قم بتحديث العلامة المحذوفة إلى false

هل يمكنك القيام بذلك بنفسك وإرسال طلب سحب؟

...

identity server in progress

ال 7 كومينتر

لقد قمت بتحديث هذه المشكلة قليلاً ليكون لها نطاق مختلف قليلاً عن # 1121 ، والذي يمكننا تقديم المزيد حول استعادة الكيانات المحذوفة بشكل عام (بدلاً من التطبيقات فقط).

في الإصدار الحالي ، دعنا نركز أكثر على إضافة بوابات جديدة بنفس واجهة المستخدم الأوروبية كبوابة محذوفة.

ذات صلة بـ https://github.com/TheThingsNetwork/lorawan-stack/issues/604 (إصدار المعرفات / EUIs)

htdvisser حتى وجود https://github.com/TheThingsNetwork/lorawan-stack/issues/1703 (الآن في Next Up) لا يغطي تمامًا حالة الاستخدام الشائعة للقدرة على إنشاء بوابة باستخدام EUI تم استخدامه من قبل . التكرار في مسؤول لتطهير كيان ليس تجربة مستخدم لطيفة ، بالإضافة إلى أن تطهير كيان أكثر تدميراً من مجرد تحرير EUI.

Afaik ليس لدينا مشاكل أمنية مع تحرير EUI عند حذف البوابة. إنه اختياري بالفعل. من الواضح أنه سيجعل الاسترداد جزئيًا ، أي ذهب EUI ، لكنني أعتقد أن هذا مقبول ويتوافق أيضًا مع كيفية تحرير EUIs للجهاز عند الحذف على الفور.

هل يمكننا إغلاق هذه المشكلة بمجرد تحرير EUI عند حذف البوابة؟ إذا لم يكن كذلك ، فلماذا؟

نعم ، يمكننا تحديث حقل Gateway EUI إلى لا شيء / فارغ عند الحذف. يجب أن تكون بسيطة مثل إضافة ملف

// AfterDelete releases the EUI of a Gateway after it is deleted.
func (gtw *Gateway) AfterDelete(db *gorm.DB) error {
    return db.Unscoped().Model(gtw).UpdateColumn("gateway_eui", nil).Error
}

في pkg/identityserver/store/hooks.go .

bafonins هل يمكنك اختيار هذا؟

adamsondelacruz ، يرجى إعادة الفتح إذا لم يحل https://github.com/TheThingsNetwork/lorawan-stack/pull/1843 المشكلة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات