๊ฒ์ดํธ์จ์ด๋ฅผ ์ญ์ ํ ๋ค์ ๋์ผํ EUI๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ฒ์ดํธ์จ์ด๋ฅผ ์ถ๊ฐํ ๋ ๊ฒ์ดํธ์จ์ด๊ฐ ์ด๋ฏธ ์กด์ฌํ๋ค๊ณ ๋ถํํ์ฌ ์คํจํ๋ ๊ฒฝ์ฐ.
{
"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๋ฅผ ์ฌ์ฉํ๋ Amazon Linux ๋ฐ API ํธ์ถ์ ์ฌ์ฉํ๋ Postman
์ฌ์ฉ์๊ฐ ์ญ์ ๋ ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฝ์ ํ๋ ค๊ณ ํ๋ฉด ์ญ์ ๋ ํ๋๊ทธ๋ฅผ false๋ก ์ ๋ฐ์ดํธํฉ๋๋ค.
...
#1121๊ณผ ์ฝ๊ฐ ๋ค๋ฅธ ๋ฒ์๋ฅผ ๊ฐ๋๋ก ์ด ๋ฌธ์ ๋ฅผ ์ฝ๊ฐ ์ ๋ฐ์ดํธํ์ต๋๋ค. ์ด ๋ฌธ์ ๋ ์ผ๋ฐ์ ์ผ๋ก(์ ํ๋ฆฌ์ผ์ด์ ๋ง์ด ์๋๋ผ) ์ญ์ ๋ ์ํฐํฐ๋ฅผ ๋ณต์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ ์ค๋ช ํ ์ ์์ต๋๋ค.
์ด๋ฒ ํธ์์๋ ์ญ์ ๋ ๊ฒ์ดํธ์จ์ด์ ๋์ผํ EUI๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ฒ์ดํธ์จ์ด๋ฅผ ์ถ๊ฐํ๋ ๋ฐ ๋ ์ง์คํด ๋ณด๊ฒ ์ต๋๋ค.
https://github.com/TheThingsNetwork/lorawan-stack/issues/604 ๊ด๋ จ(ID/EUI ๋ฆด๋ฆฌ์ค)
@htdvisser ๊ฐ https://github.com/TheThingsNetwork/lorawan-stack/issues/1703 (ํ์ฌ Next Up์ ์์)์ ๊ฐ์ง๊ณ ์๋ค๊ณ ํด๋ ์ด์ ์ ์ฌ์ฉ๋ EUI๋ก ๊ฒ์ดํธ์จ์ด๋ฅผ ์์ฑํ ์ ์๋ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์์ ํ ๋ค๋ฃจ์ง๋ ์์ต๋๋ค. . ์ํฐํฐ๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด ๊ด๋ฆฌ์๋ฅผ ๋ฐ๋ณตํ๋ ๊ฒ์ ์ข์ ์ฌ์ฉ์ ๊ฒฝํ์ด ์๋๋ฉฐ ์ํฐํฐ๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ ๋จ์ํ EUI๋ฅผ ํด์ ํ๋ ๊ฒ๋ณด๋ค ๋ ํ๊ดด์ ์ ๋๋ค.
Afaik ๊ฒ์ดํธ์จ์ด๋ฅผ ์ญ์ ํ ๋ EUI๋ฅผ ๋ฆด๋ฆฌ์คํ๋ ๋ฐ ๋ณด์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๋ฏธ ์ ํ ์ฌํญ์ ๋๋ค. ๊ทธ๊ฒ์ ๋ถ๋ช ํ ๋ณต๊ตฌ๋ฅผ ๋ถ๋ถ์ ์ผ๋ก ๋ง๋ค ๊ฒ์ ๋๋ค. ์ฆ, EUI๊ฐ ์ฌ๋ผ์ก์ง๋ง ์ด๋ ์์ฉ ๊ฐ๋ฅํ๊ณ ์ญ์ ์ ์ฅ์น EUI๊ฐ ์ฆ์ ํด์ ๋๋ ๋ฐฉ์๊ณผ๋ ์ผ์นํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ฒ์ดํธ์จ์ด ์ญ์ ์ EUI๋ฅผ ๋ฆด๋ฆฌ์คํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๊น? ๊ทธ๋ ์ง ์๋ค๋ฉด ๊ทธ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์, ์ญ์ ์ ๊ฒ์ดํธ์จ์ด EUI ํ๋๋ฅผ nil/NULL๋ก ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. ์ถ๊ฐํ๋ ๊ฒ์ฒ๋ผ ๊ฐ๋จํด์ผ ํฉ๋๋ค.
// 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 ์ด๊ฑฐ ์ฃผ์ค ์ ์๋์?
https://github.com/TheThingsNetwork/lorawan-stack/pull/1843 ์ผ๋ก ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ผ๋ฉด @adamsondelacruz ๋ฅผ ๋ค์ ์ฌ์ญ์์ค.