Lorawan-stack: Menggunakan kembali EUI dari Gateway yang Dihapus

Dibuat pada 7 Agu 2019  ·  7Komentar  ·  Sumber: TheThingsNetwork/lorawan-stack

Ringkasan

Ketika Anda menghapus gateway dan kemudian menambahkan yang baru dengan EUI yang sama, jika gagal karena mengeluh bahwa gateway sudah ada.

Langkah-langkah untuk Reproduksi

  1. Hapus gerbang yang ada
  2. Tambahkan menggunakan CLI atau
  3. Tambahkan menggunakan API

Apa yang kamu lihat sekarang?

{
    "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"
        }
    ]
}

Apa yang ingin Anda lihat sebagai gantinya?


Berhasil membuat gateway baru

Lingkungan

amazon linux menggunakan TTN CLI dan Postman menggunakan Panggilan API

Bagaimana Anda mengusulkan untuk menerapkan ini?

Saat pengguna mencoba memasukkan gateway yang dihapus, perbarui flag yang dihapus menjadi false

Bisakah Anda melakukannya sendiri dan mengajukan Permintaan Tarik?

...

identity server in progress

Semua 7 komentar

Saya memperbarui masalah ini sedikit untuk memiliki cakupan yang sedikit berbeda dari #1121, yang dapat kami buat lebih lanjut tentang memulihkan entitas yang dihapus secara umum (bukan hanya aplikasi).

Dalam edisi saat ini, mari lebih fokus pada penambahan gateway baru dengan EUI yang sama dengan gateway yang dihapus.

@htdvisser bahkan memiliki https://github.com/TheThingsNetwork/lorawan-stack/issues/1703 (sekarang di Next Up) tidak sepenuhnya mencakup kasus penggunaan umum untuk dapat membuat gateway dengan EUI yang telah digunakan sebelumnya . Mengulang administrator untuk membersihkan entitas bukanlah pengalaman pengguna yang menyenangkan, ditambah pembersihan entitas lebih merusak daripada sekadar melepaskan EUI.

Afaik kami tidak memiliki masalah keamanan dengan merilis EUI saat menghapus gateway. Ini sudah opsional. Jelas, itu akan membuat pemulihan parsial, yaitu EUI hilang, tetapi saya pikir itu dapat diterima dan juga sejalan dengan bagaimana EUI perangkat segera dirilis saat dihapus.

Bisakah kita menutup masalah ini hanya dengan melepaskan EUI pada penghapusan gateway? Jika tidak, mengapa tidak?

Ya, kami dapat memperbarui bidang Gateway EUI ke nil/NULL saat dihapus. Harus sesederhana menambahkan

// 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
}

di pkg/identityserver/store/hooks.go .

@bafonins bisakah kamu mengambil ini?

@adamsondelacruz silakan buka kembali jika https://github.com/TheThingsNetwork/lorawan-stack/pull/1843 tidak menyelesaikan masalah.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

kschiffer picture kschiffer  ·  6Komentar

htdvisser picture htdvisser  ·  9Komentar

kschiffer picture kschiffer  ·  7Komentar

ecities picture ecities  ·  5Komentar

rvolosatovs picture rvolosatovs  ·  9Komentar