diff --git a/error-devices-onboarding.swift b/error-devices-onboarding.swift new file mode 100644 index 0000000000000000000000000000000000000000..beab91929590b4af7b5d8a09151b49e254b7b6e0 --- /dev/null +++ b/error-devices-onboarding.swift @@ -0,0 +1,317 @@ +l": "eyJzcmxfbm9raWEtbmV0d29yay1pbnN0YW5jZTpuZXR3b3JrLWluc3RhbmNlIjogW3sibmFtZSI6ICJtZ210IiwgInR5cGUiOiAic3JsX25va2lhLW5ldHdvcmstaW5zdGFuY2U6aXAtdnJmIiwgImFkbWluLXN0YXRlIjogImVuYWJsZSIsICJvcGVyLXN0YXRlIjogInVwIiwgImRlc2NyaXB0aW9uIjogIk1hbmFnZW1lbnQgbmV0d29yayBpbnN0YW5jZSIsICJpcC1mb3J3YXJkaW5nIjogeyJyZWNlaXZlLWlwdjQtY2hlY2siOiB0cnVlLCAicmVjZWl2ZS1pcHY2LWNoZWNrIjogdHJ1ZX0sICJpbnRlcmZhY2UiOiBbeyJuYW1lIjogIm1nbXQwLjAiLCAib3Blci1zdGF0ZSI6ICJ1cCIsICJpbmRleCI6ICIxIn1dLCAiaWNtcCI6IHsic3RhdGlzdGljcyI6IHsibGFzdC1jbGVhciI6ICIyMDI0LTA0LTA1VDA5OjE3OjI3LjgwNFoiLCAidG90YWwiOiB7ImluLXBhY2tldHMiOiAiMCIsICJpbi1lcnJvci1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sICJ0eXBlIjogW3sibmFtZSI6ICJlY2hvLXJlcGx5IiwgImluLXBhY2tldHMiOiAiMCIsICJvdXQtcGFja2V0cyI6ICIwIiwgIm91dC1lcnJvci1wYWNrZXRzIjogIjAifSwgeyJuYW1lIjogImRlc3QtdW5yZWFjaGFibGUiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAicmVkaXJlY3QiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAiZWNobyIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJydHItYWR2ZXJ0aXNlbWVudCIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJydHItc2VsZWN0aW9uIiwgImluLXBhY2tldHMiOiAiMCIsICJvdXQtcGFja2V0cyI6ICIwIiwgIm91dC1lcnJvci1wYWNrZXRzIjogIjAifSwgeyJuYW1lIjogInRpbWUtZXhjZWVkZWQiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAicGFyYW0tcHJvYmxlbSIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJ0aW1lc3RhbXAiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAidGltZXN0YW1wLXJlcGx5IiwgImluLXBhY2tldHMiOiAiMCIsICJvdXQtcGFja2V0cyI6ICIwIiwgIm91dC1lcnJvci1wYWNrZXRzIjogIjAifV19fSwgImljbXA2IjogeyJzdGF0aXN0aWNzIjogeyJsYXN0LWNsZWFyIjogIjIwMjQtMDQtMDVUMDk6MTc6MjcuODA0WiIsICJ0b3RhbCI6IHsiaW4tcGFja2V0cyI6ICI1MiIsICJpbi1lcnJvci1wYWNrZXRzIjogIjMxIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCAidHlwZSI6IFt7Im5hbWUiOiAiZGVzdC11bnJlYWNoYWJsZSIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJwYWNrZXQtdG9vLWJpZyIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJ0aW1lLWV4Y2VlZGVkIiwgImluLXBhY2tldHMiOiAiMCIsICJvdXQtcGFja2V0cyI6ICIwIiwgIm91dC1lcnJvci1wYWNrZXRzIjogIjAifSwgeyJuYW1lIjogInBhcmFtLXByb2JsZW0iLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAiZWNoby1yZXF1ZXN0IiwgImluLXBhY2tldHMiOiAiMCIsICJvdXQtcGFja2V0cyI6ICIwIiwgIm91dC1lcnJvci1wYWNrZXRzIjogIjAifSwgeyJuYW1lIjogImVjaG8tcmVwbHkiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAicnRyLXNvbGljaXRhdGlvbiIsICJpbi1wYWNrZXRzIjogIjMxIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAicnRyLWFkdmVydGlzZW1lbnQiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAibmJyLXNvbGljaXRhdGlvbiIsICJpbi1wYWNrZXRzIjogIjMiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJuYnItYWR2ZXJ0aXNlbWVudCIsICJpbi1wYWNrZXRzIjogIjkiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJyZWRpcmVjdCIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn1dfX0sICJwcm90b2NvbHMiOiB7InNybF9ub2tpYS1saW51eDpsaW51eCI6IHsiaW1wb3J0LXJvdXRlcyI6IHRydWUsICJleHBvcnQtcm91dGVzIjogdHJ1ZSwgImV4cG9ydC1uZWlnaGJvcnMiOiB0cnVlfX0sICJyb3V0ZS10YWJsZSI6IHsic3JsX25va2lhLWlwLXJvdXRlLXRhYmxlczppcHY0LXVuaWNhc3QiOiB7InJvdXRlIjogW3siaXB2NC1wcmVmaXgiOiAiMC4wLjAuMC8wIiwgImlkIjogMSwgInJvdXRlLXR5cGUiOiAic3JsX25va2lhLWNvbW1vbjpkaGNwIiwgInJvdXRlLW93bmVyIjogImRoY3BfY2xpZW50X21nciIsICJvcmlnaW4tbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgImxlYWthYmxlIjogZmFsc2UsICJtZXRyaWMiOiAwLCAicHJlZmVyZW5jZSI6IDUsICJhY3RpdmUiOiB0cnVlLCAibGFzdC1hcHAtdXBkYXRlIjogIjIwMjQtMDQtMDVUMDk6MTc6MjcuOTIzWiIsICJuZXh0LWhvcC1ncm91cCI6ICIyNDcxMjI4NjE2MzgiLCAibmV4dC1ob3AtZ3JvdXAtbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgInJlc2lsaWVudC1oYXNoIjogZmFsc2UsICJmaWItcHJvZ3JhbW1pbmciOiB7InN1cHByZXNzZWQiOiBmYWxzZSwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzoyNy45MjRaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn19LCB7ImlwdjQtcHJlZml4IjogIjE3Mi4yMC4yMC4wLzI0IiwgImlkIjogMCwgInJvdXRlLXR5cGUiOiAic3JsX25va2lhLWNvbW1vbjpsaW51eCIsICJyb3V0ZS1vd25lciI6ICJsaW51eF9tZ3IiLCAib3JpZ2luLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJsZWFrYWJsZSI6IGZhbHNlLCAibWV0cmljIjogMCwgInByZWZlcmVuY2UiOiA1LCAiYWN0aXZlIjogZmFsc2UsICJsYXN0LWFwcC11cGRhdGUiOiAiMjAyNC0wNC0wNVQwOToxNzozMy45NDVaIiwgIm5leHQtaG9wLWdyb3VwIjogIjI0NzEyMjg2MTY0NSIsICJuZXh0LWhvcC1ncm91cC1uZXR3b3JrLWluc3RhbmNlIjogIm1nbXQiLCAicmVzaWxpZW50LWhhc2giOiBmYWxzZSwgImZpYi1wcm9ncmFtbWluZyI6IHsic3VwcHJlc3NlZCI6IGZhbHNlLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10eXBlIjogImFkZCIsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXRpbWVzdGFtcCI6ICIyMDI0LTA0LTA1VDA5OjE3OjMzLjk1NVoiLCAicGVuZGluZy1vcGVyYXRpb24tdHlwZSI6ICJub25lIiwgImxhc3QtZmFpbGVkLW9wZXJhdGlvbi10eXBlIjogIm5vbmUifX0sIHsiaXB2NC1wcmVmaXgiOiAiMTcyLjIwLjIwLjAvMjQiLCAiaWQiOiAxLCAicm91dGUtdHlwZSI6ICJzcmxfbm9raWEtY29tbW9uOmxvY2FsIiwgInJvdXRlLW93bmVyIjogIm5ldF9pbnN0X21nciIsICJvcmlnaW4tbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgImxlYWthYmxlIjogZmFsc2UsICJtZXRyaWMiOiAwLCAicHJlZmVyZW5jZSI6IDAsICJhY3RpdmUiOiB0cnVlLCAibGFzdC1hcHAtdXBkYXRlIjogIjIwMjQtMDQtMDVUMDk6MTc6MzMuOTQ1WiIsICJuZXh0LWhvcC1ncm91cCI6ICIyNDcxMjI4NjE2NDMiLCAibmV4dC1ob3AtZ3JvdXAtbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgInJlc2lsaWVudC1oYXNoIjogZmFsc2UsICJmaWItcHJvZ3JhbW1pbmciOiB7InN1cHByZXNzZWQiOiBmYWxzZSwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzozMy45NTVaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn19LCB7ImlwdjQtcHJlZml4IjogIjE3Mi4yMC4yMC4xMDIvMzIiLCAiaWQiOiAxLCAicm91dGUtdHlwZSI6ICJzcmxfbm9raWEtY29tbW9uOmhvc3QiLCAicm91dGUtb3duZXIiOiAibmV0X2luc3RfbWdyIiwgIm9yaWdpbi1uZXR3b3JrLWluc3RhbmNlIjogIm1nbXQiLCAibGVha2FibGUiOiBmYWxzZSwgIm1ldHJpYyI6IDAsICJwcmVmZXJlbmNlIjogMCwgImFjdGl2ZSI6IHRydWUsICJsYXN0LWFwcC11cGRhdGUiOiAiMjAyNC0wNC0wNVQwOToxNzozMy45NDVaIiwgIm5leHQtaG9wLWdyb3VwIjogIjI0NzEyMjg2MTY0MiIsICJuZXh0LWhvcC1ncm91cC1uZXR3b3JrLWluc3RhbmNlIjogIm1nbXQiLCAicmVzaWxpZW50LWhhc2giOiBmYWxzZSwgImZpYi1wcm9ncmFtbWluZyI6IHsic3VwcHJlc3NlZCI6IGZhbHNlLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10eXBlIjogImFkZCIsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXRpbWVzdGFtcCI6ICIyMDI0LTA0LTA1VDA5OjE3OjMzLjk1NVoiLCAicGVuZGluZy1vcGVyYXRpb24tdHlwZSI6ICJub25lIiwgImxhc3QtZmFpbGVkLW9wZXJhdGlvbi10eXBlIjogIm5vbmUifX0sIHsiaXB2NC1wcmVmaXgiOiAiMTcyLjIwLjIwLjI1NS8zMiIsICJpZCI6IDEsICJyb3V0ZS10eXBlIjogInNybF9ub2tpYS1jb21tb246aG9zdCIsICJyb3V0ZS1vd25lciI6ICJuZXRfaW5zdF9tZ3IiLCAib3JpZ2luLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJsZWFrYWJsZSI6IGZhbHNlLCAibWV0cmljIjogMCwgInByZWZlcmVuY2UiOiAwLCAiYWN0aXZlIjogdHJ1ZSwgImxhc3QtYXBwLXVwZGF0ZSI6ICIyMDI0LTA0LTA1VDA5OjE3OjMzLjk0NVoiLCAibmV4dC1ob3AtZ3JvdXAiOiAiMjQ3MTIyODYxNjQ0IiwgIm5leHQtaG9wLWdyb3VwLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJyZXNpbGllbnQtaGFzaCI6IGZhbHNlLCAiZmliLXByb2dyYW1taW5nIjogeyJzdXBwcmVzc2VkIjogZmFsc2UsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXR5cGUiOiAiYWRkIiwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdGltZXN0YW1wIjogIjIwMjQtMDQtMDVUMDk6MTc6MzMuOTU1WiIsICJwZW5kaW5nLW9wZXJhdGlvbi10eXBlIjogIm5vbmUiLCAibGFzdC1mYWlsZWQtb3BlcmF0aW9uLXR5cGUiOiAibm9uZSJ9fV0sICJzdGF0aXN0aWNzIjogeyJhY3RpdmUtcm91dGVzIjogNCwgImFjdGl2ZS1yb3V0ZXMtd2l0aC1lY21wIjogMCwgInJlc2lsaWVudC1oYXNoLXJvdXRlcyI6IDAsICJmaWItZmFpbGVkLXJvdXRlcyI6IDAsICJ0b3RhbC1yb3V0ZXMiOiAiNSJ9LCAicm91dGUtc3VtbWFyeSI6IHsicm91dGUtdHlwZSI6IFt7ImlwLXJvdXRlLXR5cGUtbmFtZSI6ICJzcmxfbm9raWEtY29tbW9uOmRoY3AiLCAiYWN0aXZlLXJvdXRlcyI6IDF9LCB7ImlwLXJvdXRlLXR5cGUtbmFtZSI6ICJzcmxfbm9raWEtY29tbW9uOmhvc3QiLCAiYWN0aXZlLXJvdXRlcyI6IDJ9LCB7ImlwLXJvdXRlLXR5cGUtbmFtZSI6ICJzcmxfbm9raWEtY29tbW9uOmxpbnV4IiwgImFjdGl2ZS1yb3V0ZXMiOiAxfSwgeyJpcC1yb3V0ZS10eXBlLW5hbWUiOiAic3JsX25va2lhLWNvbW1vbjpsb2NhbCIsICJhY3RpdmUtcm91dGVzIjogMX1dfX0sICJzcmxfbm9raWEtaXAtcm91dGUtdGFibGVzOmlwdjYtdW5pY2FzdCI6IHsicm91dGUiOiBbeyJpcHY2LXByZWZpeCI6ICI6Oi8wIiwgImlkIjogMSwgInJvdXRlLXR5cGUiOiAic3JsX25va2lhLWNvbW1vbjpkaGNwIiwgInJvdXRlLW93bmVyIjogImRoY3BfY2xpZW50X21nciIsICJvcmlnaW4tbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgImxlYWthYmxlIjogZmFsc2UsICJtZXRyaWMiOiAwLCAicHJlZmVyZW5jZSI6IDUsICJhY3RpdmUiOiB0cnVlLCAibGFzdC1hcHAtdXBkYXRlIjogIjIwMjQtMDQtMDVUMDk6MTc6MjguODUwWiIsICJuZXh0LWhvcC1ncm91cCI6ICIyNDcxMjI4NjE2MzkiLCAibmV4dC1ob3AtZ3JvdXAtbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgInJlc2lsaWVudC1oYXNoIjogZmFsc2UsICJmaWItcHJvZ3JhbW1pbmciOiB7InN1cHByZXNzZWQiOiBmYWxzZSwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzoyOC44NTNaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn19LCB7ImlwdjYtcHJlZml4IjogIjIwMDE6MTcyOjIwOjIwOjovNjQiLCAiaWQiOiAwLCAicm91dGUtdHlwZSI6ICJzcmxfbm9raWEtY29tbW9uOmxpbnV4IiwgInJvdXRlLW93bmVyIjogImxpbnV4X21nciIsICJvcmlnaW4tbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgImxlYWthYmxlIjogZmFsc2UsICJtZXRyaWMiOiAwLCAicHJlZmVyZW5jZSI6IDUsICJhY3RpdmUiOiBmYWxzZSwgImxhc3QtYXBwLXVwZGF0ZSI6ICIyMDI0LTA0LTA1VDA5OjE3OjMwLjEwM1oiLCAibmV4dC1ob3AtZ3JvdXAiOiAiMjQ3MTIyODYxNjQwIiwgIm5leHQtaG9wLWdyb3VwLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJyZXNpbGllbnQtaGFzaCI6IGZhbHNlLCAiZmliLXByb2dyYW1taW5nIjogeyJzdXBwcmVzc2VkIjogZmFsc2UsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXR5cGUiOiAiYWRkIiwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdGltZXN0YW1wIjogIjIwMjQtMDQtMDVUMDk6MTc6MzAuMTA0WiIsICJwZW5kaW5nLW9wZXJhdGlvbi10eXBlIjogIm5vbmUiLCAibGFzdC1mYWlsZWQtb3BlcmF0aW9uLXR5cGUiOiAibm9uZSJ9fSwgeyJpcHY2LXByZWZpeCI6ICIyMDAxOjE3MjoyMDoyMDo6LzY0IiwgImlkIjogMSwgInJvdXRlLXR5cGUiOiAic3JsX25va2lhLWNvbW1vbjpsb2NhbCIsICJyb3V0ZS1vd25lciI6ICJuZXRfaW5zdF9tZ3IiLCAib3JpZ2luLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJsZWFrYWJsZSI6IGZhbHNlLCAibWV0cmljIjogMCwgInByZWZlcmVuY2UiOiAwLCAiYWN0aXZlIjogdHJ1ZSwgImxhc3QtYXBwLXVwZGF0ZSI6ICIyMDI0LTA0LTA1VDA5OjE3OjMwLjEwNFoiLCAibmV4dC1ob3AtZ3JvdXAiOiAiMjQ3MTIyODYxNjQxIiwgIm5leHQtaG9wLWdyb3VwLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJyZXNpbGllbnQtaGFzaCI6IGZhbHNlLCAiZmliLXByb2dyYW1taW5nIjogeyJzdXBwcmVzc2VkIjogZmFsc2UsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXR5cGUiOiAiYWRkIiwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdGltZXN0YW1wIjogIjIwMjQtMDQtMDVUMDk6MTc6MzAuMTA0WiIsICJwZW5kaW5nLW9wZXJhdGlvbi10eXBlIjogIm5vbmUiLCAibGFzdC1mYWlsZWQtb3BlcmF0aW9uLXR5cGUiOiAibm9uZSJ9fSwgeyJpcHY2LXByZWZpeCI6ICIyMDAxOjE3MjoyMDoyMDo6Mi8xMjgiLCAiaWQiOiAxLCAicm91dGUtdHlwZSI6ICJzcmxfbm9raWEtY29tbW9uOmhvc3QiLCAicm91dGUtb3duZXIiOiAibmV0X2luc3RfbWdyIiwgIm9yaWdpbi1uZXR3b3JrLWluc3RhbmNlIjogIm1nbXQiLCAibGVha2FibGUiOiBmYWxzZSwgIm1ldHJpYyI6IDAsICJwcmVmZXJlbmNlIjogMCwgImFjdGl2ZSI6IHRydWUsICJsYXN0LWFwcC11cGRhdGUiOiAiMjAyNC0wNC0wNVQwOToxNzozMC4xMDRaIiwgIm5leHQtaG9wLWdyb3VwIjogIjI0NzEyMjg2MTY0MiIsICJuZXh0LWhvcC1ncm91cC1uZXR3b3JrLWluc3RhbmNlIjogIm1nbXQiLCAicmVzaWxpZW50LWhhc2giOiBmYWxzZSwgImZpYi1wcm9ncmFtbWluZyI6IHsic3VwcHJlc3NlZCI6IGZhbHNlLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10eXBlIjogImFkZCIsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXRpbWVzdGFtcCI6ICIyMDI0LTA0LTA1VDA5OjE3OjMwLjEwNFoiLCAicGVuZGluZy1vcGVyYXRpb24tdHlwZSI6ICJub25lIiwgImxhc3QtZmFpbGVkLW9wZXJhdGlvbi10eXBlIjogIm5vbmUifX1dLCAic3RhdGlzdGljcyI6IHsiYWN0aXZlLXJvdXRlcyI6IDMsICJhY3RpdmUtcm91dGVzLXdpdGgtZWNtcCI6IDAsICJyZXNpbGllbnQtaGFzaC1yb3V0ZXMiOiAwLCAiZmliLWZhaWxlZC1yb3V0ZXMiOiAwLCAidG90YWwtcm91dGVzIjogIjQifSwgInJvdXRlLXN1bW1hcnkiOiB7InJvdXRlLXR5cGUiOiBbeyJpcC1yb3V0ZS10eXBlLW5hbWUiOiAic3JsX25va2lhLWNvbW1vbjpkaGNwIiwgImFjdGl2ZS1yb3V0ZXMiOiAxfSwgeyJpcC1yb3V0ZS10eXBlLW5hbWUiOiAic3JsX25va2lhLWNvbW1vbjpob3N0IiwgImFjdGl2ZS1yb3V0ZXMiOiAxfSwgeyJpcC1yb3V0ZS10eXBlLW5hbWUiOiAic3JsX25va2lhLWNvbW1vbjpsaW51eCIsICJhY3RpdmUtcm91dGVzIjogMX0sIHsiaXAtcm91dGUtdHlwZS1uYW1lIjogInNybF9ub2tpYS1jb21tb246bG9jYWwiLCAiYWN0aXZlLXJvdXRlcyI6IDF9XX19LCAic3JsX25va2lhLWlwLXJvdXRlLXRhYmxlczpuZXh0LWhvcC1ncm91cCI6IFt7ImluZGV4IjogIjI0NzEyMjg2MTYzOCIsICJiYWNrdXAtbmV4dC1ob3AtZ3JvdXAiOiAiMCIsICJmaWItcHJvZ3JhbW1pbmciOiB7Imxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzoyNy45MjRaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn0sICJuZXh0LWhvcCI6IFt7ImlkIjogMCwgIm5leHQtaG9wIjogIjI0NzEyMjg2MTYzOCIsICJyZXNvbHZlZCI6ICJub3QtYXBwbGljYWJsZSJ9XX0sIHsiaW5kZXgiOiAiMjQ3MTIyODYxNjM5IiwgImJhY2t1cC1uZXh0LWhvcC1ncm91cCI6ICIwIiwgImZpYi1wcm9ncmFtbWluZyI6IHsibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10eXBlIjogImFkZCIsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXRpbWVzdGFtcCI6ICIyMDI0LTA0LTA1VDA5OjE3OjI4Ljg1M1oiLCAicGVuZGluZy1vcGVyYXRpb24tdHlwZSI6ICJub25lIiwgImxhc3QtZmFpbGVkLW9wZXJhdGlvbi10eXBlIjogIm5vbmUifSwgIm5leHQtaG9wIjogW3siaWQiOiAwLCAibmV4dC1ob3AiOiAiMjQ3MTIyODYxNjM5IiwgInJlc29sdmVkIjogIm5vdC1hcHBsaWNhYmxlIn1dfSwgeyJpbmRleCI6ICIyNDcxMjI4NjE2NDAiLCAiYmFja3VwLW5leHQtaG9wLWdyb3VwIjogIjAiLCAiZmliLXByb2dyYW1taW5nIjogeyJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXR5cGUiOiAiYWRkIiwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdGltZXN0YW1wIjogIjIwMjQtMDQtMDVUMDk6MTc6MzAuMTA0WiIsICJwZW5kaW5nLW9wZXJhdGlvbi10eXBlIjogIm5vbmUiLCAibGFzdC1mYWlsZWQtb3BlcmF0aW9uLXR5cGUiOiAibm9uZSJ9LCAibmV4dC1ob3AiOiBbeyJpZCI6IDAsICJuZXh0LWhvcCI6ICIyNDcxMjI4NjE2NDAiLCAicmVzb2x2ZWQiOiAibm90LWFwcGxpY2FibGUifV19LCB7ImluZGV4IjogIjI0NzEyMjg2MTY0MSIsICJiYWNrdXAtbmV4dC1ob3AtZ3JvdXAiOiAiMCIsICJmaWItcHJvZ3JhbW1pbmciOiB7Imxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzozMC4xMDRaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn0sICJuZXh0LWhvcCI6IFt7ImlkIjogMCwgIm5leHQtaG9wIjogIjI0NzEyMjg2MTY0MSIsICJyZXNvbHZlZCI6ICJub3QtYXBwbGljYWJsZSJ9XX0sIHsiaW5kZXgiOiAiMjQ3MTIyODYxNjQyIiwgImJhY2t1cC1uZXh0LWhvcC1ncm91cCI6ICIwIiwgImZpYi1wcm9ncmFtbWluZyI6IHsibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10eXBlIjogImFkZCIsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXRpbWVzdGFtcCI6ICIyMDI0LTA0LTA1VDA5OjE3OjMwLjEwNFoiLCAicGVuZGluZy1vcGVyYXRpb24tdHlwZSI6ICJub25lIiwgImxhc3QtZmFpbGVkLW9wZXJhdGlvbi10eXBlIjogIm5vbmUifSwgIm5leHQtaG9wIjogW3siaWQiOiAwLCAibmV4dC1ob3AiOiAiMjQ3MTIyODYxNjQyIiwgInJlc29sdmVkIjogIm5vdC1hcHBsaWNhYmxlIn1dfSwgeyJpbmRleCI6ICIyNDcxMjI4NjE2NDMiLCAiYmFja3VwLW5leHQtaG9wLWdyb3VwIjogIjAiLCAiZmliLXByb2dyYW1taW5nIjogeyJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXR5cGUiOiAiYWRkIiwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdGltZXN0YW1wIjogIjIwMjQtMDQtMDVUMDk6MTc6MzMuOTU1WiIsICJwZW5kaW5nLW9wZXJhdGlvbi10eXBlIjogIm5vbmUiLCAibGFzdC1mYWlsZWQtb3BlcmF0aW9uLXR5cGUiOiAibm9uZSJ9LCAibmV4dC1ob3AiOiBbeyJpZCI6IDAsICJuZXh0LWhvcCI6ICIyNDcxMjI4NjE2NDMiLCAicmVzb2x2ZWQiOiAibm90LWFwcGxpY2FibGUifV19LCB7ImluZGV4IjogIjI0NzEyMjg2MTY0NCIsICJiYWNrdXAtbmV4dC1ob3AtZ3JvdXAiOiAiMCIsICJmaWItcHJvZ3JhbW1pbmciOiB7Imxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzozMy45NTVaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn0sICJuZXh0LWhvcCI6IFt7ImlkIjogMCwgIm5leHQtaG9wIjogIjMiLCAicmVzb2x2ZWQiOiAibm90LWFwcGxpY2FibGUifV19LCB7ImluZGV4IjogIjI0NzEyMjg2MTY0NSIsICJiYWNrdXAtbmV4dC1ob3AtZ3JvdXAiOiAiMCIsICJmaWItcHJvZ3JhbW1pbmciOiB7Imxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzozMy45NTVaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn0sICJuZXh0LWhvcCI6IFt7ImlkIjogMCwgIm5leHQtaG9wIjogIjI0NzEyMjg2MTY0NCIsICJyZXNvbHZlZCI6ICJub3QtYXBwbGljYWJsZSJ9XX1dLCAic3JsX25va2lhLWlwLXJvdXRlLXRhYmxlczpuZXh0LWhvcCI6IFt7ImluZGV4IjogIjMiLCAidHlwZSI6ICJzcmxfbm9raWEtaXAtcm91dGUtdGFibGVzOmJyb2FkY2FzdCJ9LCB7ImluZGV4IjogIjI0NzEyMjg2MTYzOCIsICJ0eXBlIjogInNybF9ub2tpYS1pcC1yb3V0ZS10YWJsZXM6ZGlyZWN0IiwgImlwLWFkZHJlc3MiOiAiMTcyLjIwLjIwLjEiLCAic3ViaW50ZXJmYWNlIjogIm1nbXQwLjAifSwgeyJpbmRleCI6ICIyNDcxMjI4NjE2MzkiLCAidHlwZSI6ICJzcmxfbm9raWEtaXAtcm91dGUtdGFibGVzOmRpcmVjdCIsICJpcC1hZGRyZXNzIjogIjIwMDE6MTcyOjIwOjIwOjoxIiwgInN1YmludGVyZmFjZSI6ICJtZ210MC4wIn0sIHsiaW5kZXgiOiAiMjQ3MTIyODYxNjQwIiwgInR5cGUiOiAic3JsX25va2lhLWlwLXJvdXRlLXRhYmxlczpkaXJlY3QiLCAiaXAtYWRkcmVzcyI6ICIyMDAxOjE3MjoyMDoyMDo6IiwgInN1YmludGVyZmFjZSI6ICJtZ210MC4wIn0sIHsiaW5kZXgiOiAiMjQ3MTIyODYxNjQxIiwgInR5cGUiOiAic3JsX25va2lhLWlwLXJvdXRlLXRhYmxlczpkaXJlY3QiLCAiaXAtYWRkcmVzcyI6ICIyMDAxOjE3MjoyMDoyMDo6MiIsICJzdWJpbnRlcmZhY2UiOiAibWdtdDAuMCJ9LCB7ImluZGV4IjogIjI0NzEyMjg2MTY0MiIsICJ0eXBlIjogInNybF9ub2tpYS1pcC1yb3V0ZS10YWJsZXM6ZXh0cmFjdCJ9LCB7ImluZGV4IjogIjI0NzEyMjg2MTY0MyIsICJ0eXBlIjogInNybF9ub2tpYS1pcC1yb3V0ZS10YWJsZXM6ZGlyZWN0IiwgImlwLWFkZHJlc3MiOiAiMTcyLjIwLjIwLjEwMiIsICJzdWJpbnRlcmZhY2UiOiAibWdtdDAuMCJ9LCB7ImluZGV4IjogIjI0NzEyMjg2MTY0NCIsICJ0eXBlIjogInNybF9ub2tpYS1pcC1yb3V0ZS10YWJsZXM6ZGlyZWN0IiwgImlwLWFkZHJlc3MiOiAiMTcyLjIwLjIwLjAiLCAic3ViaW50ZXJmYWNlIjogIm1nbXQwLjAifV19LCAidHVubmVsLXRhYmxlIjogeyJzcmxfbm9raWEtdHVubmVsLXRhYmxlczppcHY0Ijoge30sICJzcmxfbm9raWEtdHVubmVsLXRhYmxlczppcHY2Ijoge319LCAic3JsX25va2lhLXRjcC11ZHA6dGNwIjogeyJzdGF0aXN0aWNzIjogeyJhY3RpdmUtb3BlbnMiOiAiMCIsICJwYXNzaXZlLW9wZW5zIjogIjIiLCAiYXR0ZW1wdC1mYWlscyI6ICIwIiwgImVzdGFibGlzaGVkLXJlc2V0cyI6ICIwIiwgImluLXNlZ21lbnRzIjogIjQwIiwgIm91dC1zZWdtZW50cyI6ICI0NyIsICJyZXRyYW5zbWl0dGVkLXNlZ21lbnRzIjogIjAiLCAiaW4tZXJyb3Itc2VnbWVudHMiOiAiMCIsICJvdXQtcnN0LXNlZ21lbnRzIjogIjEiLCAiaW4tY2hlY2tzdW0tZXJyb3JzIjogIjAifSwgImxpc3RlbmluZy1hcHBsaWNhdGlvbiI6IFt7ImxvY2FsLWFkZHJlc3MiOiAiMC4wLjAuMCIsICJsb2NhbC1wb3J0IjogMjJ9LCB7ImxvY2FsLWFkZHJlc3MiOiAiMTI3LjAuMC4xIiwgImxvY2FsLXBvcnQiOiA1M30sIHsibG9jYWwtYWRkcmVzcyI6ICIxMjcuMC4wLjEiLCAibG9jYWwtcG9ydCI6IDE5OX0sIHsibG9jYWwtYWRkcmVzcyI6ICI6OiIsICJsb2NhbC1wb3J0IjogMjJ9LCB7ImxvY2FsLWFkZHJlc3MiOiAiOjoiLCAibG9jYWwtcG9ydCI6IDgwfSwgeyJsb2NhbC1hZGRyZXNzIjogIjo6IiwgImxvY2FsLXBvcnQiOiA0NDN9LCB7ImxvY2FsLWFkZHJlc3MiOiAiOjoiLCAibG9jYWwtcG9ydCI6IDU3NDAwfSwgeyJsb2NhbC1hZGRyZXNzIjogIjo6MSIsICJsb2NhbC1wb3J0IjogNTN9XX0sICJzcmxfbm9raWEtdGNwLXVkcDp1ZHAiOiB7InN0YXRpc3RpY3MiOiB7ImluLXBhY2tldHMiOiAiMCIsICJpbi1uby1vcGVuLXBvcnRzLXBhY2tldHMiOiAiMCIsICJpbi1lcnJvci1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJyZWNlaXZlLWJ1ZmZlci1lcnJvcnMiOiAiMCIsICJzZW5kLWJ1ZmZlci1lcnJvcnMiOiAiMCIsICJpbi1jaGVja3N1bS1lcnJvcnMiOiAiMCIsICJpZ25vcmVkLW11bHRpY2FzdC1wYWNrZXRzIjogIjAifSwgImxpc3RlbmluZy1hcHBsaWNhdGlvbiI6IFt7ImxvY2FsLWFkZHJlc3MiOiAiMC4wLjAuMCIsICJsb2NhbC1wb3J0IjogMTYxfSwgeyJsb2NhbC1hZGRyZXNzIjogIjEyNy4wLjAuMSIsICJsb2NhbC1wb3J0IjogNTN9LCB7ImxvY2FsLWFkZHJlc3MiOiAiOjoiLCAibG9jYWwtcG9ydCI6IDE2MX0sIHsibG9jYWwtYWRkcmVzcyI6ICI6OjEiLCAibG9jYWwtcG9ydCI6IDUzfV19fV19"}}]} +Traceback (most recent call last): + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/GnmiSessionHandler.py", line 140, in get + results.extend(parse(str_path, value)) + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/handlers/__init__.py", line 134, in parse + return handler.parse(value) + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/handlers/NetworkInstance.py", line 438, in parse + if afi_safi_entry: +UnboundLocalError: local variable 'afi_safi_entry' referenced before assignment +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Original path: /srl_nokia-network-instance:network-instance, Schema path: /network-instance +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Mapped path schema: /network-instance +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Handler found for path: /network-instance +ERROR:device.service.drivers.gnmi_nokia_srlinux.GnmiNokiaSrLinuxDriver:[172.20.20.102:57400]:Exception processing notification {"atomic": false, "delete": [], "timestamp": "1712310240151604420", "update": [{"duplicates": 0, "path": {"elem": [], "element": [], "origin": "", "target": ""}, "val": {"json_ietf_val": "eyJzcmxfbm9raWEtbmV0d29yay1pbnN0YW5jZTpuZXR3b3JrLWluc3RhbmNlIjogW3sibmFtZSI6ICJtZ210IiwgImludGVyZmFjZSI6IFt7Im5hbWUiOiAibWdtdDAuMCIsICJvcGVyLXN0YXRlIjogInVwIiwgImluZGV4IjogIjEifV19XX0="}}]} +Traceback (most recent call last): + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/GnmiSessionHandler.py", line 140, in get + results.extend(parse(str_path, value)) + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/handlers/__init__.py", line 134, in parse + return handler.parse(value) + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/handlers/NetworkInstance.py", line 438, in parse + if afi_safi_entry: +UnboundLocalError: local variable 'afi_safi_entry' referenced before assignment +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Original path: /srl_nokia-routing-policy:routing-policy, Schema path: /routing-policy +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Mapped path schema: /routing-policy +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Handler found for path: /routing-policy +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/1]', {'name': 'ethernet-1/1', 'admin_state': 'enable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/2]', {'name': 'ethernet-1/2', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/3]', {'name': 'ethernet-1/3', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/4]', {'name': 'ethernet-1/4', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/5]', {'name': 'ethernet-1/5', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/6]', {'name': 'ethernet-1/6', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/7]', {'name': 'ethernet-1/7', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/8]', {'name': 'ethernet-1/8', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/9]', {'name': 'ethernet-1/9', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/10]', {'name': 'ethernet-1/10', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/11]', {'name': 'ethernet-1/11', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/12]', {'name': 'ethernet-1/12', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/13]', {'name': 'ethernet-1/13', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/14]', {'name': 'ethernet-1/14', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/15]', {'name': 'ethernet-1/15', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/16]', {'name': 'ethernet-1/16', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/17]', {'name': 'ethernet-1/17', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/18]', {'name': 'ethernet-1/18', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/19]', {'name': 'ethernet-1/19', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/20]', {'name': 'ethernet-1/20', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/21]', {'name': 'ethernet-1/21', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/22]', {'name': 'ethernet-1/22', 'admin_state': 'disable'})) +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Original path: /srl_nokia-interfaces:interface, Schema path: /srl_nokia-interfaces:interface +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/23]', {'name': 'ethernet-1/23', 'admin_state': 'disable'})) +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Mapped path schema: /srl_nokia-interfaces:interface +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/24]', {'name': 'ethernet-1/24', 'admin_state': 'disable'})) +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers.Interface:Getting path for InterfaceHandler +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/25]', {'name': 'ethernet-1/25', 'admin_state': 'disable'})) +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Handler found for path: /srl_nokia-interfaces:interface +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/26]', {'name': 'ethernet-1/26', 'admin_state': 'disable'})) +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Original path: /srl_nokia-interfaces:interface, Schema path: /srl_nokia-interfaces:interface +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/27]', {'name': 'ethernet-1/27', 'admin_state': 'disable'})) +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Mapped path schema: /srl_nokia-interfaces:interface +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/28]', {'name': 'ethernet-1/28', 'admin_state': 'disable'})) +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers.Interface:Getting path for InterfaceHandler +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/29]', {'name': 'ethernet-1/29', 'admin_state': 'disable'})) +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Handler found for path: /srl_nokia-interfaces:interface +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/30]', {'name': 'ethernet-1/30', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/31]', {'name': 'ethernet-1/31', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/32]', {'name': 'ethernet-1/32', 'admin_state': 'disable'})) +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Original path: /srl_nokia-network-instance:network-instance, Schema path: /network-instance +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/33]', {'name': 'ethernet-1/33', 'admin_state': 'disable'})) +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Mapped path schema: /network-instance +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/34]', {'name': 'ethernet-1/34', 'admin_state': 'disable'})) +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Handler found for path: /network-instance +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/35]', {'name': 'ethernet-1/35', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/36]', {'name': 'ethernet-1/36', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/37]', {'name': 'ethernet-1/37', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/38]', {'name': 'ethernet-1/38', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/39]', {'name': 'ethernet-1/39', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/40]', {'name': 'ethernet-1/40', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/41]', {'name': 'ethernet-1/41', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/42]', {'name': 'ethernet-1/42', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/43]', {'name': 'ethernet-1/43', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/44]', {'name': 'ethernet-1/44', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/45]', {'name': 'ethernet-1/45', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/46]', {'name': 'ethernet-1/46', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/47]', {'name': 'ethernet-1/47', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/48]', {'name': 'ethernet-1/48', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/49]', {'name': 'ethernet-1/49', 'admin_state': 'enable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/50]', {'name': 'ethernet-1/50', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/51]', {'name': 'ethernet-1/51', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/52]', {'name': 'ethernet-1/52', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/53]', {'name': 'ethernet-1/53', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/54]', {'name': 'ethernet-1/54', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/55]', {'name': 'ethernet-1/55', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/56]', {'name': 'ethernet-1/56', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[mgmt0]/subinterface[0]', {'index': 0, 'admin-state': 'enable', 'type': None, 'ipv4': {'address': [{'ip-prefix': '172.20.20.102/24'}]}, 'vlan': {'encap': {'untagged': {}}}})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[mgmt0]', {'name': 'mgmt0', 'admin_state': 'enable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): Unable to Get Resource(key=/); Error(local variable 'afi_safi_entry' referenced before assignment) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): Unable to Get Resource(key=/); Error(local variable 'afi_safi_entry' referenced before assignment) +ERROR:device.service.drivers.gnmi_nokia_srlinux.GnmiNokiaSrLinuxDriver:[172.20.20.101:57400]:Exception processing notification {"atomic": false, "delete": [], "timestamp": "1712310240179530218", "update": [{"duplicates": 0, "path": {"elem": [], "element": [], "origin": "", "target": ""}, "val": {"json_ietf_val": "eyJzcmxfbm9raWEtbmV0d29yay1pbnN0YW5jZTpuZXR3b3JrLWluc3RhbmNlIjogW3sibmFtZSI6ICJtZ210IiwgInR5cGUiOiAic3JsX25va2lhLW5ldHdvcmstaW5zdGFuY2U6aXAtdnJmIiwgImFkbWluLXN0YXRlIjogImVuYWJsZSIsICJvcGVyLXN0YXRlIjogInVwIiwgImRlc2NyaXB0aW9uIjogIk1hbmFnZW1lbnQgbmV0d29yayBpbnN0YW5jZSIsICJpcC1mb3J3YXJkaW5nIjogeyJyZWNlaXZlLWlwdjQtY2hlY2siOiB0cnVlLCAicmVjZWl2ZS1pcHY2LWNoZWNrIjogdHJ1ZX0sICJpbnRlcmZhY2UiOiBbeyJuYW1lIjogIm1nbXQwLjAiLCAib3Blci1zdGF0ZSI6ICJ1cCIsICJpbmRleCI6ICIxIn1dLCAiaWNtcCI6IHsic3RhdGlzdGljcyI6IHsibGFzdC1jbGVhciI6ICIyMDI0LTA0LTA1VDA5OjE3OjI3LjU4MloiLCAidG90YWwiOiB7ImluLXBhY2tldHMiOiAiMCIsICJpbi1lcnJvci1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sICJ0eXBlIjogW3sibmFtZSI6ICJlY2hvLXJlcGx5IiwgImluLXBhY2tldHMiOiAiMCIsICJvdXQtcGFja2V0cyI6ICIwIiwgIm91dC1lcnJvci1wYWNrZXRzIjogIjAifSwgeyJuYW1lIjogImRlc3QtdW5yZWFjaGFibGUiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAicmVkaXJlY3QiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAiZWNobyIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJydHItYWR2ZXJ0aXNlbWVudCIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJydHItc2VsZWN0aW9uIiwgImluLXBhY2tldHMiOiAiMCIsICJvdXQtcGFja2V0cyI6ICIwIiwgIm91dC1lcnJvci1wYWNrZXRzIjogIjAifSwgeyJuYW1lIjogInRpbWUtZXhjZWVkZWQiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAicGFyYW0tcHJvYmxlbSIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJ0aW1lc3RhbXAiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAidGltZXN0YW1wLXJlcGx5IiwgImluLXBhY2tldHMiOiAiMCIsICJvdXQtcGFja2V0cyI6ICIwIiwgIm91dC1lcnJvci1wYWNrZXRzIjogIjAifV19fSwgImljbXA2IjogeyJzdGF0aXN0aWNzIjogeyJsYXN0LWNsZWFyIjogIjIwMjQtMDQtMDVUMDk6MTc6MjcuNTgyWiIsICJ0b3RhbCI6IHsiaW4tcGFja2V0cyI6ICI2MiIsICJpbi1lcnJvci1wYWNrZXRzIjogIjMyIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCAidHlwZSI6IFt7Im5hbWUiOiAiZGVzdC11bnJlYWNoYWJsZSIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJwYWNrZXQtdG9vLWJpZyIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJ0aW1lLWV4Y2VlZGVkIiwgImluLXBhY2tldHMiOiAiMCIsICJvdXQtcGFja2V0cyI6ICIwIiwgIm91dC1lcnJvci1wYWNrZXRzIjogIjAifSwgeyJuYW1lIjogInBhcmFtLXByb2JsZW0iLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAiZWNoby1yZXF1ZXN0IiwgImluLXBhY2tldHMiOiAiMCIsICJvdXQtcGFja2V0cyI6ICIwIiwgIm91dC1lcnJvci1wYWNrZXRzIjogIjAifSwgeyJuYW1lIjogImVjaG8tcmVwbHkiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAicnRyLXNvbGljaXRhdGlvbiIsICJpbi1wYWNrZXRzIjogIjMyIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAicnRyLWFkdmVydGlzZW1lbnQiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAibmJyLXNvbGljaXRhdGlvbiIsICJpbi1wYWNrZXRzIjogIjciLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJuYnItYWR2ZXJ0aXNlbWVudCIsICJpbi1wYWNrZXRzIjogIjkiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJyZWRpcmVjdCIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn1dfX0sICJwcm90b2NvbHMiOiB7InNybF9ub2tpYS1saW51eDpsaW51eCI6IHsiaW1wb3J0LXJvdXRlcyI6IHRydWUsICJleHBvcnQtcm91dGVzIjogdHJ1ZSwgImV4cG9ydC1uZWlnaGJvcnMiOiB0cnVlfX0sICJyb3V0ZS10YWJsZSI6IHsic3JsX25va2lhLWlwLXJvdXRlLXRhYmxlczppcHY0LXVuaWNhc3QiOiB7InJvdXRlIjogW3siaXB2NC1wcmVmaXgiOiAiMC4wLjAuMC8wIiwgImlkIjogMSwgInJvdXRlLXR5cGUiOiAic3JsX25va2lhLWNvbW1vbjpkaGNwIiwgInJvdXRlLW93bmVyIjogImRoY3BfY2xpZW50X21nciIsICJvcmlnaW4tbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgImxlYWthYmxlIjogZmFsc2UsICJtZXRyaWMiOiAwLCAicHJlZmVyZW5jZSI6IDUsICJhY3RpdmUiOiB0cnVlLCAibGFzdC1hcHAtdXBkYXRlIjogIjIwMjQtMDQtMDVUMDk6MTc6MjcuNjg2WiIsICJuZXh0LWhvcC1ncm91cCI6ICIyNDcxMjI4Mzg0MzkiLCAibmV4dC1ob3AtZ3JvdXAtbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgInJlc2lsaWVudC1oYXNoIjogZmFsc2UsICJmaWItcHJvZ3JhbW1pbmciOiB7InN1cHByZXNzZWQiOiBmYWxzZSwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzoyNy42ODlaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn19LCB7ImlwdjQtcHJlZml4IjogIjE3Mi4yMC4yMC4wLzI0IiwgImlkIjogMCwgInJvdXRlLXR5cGUiOiAic3JsX25va2lhLWNvbW1vbjpsaW51eCIsICJyb3V0ZS1vd25lciI6ICJsaW51eF9tZ3IiLCAib3JpZ2luLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJsZWFrYWJsZSI6IGZhbHNlLCAibWV0cmljIjogMCwgInByZWZlcmVuY2UiOiA1LCAiYWN0aXZlIjogZmFsc2UsICJsYXN0LWFwcC11cGRhdGUiOiAiMjAyNC0wNC0wNVQwOToxNzozMy43MTNaIiwgIm5leHQtaG9wLWdyb3VwIjogIjI0NzEyMjgzODQ0NCIsICJuZXh0LWhvcC1ncm91cC1uZXR3b3JrLWluc3RhbmNlIjogIm1nbXQiLCAicmVzaWxpZW50LWhhc2giOiBmYWxzZSwgImZpYi1wcm9ncmFtbWluZyI6IHsic3VwcHJlc3NlZCI6IGZhbHNlLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10eXBlIjogImFkZCIsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXRpbWVzdGFtcCI6ICIyMDI0LTA0LTA1VDA5OjE3OjMzLjcxNloiLCAicGVuZGluZy1vcGVyYXRpb24tdHlwZSI6ICJub25lIiwgImxhc3QtZmFpbGVkLW9wZXJhdGlvbi10eXBlIjogIm5vbmUifX0sIHsiaXB2NC1wcmVmaXgiOiAiMTcyLjIwLjIwLjAvMjQiLCAiaWQiOiAxLCAicm91dGUtdHlwZSI6ICJzcmxfbm9raWEtY29tbW9uOmxvY2FsIiwgInJvdXRlLW93bmVyIjogIm5ldF9pbnN0X21nciIsICJvcmlnaW4tbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgImxlYWthYmxlIjogZmFsc2UsICJtZXRyaWMiOiAwLCAicHJlZmVyZW5jZSI6IDAsICJhY3RpdmUiOiB0cnVlLCAibGFzdC1hcHAtdXBkYXRlIjogIjIwMjQtMDQtMDVUMDk6MTc6MzMuNzE0WiIsICJuZXh0LWhvcC1ncm91cCI6ICIyNDcxMjI4Mzg0NDUiLCAibmV4dC1ob3AtZ3JvdXAtbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgInJlc2lsaWVudC1oYXNoIjogZmFsc2UsICJmaWItcHJvZ3JhbW1pbmciOiB7InN1cHByZXNzZWQiOiBmYWxzZSwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzozMy43MTZaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn19LCB7ImlwdjQtcHJlZml4IjogIjE3Mi4yMC4yMC4xMDEvMzIiLCAiaWQiOiAxLCAicm91dGUtdHlwZSI6ICJzcmxfbm9raWEtY29tbW9uOmhvc3QiLCAicm91dGUtb3duZXIiOiAibmV0X2luc3RfbWdyIiwgIm9yaWdpbi1uZXR3b3JrLWluc3RhbmNlIjogIm1nbXQiLCAibGVha2FibGUiOiBmYWxzZSwgIm1ldHJpYyI6IDAsICJwcmVmZXJlbmNlIjogMCwgImFjdGl2ZSI6IHRydWUsICJsYXN0LWFwcC11cGRhdGUiOiAiMjAyNC0wNC0wNVQwOToxNzozMy43MTRaIiwgIm5leHQtaG9wLWdyb3VwIjogIjI0NzEyMjgzODQ0MyIsICJuZXh0LWhvcC1ncm91cC1uZXR3b3JrLWluc3RhbmNlIjogIm1nbXQiLCAicmVzaWxpZW50LWhhc2giOiBmYWxzZSwgImZpYi1wcm9ncmFtbWluZyI6IHsic3VwcHJlc3NlZCI6IGZhbHNlLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10eXBlIjogImFkZCIsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXRpbWVzdGFtcCI6ICIyMDI0LTA0LTA1VDA5OjE3OjMzLjcxNloiLCAicGVuZGluZy1vcGVyYXRpb24tdHlwZSI6ICJub25lIiwgImxhc3QtZmFpbGVkLW9wZXJhdGlvbi10eXBlIjogIm5vbmUifX0sIHsiaXB2NC1wcmVmaXgiOiAiMTcyLjIwLjIwLjI1NS8zMiIsICJpZCI6IDEsICJyb3V0ZS10eXBlIjogInNybF9ub2tpYS1jb21tb246aG9zdCIsICJyb3V0ZS1vd25lciI6ICJuZXRfaW5zdF9tZ3IiLCAib3JpZ2luLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJsZWFrYWJsZSI6IGZhbHNlLCAibWV0cmljIjogMCwgInByZWZlcmVuY2UiOiAwLCAiYWN0aXZlIjogdHJ1ZSwgImxhc3QtYXBwLXVwZGF0ZSI6ICIyMDI0LTA0LTA1VDA5OjE3OjMzLjcxNFoiLCAibmV4dC1ob3AtZ3JvdXAiOiAiMjQ3MTIyODM4NDQ2IiwgIm5leHQtaG9wLWdyb3VwLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJyZXNpbGllbnQtaGFzaCI6IGZhbHNlLCAiZmliLXByb2dyYW1taW5nIjogeyJzdXBwcmVzc2VkIjogZmFsc2UsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXR5cGUiOiAiYWRkIiwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdGltZXN0YW1wIjogIjIwMjQtMDQtMDVUMDk6MTc6MzMuNzE2WiIsICJwZW5kaW5nLW9wZXJhdGlvbi10eXBlIjogIm5vbmUiLCAibGFzdC1mYWlsZWQtb3BlcmF0aW9uLXR5cGUiOiAibm9uZSJ9fV0sICJzdGF0aXN0aWNzIjogeyJhY3RpdmUtcm91dGVzIjogNCwgImFjdGl2ZS1yb3V0ZXMtd2l0aC1lY21wIjogMCwgInJlc2lsaWVudC1oYXNoLXJvdXRlcyI6IDAsICJmaWItZmFpbGVkLXJvdXRlcyI6IDAsICJ0b3RhbC1yb3V0ZXMiOiAiNSJ9LCAicm91dGUtc3VtbWFyeSI6IHsicm91dGUtdHlwZSI6IFt7ImlwLXJvdXRlLXR5cGUtbmFtZSI6ICJzcmxfbm9raWEtY29tbW9uOmRoY3AiLCAiYWN0aXZlLXJvdXRlcyI6IDF9LCB7ImlwLXJvdXRlLXR5cGUtbmFtZSI6ICJzcmxfbm9raWEtY29tbW9uOmhvc3QiLCAiYWN0aXZlLXJvdXRlcyI6IDJ9LCB7ImlwLXJvdXRlLXR5cGUtbmFtZSI6ICJzcmxfbm9raWEtY29tbW9uOmxpbnV4IiwgImFjdGl2ZS1yb3V0ZXMiOiAxfSwgeyJpcC1yb3V0ZS10eXBlLW5hbWUiOiAic3JsX25va2lhLWNvbW1vbjpsb2NhbCIsICJhY3RpdmUtcm91dGVzIjogMX1dfX0sICJzcmxfbm9raWEtaXAtcm91dGUtdGFibGVzOmlwdjYtdW5pY2FzdCI6IHsicm91dGUiOiBbeyJpcHY2LXByZWZpeCI6ICI6Oi8wIiwgImlkIjogMSwgInJvdXRlLXR5cGUiOiAic3JsX25va2lhLWNvbW1vbjpkaGNwIiwgInJvdXRlLW93bmVyIjogImRoY3BfY2xpZW50X21nciIsICJvcmlnaW4tbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgImxlYWthYmxlIjogZmFsc2UsICJtZXRyaWMiOiAwLCAicHJlZmVyZW5jZSI6IDUsICJhY3RpdmUiOiB0cnVlLCAibGFzdC1hcHAtdXBkYXRlIjogIjIwMjQtMDQtMDVUMDk6MTc6MjguMzAyWiIsICJuZXh0LWhvcC1ncm91cCI6ICIyNDcxMjI4Mzg0NDAiLCAibmV4dC1ob3AtZ3JvdXAtbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgInJlc2lsaWVudC1oYXNoIjogZmFsc2UsICJmaWItcHJvZ3JhbW1pbmciOiB7InN1cHByZXNzZWQiOiBmYWxzZSwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzoyOC4zMDNaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn19LCB7ImlwdjYtcHJlZml4IjogIjIwMDE6MTcyOjIwOjIwOjovNjQiLCAiaWQiOiAwLCAicm91dGUtdHlwZSI6ICJzcmxfbm9raWEtY29tbW9uOmxpbnV4IiwgInJvdXRlLW93bmVyIjogImxpbnV4X21nciIsICJvcmlnaW4tbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgImxlYWthYmxlIjogZmFsc2UsICJtZXRyaWMiOiAwLCAicHJlZmVyZW5jZSI6IDUsICJhY3RpdmUiOiBmYWxzZSwgImxhc3QtYXBwLXVwZGF0ZSI6ICIyMDI0LTA0LTA1VDA5OjE3OjI5LjE1NloiLCAibmV4dC1ob3AtZ3JvdXAiOiAiMjQ3MTIyODM4NDQxIiwgIm5leHQtaG9wLWdyb3VwLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJyZXNpbGllbnQtaGFzaCI6IGZhbHNlLCAiZmliLXByb2dyYW1taW5nIjogeyJzdXBwcmVzc2VkIjogZmFsc2UsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXR5cGUiOiAiYWRkIiwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdGltZXN0YW1wIjogIjIwMjQtMDQtMDVUMDk6MTc6MjkuMTU4WiIsICJwZW5kaW5nLW9wZXJhdGlvbi10eXBlIjogIm5vbmUiLCAibGFzdC1mYWlsZWQtb3BlcmF0aW9uLXR5cGUiOiAibm9uZSJ9fSwgeyJpcHY2LXByZWZpeCI6ICIyMDAxOjE3MjoyMDoyMDo6LzY0IiwgImlkIjogMSwgInJvdXRlLXR5cGUiOiAic3JsX25va2lhLWNvbW1vbjpsb2NhbCIsICJyb3V0ZS1vd25lciI6ICJuZXRfaW5zdF9tZ3IiLCAib3JpZ2luLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJsZWFrYWJsZSI6IGZhbHNlLCAibWV0cmljIjogMCwgInByZWZlcmVuY2UiOiAwLCAiYWN0aXZlIjogdHJ1ZSwgImxhc3QtYXBwLXVwZGF0ZSI6ICIyMDI0LTA0LTA1VDA5OjE3OjI5LjE1NloiLCAibmV4dC1ob3AtZ3JvdXAiOiAiMjQ3MTIyODM4NDQyIiwgIm5leHQtaG9wLWdyb3VwLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJyZXNpbGllbnQtaGFzaCI6IGZhbHNlLCAiZmliLXByb2dyYW1taW5nIjogeyJzdXBwcmVzc2VkIjogZmFsc2UsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXR5cGUiOiAiYWRkIiwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdGltZXN0YW1wIjogIjIwMjQtMDQtMDVUMDk6MTc6MjkuMTU4WiIsICJwZW5kaW5nLW9wZXJhdGlvbi10eXBlIjogIm5vbmUiLCAibGFzdC1mYWlsZWQtb3BlcmF0aW9uLXR5cGUiOiAibm9uZSJ9fSwgeyJpcHY2LXByZWZpeCI6ICIyMDAxOjE3MjoyMDoyMDo6NC8xMjgiLCAiaWQiOiAxLCAicm91dGUtdHlwZSI6ICJzcmxfbm9raWEtY29tbW9uOmhvc3QiLCAicm91dGUtb3duZXIiOiAibmV0X2luc3RfbWdyIiwgIm9yaWdpbi1uZXR3b3JrLWluc3RhbmNlIjogIm1nbXQiLCAibGVha2FibGUiOiBmYWxzZSwgIm1ldHJpYyI6IDAsICJwcmVmZXJlbmNlIjogMCwgImFjdGl2ZSI6IHRydWUsICJsYXN0LWFwcC11cGRhdGUiOiAiMjAyNC0wNC0wNVQwOToxNzoyOS4xNTZaIiwgIm5leHQtaG9wLWdyb3VwIjogIjI0NzEyMjgzODQ0MyIsICJuZXh0LWhvcC1ncm91cC1uZXR3b3JrLWluc3RhbmNlIjogIm1nbXQiLCAicmVzaWxpZW50LWhhc2giOiBmYWxzZSwgImZpYi1wcm9ncmFtbWluZyI6IHsic3VwcHJlc3NlZCI6IGZhbHNlLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10eXBlIjogImFkZCIsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXRpbWVzdGFtcCI6ICIyMDI0LTA0LTA1VDA5OjE3OjI5LjE1OFoiLCAicGVuZGluZy1vcGVyYXRpb24tdHlwZSI6ICJub25lIiwgImxhc3QtZmFpbGVkLW9wZXJhdGlvbi10eXBlIjogIm5vbmUifX1dLCAic3RhdGlzdGljcyI6IHsiYWN0aXZlLXJvdXRlcyI6IDMsICJhY3RpdmUtcm91dGVzLXdpdGgtZWNtcCI6IDAsICJyZXNpbGllbnQtaGFzaC1yb3V0ZXMiOiAwLCAiZmliLWZhaWxlZC1yb3V0ZXMiOiAwLCAidG90YWwtcm91dGVzIjogIjQifSwgInJvdXRlLXN1bW1hcnkiOiB7InJvdXRlLXR5cGUiOiBbeyJpcC1yb3V0ZS10eXBlLW5hbWUiOiAic3JsX25va2lhLWNvbW1vbjpkaGNwIiwgImFjdGl2ZS1yb3V0ZXMiOiAxfSwgeyJpcC1yb3V0ZS10eXBlLW5hbWUiOiAic3JsX25va2lhLWNvbW1vbjpob3N0IiwgImFjdGl2ZS1yb3V0ZXMiOiAxfSwgeyJpcC1yb3V0ZS10eXBlLW5hbWUiOiAic3JsX25va2lhLWNvbW1vbjpsaW51eCIsICJhY3RpdmUtcm91dGVzIjogMX0sIHsiaXAtcm91dGUtdHlwZS1uYW1lIjogInNybF9ub2tpYS1jb21tb246bG9jYWwiLCAiYWN0aXZlLXJvdXRlcyI6IDF9XX19LCAic3JsX25va2lhLWlwLXJvdXRlLXRhYmxlczpuZXh0LWhvcC1ncm91cCI6IFt7ImluZGV4IjogIjI0NzEyMjgzODQzOSIsICJiYWNrdXAtbmV4dC1ob3AtZ3JvdXAiOiAiMCIsICJmaWItcHJvZ3JhbW1pbmciOiB7Imxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzoyNy42ODlaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn0sICJuZXh0LWhvcCI6IFt7ImlkIjogMCwgIm5leHQtaG9wIjogIjI0NzEyMjgzODQzOSIsICJyZXNvbHZlZCI6ICJub3QtYXBwbGljYWJsZSJ9XX0sIHsiaW5kZXgiOiAiMjQ3MTIyODM4NDQwIiwgImJhY2t1cC1uZXh0LWhvcC1ncm91cCI6ICIwIiwgImZpYi1wcm9ncmFtbWluZyI6IHsibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10eXBlIjogImFkZCIsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXRpbWVzdGFtcCI6ICIyMDI0LTA0LTA1VDA5OjE3OjI4LjMwM1oiLCAicGVuZGluZy1vcGVyYXRpb24tdHlwZSI6ICJub25lIiwgImxhc3QtZmFpbGVkLW9wZXJhdGlvbi10eXBlIjogIm5vbmUifSwgIm5leHQtaG9wIjogW3siaWQiOiAwLCAibmV4dC1ob3AiOiAiMjQ3MTIyODM4NDQwIiwgInJlc29sdmVkIjogIm5vdC1hcHBsaWNhYmxlIn1dfSwgeyJpbmRleCI6ICIyNDcxMjI4Mzg0NDEiLCAiYmFja3VwLW5leHQtaG9wLWdyb3VwIjogIjAiLCAiZmliLXByb2dyYW1taW5nIjogeyJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXR5cGUiOiAiYWRkIiwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdGltZXN0YW1wIjogIjIwMjQtMDQtMDVUMDk6MTc6MjkuMTU3WiIsICJwZW5kaW5nLW9wZXJhdGlvbi10eXBlIjogIm5vbmUiLCAibGFzdC1mYWlsZWQtb3BlcmF0aW9uLXR5cGUiOiAibm9uZSJ9LCAibmV4dC1ob3AiOiBbeyJpZCI6IDAsICJuZXh0LWhvcCI6ICIyNDcxMjI4Mzg0NDEiLCAicmVzb2x2ZWQiOiAibm90LWFwcGxpY2FibGUifV19LCB7ImluZGV4IjogIjI0NzEyMjgzODQ0MiIsICJiYWNrdXAtbmV4dC1ob3AtZ3JvdXAiOiAiMCIsICJmaWItcHJvZ3JhbW1pbmciOiB7Imxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzoyOS4xNThaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn0sICJuZXh0LWhvcCI6IFt7ImlkIjogMCwgIm5leHQtaG9wIjogIjI0NzEyMjgzODQ0MiIsICJyZXNvbHZlZCI6ICJub3QtYXBwbGljYWJsZSJ9XX0sIHsiaW5kZXgiOiAiMjQ3MTIyODM4NDQzIiwgImJhY2t1cC1uZXh0LWhvcC1ncm91cCI6ICIwIiwgImZpYi1wcm9ncmFtbWluZyI6IHsibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10eXBlIjogImFkZCIsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXRpbWVzdGFtcCI6ICIyMDI0LTA0LTA1VDA5OjE3OjI5LjE1OFoiLCAicGVuZGluZy1vcGVyYXRpb24tdHlwZSI6ICJub25lIiwgImxhc3QtZmFpbGVkLW9wZXJhdGlvbi10eXBlIjogIm5vbmUifSwgIm5leHQtaG9wIjogW3siaWQiOiAwLCAibmV4dC1ob3AiOiAiMjQ3MTIyODM4NDQzIiwgInJlc29sdmVkIjogIm5vdC1hcHBsaWNhYmxlIn1dfSwgeyJpbmRleCI6ICIyNDcxMjI4Mzg0NDQiLCAiYmFja3VwLW5leHQtaG9wLWdyb3VwIjogIjAiLCAiZmliLXByb2dyYW1taW5nIjogeyJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXR5cGUiOiAiYWRkIiwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdGltZXN0YW1wIjogIjIwMjQtMDQtMDVUMDk6MTc6MzMuNzE1WiIsICJwZW5kaW5nLW9wZXJhdGlvbi10eXBlIjogIm5vbmUiLCAibGFzdC1mYWlsZWQtb3BlcmF0aW9uLXR5cGUiOiAibm9uZSJ9LCAibmV4dC1ob3AiOiBbeyJpZCI6IDAsICJuZXh0LWhvcCI6ICIyNDcxMjI4Mzg0NDQiLCAicmVzb2x2ZWQiOiAibm90LWFwcGxpY2FibGUifV19LCB7ImluZGV4IjogIjI0NzEyMjgzODQ0NSIsICJiYWNrdXAtbmV4dC1ob3AtZ3JvdXAiOiAiMCIsICJmaWItcHJvZ3JhbW1pbmciOiB7Imxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzozMy43MTZaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn0sICJuZXh0LWhvcCI6IFt7ImlkIjogMCwgIm5leHQtaG9wIjogIjI0NzEyMjgzODQ0NSIsICJyZXNvbHZlZCI6ICJub3QtYXBwbGljYWJsZSJ9XX0sIHsiaW5kZXgiOiAiMjQ3MTIyODM4NDQ2IiwgImJhY2t1cC1uZXh0LWhvcC1ncm91cCI6ICIwIiwgImZpYi1wcm9ncmFtbWluZyI6IHsibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10eXBlIjogImFkZCIsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXRpbWVzdGFtcCI6ICIyMDI0LTA0LTA1VDA5OjE3OjMzLjcxNloiLCAicGVuZGluZy1vcGVyYXRpb24tdHlwZSI6ICJub25lIiwgImxhc3QtZmFpbGVkLW9wZXJhdGlvbi10eXBlIjogIm5vbmUifSwgIm5leHQtaG9wIjogW3siaWQiOiAwLCAibmV4dC1ob3AiOiAiMyIsICJyZXNvbHZlZCI6ICJub3QtYXBwbGljYWJsZSJ9XX1dLCAic3JsX25va2lhLWlwLXJvdXRlLXRhYmxlczpuZXh0LWhvcCI6IFt7ImluZGV4IjogIjMiLCAidHlwZSI6ICJzcmxfbm9raWEtaXAtcm91dGUtdGFibGVzOmJyb2FkY2FzdCJ9LCB7ImluZGV4IjogIjI0NzEyMjgzODQzOSIsICJ0eXBlIjogInNybF9ub2tpYS1pcC1yb3V0ZS10YWJsZXM6ZGlyZWN0IiwgImlwLWFkZHJlc3MiOiAiMTcyLjIwLjIwLjEiLCAic3ViaW50ZXJmYWNlIjogIm1nbXQwLjAifSwgeyJpbmRleCI6ICIyNDcxMjI4Mzg0NDAiLCAidHlwZSI6ICJzcmxfbm9raWEtaXAtcm91dGUtdGFibGVzOmRpcmVjdCIsICJpcC1hZGRyZXNzIjogIjIwMDE6MTcyOjIwOjIwOjoxIiwgInN1YmludGVyZmFjZSI6ICJtZ210MC4wIn0sIHsiaW5kZXgiOiAiMjQ3MTIyODM4NDQxIiwgInR5cGUiOiAic3JsX25va2lhLWlwLXJvdXRlLXRhYmxlczpkaXJlY3QiLCAiaXAtYWRkcmVzcyI6ICIyMDAxOjE3MjoyMDoyMDo6IiwgInN1YmludGVyZmFjZSI6ICJtZ210MC4wIn0sIHsiaW5kZXgiOiAiMjQ3MTIyODM4NDQyIiwgInR5cGUiOiAic3JsX25va2lhLWlwLXJvdXRlLXRhYmxlczpkaXJlY3QiLCAiaXAtYWRkcmVzcyI6ICIyMDAxOjE3MjoyMDoyMDo6NCIsICJzdWJpbnRlcmZhY2UiOiAibWdtdDAuMCJ9LCB7ImluZGV4IjogIjI0NzEyMjgzODQ0MyIsICJ0eXBlIjogInNybF9ub2tpYS1pcC1yb3V0ZS10YWJsZXM6ZXh0cmFjdCJ9LCB7ImluZGV4IjogIjI0NzEyMjgzODQ0NCIsICJ0eXBlIjogInNybF9ub2tpYS1pcC1yb3V0ZS10YWJsZXM6ZGlyZWN0IiwgImlwLWFkZHJlc3MiOiAiMTcyLjIwLjIwLjAiLCAic3ViaW50ZXJmYWNlIjogIm1nbXQwLjAifSwgeyJpbmRleCI6ICIyNDcxMjI4Mzg0NDUiLCAidHlwZSI6ICJzcmxfbm9raWEtaXAtcm91dGUtdGFibGVzOmRpcmVjdCIsICJpcC1hZGRyZXNzIjogIjE3Mi4yMC4yMC4xMDEiLCAic3ViaW50ZXJmYWNlIjogIm1nbXQwLjAifV19LCAidHVubmVsLXRhYmxlIjogeyJzcmxfbm9raWEtdHVubmVsLXRhYmxlczppcHY0Ijoge30sICJzcmxfbm9raWEtdHVubmVsLXRhYmxlczppcHY2Ijoge319LCAic3JsX25va2lhLXRjcC11ZHA6dGNwIjogeyJzdGF0aXN0aWNzIjogeyJhY3RpdmUtb3BlbnMiOiAiMCIsICJwYXNzaXZlLW9wZW5zIjogIjIiLCAiYXR0ZW1wdC1mYWlscyI6ICIwIiwgImVzdGFibGlzaGVkLXJlc2V0cyI6ICIwIiwgImluLXNlZ21lbnRzIjogIjQxIiwgIm91dC1zZWdtZW50cyI6ICI0NiIsICJyZXRyYW5zbWl0dGVkLXNlZ21lbnRzIjogIjAiLCAiaW4tZXJyb3Itc2VnbWVudHMiOiAiMCIsICJvdXQtcnN0LXNlZ21lbnRzIjogIjEiLCAiaW4tY2hlY2tzdW0tZXJyb3JzIjogIjAifSwgImxpc3RlbmluZy1hcHBsaWNhdGlvbiI6IFt7ImxvY2FsLWFkZHJlc3MiOiAiMC4wLjAuMCIsICJsb2NhbC1wb3J0IjogMjJ9LCB7ImxvY2FsLWFkZHJlc3MiOiAiMTI3LjAuMC4xIiwgImxvY2FsLXBvcnQiOiA1M30sIHsibG9jYWwtYWRkcmVzcyI6ICIxMjcuMC4wLjEiLCAibG9jYWwtcG9ydCI6IDE5OX0sIHsibG9jYWwtYWRkcmVzcyI6ICI6OiIsICJsb2NhbC1wb3J0IjogMjJ9LCB7ImxvY2FsLWFkZHJlc3MiOiAiOjoiLCAibG9jYWwtcG9ydCI6IDgwfSwgeyJsb2NhbC1hZGRyZXNzIjogIjo6IiwgImxvY2FsLXBvcnQiOiA0NDN9LCB7ImxvY2FsLWFkZHJlc3MiOiAiOjoiLCAibG9jYWwtcG9ydCI6IDU3NDAwfSwgeyJsb2NhbC1hZGRyZXNzIjogIjo6MSIsICJsb2NhbC1wb3J0IjogNTN9XX0sICJzcmxfbm9raWEtdGNwLXVkcDp1ZHAiOiB7InN0YXRpc3RpY3MiOiB7ImluLXBhY2tldHMiOiAiMCIsICJpbi1uby1vcGVuLXBvcnRzLXBhY2tldHMiOiAiMCIsICJpbi1lcnJvci1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJyZWNlaXZlLWJ1ZmZlci1lcnJvcnMiOiAiMCIsICJzZW5kLWJ1ZmZlci1lcnJvcnMiOiAiMCIsICJpbi1jaGVja3N1bS1lcnJvcnMiOiAiMCIsICJpZ25vcmVkLW11bHRpY2FzdC1wYWNrZXRzIjogIjAifSwgImxpc3RlbmluZy1hcHBsaWNhdGlvbiI6IFt7ImxvY2FsLWFkZHJlc3MiOiAiMC4wLjAuMCIsICJsb2NhbC1wb3J0IjogMTYxfSwgeyJsb2NhbC1hZGRyZXNzIjogIjEyNy4wLjAuMSIsICJsb2NhbC1wb3J0IjogNTN9LCB7ImxvY2FsLWFkZHJlc3MiOiAiOjoiLCAibG9jYWwtcG9ydCI6IDE2MX0sIHsibG9jYWwtYWRkcmVzcyI6ICI6OjEiLCAibG9jYWwtcG9ydCI6IDUzfV19fV19"}}]} +Traceback (most recent call last): + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/GnmiSessionHandler.py", line 140, in get + results.extend(parse(str_path, value)) + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/handlers/__init__.py", line 134, in parse + return handler.parse(value) + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/handlers/NetworkInstance.py", line 438, in parse + if afi_safi_entry: +UnboundLocalError: local variable 'afi_safi_entry' referenced before assignment +ERROR:device.service.DeviceServiceServicerImpl:AddDevice exception +Traceback (most recent call last): + File "/var/teraflow/common/method_wrappers/Decorator.py", line 220, in inner_wrapper + reply = func(self, request, grpc_context) + File "/var/teraflow/device/service/DeviceServiceServicerImpl.py", line 122, in AddDevice + raise OperationFailedException('AddDevice', extra_details=errors) +common.method_wrappers.ServiceExceptions.OperationFailedException: Operation(AddDevice) failed; DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/1]', {'name': 'ethernet-1/1', 'admin_state': 'enable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/2]', {'name': 'ethernet-1/2', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/3]', {'name': 'ethernet-1/3', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/4]', {'name': 'ethernet-1/4', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/5]', {'name': 'ethernet-1/5', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/6]', {'name': 'ethernet-1/6', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/7]', {'name': 'ethernet-1/7', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/8]', {'name': 'ethernet-1/8', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/9]', {'name': 'ethernet-1/9', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/10]', {'name': 'ethernet-1/10', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/11]', {'name': 'ethernet-1/11', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/12]', {'name': 'ethernet-1/12', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/13]', {'name': 'ethernet-1/13', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/14]', {'name': 'ethernet-1/14', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/15]', {'name': 'ethernet-1/15', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/16]', {'name': 'ethernet-1/16', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/17]', {'name': 'ethernet-1/17', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/18]', {'name': 'ethernet-1/18', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/19]', {'name': 'ethernet-1/19', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/20]', {'name': 'ethernet-1/20', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/21]', {'name': 'ethernet-1/21', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/22]', {'name': 'ethernet-1/22', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/23]', {'name': 'ethernet-1/23', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/24]', {'name': 'ethernet-1/24', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/25]', {'name': 'ethernet-1/25', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/26]', {'name': 'ethernet-1/26', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/27]', {'name': 'ethernet-1/27', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/28]', {'name': 'ethernet-1/28', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/29]', {'name': 'ethernet-1/29', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/30]', {'name': 'ethernet-1/30', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/31]', {'name': 'ethernet-1/31', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/32]', {'name': 'ethernet-1/32', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/33]', {'name': 'ethernet-1/33', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/34]', {'name': 'ethernet-1/34', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/35]', {'name': 'ethernet-1/35', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/36]', {'name': 'ethernet-1/36', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/37]', {'name': 'ethernet-1/37', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/38]', {'name': 'ethernet-1/38', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/39]', {'name': 'ethernet-1/39', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/40]', {'name': 'ethernet-1/40', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/41]', {'name': 'ethernet-1/41', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/42]', {'name': 'ethernet-1/42', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/43]', {'name': 'ethernet-1/43', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/44]', {'name': 'ethernet-1/44', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/45]', {'name': 'ethernet-1/45', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/46]', {'name': 'ethernet-1/46', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/47]', {'name': 'ethernet-1/47', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/48]', {'name': 'ethernet-1/48', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/49]', {'name': 'ethernet-1/49', 'admin_state': 'enable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/50]', {'name': 'ethernet-1/50', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/51]', {'name': 'ethernet-1/51', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/52]', {'name': 'ethernet-1/52', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/53]', {'name': 'ethernet-1/53', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/54]', {'name': 'ethernet-1/54', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/55]', {'name': 'ethernet-1/55', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/56]', {'name': 'ethernet-1/56', 'admin_state': 'disable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[mgmt0]/subinterface[0]', {'index': 0, 'admin-state': 'enable', 'type': None, 'ipv4': {'address': [{'ip-prefix': '172.20.20.102/24'}]}, 'vlan': {'encap': {'untagged': {}}}})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): GetConfig retrieved unsupported Resource(('/interface[mgmt0]', {'name': 'mgmt0', 'admin_state': 'enable'})); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): Unable to Get Resource(key=/); Error(local variable 'afi_safi_entry' referenced before assignment); DeviceId(50c36ec0-09ba-546a-b18f-27f9776ce876): Unable to Get Resource(key=/); Error(local variable 'afi_safi_entry' referenced before assignment) +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Original path: /srl_nokia-network-instance:network-instance, Schema path: /network-instance +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Mapped path schema: /network-instance +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Handler found for path: /network-instance +ERROR:device.service.drivers.gnmi_nokia_srlinux.GnmiNokiaSrLinuxDriver:[172.20.20.101:57400]:Exception processing notification {"atomic": false, "delete": [], "timestamp": "1712310240181392223", "update": [{"duplicates": 0, "path": {"elem": [], "element": [], "origin": "", "target": ""}, "val": {"json_ietf_val": "eyJzcmxfbm9raWEtbmV0d29yay1pbnN0YW5jZTpuZXR3b3JrLWluc3RhbmNlIjogW3sibmFtZSI6ICJtZ210IiwgImludGVyZmFjZSI6IFt7Im5hbWUiOiAibWdtdDAuMCIsICJvcGVyLXN0YXRlIjogInVwIiwgImluZGV4IjogIjEifV19XX0="}}]} +Traceback (most recent call last): + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/GnmiSessionHandler.py", line 140, in get + results.extend(parse(str_path, value)) + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/handlers/__init__.py", line 134, in parse + return handler.parse(value) + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/handlers/NetworkInstance.py", line 438, in parse + if afi_safi_entry: +UnboundLocalError: local variable 'afi_safi_entry' referenced before assignment +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Original path: /srl_nokia-routing-policy:routing-policy, Schema path: /routing-policy +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Mapped path schema: /routing-policy +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Handler found for path: /routing-policy +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/1]', {'name': 'ethernet-1/1', 'admin_state': 'enable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/2]', {'name': 'ethernet-1/2', 'admin_state': 'enable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/3]', {'name': 'ethernet-1/3', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/4]', {'name': 'ethernet-1/4', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/5]', {'name': 'ethernet-1/5', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/6]', {'name': 'ethernet-1/6', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/7]', {'name': 'ethernet-1/7', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/8]', {'name': 'ethernet-1/8', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/9]', {'name': 'ethernet-1/9', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/10]', {'name': 'ethernet-1/10', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/11]', {'name': 'ethernet-1/11', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/12]', {'name': 'ethernet-1/12', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/13]', {'name': 'ethernet-1/13', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/14]', {'name': 'ethernet-1/14', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/15]', {'name': 'ethernet-1/15', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/16]', {'name': 'ethernet-1/16', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/17]', {'name': 'ethernet-1/17', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/18]', {'name': 'ethernet-1/18', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/19]', {'name': 'ethernet-1/19', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/20]', {'name': 'ethernet-1/20', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/21]', {'name': 'ethernet-1/21', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/22]', {'name': 'ethernet-1/22', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/23]', {'name': 'ethernet-1/23', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/24]', {'name': 'ethernet-1/24', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/25]', {'name': 'ethernet-1/25', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/26]', {'name': 'ethernet-1/26', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/27]', {'name': 'ethernet-1/27', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/28]', {'name': 'ethernet-1/28', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/29]', {'name': 'ethernet-1/29', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/30]', {'name': 'ethernet-1/30', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/31]', {'name': 'ethernet-1/31', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/32]', {'name': 'ethernet-1/32', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/33]', {'name': 'ethernet-1/33', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/34]', {'name': 'ethernet-1/34', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[mgmt0]/subinterface[0]', {'index': 0, 'admin-state': 'enable', 'type': None, 'ipv4': {'address': [{'ip-prefix': '172.20.20.101/24'}]}, 'vlan': {'encap': {'untagged': {}}}})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[mgmt0]', {'name': 'mgmt0', 'admin_state': 'enable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): Unable to Get Resource(key=/); Error(local variable 'afi_safi_entry' referenced before assignment) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): Unable to Get Resource(key=/); Error(local variable 'afi_safi_entry' referenced before assignment) +ERROR:device.service.DeviceServiceServicerImpl:AddDevice exception +Traceback (most recent call last): + File "/var/teraflow/common/method_wrappers/Decorator.py", line 220, in inner_wrapper + reply = func(self, request, grpc_context) + File "/var/teraflow/device/service/DeviceServiceServicerImpl.py", line 122, in AddDevice + raise OperationFailedException('AddDevice', extra_details=errors) +common.method_wrappers.ServiceExceptions.OperationFailedException: Operation(AddDevice) failed; DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/1]', {'name': 'ethernet-1/1', 'admin_state': 'enable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/2]', {'name': 'ethernet-1/2', 'admin_state': 'enable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/3]', {'name': 'ethernet-1/3', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/4]', {'name': 'ethernet-1/4', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/5]', {'name': 'ethernet-1/5', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/6]', {'name': 'ethernet-1/6', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/7]', {'name': 'ethernet-1/7', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/8]', {'name': 'ethernet-1/8', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/9]', {'name': 'ethernet-1/9', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/10]', {'name': 'ethernet-1/10', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/11]', {'name': 'ethernet-1/11', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/12]', {'name': 'ethernet-1/12', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/13]', {'name': 'ethernet-1/13', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/14]', {'name': 'ethernet-1/14', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/15]', {'name': 'ethernet-1/15', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/16]', {'name': 'ethernet-1/16', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/17]', {'name': 'ethernet-1/17', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/18]', {'name': 'ethernet-1/18', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/19]', {'name': 'ethernet-1/19', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/20]', {'name': 'ethernet-1/20', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/21]', {'name': 'ethernet-1/21', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/22]', {'name': 'ethernet-1/22', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/23]', {'name': 'ethernet-1/23', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/24]', {'name': 'ethernet-1/24', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/25]', {'name': 'ethernet-1/25', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/26]', {'name': 'ethernet-1/26', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/27]', {'name': 'ethernet-1/27', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/28]', {'name': 'ethernet-1/28', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/29]', {'name': 'ethernet-1/29', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/30]', {'name': 'ethernet-1/30', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/31]', {'name': 'ethernet-1/31', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/32]', {'name': 'ethernet-1/32', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/33]', {'name': 'ethernet-1/33', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/34]', {'name': 'ethernet-1/34', 'admin_state': 'disable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[mgmt0]/subinterface[0]', {'index': 0, 'admin-state': 'enable', 'type': None, 'ipv4': {'address': [{'ip-prefix': '172.20.20.101/24'}]}, 'vlan': {'encap': {'untagged': {}}}})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): GetConfig retrieved unsupported Resource(('/interface[mgmt0]', {'name': 'mgmt0', 'admin_state': 'enable'})); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): Unable to Get Resource(key=/); Error(local variable 'afi_safi_entry' referenced before assignment); DeviceId(fcbf1c99-3a0a-5487-af2b-034ab906f2a4): Unable to Get Resource(key=/); Error(local variable 'afi_safi_entry' referenced before assignment) +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Original path: /srl_nokia-interfaces:interface, Schema path: /srl_nokia-interfaces:interface +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Mapped path schema: /srl_nokia-interfaces:interface +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers.Interface:Getting path for InterfaceHandler +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Handler found for path: /srl_nokia-interfaces:interface +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Original path: /srl_nokia-interfaces:interface, Schema path: /srl_nokia-interfaces:interface +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Mapped path schema: /srl_nokia-interfaces:interface +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers.Interface:Getting path for InterfaceHandler +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Handler found for path: /srl_nokia-interfaces:interface +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Original path: /srl_nokia-network-instance:network-instance, Schema path: /network-instance +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Mapped path schema: /network-instance +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Handler found for path: /network-instance +ERROR:device.service.drivers.gnmi_nokia_srlinux.GnmiNokiaSrLinuxDriver:[172.20.20.103:57400]:Exception processing notification {"atomic": false, "delete": [], "timestamp": "1712310240224040603", "update": [{"duplicates": 0, "path": {"elem": [], "element": [], "origin": "", "target": ""}, "val": {"json_ietf_val": "eyJzcmxfbm9raWEtbmV0d29yay1pbnN0YW5jZTpuZXR3b3JrLWluc3RhbmNlIjogW3sibmFtZSI6ICJtZ210IiwgInR5cGUiOiAic3JsX25va2lhLW5ldHdvcmstaW5zdGFuY2U6aXAtdnJmIiwgImFkbWluLXN0YXRlIjogImVuYWJsZSIsICJvcGVyLXN0YXRlIjogInVwIiwgImRlc2NyaXB0aW9uIjogIk1hbmFnZW1lbnQgbmV0d29yayBpbnN0YW5jZSIsICJpcC1mb3J3YXJkaW5nIjogeyJyZWNlaXZlLWlwdjQtY2hlY2siOiB0cnVlLCAicmVjZWl2ZS1pcHY2LWNoZWNrIjogdHJ1ZX0sICJpbnRlcmZhY2UiOiBbeyJuYW1lIjogIm1nbXQwLjAiLCAib3Blci1zdGF0ZSI6ICJ1cCIsICJpbmRleCI6ICIxIn1dLCAiaWNtcCI6IHsic3RhdGlzdGljcyI6IHsibGFzdC1jbGVhciI6ICIyMDI0LTA0LTA1VDA5OjE3OjI3LjcwMloiLCAidG90YWwiOiB7ImluLXBhY2tldHMiOiAiMCIsICJpbi1lcnJvci1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sICJ0eXBlIjogW3sibmFtZSI6ICJlY2hvLXJlcGx5IiwgImluLXBhY2tldHMiOiAiMCIsICJvdXQtcGFja2V0cyI6ICIwIiwgIm91dC1lcnJvci1wYWNrZXRzIjogIjAifSwgeyJuYW1lIjogImRlc3QtdW5yZWFjaGFibGUiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAicmVkaXJlY3QiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAiZWNobyIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJydHItYWR2ZXJ0aXNlbWVudCIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJydHItc2VsZWN0aW9uIiwgImluLXBhY2tldHMiOiAiMCIsICJvdXQtcGFja2V0cyI6ICIwIiwgIm91dC1lcnJvci1wYWNrZXRzIjogIjAifSwgeyJuYW1lIjogInRpbWUtZXhjZWVkZWQiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAicGFyYW0tcHJvYmxlbSIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJ0aW1lc3RhbXAiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAidGltZXN0YW1wLXJlcGx5IiwgImluLXBhY2tldHMiOiAiMCIsICJvdXQtcGFja2V0cyI6ICIwIiwgIm91dC1lcnJvci1wYWNrZXRzIjogIjAifV19fSwgImljbXA2IjogeyJzdGF0aXN0aWNzIjogeyJsYXN0LWNsZWFyIjogIjIwMjQtMDQtMDVUMDk6MTc6MjcuNzAyWiIsICJ0b3RhbCI6IHsiaW4tcGFja2V0cyI6ICI0NyIsICJpbi1lcnJvci1wYWNrZXRzIjogIjMwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCAidHlwZSI6IFt7Im5hbWUiOiAiZGVzdC11bnJlYWNoYWJsZSIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJwYWNrZXQtdG9vLWJpZyIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJ0aW1lLWV4Y2VlZGVkIiwgImluLXBhY2tldHMiOiAiMCIsICJvdXQtcGFja2V0cyI6ICIwIiwgIm91dC1lcnJvci1wYWNrZXRzIjogIjAifSwgeyJuYW1lIjogInBhcmFtLXByb2JsZW0iLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAiZWNoby1yZXF1ZXN0IiwgImluLXBhY2tldHMiOiAiMCIsICJvdXQtcGFja2V0cyI6ICIwIiwgIm91dC1lcnJvci1wYWNrZXRzIjogIjAifSwgeyJuYW1lIjogImVjaG8tcmVwbHkiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAicnRyLXNvbGljaXRhdGlvbiIsICJpbi1wYWNrZXRzIjogIjMwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAicnRyLWFkdmVydGlzZW1lbnQiLCAiaW4tcGFja2V0cyI6ICIwIiwgIm91dC1wYWNrZXRzIjogIjAiLCAib3V0LWVycm9yLXBhY2tldHMiOiAiMCJ9LCB7Im5hbWUiOiAibmJyLXNvbGljaXRhdGlvbiIsICJpbi1wYWNrZXRzIjogIjIiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJuYnItYWR2ZXJ0aXNlbWVudCIsICJpbi1wYWNrZXRzIjogIjgiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn0sIHsibmFtZSI6ICJyZWRpcmVjdCIsICJpbi1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJvdXQtZXJyb3ItcGFja2V0cyI6ICIwIn1dfX0sICJwcm90b2NvbHMiOiB7InNybF9ub2tpYS1saW51eDpsaW51eCI6IHsiaW1wb3J0LXJvdXRlcyI6IHRydWUsICJleHBvcnQtcm91dGVzIjogdHJ1ZSwgImV4cG9ydC1uZWlnaGJvcnMiOiB0cnVlfX0sICJyb3V0ZS10YWJsZSI6IHsic3JsX25va2lhLWlwLXJvdXRlLXRhYmxlczppcHY0LXVuaWNhc3QiOiB7InJvdXRlIjogW3siaXB2NC1wcmVmaXgiOiAiMC4wLjAuMC8wIiwgImlkIjogMSwgInJvdXRlLXR5cGUiOiAic3JsX25va2lhLWNvbW1vbjpkaGNwIiwgInJvdXRlLW93bmVyIjogImRoY3BfY2xpZW50X21nciIsICJvcmlnaW4tbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgImxlYWthYmxlIjogZmFsc2UsICJtZXRyaWMiOiAwLCAicHJlZmVyZW5jZSI6IDUsICJhY3RpdmUiOiB0cnVlLCAibGFzdC1hcHAtdXBkYXRlIjogIjIwMjQtMDQtMDVUMDk6MTc6MjcuODY0WiIsICJuZXh0LWhvcC1ncm91cCI6ICIyNDcxMjI4MzQ4MzgiLCAibmV4dC1ob3AtZ3JvdXAtbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgInJlc2lsaWVudC1oYXNoIjogZmFsc2UsICJmaWItcHJvZ3JhbW1pbmciOiB7InN1cHByZXNzZWQiOiBmYWxzZSwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzoyNy44NjdaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn19LCB7ImlwdjQtcHJlZml4IjogIjE3Mi4yMC4yMC4wLzI0IiwgImlkIjogMCwgInJvdXRlLXR5cGUiOiAic3JsX25va2lhLWNvbW1vbjpsaW51eCIsICJyb3V0ZS1vd25lciI6ICJsaW51eF9tZ3IiLCAib3JpZ2luLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJsZWFrYWJsZSI6IGZhbHNlLCAibWV0cmljIjogMCwgInByZWZlcmVuY2UiOiA1LCAiYWN0aXZlIjogZmFsc2UsICJsYXN0LWFwcC11cGRhdGUiOiAiMjAyNC0wNC0wNVQwOToxNzozMy44OTFaIiwgIm5leHQtaG9wLWdyb3VwIjogIjI0NzEyMjgzNDg0MyIsICJuZXh0LWhvcC1ncm91cC1uZXR3b3JrLWluc3RhbmNlIjogIm1nbXQiLCAicmVzaWxpZW50LWhhc2giOiBmYWxzZSwgImZpYi1wcm9ncmFtbWluZyI6IHsic3VwcHJlc3NlZCI6IGZhbHNlLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10eXBlIjogImFkZCIsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXRpbWVzdGFtcCI6ICIyMDI0LTA0LTA1VDA5OjE3OjMzLjkwNFoiLCAicGVuZGluZy1vcGVyYXRpb24tdHlwZSI6ICJub25lIiwgImxhc3QtZmFpbGVkLW9wZXJhdGlvbi10eXBlIjogIm5vbmUifX0sIHsiaXB2NC1wcmVmaXgiOiAiMTcyLjIwLjIwLjAvMjQiLCAiaWQiOiAxLCAicm91dGUtdHlwZSI6ICJzcmxfbm9raWEtY29tbW9uOmxvY2FsIiwgInJvdXRlLW93bmVyIjogIm5ldF9pbnN0X21nciIsICJvcmlnaW4tbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgImxlYWthYmxlIjogZmFsc2UsICJtZXRyaWMiOiAwLCAicHJlZmVyZW5jZSI6IDAsICJhY3RpdmUiOiB0cnVlLCAibGFzdC1hcHAtdXBkYXRlIjogIjIwMjQtMDQtMDVUMDk6MTc6MzMuOTAxWiIsICJuZXh0LWhvcC1ncm91cCI6ICIyNDcxMjI4MzQ4NDQiLCAibmV4dC1ob3AtZ3JvdXAtbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgInJlc2lsaWVudC1oYXNoIjogZmFsc2UsICJmaWItcHJvZ3JhbW1pbmciOiB7InN1cHByZXNzZWQiOiBmYWxzZSwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzozMy45MDRaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn19LCB7ImlwdjQtcHJlZml4IjogIjE3Mi4yMC4yMC4xMDMvMzIiLCAiaWQiOiAxLCAicm91dGUtdHlwZSI6ICJzcmxfbm9raWEtY29tbW9uOmhvc3QiLCAicm91dGUtb3duZXIiOiAibmV0X2luc3RfbWdyIiwgIm9yaWdpbi1uZXR3b3JrLWluc3RhbmNlIjogIm1nbXQiLCAibGVha2FibGUiOiBmYWxzZSwgIm1ldHJpYyI6IDAsICJwcmVmZXJlbmNlIjogMCwgImFjdGl2ZSI6IHRydWUsICJsYXN0LWFwcC11cGRhdGUiOiAiMjAyNC0wNC0wNVQwOToxNzozMy45MDFaIiwgIm5leHQtaG9wLWdyb3VwIjogIjI0NzEyMjgzNDg0MiIsICJuZXh0LWhvcC1ncm91cC1uZXR3b3JrLWluc3RhbmNlIjogIm1nbXQiLCAicmVzaWxpZW50LWhhc2giOiBmYWxzZSwgImZpYi1wcm9ncmFtbWluZyI6IHsic3VwcHJlc3NlZCI6IGZhbHNlLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10eXBlIjogImFkZCIsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXRpbWVzdGFtcCI6ICIyMDI0LTA0LTA1VDA5OjE3OjMzLjkwNFoiLCAicGVuZGluZy1vcGVyYXRpb24tdHlwZSI6ICJub25lIiwgImxhc3QtZmFpbGVkLW9wZXJhdGlvbi10eXBlIjogIm5vbmUifX0sIHsiaXB2NC1wcmVmaXgiOiAiMTcyLjIwLjIwLjI1NS8zMiIsICJpZCI6IDEsICJyb3V0ZS10eXBlIjogInNybF9ub2tpYS1jb21tb246aG9zdCIsICJyb3V0ZS1vd25lciI6ICJuZXRfaW5zdF9tZ3IiLCAib3JpZ2luLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJsZWFrYWJsZSI6IGZhbHNlLCAibWV0cmljIjogMCwgInByZWZlcmVuY2UiOiAwLCAiYWN0aXZlIjogdHJ1ZSwgImxhc3QtYXBwLXVwZGF0ZSI6ICIyMDI0LTA0LTA1VDA5OjE3OjMzLjkwMVoiLCAibmV4dC1ob3AtZ3JvdXAiOiAiMjQ3MTIyODM0ODQ1IiwgIm5leHQtaG9wLWdyb3VwLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJyZXNpbGllbnQtaGFzaCI6IGZhbHNlLCAiZmliLXByb2dyYW1taW5nIjogeyJzdXBwcmVzc2VkIjogZmFsc2UsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXR5cGUiOiAiYWRkIiwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdGltZXN0YW1wIjogIjIwMjQtMDQtMDVUMDk6MTc6MzMuOTA0WiIsICJwZW5kaW5nLW9wZXJhdGlvbi10eXBlIjogIm5vbmUiLCAibGFzdC1mYWlsZWQtb3BlcmF0aW9uLXR5cGUiOiAibm9uZSJ9fV0sICJzdGF0aXN0aWNzIjogeyJhY3RpdmUtcm91dGVzIjogNCwgImFjdGl2ZS1yb3V0ZXMtd2l0aC1lY21wIjogMCwgInJlc2lsaWVudC1oYXNoLXJvdXRlcyI6IDAsICJmaWItZmFpbGVkLXJvdXRlcyI6IDAsICJ0b3RhbC1yb3V0ZXMiOiAiNSJ9LCAicm91dGUtc3VtbWFyeSI6IHsicm91dGUtdHlwZSI6IFt7ImlwLXJvdXRlLXR5cGUtbmFtZSI6ICJzcmxfbm9raWEtY29tbW9uOmRoY3AiLCAiYWN0aXZlLXJvdXRlcyI6IDF9LCB7ImlwLXJvdXRlLXR5cGUtbmFtZSI6ICJzcmxfbm9raWEtY29tbW9uOmhvc3QiLCAiYWN0aXZlLXJvdXRlcyI6IDJ9LCB7ImlwLXJvdXRlLXR5cGUtbmFtZSI6ICJzcmxfbm9raWEtY29tbW9uOmxpbnV4IiwgImFjdGl2ZS1yb3V0ZXMiOiAxfSwgeyJpcC1yb3V0ZS10eXBlLW5hbWUiOiAic3JsX25va2lhLWNvbW1vbjpsb2NhbCIsICJhY3RpdmUtcm91dGVzIjogMX1dfX0sICJzcmxfbm9raWEtaXAtcm91dGUtdGFibGVzOmlwdjYtdW5pY2FzdCI6IHsicm91dGUiOiBbeyJpcHY2LXByZWZpeCI6ICI6Oi8wIiwgImlkIjogMSwgInJvdXRlLXR5cGUiOiAic3JsX25va2lhLWNvbW1vbjpkaGNwIiwgInJvdXRlLW93bmVyIjogImRoY3BfY2xpZW50X21nciIsICJvcmlnaW4tbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgImxlYWthYmxlIjogZmFsc2UsICJtZXRyaWMiOiAwLCAicHJlZmVyZW5jZSI6IDUsICJhY3RpdmUiOiB0cnVlLCAibGFzdC1hcHAtdXBkYXRlIjogIjIwMjQtMDQtMDVUMDk6MTc6MjguOTc1WiIsICJuZXh0LWhvcC1ncm91cCI6ICIyNDcxMjI4MzQ4MzkiLCAibmV4dC1ob3AtZ3JvdXAtbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgInJlc2lsaWVudC1oYXNoIjogZmFsc2UsICJmaWItcHJvZ3JhbW1pbmciOiB7InN1cHByZXNzZWQiOiBmYWxzZSwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzoyOC45NzlaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn19LCB7ImlwdjYtcHJlZml4IjogIjIwMDE6MTcyOjIwOjIwOjovNjQiLCAiaWQiOiAwLCAicm91dGUtdHlwZSI6ICJzcmxfbm9raWEtY29tbW9uOmxpbnV4IiwgInJvdXRlLW93bmVyIjogImxpbnV4X21nciIsICJvcmlnaW4tbmV0d29yay1pbnN0YW5jZSI6ICJtZ210IiwgImxlYWthYmxlIjogZmFsc2UsICJtZXRyaWMiOiAwLCAicHJlZmVyZW5jZSI6IDUsICJhY3RpdmUiOiBmYWxzZSwgImxhc3QtYXBwLXVwZGF0ZSI6ICIyMDI0LTA0LTA1VDA5OjE3OjMwLjQwN1oiLCAibmV4dC1ob3AtZ3JvdXAiOiAiMjQ3MTIyODM0ODQwIiwgIm5leHQtaG9wLWdyb3VwLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJyZXNpbGllbnQtaGFzaCI6IGZhbHNlLCAiZmliLXByb2dyYW1taW5nIjogeyJzdXBwcmVzc2VkIjogZmFsc2UsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXR5cGUiOiAiYWRkIiwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdGltZXN0YW1wIjogIjIwMjQtMDQtMDVUMDk6MTc6MzAuNDA4WiIsICJwZW5kaW5nLW9wZXJhdGlvbi10eXBlIjogIm5vbmUiLCAibGFzdC1mYWlsZWQtb3BlcmF0aW9uLXR5cGUiOiAibm9uZSJ9fSwgeyJpcHY2LXByZWZpeCI6ICIyMDAxOjE3MjoyMDoyMDo6LzY0IiwgImlkIjogMSwgInJvdXRlLXR5cGUiOiAic3JsX25va2lhLWNvbW1vbjpsb2NhbCIsICJyb3V0ZS1vd25lciI6ICJuZXRfaW5zdF9tZ3IiLCAib3JpZ2luLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJsZWFrYWJsZSI6IGZhbHNlLCAibWV0cmljIjogMCwgInByZWZlcmVuY2UiOiAwLCAiYWN0aXZlIjogdHJ1ZSwgImxhc3QtYXBwLXVwZGF0ZSI6ICIyMDI0LTA0LTA1VDA5OjE3OjMwLjQwOFoiLCAibmV4dC1ob3AtZ3JvdXAiOiAiMjQ3MTIyODM0ODQxIiwgIm5leHQtaG9wLWdyb3VwLW5ldHdvcmstaW5zdGFuY2UiOiAibWdtdCIsICJyZXNpbGllbnQtaGFzaCI6IGZhbHNlLCAiZmliLXByb2dyYW1taW5nIjogeyJzdXBwcmVzc2VkIjogZmFsc2UsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXR5cGUiOiAiYWRkIiwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdGltZXN0YW1wIjogIjIwMjQtMDQtMDVUMDk6MTc6MzAuNDA4WiIsICJwZW5kaW5nLW9wZXJhdGlvbi10eXBlIjogIm5vbmUiLCAibGFzdC1mYWlsZWQtb3BlcmF0aW9uLXR5cGUiOiAibm9uZSJ9fSwgeyJpcHY2LXByZWZpeCI6ICIyMDAxOjE3MjoyMDoyMDo6My8xMjgiLCAiaWQiOiAxLCAicm91dGUtdHlwZSI6ICJzcmxfbm9raWEtY29tbW9uOmhvc3QiLCAicm91dGUtb3duZXIiOiAibmV0X2luc3RfbWdyIiwgIm9yaWdpbi1uZXR3b3JrLWluc3RhbmNlIjogIm1nbXQiLCAibGVha2FibGUiOiBmYWxzZSwgIm1ldHJpYyI6IDAsICJwcmVmZXJlbmNlIjogMCwgImFjdGl2ZSI6IHRydWUsICJsYXN0LWFwcC11cGRhdGUiOiAiMjAyNC0wNC0wNVQwOToxNzozMC40MDhaIiwgIm5leHQtaG9wLWdyb3VwIjogIjI0NzEyMjgzNDg0MiIsICJuZXh0LWhvcC1ncm91cC1uZXR3b3JrLWluc3RhbmNlIjogIm1nbXQiLCAicmVzaWxpZW50LWhhc2giOiBmYWxzZSwgImZpYi1wcm9ncmFtbWluZyI6IHsic3VwcHJlc3NlZCI6IGZhbHNlLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10eXBlIjogImFkZCIsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXRpbWVzdGFtcCI6ICIyMDI0LTA0LTA1VDA5OjE3OjMwLjQwOFoiLCAicGVuZGluZy1vcGVyYXRpb24tdHlwZSI6ICJub25lIiwgImxhc3QtZmFpbGVkLW9wZXJhdGlvbi10eXBlIjogIm5vbmUifX1dLCAic3RhdGlzdGljcyI6IHsiYWN0aXZlLXJvdXRlcyI6IDMsICJhY3RpdmUtcm91dGVzLXdpdGgtZWNtcCI6IDAsICJyZXNpbGllbnQtaGFzaC1yb3V0ZXMiOiAwLCAiZmliLWZhaWxlZC1yb3V0ZXMiOiAwLCAidG90YWwtcm91dGVzIjogIjQifSwgInJvdXRlLXN1bW1hcnkiOiB7InJvdXRlLXR5cGUiOiBbeyJpcC1yb3V0ZS10eXBlLW5hbWUiOiAic3JsX25va2lhLWNvbW1vbjpkaGNwIiwgImFjdGl2ZS1yb3V0ZXMiOiAxfSwgeyJpcC1yb3V0ZS10eXBlLW5hbWUiOiAic3JsX25va2lhLWNvbW1vbjpob3N0IiwgImFjdGl2ZS1yb3V0ZXMiOiAxfSwgeyJpcC1yb3V0ZS10eXBlLW5hbWUiOiAic3JsX25va2lhLWNvbW1vbjpsaW51eCIsICJhY3RpdmUtcm91dGVzIjogMX0sIHsiaXAtcm91dGUtdHlwZS1uYW1lIjogInNybF9ub2tpYS1jb21tb246bG9jYWwiLCAiYWN0aXZlLXJvdXRlcyI6IDF9XX19LCAic3JsX25va2lhLWlwLXJvdXRlLXRhYmxlczpuZXh0LWhvcC1ncm91cCI6IFt7ImluZGV4IjogIjI0NzEyMjgzNDgzOCIsICJiYWNrdXAtbmV4dC1ob3AtZ3JvdXAiOiAiMCIsICJmaWItcHJvZ3JhbW1pbmciOiB7Imxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzoyNy44NjdaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn0sICJuZXh0LWhvcCI6IFt7ImlkIjogMCwgIm5leHQtaG9wIjogIjI0NzEyMjgzNDgzOCIsICJyZXNvbHZlZCI6ICJub3QtYXBwbGljYWJsZSJ9XX0sIHsiaW5kZXgiOiAiMjQ3MTIyODM0ODM5IiwgImJhY2t1cC1uZXh0LWhvcC1ncm91cCI6ICIwIiwgImZpYi1wcm9ncmFtbWluZyI6IHsibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10eXBlIjogImFkZCIsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXRpbWVzdGFtcCI6ICIyMDI0LTA0LTA1VDA5OjE3OjI4Ljk3OVoiLCAicGVuZGluZy1vcGVyYXRpb24tdHlwZSI6ICJub25lIiwgImxhc3QtZmFpbGVkLW9wZXJhdGlvbi10eXBlIjogIm5vbmUifSwgIm5leHQtaG9wIjogW3siaWQiOiAwLCAibmV4dC1ob3AiOiAiMjQ3MTIyODM0ODM5IiwgInJlc29sdmVkIjogIm5vdC1hcHBsaWNhYmxlIn1dfSwgeyJpbmRleCI6ICIyNDcxMjI4MzQ4NDAiLCAiYmFja3VwLW5leHQtaG9wLWdyb3VwIjogIjAiLCAiZmliLXByb2dyYW1taW5nIjogeyJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXR5cGUiOiAiYWRkIiwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdGltZXN0YW1wIjogIjIwMjQtMDQtMDVUMDk6MTc6MzAuNDA4WiIsICJwZW5kaW5nLW9wZXJhdGlvbi10eXBlIjogIm5vbmUiLCAibGFzdC1mYWlsZWQtb3BlcmF0aW9uLXR5cGUiOiAibm9uZSJ9LCAibmV4dC1ob3AiOiBbeyJpZCI6IDAsICJuZXh0LWhvcCI6ICIyNDcxMjI4MzQ4NDAiLCAicmVzb2x2ZWQiOiAibm90LWFwcGxpY2FibGUifV19LCB7ImluZGV4IjogIjI0NzEyMjgzNDg0MSIsICJiYWNrdXAtbmV4dC1ob3AtZ3JvdXAiOiAiMCIsICJmaWItcHJvZ3JhbW1pbmciOiB7Imxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzozMC40MDhaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn0sICJuZXh0LWhvcCI6IFt7ImlkIjogMCwgIm5leHQtaG9wIjogIjI0NzEyMjgzNDg0MSIsICJyZXNvbHZlZCI6ICJub3QtYXBwbGljYWJsZSJ9XX0sIHsiaW5kZXgiOiAiMjQ3MTIyODM0ODQyIiwgImJhY2t1cC1uZXh0LWhvcC1ncm91cCI6ICIwIiwgImZpYi1wcm9ncmFtbWluZyI6IHsibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10eXBlIjogImFkZCIsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXRpbWVzdGFtcCI6ICIyMDI0LTA0LTA1VDA5OjE3OjMwLjQwOFoiLCAicGVuZGluZy1vcGVyYXRpb24tdHlwZSI6ICJub25lIiwgImxhc3QtZmFpbGVkLW9wZXJhdGlvbi10eXBlIjogIm5vbmUifSwgIm5leHQtaG9wIjogW3siaWQiOiAwLCAibmV4dC1ob3AiOiAiMjQ3MTIyODM0ODQyIiwgInJlc29sdmVkIjogIm5vdC1hcHBsaWNhYmxlIn1dfSwgeyJpbmRleCI6ICIyNDcxMjI4MzQ4NDMiLCAiYmFja3VwLW5leHQtaG9wLWdyb3VwIjogIjAiLCAiZmliLXByb2dyYW1taW5nIjogeyJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXR5cGUiOiAiYWRkIiwgImxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdGltZXN0YW1wIjogIjIwMjQtMDQtMDVUMDk6MTc6MzMuODkxWiIsICJwZW5kaW5nLW9wZXJhdGlvbi10eXBlIjogIm5vbmUiLCAibGFzdC1mYWlsZWQtb3BlcmF0aW9uLXR5cGUiOiAibm9uZSJ9LCAibmV4dC1ob3AiOiBbeyJpZCI6IDAsICJuZXh0LWhvcCI6ICIyNDcxMjI4MzQ4NDMiLCAicmVzb2x2ZWQiOiAibm90LWFwcGxpY2FibGUifV19LCB7ImluZGV4IjogIjI0NzEyMjgzNDg0NCIsICJiYWNrdXAtbmV4dC1ob3AtZ3JvdXAiOiAiMCIsICJmaWItcHJvZ3JhbW1pbmciOiB7Imxhc3Qtc3VjY2Vzc2Z1bC1vcGVyYXRpb24tdHlwZSI6ICJhZGQiLCAibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10aW1lc3RhbXAiOiAiMjAyNC0wNC0wNVQwOToxNzozMy45MDRaIiwgInBlbmRpbmctb3BlcmF0aW9uLXR5cGUiOiAibm9uZSIsICJsYXN0LWZhaWxlZC1vcGVyYXRpb24tdHlwZSI6ICJub25lIn0sICJuZXh0LWhvcCI6IFt7ImlkIjogMCwgIm5leHQtaG9wIjogIjI0NzEyMjgzNDg0NCIsICJyZXNvbHZlZCI6ICJub3QtYXBwbGljYWJsZSJ9XX0sIHsiaW5kZXgiOiAiMjQ3MTIyODM0ODQ1IiwgImJhY2t1cC1uZXh0LWhvcC1ncm91cCI6ICIwIiwgImZpYi1wcm9ncmFtbWluZyI6IHsibGFzdC1zdWNjZXNzZnVsLW9wZXJhdGlvbi10eXBlIjogImFkZCIsICJsYXN0LXN1Y2Nlc3NmdWwtb3BlcmF0aW9uLXRpbWVzdGFtcCI6ICIyMDI0LTA0LTA1VDA5OjE3OjMzLjkwNFoiLCAicGVuZGluZy1vcGVyYXRpb24tdHlwZSI6ICJub25lIiwgImxhc3QtZmFpbGVkLW9wZXJhdGlvbi10eXBlIjogIm5vbmUifSwgIm5leHQtaG9wIjogW3siaWQiOiAwLCAibmV4dC1ob3AiOiAiMyIsICJyZXNvbHZlZCI6ICJub3QtYXBwbGljYWJsZSJ9XX1dLCAic3JsX25va2lhLWlwLXJvdXRlLXRhYmxlczpuZXh0LWhvcCI6IFt7ImluZGV4IjogIjMiLCAidHlwZSI6ICJzcmxfbm9raWEtaXAtcm91dGUtdGFibGVzOmJyb2FkY2FzdCJ9LCB7ImluZGV4IjogIjI0NzEyMjgzNDgzOCIsICJ0eXBlIjogInNybF9ub2tpYS1pcC1yb3V0ZS10YWJsZXM6ZGlyZWN0IiwgImlwLWFkZHJlc3MiOiAiMTcyLjIwLjIwLjEiLCAic3ViaW50ZXJmYWNlIjogIm1nbXQwLjAifSwgeyJpbmRleCI6ICIyNDcxMjI4MzQ4MzkiLCAidHlwZSI6ICJzcmxfbm9raWEtaXAtcm91dGUtdGFibGVzOmRpcmVjdCIsICJpcC1hZGRyZXNzIjogIjIwMDE6MTcyOjIwOjIwOjoxIiwgInN1YmludGVyZmFjZSI6ICJtZ210MC4wIn0sIHsiaW5kZXgiOiAiMjQ3MTIyODM0ODQwIiwgInR5cGUiOiAic3JsX25va2lhLWlwLXJvdXRlLXRhYmxlczpkaXJlY3QiLCAiaXAtYWRkcmVzcyI6ICIyMDAxOjE3MjoyMDoyMDo6IiwgInN1YmludGVyZmFjZSI6ICJtZ210MC4wIn0sIHsiaW5kZXgiOiAiMjQ3MTIyODM0ODQxIiwgInR5cGUiOiAic3JsX25va2lhLWlwLXJvdXRlLXRhYmxlczpkaXJlY3QiLCAiaXAtYWRkcmVzcyI6ICIyMDAxOjE3MjoyMDoyMDo6MyIsICJzdWJpbnRlcmZhY2UiOiAibWdtdDAuMCJ9LCB7ImluZGV4IjogIjI0NzEyMjgzNDg0MiIsICJ0eXBlIjogInNybF9ub2tpYS1pcC1yb3V0ZS10YWJsZXM6ZXh0cmFjdCJ9LCB7ImluZGV4IjogIjI0NzEyMjgzNDg0MyIsICJ0eXBlIjogInNybF9ub2tpYS1pcC1yb3V0ZS10YWJsZXM6ZGlyZWN0IiwgImlwLWFkZHJlc3MiOiAiMTcyLjIwLjIwLjAiLCAic3ViaW50ZXJmYWNlIjogIm1nbXQwLjAifSwgeyJpbmRleCI6ICIyNDcxMjI4MzQ4NDQiLCAidHlwZSI6ICJzcmxfbm9raWEtaXAtcm91dGUtdGFibGVzOmRpcmVjdCIsICJpcC1hZGRyZXNzIjogIjE3Mi4yMC4yMC4xMDMiLCAic3ViaW50ZXJmYWNlIjogIm1nbXQwLjAifV19LCAidHVubmVsLXRhYmxlIjogeyJzcmxfbm9raWEtdHVubmVsLXRhYmxlczppcHY0Ijoge30sICJzcmxfbm9raWEtdHVubmVsLXRhYmxlczppcHY2Ijoge319LCAic3JsX25va2lhLXRjcC11ZHA6dGNwIjogeyJzdGF0aXN0aWNzIjogeyJhY3RpdmUtb3BlbnMiOiAiMCIsICJwYXNzaXZlLW9wZW5zIjogIjIiLCAiYXR0ZW1wdC1mYWlscyI6ICIwIiwgImVzdGFibGlzaGVkLXJlc2V0cyI6ICIwIiwgImluLXNlZ21lbnRzIjogIjQwIiwgIm91dC1zZWdtZW50cyI6ICI0NiIsICJyZXRyYW5zbWl0dGVkLXNlZ21lbnRzIjogIjAiLCAiaW4tZXJyb3Itc2VnbWVudHMiOiAiMCIsICJvdXQtcnN0LXNlZ21lbnRzIjogIjEiLCAiaW4tY2hlY2tzdW0tZXJyb3JzIjogIjAifSwgImxpc3RlbmluZy1hcHBsaWNhdGlvbiI6IFt7ImxvY2FsLWFkZHJlc3MiOiAiMC4wLjAuMCIsICJsb2NhbC1wb3J0IjogMjJ9LCB7ImxvY2FsLWFkZHJlc3MiOiAiMTI3LjAuMC4xIiwgImxvY2FsLXBvcnQiOiA1M30sIHsibG9jYWwtYWRkcmVzcyI6ICIxMjcuMC4wLjEiLCAibG9jYWwtcG9ydCI6IDE5OX0sIHsibG9jYWwtYWRkcmVzcyI6ICI6OiIsICJsb2NhbC1wb3J0IjogMjJ9LCB7ImxvY2FsLWFkZHJlc3MiOiAiOjoiLCAibG9jYWwtcG9ydCI6IDgwfSwgeyJsb2NhbC1hZGRyZXNzIjogIjo6IiwgImxvY2FsLXBvcnQiOiA0NDN9LCB7ImxvY2FsLWFkZHJlc3MiOiAiOjoiLCAibG9jYWwtcG9ydCI6IDU3NDAwfSwgeyJsb2NhbC1hZGRyZXNzIjogIjo6MSIsICJsb2NhbC1wb3J0IjogNTN9XX0sICJzcmxfbm9raWEtdGNwLXVkcDp1ZHAiOiB7InN0YXRpc3RpY3MiOiB7ImluLXBhY2tldHMiOiAiMCIsICJpbi1uby1vcGVuLXBvcnRzLXBhY2tldHMiOiAiMCIsICJpbi1lcnJvci1wYWNrZXRzIjogIjAiLCAib3V0LXBhY2tldHMiOiAiMCIsICJyZWNlaXZlLWJ1ZmZlci1lcnJvcnMiOiAiMCIsICJzZW5kLWJ1ZmZlci1lcnJvcnMiOiAiMCIsICJpbi1jaGVja3N1bS1lcnJvcnMiOiAiMCIsICJpZ25vcmVkLW11bHRpY2FzdC1wYWNrZXRzIjogIjAifSwgImxpc3RlbmluZy1hcHBsaWNhdGlvbiI6IFt7ImxvY2FsLWFkZHJlc3MiOiAiMC4wLjAuMCIsICJsb2NhbC1wb3J0IjogMTYxfSwgeyJsb2NhbC1hZGRyZXNzIjogIjEyNy4wLjAuMSIsICJsb2NhbC1wb3J0IjogNTN9LCB7ImxvY2FsLWFkZHJlc3MiOiAiOjoiLCAibG9jYWwtcG9ydCI6IDE2MX0sIHsibG9jYWwtYWRkcmVzcyI6ICI6OjEiLCAibG9jYWwtcG9ydCI6IDUzfV19fV19"}}]} +Traceback (most recent call last): + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/GnmiSessionHandler.py", line 140, in get + results.extend(parse(str_path, value)) + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/handlers/__init__.py", line 134, in parse + return handler.parse(value) + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/handlers/NetworkInstance.py", line 438, in parse + if afi_safi_entry: +UnboundLocalError: local variable 'afi_safi_entry' referenced before assignment +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Original path: /srl_nokia-network-instance:network-instance, Schema path: /network-instance +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Mapped path schema: /network-instance +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Handler found for path: /network-instance +ERROR:device.service.drivers.gnmi_nokia_srlinux.GnmiNokiaSrLinuxDriver:[172.20.20.103:57400]:Exception processing notification {"atomic": false, "delete": [], "timestamp": "1712310240225720524", "update": [{"duplicates": 0, "path": {"elem": [], "element": [], "origin": "", "target": ""}, "val": {"json_ietf_val": "eyJzcmxfbm9raWEtbmV0d29yay1pbnN0YW5jZTpuZXR3b3JrLWluc3RhbmNlIjogW3sibmFtZSI6ICJtZ210IiwgImludGVyZmFjZSI6IFt7Im5hbWUiOiAibWdtdDAuMCIsICJvcGVyLXN0YXRlIjogInVwIiwgImluZGV4IjogIjEifV19XX0="}}]} +Traceback (most recent call last): + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/GnmiSessionHandler.py", line 140, in get + results.extend(parse(str_path, value)) + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/handlers/__init__.py", line 134, in parse + return handler.parse(value) + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/handlers/NetworkInstance.py", line 438, in parse + if afi_safi_entry: +UnboundLocalError: local variable 'afi_safi_entry' referenced before assignment +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Original path: /srl_nokia-routing-policy:routing-policy, Schema path: /routing-policy +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Mapped path schema: /routing-policy +DEBUG:device.service.drivers.gnmi_nokia_srlinux.handlers:Handler found for path: /routing-policy +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/1]', {'name': 'ethernet-1/1', 'admin_state': 'enable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/2]', {'name': 'ethernet-1/2', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/3]', {'name': 'ethernet-1/3', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/4]', {'name': 'ethernet-1/4', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/5]', {'name': 'ethernet-1/5', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/6]', {'name': 'ethernet-1/6', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/7]', {'name': 'ethernet-1/7', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/8]', {'name': 'ethernet-1/8', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/9]', {'name': 'ethernet-1/9', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/10]', {'name': 'ethernet-1/10', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/11]', {'name': 'ethernet-1/11', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/12]', {'name': 'ethernet-1/12', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/13]', {'name': 'ethernet-1/13', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/14]', {'name': 'ethernet-1/14', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/15]', {'name': 'ethernet-1/15', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/16]', {'name': 'ethernet-1/16', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/17]', {'name': 'ethernet-1/17', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/18]', {'name': 'ethernet-1/18', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/19]', {'name': 'ethernet-1/19', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/20]', {'name': 'ethernet-1/20', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/21]', {'name': 'ethernet-1/21', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/22]', {'name': 'ethernet-1/22', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/23]', {'name': 'ethernet-1/23', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/24]', {'name': 'ethernet-1/24', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/25]', {'name': 'ethernet-1/25', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/26]', {'name': 'ethernet-1/26', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/27]', {'name': 'ethernet-1/27', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/28]', {'name': 'ethernet-1/28', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/29]', {'name': 'ethernet-1/29', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/30]', {'name': 'ethernet-1/30', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/31]', {'name': 'ethernet-1/31', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/32]', {'name': 'ethernet-1/32', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/33]', {'name': 'ethernet-1/33', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/34]', {'name': 'ethernet-1/34', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/35]', {'name': 'ethernet-1/35', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/36]', {'name': 'ethernet-1/36', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/37]', {'name': 'ethernet-1/37', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/38]', {'name': 'ethernet-1/38', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/39]', {'name': 'ethernet-1/39', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/40]', {'name': 'ethernet-1/40', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/41]', {'name': 'ethernet-1/41', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/42]', {'name': 'ethernet-1/42', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/43]', {'name': 'ethernet-1/43', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/44]', {'name': 'ethernet-1/44', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/45]', {'name': 'ethernet-1/45', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/46]', {'name': 'ethernet-1/46', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/47]', {'name': 'ethernet-1/47', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/48]', {'name': 'ethernet-1/48', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/49]', {'name': 'ethernet-1/49', 'admin_state': 'enable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/50]', {'name': 'ethernet-1/50', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/51]', {'name': 'ethernet-1/51', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/52]', {'name': 'ethernet-1/52', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/53]', {'name': 'ethernet-1/53', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/54]', {'name': 'ethernet-1/54', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/55]', {'name': 'ethernet-1/55', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/56]', {'name': 'ethernet-1/56', 'admin_state': 'disable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[mgmt0]/subinterface[0]', {'index': 0, 'admin-state': 'enable', 'type': None, 'ipv4': {'address': [{'ip-prefix': '172.20.20.103/24'}]}, 'vlan': {'encap': {'untagged': {}}}})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[mgmt0]', {'name': 'mgmt0', 'admin_state': 'enable'})) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): Unable to Get Resource(key=/); Error(local variable 'afi_safi_entry' referenced before assignment) +ERROR:device.service.DeviceServiceServicerImpl:DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): Unable to Get Resource(key=/); Error(local variable 'afi_safi_entry' referenced before assignment) +ERROR:device.service.DeviceServiceServicerImpl:AddDevice exception +Traceback (most recent call last): + File "/var/teraflow/common/method_wrappers/Decorator.py", line 220, in inner_wrapper + reply = func(self, request, grpc_context) + File "/var/teraflow/device/service/DeviceServiceServicerImpl.py", line 122, in AddDevice + raise OperationFailedException('AddDevice', extra_details=errors) +common.method_wrappers.ServiceExceptions.OperationFailedException: Operation(AddDevice) failed; DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/1]', {'name': 'ethernet-1/1', 'admin_state': 'enable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/2]', {'name': 'ethernet-1/2', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/3]', {'name': 'ethernet-1/3', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/4]', {'name': 'ethernet-1/4', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/5]', {'name': 'ethernet-1/5', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/6]', {'name': 'ethernet-1/6', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/7]', {'name': 'ethernet-1/7', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/8]', {'name': 'ethernet-1/8', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/9]', {'name': 'ethernet-1/9', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/10]', {'name': 'ethernet-1/10', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/11]', {'name': 'ethernet-1/11', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/12]', {'name': 'ethernet-1/12', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/13]', {'name': 'ethernet-1/13', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/14]', {'name': 'ethernet-1/14', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/15]', {'name': 'ethernet-1/15', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/16]', {'name': 'ethernet-1/16', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/17]', {'name': 'ethernet-1/17', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/18]', {'name': 'ethernet-1/18', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/19]', {'name': 'ethernet-1/19', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/20]', {'name': 'ethernet-1/20', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/21]', {'name': 'ethernet-1/21', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/22]', {'name': 'ethernet-1/22', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/23]', {'name': 'ethernet-1/23', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/24]', {'name': 'ethernet-1/24', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/25]', {'name': 'ethernet-1/25', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/26]', {'name': 'ethernet-1/26', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/27]', {'name': 'ethernet-1/27', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/28]', {'name': 'ethernet-1/28', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/29]', {'name': 'ethernet-1/29', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/30]', {'name': 'ethernet-1/30', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/31]', {'name': 'ethernet-1/31', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/32]', {'name': 'ethernet-1/32', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/33]', {'name': 'ethernet-1/33', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/34]', {'name': 'ethernet-1/34', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/35]', {'name': 'ethernet-1/35', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/36]', {'name': 'ethernet-1/36', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/37]', {'name': 'ethernet-1/37', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/38]', {'name': 'ethernet-1/38', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/39]', {'name': 'ethernet-1/39', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/40]', {'name': 'ethernet-1/40', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/41]', {'name': 'ethernet-1/41', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/42]', {'name': 'ethernet-1/42', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/43]', {'name': 'ethernet-1/43', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/44]', {'name': 'ethernet-1/44', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/45]', {'name': 'ethernet-1/45', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/46]', {'name': 'ethernet-1/46', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/47]', {'name': 'ethernet-1/47', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/48]', {'name': 'ethernet-1/48', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/49]', {'name': 'ethernet-1/49', 'admin_state': 'enable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/50]', {'name': 'ethernet-1/50', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/51]', {'name': 'ethernet-1/51', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/52]', {'name': 'ethernet-1/52', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/53]', {'name': 'ethernet-1/53', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/54]', {'name': 'ethernet-1/54', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/55]', {'name': 'ethernet-1/55', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[ethernet-1/56]', {'name': 'ethernet-1/56', 'admin_state': 'disable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[mgmt0]/subinterface[0]', {'index': 0, 'admin-state': 'enable', 'type': None, 'ipv4': {'address': [{'ip-prefix': '172.20.20.103/24'}]}, 'vlan': {'encap': {'untagged': {}}}})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): GetConfig retrieved unsupported Resource(('/interface[mgmt0]', {'name': 'mgmt0', 'admin_state': 'enable'})); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): Unable to Get Resource(key=/); Error(local variable 'afi_safi_entry' referenced before assignment); DeviceId(5cca8a65-8a20-50ab-8d47-d12294f0dca1): Unable to Get Resource(key=/); Error(local variable 'afi_safi_entry' referenced before assignment) +Exception in thread Thread-25: +Traceback (most recent call last): + File "/usr/local/lib/python3.9/threading.py", line 980, in _bootstrap_inner + self.run() + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/MonitoringThread.py", line 135, in run + for subscribe_response in self._response_iterator: + File "/usr/local/lib/python3.9/site-packages/grpc/_channel.py", line 426, in __next__ + return self._next() + File "/usr/local/lib/python3.9/site-packages/grpc/_channel.py", line 826, in _next + raise self +grpc._channel._MultiThreadedRendezvous: <_MultiThreadedRendezvous of RPC that terminated with: + status = StatusCode.UNAVAILABLE + details = "Socket closed" + debug_error_string = "{"created":"@1712310326.014542657","description":"Error received from peer ipv4:172.20.20.103:57400","file":"src/core/lib/surface/call.cc","file_line":966,"grpc_message":"Socket closed","grpc_status":14}" +> +Exception in thread Thread-20: +Traceback (most recent call last): + File "/usr/local/lib/python3.9/threading.py", line 980, in _bootstrap_inner +Exception in thread Thread-23: +Traceback (most recent call last): + File "/usr/local/lib/python3.9/threading.py", line 980, in _bootstrap_inner + self.run() + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/MonitoringThread.py", line 135, in run + self.run() + for subscribe_response in self._response_iterator: + File "/var/teraflow/device/service/drivers/gnmi_nokia_srlinux/MonitoringThread.py", line 135, in run + File "/usr/local/lib/python3.9/site-packages/grpc/_channel.py", line 426, in __next__ + for subscribe_response in self._response_iterator: + File "/usr/local/lib/python3.9/site-packages/grpc/_channel.py", line 426, in __next__ + return self._next() + File "/usr/local/lib/python3.9/site-packages/grpc/_channel.py", line 826, in _next + raise self +grpc._channel._MultiThreadedRendezvous: <_MultiThreadedRendezvous of RPC that terminated with: + status = StatusCode.UNAVAILABLE + details = "Socket closed" + debug_error_string = "{"created":"@1712310326.018710184","description":"Error received from peer ipv4:172.20.20.101:57400","file":"src/core/lib/surface/call.cc","file_line":966,"grpc_message":"Socket closed","grpc_status":14}" +> + return self._next() + File "/usr/local/lib/python3.9/site-packages/grpc/_channel.py", line 826, in _next + raise self +grpc._channel._MultiThreadedRendezvous: <_MultiThreadedRendezvous of RPC that terminated with: + status = StatusCode.UNAVAILABLE + details = "Socket closed" + debug_error_string = "{"created":"@1712310326.018746615","description":"Error received from peer ipv4:172.20.20.102:57400","file":"src/core/lib/surface/call.cc","file_line":966,"grpc_message":"Socket closed","grpc_status":14}" \ No newline at end of file diff --git a/my_deploy.sh b/my_deploy.sh index a9f3f00e33d8f56f9145c7dd4069d229d48d1117..7c9b68b7002095b7cedf4d2c05faf1e8e42c5fef 100755 --- a/my_deploy.sh +++ b/my_deploy.sh @@ -90,7 +90,7 @@ export CRDB_DATABASE="tfs" export CRDB_DEPLOY_MODE="single" # Disable flag for dropping database, if it exists. -export CRDB_DROP_DATABASE_IF_EXISTS="" +export CRDB_DROP_DATABASE_IF_EXISTS="YES" # Disable flag for re-deploying CockroachDB from scratch. export CRDB_REDEPLOY="" @@ -138,7 +138,7 @@ export QDB_TABLE_MONITORING_KPIS="tfs_monitoring_kpis" export QDB_TABLE_SLICE_GROUPS="tfs_slice_groups" # Disable flag for dropping tables if they exist. -export QDB_DROP_TABLES_IF_EXIST="" +export QDB_DROP_TABLES_IF_EXIST="YES" # Disable flag for re-deploying QuestDB from scratch. export QDB_REDEPLOY="" diff --git a/src/common/type_checkers/Assertions.py b/src/common/type_checkers/Assertions.py index 286ae179d325b6e70d6ebf509de92e354ba42bc8..31e6631fffb4b45f9d5401819553183e1f6e4da5 100644 --- a/src/common/type_checkers/Assertions.py +++ b/src/common/type_checkers/Assertions.py @@ -35,6 +35,7 @@ def validate_device_driver_enum(message): 'DEVICEDRIVER_XR', 'DEVICEDRIVER_IETF_L2VPN', 'DEVICEDRIVER_GNMI_OPENCONFIG', + 'DEVICEDRIVER_GNMI_NOKIA_SRLINUX', ] def validate_device_operational_status_enum(message): diff --git a/src/context/service/database/models/enums/DeviceDriver.py b/src/context/service/database/models/enums/DeviceDriver.py index 66635decc5369c8b7601863da85f497626d70ac8..42d1eb6e6c7f4460602a1f5679581829dff6a899 100644 --- a/src/context/service/database/models/enums/DeviceDriver.py +++ b/src/context/service/database/models/enums/DeviceDriver.py @@ -31,6 +31,7 @@ class ORM_DeviceDriverEnum(enum.Enum): XR = DeviceDriverEnum.DEVICEDRIVER_XR IETF_L2VPN = DeviceDriverEnum.DEVICEDRIVER_IETF_L2VPN GNMI_OPENCONFIG = DeviceDriverEnum.DEVICEDRIVER_GNMI_OPENCONFIG + GNMI_NOKIA_SRLINUX = DeviceDriverEnum.DEVICEDRIVER_GNMI_NOKIA_SRLINUX grpc_to_enum__device_driver = functools.partial( grpc_to_enum, DeviceDriverEnum, ORM_DeviceDriverEnum) diff --git a/src/device/service/Tools.py b/src/device/service/Tools.py index b2b206471e07b654e5339f81db632699ae8b95df..db15440ccfa50550720302a501c82bffbf2f3f61 100644 --- a/src/device/service/Tools.py +++ b/src/device/service/Tools.py @@ -246,7 +246,7 @@ def _raw_config_rules_to_grpc( raw_config_rules : List[Tuple[str, Union[Any, Exception, None]]] ) -> List[str]: errors : List[str] = list() - + LOGGER.warning('raw_config_rules={:s}'.format(str(raw_config_rules))) for resource_key, resource_value in raw_config_rules: if isinstance(resource_value, Exception): errors.append(error_template.format( diff --git a/src/device/service/drivers/__init__.py b/src/device/service/drivers/__init__.py index c8e9c902270e734e87d0a2a6f8b9f463c94e0b93..d1b0f0c9184b6a1cda887ce24bde607c5b56d264 100644 --- a/src/device/service/drivers/__init__.py +++ b/src/device/service/drivers/__init__.py @@ -71,6 +71,7 @@ DRIVERS.append( # DeviceDriverEnum.DEVICEDRIVER_IETF_NETWORK_TOPOLOGY, # DeviceDriverEnum.DEVICEDRIVER_ONF_TR_532, # DeviceDriverEnum.DEVICEDRIVER_GNMI_OPENCONFIG, + # DeviceDriverEnum.DEVICEDRIVER_GNMI_NOKIA_SRLINUX, # ], #} ])) diff --git a/src/device/service/drivers/gnmi_nokia_srlinux/GnmiSessionHandler.py b/src/device/service/drivers/gnmi_nokia_srlinux/GnmiSessionHandler.py index b65df80cad3075dc1a4c44629a7cdaae05c019c7..3444b015b621a7d53f72c57d7901e5d38249be92 100644 --- a/src/device/service/drivers/gnmi_nokia_srlinux/GnmiSessionHandler.py +++ b/src/device/service/drivers/gnmi_nokia_srlinux/GnmiSessionHandler.py @@ -16,6 +16,7 @@ import copy,grpc,json, logging, queue, threading from typing import Any, Dict, List, Optional, Tuple, Union from common.tools.grpc.Tools import grpc_message_to_json_string from common.type_checkers.Checkers import chk_float, chk_length, chk_string, chk_type +from device.service.drivers.gnmi_nokia_srlinux.handlers.Tools import get_schema from .gnmi.gnmi_pb2_grpc import gNMIStub from .gnmi.gnmi_pb2 import Encoding, GetRequest, SetRequest, UpdateResult # pylint: disable=no-name-in-module from .handlers import ALL_RESOURCE_KEYS, compose, get_path, parse @@ -83,6 +84,7 @@ class GnmiSessionHandler: chk_type('resources', resource_keys, list) parsing_results = [] + map_paths_to_resource_keys : Dict[str, List[str]] = {} get_request = GetRequest() get_request.type = GetRequest.DataType.ALL @@ -94,6 +96,7 @@ class GnmiSessionHandler: chk_string(str_resource_name, resource_key, allow_empty=False) self._logger.debug('[GnmiSessionHandler:get] resource_key = {:s}'.format(str(resource_key))) str_path = get_path(resource_key) + map_paths_to_resource_keys.setdefault(get_schema(str_path), list()).append(resource_key) self._logger.debug('[GnmiSessionHandler:get] str_path = {:s}'.format(str(str_path))) get_request.path.append(path_from_string(str_path)) except Exception as e: # pylint: disable=broad-except @@ -126,7 +129,7 @@ class GnmiSessionHandler: for update in notification.update: #self._logger.info('update.path={:s}'.format(grpc_message_to_json_string(update.path))) str_path = path_to_string(update.path) - #self._logger.info('str_path={:s}'.format(str(str_path))) + #self._logger.info('str_path is ={:s}'.format(str(str_path))) #resource_key_tuple = results.get(str_path) #if resource_key_tuple is None: # # pylint: disable=broad-exception-raised @@ -134,10 +137,22 @@ class GnmiSessionHandler: # raise Exception(MSG.format(str(str_path), str(resource_keys))) try: value = decode_value(update.val) - #self._logger.info('value={:s}'.format(str(value))) # uncomment to see decoded message from the device + #self._logger.info('value is ={:s}'.format(str(value))) # uncomment to see decoded message from the device #resource_key_tuple[1] = value #resource_key_tuple[2] = True - results.extend(parse(str_path, value)) + #results.extend(parse(str_path, value)) + _str_path = '/{:s}'.format(list(value.keys())[0]) if str_path == '/' else str_path + _str_path = get_schema(_str_path) + resource_keys = map_paths_to_resource_keys.get(_str_path, list()) + self._logger.debug('[GnmiSessionHandler:get] _str_path is = {:s}'.format(_str_path)) + if len(resource_keys) == 0: + MSG = 'No resource_keys found for str_path({:s})/_str_path({:s}). map_paths_to_resource_keys={:s}' + self._logger.error(MSG.format(str(str_path), str(_str_path), str(map_paths_to_resource_keys))) + else: + MSG = 'resource_keys for str_path({:s})/_str_path({:s}): {:s}' + self._logger.info(MSG.format(str(str_path), str(_str_path), str(resource_keys))) + for resource_key in resource_keys: + results.extend(parse(resource_key, str_path, value)) except Exception as e: # pylint: disable=broad-except MSG = 'Exception processing notification {:s}' self._logger.exception(MSG.format(grpc_message_to_json_string(notification))) diff --git a/src/device/service/drivers/gnmi_nokia_srlinux/handlers/Component.py b/src/device/service/drivers/gnmi_nokia_srlinux/handlers/Component.py index 0b3c1f9705353548025cb4365ea31e68978c79f1..f7933e91f098462ee7825f6da9a4916dd4093ad8 100644 --- a/src/device/service/drivers/gnmi_nokia_srlinux/handlers/Component.py +++ b/src/device/service/drivers/gnmi_nokia_srlinux/handlers/Component.py @@ -11,52 +11,46 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - -import logging +import json, logging from typing import Any, Dict, List, Tuple from common.proto.kpi_sample_types_pb2 import KpiSampleType from ._Handler import _Handler LOGGER = logging.getLogger(__name__) +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) -PATH_IF_CTR = "/interfaces/interface[name={:s}]/state/counters/{:s}" +#PATH_IF_CTR = "/interfaces/interface[name={:s}]/state/counters/{:s}" class ComponentHandler(_Handler): def get_resource_key(self) -> str: return '/endpoints/endpoint' - def get_path(self) -> str: return '/components/component' + def get_path(self) -> str: return '/srl_nokia-interfaces:interface' def parse(self, json_data : Dict) -> List[Tuple[str, Dict[str, Any]]]: - #LOGGER.info('json_data = {:s}'.format(json.dumps(json_data))) - json_component_list : List[Dict] = json_data.get('component', []) + LOGGER.info('json_data = {:s}'.format(json.dumps(json_data))) + json_interface_list : List[Dict] = json_data.get('srl_nokia-interfaces:interface', []) response = [] - for json_component in json_component_list: + for json_component in json_interface_list: #LOGGER.info('json_component = {:s}'.format(json.dumps(json_component))) - endpoint = {} - - component_type = json_component.get('state', {}).get('type') - if component_type is None: continue - component_type = component_type.replace('oc-platform-types:', '') - component_type = component_type.replace('openconfig-platform-types:', '') - if component_type not in {'PORT'}: continue - endpoint['type'] = '-' - - #LOGGER.info('PORT json_component = {:s}'.format(json.dumps(json_component))) - - component_name = json_component.get('name') - if component_name is None: continue - - # TODO: improve mapping between interface name and component name - # By now, computed by time for the sake of saving time for the Hackfest. - interface_name = component_name.lower().replace('-port', '') - + interface_name = json_component.get('name') + if interface_name is None: + # LOGGER.info('DISCARDED json_interface = {:s}'.format(json.dumps(json_interface))) + continue endpoint['uuid'] = interface_name - endpoint['sample_types'] = { - KpiSampleType.KPISAMPLETYPE_BYTES_RECEIVED : PATH_IF_CTR.format(interface_name, 'in-octets' ), - KpiSampleType.KPISAMPLETYPE_BYTES_TRANSMITTED : PATH_IF_CTR.format(interface_name, 'out-octets'), - KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED : PATH_IF_CTR.format(interface_name, 'in-pkts' ), - KpiSampleType.KPISAMPLETYPE_PACKETS_TRANSMITTED: PATH_IF_CTR.format(interface_name, 'out-pkts' ), - } + endpoint['name'] = interface_name + + #endpoint_type1 = json_component.get('srl_nokia-platform-healthz:healthz', {}) + endpoint_type = json_component.get('ethernet', {}) + port_speed = endpoint_type.get('port-speed') + if port_speed is not None: endpoint['type'] = port_speed + + #endpoint['sample_types'] = { + # KpiSampleType.KPISAMPLETYPE_BYTES_RECEIVED : PATH_IF_CTR.format(interface_name, 'in-octets' ), + # KpiSampleType.KPISAMPLETYPE_BYTES_TRANSMITTED : PATH_IF_CTR.format(interface_name, 'out-octets'), + # KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED : PATH_IF_CTR.format(interface_name, 'in-pkts' ), + # KpiSampleType.KPISAMPLETYPE_PACKETS_TRANSMITTED: PATH_IF_CTR.format(interface_name, 'out-pkts' ), + #} if len(endpoint) == 0: continue response.append(('/endpoints/endpoint[{:s}]'.format(endpoint['uuid']), endpoint)) diff --git a/src/device/service/drivers/gnmi_nokia_srlinux/handlers/Interface.py b/src/device/service/drivers/gnmi_nokia_srlinux/handlers/Interface.py index 27d6c721e336d2b15d38f204582918a12d38e324..95e4b868ee4ac6f37de3fee7f9597b46b0fc5eaa 100644 --- a/src/device/service/drivers/gnmi_nokia_srlinux/handlers/Interface.py +++ b/src/device/service/drivers/gnmi_nokia_srlinux/handlers/Interface.py @@ -109,9 +109,9 @@ class InterfaceHandler(_Handler): ############################PARSE############################################################## def parse(self, json_data: Dict) -> List[Tuple[str, Dict[str, Any]]]: - #LOGGER.info('json_data = {:s}'.format(json.dumps(json_data))) - # LOGGER.info('Parsing json_data for InterfaceHandler') - # LOGGER.debug('json_data = {:s}'.format(json.dumps(json_data))) + #LOGGER.info('json_data = {:s}'.format(json.dumps(json_data))) + # LOGGER.info('Parsing json_data for InterfaceHandler') + # LOGGER.debug('json_data = {:s}'.format(json.dumps(json_data))) json_interface_list : List[Dict] = json_data.get('srl_nokia-interfaces:interface', []) response = [] @@ -137,7 +137,7 @@ class InterfaceHandler(_Handler): json_subinterface_list: List[Dict] = json_interface.get('subinterface', []) for json_subinterface in json_subinterface_list: - LOGGER.info('json_subinterface = {:s}'.format(json.dumps(json_subinterface))) + #LOGGER.info('json_subinterface = {:s}'.format(json.dumps(json_subinterface))) subinterface = {} subinterface_index = json_subinterface.get('index') if subinterface_index is None: @@ -157,7 +157,7 @@ class InterfaceHandler(_Handler): addresses = [] if ipv4_address_list: for json_address in ipv4_address_list: - LOGGER.info('json_address = {:s}'.format(json.dumps(json_address))) + #LOGGER.info('json_address = {:s}'.format(json.dumps(json_address))) address_ip_prefix = json_address.get('ip-prefix') if address_ip_prefix is not None: diff --git a/src/device/service/drivers/gnmi_nokia_srlinux/handlers/NetworkInstance.py b/src/device/service/drivers/gnmi_nokia_srlinux/handlers/NetworkInstance.py index bab1625726e26be48f2ee98c7a08eb5b5b28cdab..67c4913f83c7dfdcca9e32d2e46add2f3a75f139 100644 --- a/src/device/service/drivers/gnmi_nokia_srlinux/handlers/NetworkInstance.py +++ b/src/device/service/drivers/gnmi_nokia_srlinux/handlers/NetworkInstance.py @@ -20,7 +20,7 @@ LOGGER = logging.getLogger(__name__) class NetworkInstanceHandler(_Handler): def get_resource_key(self) -> str: return '/network-instance' - def get_path(self) -> str: return '/network-instance' + def get_path(self) -> str: return '/srl_nokia-network-instance:network-instance' def compose(self, resource_key : str, resource_value : Dict, delete : bool = False) -> Tuple[str, str]: if_name= str(resource_value['if_name']) @@ -378,25 +378,27 @@ class NetworkInstanceHandler(_Handler): return str_path, json.dumps(json_networkinstance) def parse(self, json_data: Dict) -> List[Tuple[str, Dict[str, Any]]]: - response = [] - json_network_instance_list = json_data.get('srl_nokia-network-instance:network-instance', []) - - for json_network_instance in json_network_instance_list: - #LOGGER.info('json_networkinstance = {:s}'.format(json.dumps(json_network_instance))) - network_instance = {} - json_interface_list = json_network_instance.get('interface', []) - json_vxlan_list=json_network_instance.get('vxlan-interface',[]) - vxlaninterface_names = [] - for json_vxlan in json_vxlan_list: + response = [] + json_network_instance_list = json_data.get('srl_nokia-network-instance:network-instance', []) + + for json_network_instance in json_network_instance_list: + #LOGGER.info('json_networkinstance = {:s}'.format(json.dumps(json_network_instance))) + network_instance = {} + json_interface_list = json_network_instance.get('interface', []) + json_vxlan_list=json_network_instance.get('vxlan-interface',[]) + vxlaninterface_names = [] + for json_vxlan in json_vxlan_list: #LOGGER.info('json_interface = {:s}'.format(json.dumps(json_interface))) # LOGGER.info('json_interface.keys = {:s}'.format(str(json_interface.keys()))) #interface = {} vxlaninterface_name = json_vxlan.get('name') - if interface_name is not None: - vxlaninterface_names.append(str(vxlaninterface_name)) - interface_names = [] - for json_interface in json_interface_list: + if vxlaninterface_names is not None: + vxlaninterface_names.append(str(vxlaninterface_name)) + else: + pass + interface_names = [] + for json_interface in json_interface_list: #LOGGER.info('json_interface = {:s}'.format(json.dumps(json_interface))) # LOGGER.info('json_interface.keys = {:s}'.format(str(json_interface.keys()))) #interface = {} @@ -405,139 +407,144 @@ class NetworkInstanceHandler(_Handler): if interface_name is not None: interface_names.append(str(interface_name)) - network_instance_name = json_network_instance.get('name') - network_instance['name'] = str(network_instance_name) + network_instance_name = json_network_instance.get('name') + if network_instance is not None: + network_instance['name'] = str(network_instance_name) - network_instance_type = json_network_instance.get('type') - network_instance['type'] = str(network_instance_type) - - network_instance_adminstate = json_network_instance.get('name') - network_instance['name'] = str(network_instance_adminstate) - - #LOGGER.info('json_network_instance.keys = {:s}'.format(str(json_network_instance.keys()))) - json_protocols = json_network_instance.get('protocols', {}) - json_bgp_evpn=json_protocols.get('bgp-evpn',{}) - json_bgp_evpn_instance=json_bgp_evpn.get('srl_nokia-bgp-evpn:bgp-instance',[]) - json_bgp_vpn_instance=json_protocols.get('srl_nokia-bgp-vpn:bgp-vpn',{}) - json_bgp_vpn_2=json_bgp_vpn_instance.get('bgp-instance',[]) - #LOGGER.info('json_protocols.keys = {:s}'.format(str(json_protocols.keys()))) - bgp_protocols = json_protocols.get('srl_nokia-bgp:bgp', {}) - #LOGGER.info('bgp_protocols.keys = {:s}'.format(str(bgp_protocols.keys()))) - afi_safi_list: List[Dict] = bgp_protocols.get('afi-safi', []) - #afi_safi_list = bgp_protocols.get('afi-safi', []) - lists = [] - for afi_safi_entry in afi_safi_list: - #LOGGER.info('afi_safi_entry = {:s}'.format(json.dumps(afi_safi_entry))) - #afi_safi = {} - admin_state_afi = afi_safi_entry.get('admin-state') - afi_safi_name = afi_safi_entry.get('afi-safi-name') - if admin_state_afi is not None and afi_safi_name is not None: - #afi_safi['admin-state'] = bool(admin_state_afi) - #afi_safi['afi-safi-name'] = bool(afi_safi_name) - lists.append({'admin-state': str(admin_state_afi),'afi-safi-name': str(afi_safi_name)}) - if afi_safi_entry: - network_instance['protocols']={} - network_instance['bgp']={} - #network_instance['protocols']['bgp']={'afi-safi': lists} - network_instance['protocols'] = {'bgp': {'afi-safi': afi_safi_entry}} - - autonomous_system = bgp_protocols.get('autonomous-system') - #LOGGER.info('bgp_protocols = {:s}'.format(json.dumps(bgp_protocols))) - - bgp_protocols['autonomous-system'] = str(autonomous_system) - - group_list = bgp_protocols.get('group', []) - group_list1=[] - for group_1 in group_list: - #LOGGER.info('group = {:s}'.format(json.dumps(group_1))) - group = {} - export_policy = group_1.get('export-policy') - group_name = group_1.get('group-name') - import_policy = group_1.get('import-policy') - peer_as_number = group_1.get('peer-as') - localas = group_1.get('local-as').get('as-number') - timers=group_1.get('timers').get('minimum-advertisement-interval') - - group['export-policy'] = str(export_policy) - group['group-name'] = str(group_name) - group['import-policy'] = str(import_policy) - group['peer-as'] = int(peer_as_number) - group['local-as']={} - group['local-as']['as-number']=localas - group['timers']={} - group['timers']['minimum-advertisement-interval']=timers - - group_list1.append(group) - - afi_safi_list_2 = group_1.get('afi-safi', []) - afi_safi_list_group_2=[] - for afi_safi_group_entry in afi_safi_list_2: - group2 = {} - admin_state_group = afi_safi_group_entry.get('admin-state') - afi_safi_name_group = afi_safi_group_entry.get('afi-safi-name') - group2['admin-state'] = str(admin_state_group) - group2['afi-safi-name'] = str(afi_safi_name_group) - afi_safi_list_group_2.append(group2) - + network_instance_type = json_network_instance.get('type') + if network_instance_type is not None: + network_instance['type'] = str(network_instance_type) + + network_instance_adminstate = json_network_instance.get('admin-state') + if network_instance_adminstate is not None: + network_instance['admin-state'] = str(network_instance_adminstate) + + #LOGGER.info('json_network_instance.keys = {:s}'.format(str(json_network_instance.keys()))) + json_protocols = json_network_instance.get('protocols', {}) + json_bgp_evpn=json_protocols.get('bgp-evpn',{}) + json_bgp_evpn_instance=json_bgp_evpn.get('srl_nokia-bgp-evpn:bgp-instance',[]) + json_bgp_vpn_instance=json_protocols.get('srl_nokia-bgp-vpn:bgp-vpn',{}) + json_bgp_vpn_2=json_bgp_vpn_instance.get('bgp-instance',[]) + #LOGGER.info('json_protocols.keys = {:s}'.format(str(json_protocols.keys()))) + bgp_protocols = json_protocols.get('srl_nokia-bgp:bgp', {}) + #LOGGER.info('bgp_protocols.keys = {:s}'.format(str(bgp_protocols.keys()))) + afi_safi_list: List[Dict] = bgp_protocols.get('afi-safi', []) + #afi_safi_list = bgp_protocols.get('afi-safi', []) + lists = [] + if afi_safi_list is not None: + for afi_safi_entry in afi_safi_list: + #LOGGER.info('afi_safi_entry = {:s}'.format(json.dumps(afi_safi_entry))) + #afi_safi = {} + admin_state_afi = afi_safi_entry.get('admin-state') + afi_safi_name = afi_safi_entry.get('afi-safi-name') + + if admin_state_afi is not None and afi_safi_name is not None: + #afi_safi['admin-state'] = bool(admin_state_afi) + #afi_safi['afi-safi-name'] = bool(afi_safi_name) + lists.append({'admin-state': str(admin_state_afi), 'afi-safi-name': str(afi_safi_name)}) + if afi_safi_entry is not None: + network_instance['protocols'] = {} + network_instance['bgp'] = {} + #network_instance['protocols']['bgp']={'afi-safi': lists} + network_instance['protocols'] = {'bgp': {'afi-safi': afi_safi_entry}} + - neighbor_group_list = bgp_protocols.get('neighbor', []) - neighbor_list_inside=[] - #LOGGER.info('json_neighbor = {:s}'.format(json.dumps(json_interface))) - for neighbor_group in neighbor_group_list: - neighbor1 = {} - admin_state_neighbor = neighbor_group.get('admin-state') - peeraddress_neighbor = neighbor_group.get('peer-address') - peergroup_neighbor = neighbor_group.get('peer-group') - local_address_neighbor = neighbor_group.get('transport', {}).get('local-address') - neighbor1['admin-state'] = str(admin_state_neighbor) - neighbor1['peer-address'] = str(peeraddress_neighbor) - neighbor1['peer-group'] = str(peergroup_neighbor) - neighbor1['transport'] = {'local-address': str(local_address_neighbor)} - - neighbor2 = {} - peeraddress_neighbor_2 = neighbor_group.get('peer-address') - peergroup_neighbor_2 = neighbor_group.get('peer-group') - neighbor2['peer-address'] = str(peeraddress_neighbor_2) - neighbor2['peer-group'] = str(peergroup_neighbor_2) - - neighbor_list_inside.append((neighbor1)) - neighbor_list_inside.append(neighbor2) - - router_id = bgp_protocols.get('router-id') - - bgp_protocols['router-id'] = str(router_id) + autonomous_system = bgp_protocols.get('autonomous-system') + #LOGGER.info('bgp_protocols = {:s}'.format(json.dumps(bgp_protocols))) + + bgp_protocols['autonomous-system'] = str(autonomous_system) + + group_list = bgp_protocols.get('group', []) + group_list1 = [] + afi_safi_list_group_2 = [] # Ensure initialization outside the loop + for group_1 in group_list: + # LOGGER.info('group = {:s}'.format(json.dumps(group_1))) + group = {} + export_policy = group_1.get('export-policy') + group_name = group_1.get('group-name') + import_policy = group_1.get('import-policy') + peer_as_number = group_1.get('peer-as') + localas = group_1.get('local-as').get('as-number') + timers = group_1.get('timers').get('minimum-advertisement-interval') + + group['export-policy'] = str(export_policy) + group['group-name'] = str(group_name) + group['import-policy'] = str(import_policy) + group['peer-as'] = int(peer_as_number) + group['local-as'] = {} + group['local-as']['as-number'] = localas + group['timers'] = {} + group['timers']['minimum-advertisement-interval'] = timers + group_list1.append(group) + afi_safi_list_2 = group_1.get('afi-safi', []) + for afi_safi_group_entry in afi_safi_list_2: + group2 = {} + admin_state_group = afi_safi_group_entry.get('admin-state') + afi_safi_name_group = afi_safi_group_entry.get('afi-safi-name') + if afi_safi_list_group_2: # Check if list is not empty + group2['admin-state'] = str(admin_state_group) + group2['afi-safi-name'] = str(afi_safi_name_group) + afi_safi_list_group_2.append(group2) + + neighbor_group_list = bgp_protocols.get('neighbor', []) + neighbor_list_inside=[] + #LOGGER.info('json_neighbor = {:s}'.format(json.dumps(json_interface))) + for neighbor_group in neighbor_group_list: + neighbor1 = {} + admin_state_neighbor = neighbor_group.get('admin-state') + peeraddress_neighbor = neighbor_group.get('peer-address') + peergroup_neighbor = neighbor_group.get('peer-group') + local_address_neighbor = neighbor_group.get('transport', {}).get('local-address') + neighbor1['admin-state'] = str(admin_state_neighbor) + neighbor1['peer-address'] = str(peeraddress_neighbor) + neighbor1['peer-group'] = str(peergroup_neighbor) + neighbor1['transport'] = {'local-address': str(local_address_neighbor)} + + neighbor2 = {} + peeraddress_neighbor_2 = neighbor_group.get('peer-address') + peergroup_neighbor_2 = neighbor_group.get('peer-group') + neighbor2['peer-address'] = str(peeraddress_neighbor_2) + neighbor2['peer-group'] = str(peergroup_neighbor_2) + + neighbor_list_inside.append((neighbor1)) + neighbor_list_inside.append(neighbor2) + + router_id = bgp_protocols.get('router-id') + + bgp_protocols['router-id'] = str(router_id) - bgp_instance1_list=[] - for json_bgp_instance in json_bgp_evpn_instance: - instance1 = {} - id_evpn_bgp_instance = json_bgp_instance.get('id') - admin_state_evpn_bgp_instance = json_bgp_instance.get('admin-state') - vxlan_interface_evpn_bgp_instance = json_bgp_instance.get('vxlan-interface') - evi_evpn_bgp_instance = json_bgp_instance.get('evi', {}) - instance1['id'] = int(id_evpn_bgp_instance) - instance1['admin-state'] = str(admin_state_evpn_bgp_instance) - instance1['vxlan-interface'] = str(vxlan_interface_evpn_bgp_instance) - instance1['evi'] =int(evi_evpn_bgp_instance) - bgp_instance1_list.append(instance1) - bgp_instance2_list=[] - for json_bgp_instance2 in json_bgp_vpn_2: - #LOGGER.info('json_bgp_instance2 = {:s}'.format(json.dumps(json_bgp_instance2))) - instance2 = {} - id_vpn_bgp_instance = json_bgp_instance2.get('id') - export_target_evpn_bgp_instance = json_bgp_instance2.get('route-target',{}).get('export-rt') - import_target_evpn_bgp_instance = json_bgp_instance2.get('route-target',{}).get('import-rt') - instance2['id'] = int(id_vpn_bgp_instance) - instance2['route-target'] = {} - instance2['route-target']['export-rt'] =str(export_target_evpn_bgp_instance) - instance2['route-target']['import-rt'] =str(import_target_evpn_bgp_instance) - bgp_instance2_list.append(instance2) - - - - if len(network_instance) == 0: - continue - - resource_key = '/network-instance[{:s}]'.format(network_instance_name) - response.append((resource_key,vxlaninterface_names,network_instance_type,network_instance_adminstate, interface_names,network_instance_name,lists,autonomous_system,group_list1,afi_safi_list_group_2,neighbor_list_inside,router_id,bgp_instance1_list,bgp_instance2_list)) - - return response + bgp_instance1_list=[] + for json_bgp_instance in json_bgp_evpn_instance: + instance1 = {} + id_evpn_bgp_instance = json_bgp_instance.get('id') + admin_state_evpn_bgp_instance = json_bgp_instance.get('admin-state') + vxlan_interface_evpn_bgp_instance = json_bgp_instance.get('vxlan-interface') + evi_evpn_bgp_instance = json_bgp_instance.get('evi', {}) + instance1['id'] = int(id_evpn_bgp_instance) + instance1['admin-state'] = str(admin_state_evpn_bgp_instance) + instance1['vxlan-interface'] = str(vxlan_interface_evpn_bgp_instance) + instance1['evi'] =int(evi_evpn_bgp_instance) + bgp_instance1_list.append(instance1) + bgp_instance2_list=[] + for json_bgp_instance2 in json_bgp_vpn_2: + #LOGGER.info('json_bgp_instance2 = {:s}'.format(json.dumps(json_bgp_instance2))) + instance2 = {} + id_vpn_bgp_instance = json_bgp_instance2.get('id') + export_target_evpn_bgp_instance = json_bgp_instance2.get('route-target',{}).get('export-rt') + import_target_evpn_bgp_instance = json_bgp_instance2.get('route-target',{}).get('import-rt') + instance2['id'] = int(id_vpn_bgp_instance) + instance2['route-target'] = {} + instance2['route-target']['export-rt'] =str(export_target_evpn_bgp_instance) + instance2['route-target']['import-rt'] =str(import_target_evpn_bgp_instance) + bgp_instance2_list.append(instance2) + + + + if len(network_instance) == 0: + continue + + #resource_key = '/network-instance[{:s}]'.format(network_instance_name) + #response.append((resource_key,vxlaninterface_names,network_instance_type,network_instance_adminstate, interface_names,network_instance_name,lists,autonomous_system,group_list1,afi_safi_list_group_2,neighbor_list_inside,router_id,bgp_instance1_list,bgp_instance2_list)) + resource_key = '/network-instance[{:s}]'.format(network_instance_name) + response.append((resource_key, network_instance)) + return response diff --git a/src/device/service/drivers/gnmi_nokia_srlinux/handlers/TunnelInterface.py b/src/device/service/drivers/gnmi_nokia_srlinux/handlers/TunnelInterface.py index 18770f3f2a680bff25a469d271db149eaf71f67d..bbbd32de6d373fd919b9098bf0ecb6e658ae5f13 100644 --- a/src/device/service/drivers/gnmi_nokia_srlinux/handlers/TunnelInterface.py +++ b/src/device/service/drivers/gnmi_nokia_srlinux/handlers/TunnelInterface.py @@ -23,7 +23,8 @@ class TunnelInterfaceHandler(_Handler): return '/tunnel-interface' def get_path(self) -> str: - return '/tunnel-interface' + return '/srl_nokia-tunnel-interfaces:tunnel-interface' + #return '/tunnel-interface' def compose(self, resource_key: str, resource_value: Dict, delete: bool = False) -> Tuple[str, str]: if_name = str(resource_value['if_name']) @@ -63,9 +64,9 @@ class TunnelInterfaceHandler(_Handler): for json_tunnel in json_tunnel_list: tunnel_interface1 = {} name = json_tunnel.get('name', {}) - tunnel_interface1['name']=str(name) + #tunnel_interface1['name']=str(name) json_vxlan_list = json_tunnel.get('vxlan-interface', []) - lists = [] + lists = tunnel_interface1.setdefault('vxlan-interface', []) for json_vxlan1 in json_vxlan_list: tunnel_interface2={} index = json_vxlan1.get('index', {}) @@ -79,10 +80,10 @@ class TunnelInterfaceHandler(_Handler): lists.append(tunnel_interface2) - if len(lists) == 0: - continue + # if len(tunnel_interface1 ) == 0: + # continue - resource_key = '/tunnel-interface' - response.append((resource_key, lists)) + resource_key = '/tunnel-interface[{:s}]'.format(name) + response.append((resource_key, tunnel_interface1 )) return response diff --git a/src/device/service/drivers/gnmi_nokia_srlinux/handlers/__init__.py b/src/device/service/drivers/gnmi_nokia_srlinux/handlers/__init__.py index 69b43247da4f0afb86fc9b54f829737bc0ece6ae..6c8c4555926daa437b6b472ceb97db7ce54de810 100644 --- a/src/device/service/drivers/gnmi_nokia_srlinux/handlers/__init__.py +++ b/src/device/service/drivers/gnmi_nokia_srlinux/handlers/__init__.py @@ -124,18 +124,18 @@ def get_handler( def get_path(resource_key: str) -> str: handler = get_handler(resource_key=resource_key) path = handler.get_path() - LOGGER.debug("get_path: resource_key=%s, path=%s", resource_key, path) + #LOGGER.debug("get_path: resource_key=%s, path=%s", resource_key, path) return path -def parse(str_path: str, value: Union[Dict, List]): - if str_path == '/': str_path = '/{:s}'.format(list(value.keys())[0]) - handler = get_handler(path=str_path) - LOGGER.debug("parse: str_path=%s, value=%s", str_path, value) +def parse(resource_key: str, str_path: str, value: Union[Dict, List]): + #if str_path == '/': str_path = '/{:s}'.format(list(value.keys())[0]) + handler = get_handler(resource_key=resource_key) + #LOGGER.debug("parse: str_path=%s, value=%s", str_path, value) return handler.parse(value) def compose(resource_key: str, resource_value: Union[Dict, List], delete: bool = False) -> Tuple[str, str]: handler = get_handler(resource_key=resource_key) - LOGGER.debug("compose: resource_key=%s, resource_value=%s, delete=%s", resource_key, resource_value, delete) + #LOGGER.debug("compose: resource_key=%s, resource_value=%s, delete=%s", resource_key, resource_value, delete) return handler.compose(resource_key, resource_value, delete=delete) #def get_path(resource_key : str) -> str: diff --git a/src/device/service/drivers/gnmi_nokia_srlinux/handlers/json_data = {.json b/src/device/service/drivers/gnmi_nokia_srlinux/handlers/json_data = {.json new file mode 100644 index 0000000000000000000000000000000000000000..6fffde5a5178db7fe1f5c74d5dec8c08722718c4 --- /dev/null +++ b/src/device/service/drivers/gnmi_nokia_srlinux/handlers/json_data = {.json @@ -0,0 +1,2768 @@ + json_data = { + "features": [ + "aaa-spiffe-id", + "admin-user-roles", + "anycast-gw", + "arp-nd-datapath-programming", + "bgp-add-paths", + "bgp-afi-safi-policy", + "bgp-app-warm-restart", + "bgp-auth-password", + "bgp-cfg-afi-safi-list", + "bgp-graceful-restart-gaps", + "bgp-ipv6-next-hop-tunnel-resolution", + "bgp-local-as-container-iso-list", + "bgp-max-ecmp-hash-buckets", + "bgp-mtu-discovery", + "bgp-prefix-limit", + "bgp-restart-max-wait", + "bgp-rib-afi-safi-list", + "bgp-rib-afi-safi-route", + "bgp-single-hop-connected-check", + "bgp-unnumbered-peers", + "bridged", + "bt-evpn-vlan-aware-bundle-interop", + "cam-cammgr-thread-programming", + "cam-multithread-programming", + "cli-plugin-authorization", + "dac-link-training", + "dhcp-relay-fqdn", + "dot1p-classifier-rewrite", + "dot1q-vlan-ranges", + "dynamic-mcid", + "dynamic-tcam", + "event-handler", + "evpn", + "evpn-advertise-arp-nd-only-with-mac-table-entry", + "evpn-ifl-unequal-ecmp", + "evpn-mac-ip-adv-arp-nd-ext-comm", + "evpn-mgr-warm-restart", + "evpn-mh-ip-aliasing", + "evpn-mh-manual-alg", + "evpn-mh-pref-alg", + "evpn-mh-single-active", + "evpn-mh-virtual-es", + "factory-reset", + "fixed", + "future-23-10", + "future-23-7", + "gnmi-services", + "gnmi-union-replace", + "gnoi-healthz", + "ingress-subif-policing", + "interface-references", + "ip-acl-dscp-set", + "ip-qos-multifield", + "ipv4-unnumbered", + "ipv6", + "irb-interface", + "isis-level-database", + "isis-lsdb", + "isis-mi", + "isis-mt", + "isis-nsf", + "l2-mac-learn-mgr-warm-restart", + "l2-mac-mgr-warm-restart", + "l2-proxy-arp", + "l2-proxy-arp-nd-control-flood-on-evpn", + "l2-proxy-arp-nd-warm-restart", + "l2-proxy-nd", + "l2-static-mac-mgr-warm-restart", + "l2cp-transparency", + "l3-proxy-arp", + "l3-proxy-nd", + "lacp-fallback", + "lag", + "license", + "load-persistent-passwords-at-startup", + "mcid-mgr-warm-restart", + "mgmt-server-app-warm-restart", + "mirroring", + "mirroring-intf-stats", + "named-queues-and-named-fcs", + "packet-tracer", + "platform-7220-d2", + "qos-high-threshold-system-limit", + "ra-guard", + "reload-delay", + "route-leaking", + "routing-policy-bgp-med", + "routing-policy-named-statements", + "scheduler-policies", + "segment-routing-adjacency-sid", + "segment-routing-shared-sid", + "snmp-mib-bgp", + "snmp-mib-chassis", + "snmp-mib-interface", + "storm-control", + "subif-acl-policer", + "subif-policer", + "tools-force-pwd-change", + "trident3", + "unequal-ecmp", + "unified-forwarding-tables", + "virtual-ip-discovery", + "vlan-id-any", + "vlan-tpid", + "vxlan", + "vxlan-mgr-warm-restart", + "vxlan-stats", + "warm-reboot" + ], + "srl_nokia-configuration:configuration": { + "last-change": "2024-03-08T15:03:55.418Z", + "max-checkpoints": 10, + "max-candidates": 10, + "idle-timeout": 10080, + "auto-checkpoint": false, + "checkpoint": [ + { + "id": 0, + "name": "clab-initial", + "comment": "set by containerlab", + "created": "2024-03-08T15:03:57.451Z", + "version": "v23.10.1", + "tag": "v23.10.1-218-ga3fc1bea5a", + "username": "srlinux", + "size": "78425" + } + ], + "commit": [ + { + "id": 1, + "type": "shared", + "name": "default", + "status": "complete", + "username": "__internal__", + "started": "2024-03-08T15:03:47.557Z", + "ended": "2024-03-08T15:03:50.063Z" + }, + { + "id": 2, + "type": "shared", + "name": "default", + "status": "complete", + "username": "root", + "started": "2024-03-08T15:03:55.162Z", + "ended": "2024-03-08T15:03:55.418Z" + } + ] + }, + "srl_nokia-aaa:aaa": { + "authentication": { + "exit-on-reject": false, + "idle-timeout": 7200, + "authentication-method": [ + "local" + ], + "admin-user": { + "password": "$ar2$aOvsuj0ALlU=$r750fMa3ZEA/Di8dIfU2fQ==", + "last-successful-login": "2024-03-11T14:52:11.551Z" + }, + "linuxadmin-user": { + "password": "$6$Ni233gqiuJ9zarHl$ZKtMh/vEvlY7XpHSYSJVrFNpUDeM/dsfaxK6csljO5X3.ImsDn8yiOcPASsTNpa1r6XrVlzrpnlJKqYIK0gvO1" + }, + "session": [ + { + "id": 91, + "username": "admin", + "service-name": "srlinux-gnmi", + "authentication-method": "local", + "tty-name": "", + "remote-host": "", + "login-time": "2024-03-11T14:51:04.510Z" + }, + { + "id": 95, + "username": "admin", + "service-name": "srlinux-gnmi", + "authentication-method": "local", + "tty-name": "", + "remote-host": "", + "login-time": "2024-03-11T14:51:39.927Z" + }, + { + "id": 97, + "username": "admin", + "service-name": "srlinux-gnmi", + "authentication-method": "local", + "tty-name": "", + "remote-host": "", + "login-time": "2024-03-11T14:52:11.551Z" + }, + { + "id": 98, + "username": "admin", + "service-name": "srlinux-gnmi", + "authentication-method": "local", + "tty-name": "", + "remote-host": "", + "login-time": "2024-03-11T14:52:11.551Z" + } + ], + "password": { + "hash-method": "ar2", + "aging": 0, + "change-on-first-login": false, + "history": 0, + "require-ntp-sync": true, + "complexity-rules": { + "minimum-length": 1, + "maximum-length": 1023, + "minimum-lowercase": 0, + "minimum-uppercase": 0, + "minimum-numeric": 0, + "minimum-special-character": 0, + "allow-username": true + }, + "lockout-policy": { + "attempts": 0, + "time": 1, + "lockout": 15 + } + } + }, + "accounting": { + "accounting-method": [ + "local" + ] + }, + "server-group": [ + { + "name": "local", + "type": "srl_nokia-aaa-types:local", + "timeout": 10, + "priv-lvl-authorization": false + } + ] + }, + "srl_nokia-keychains:authentication": {}, + "srl_nokia-system-protocols:protocols": {}, + "srl_nokia-boot:boot": { + "autoboot": { + "oper-state": "inactive", + "timeout": 3600, + "attempts": 3, + "interface": "mgmt0", + "client-id": "serial" + } + }, + "srl_nokia-interfaces-l2cp:l2cp-transparency": { + "l2cp-statistics": { + "total-in-packets": "8617", + "total-in-discarded-packets": "0", + "total-in-tunneled-packets": "0", + "total-in-trap-to-cpu-packets": "8617", + "lldp": { + "in-tunneled-packets": "0", + "in-trap-to-cpu-packets": "8617" + }, + "lacp": { + "in-tunneled-packets": "0", + "in-trap-to-cpu-packets": "0" + }, + "xstp": { + "in-tunneled-packets": "0", + "in-trap-to-cpu-packets": "0" + }, + "dot1x": { + "in-tunneled-packets": "0", + "in-trap-to-cpu-packets": "0" + }, + "ptp": { + "in-tunneled-packets": "0", + "in-trap-to-cpu-packets": "0" + } + } + }, + "srl_nokia-lacp:lacp": {}, + "srl_nokia-lldp:lldp": { + "admin-state": "enable", + "hello-timer": "30", + "hold-multiplier": 4, + "system-name": "leaf1", + "system-description": "SRLinux-v23.10.1-218-ga3fc1bea5a leaf1 5.15.0-97-generic #107-Ubuntu SMP Wed Feb 7 13:26:48 UTC 2024", + "chassis-id": "1A:A2:00:FF:00:00", + "chassis-id-type": "MAC_ADDRESS", + "statistics": { + "frame-in": "8617", + "frame-out": "25850", + "frame-error-in": "0", + "frame-discard": "0", + "tlv-discard": "0", + "tlv-unknown": "0", + "tlv-accepted": "60319", + "entries-aged-out": "0" + }, + "interface": [ + { + "name": "ethernet-1/1", + "admin-state": "enable", + "oper-state": "up", + "statistics": { + "frame-in": "0", + "frame-out": "8616", + "frame-error-in": "0", + "frame-discard": "0", + "tlv-discard": "0", + "tlv-unknown": "0", + "frame-error-out": "0" + } + }, + { + "name": "ethernet-1/49", + "admin-state": "enable", + "oper-state": "up", + "statistics": { + "frame-in": "8617", + "frame-out": "8617", + "frame-error-in": "0", + "frame-discard": "0", + "tlv-discard": "0", + "tlv-unknown": "0", + "frame-error-out": "0" + }, + "neighbor": [ + { + "id": "1A:94:02:FF:00:00", + "first-message": "2024-03-08T15:03:55.946Z", + "last-update": "2024-03-11T14:51:42.350Z", + "system-name": "spine1", + "system-description": "SRLinux-v23.10.1-218-ga3fc1bea5a spine1 5.15.0-97-generic #107-Ubuntu SMP Wed Feb 7 13:26:48 UTC 2024", + "chassis-id": "1A:94:02:FF:00:00", + "chassis-id-type": "MAC_ADDRESS", + "port-id": "ethernet-1/1", + "port-id-type": "INTERFACE_NAME", + "port-description": "", + "capability": [ + { + "name": "srl_nokia-lldp-types:ROUTER", + "enabled": true + } + ] + } + ] + }, + { + "name": "mgmt0", + "admin-state": "enable", + "oper-state": "up", + "statistics": { + "frame-in": "0", + "frame-out": "8617", + "frame-error-in": "0", + "frame-discard": "0", + "tlv-discard": "0", + "tlv-unknown": "0", + "frame-error-out": "1" + } + } + ] + }, + "srl_nokia-mtu:mtu": { + "default-port-mtu": 9232, + "default-l2-mtu": 9232, + "default-ip-mtu": 1500, + "min-path-mtu": 552 + }, + "srl_nokia-system-name:name": { + "host-name": "leaf1" + }, + "srl_nokia-gnmi-server:gnmi-server": { + "admin-state": "enable", + "timeout": 7200, + "rate-limit": 65000, + "session-limit": 20, + "commit-confirmed-timeout": 0, + "commit-save": false, + "include-defaults-in-config-only-responses": false, + "trace-options": [ + "request", + "response", + "common" + ], + "network-instance": [ + { + "name": "mgmt", + "admin-state": "enable", + "oper-state": "up", + "use-authentication": true, + "tls-profile": "clab-profile", + "port": 57400, + "services": [ + "srl_nokia-gnmi-server:gnmi" + ], + "source-address": [ + "::" + ] + } + ], + "unix-socket": { + "admin-state": "enable", + "oper-state": "up", + "use-authentication": true, + "socket-path": "/opt/srlinux/var/run/sr_gnmi_server", + "services": [ + "srl_nokia-gnmi-server:gnmi", + "srl_nokia-gnmi-server:gnoi" + ] + } + }, + "srl_nokia-tls:tls": { + "server-profile": [ + { + "name": "clab-profile", + "key": "$aes1$ATCyNz1VYoUafG8=$Y1bnicVFVnHy/KlyTF4QYRwTJ5SVyEmPcZvKsx04lWIE+f3Mz1wI5LlEspzDmbM+OpscmPVeMKXpOZwKI7UM770QwG06lhpy9dNolQqAJpVYVKeFSObRzOy0qWyyuIBwDNTr7SfYlHB07ljhCredaUsEpNejN7cCc3xv2eQRPyua+NQhuI6Ms2M6voZkUoj14m3GiB9IUUqLaAEQpw0xcpXJ1zXeQwpK7oSN2d0ehzop1dGWWCi9bFdjk83UOj/w/gg5VAAmeDEeyR6aNJqa4oO/nqskggxfzvoWLkAojE3+/61+ccxWCL7BbEWeVVtkBTuL4fWAc5dVIqeH9BVODgXhCLNkyVcS4xBX1ObdIPs4+7Tmng91LHkC92N4MkECeThCUigJ/1qnlXA+ht9dK6sRZe85f6ltqWUXck87hCbtoucBLAZfXkKCTiaTLY5rgHRvMqAwiWSwelfhn0IFycxD+0UcdxaAR+6cIP3XBYeWSQWTCjFFFfOlFDX447npLkgXGTgag1id2ysZSxCZYuoUIVF79RdcZaTIruFpIyAcPz8d6qUqNg6d/TB5+a2fmR8zE9OqEFl3pYXqt93Q8Rsf9Cm79WClCEH7hqKn2wQO1B0VjNcCaLJoakaXLmkrhXPoUNHNjK3P5YiuNEsmPHl7umVuhJTbcJLl4rt+djYnfbwRxmtpnzvAbE+9AMv68CRjRBgmz4xq6fLzQrEPLwHOx6V1KRmQNpvfvfe4zbPmZ4fWcFXgTDOzRZJn1VTALvmE7Q2ixJgWp7Sn7aMzlvhh3J9LsienjVT8jxIDjXqTTrN48NH6O1gPnW7FmhFt3DCFltzKDwujODbaOOLBJGII6XIZtFF2+CoVmVw7Q0GKi6sgqATLBoK87E/cfic2EnSHHEBvoPXfYh/iGKBx2BHqun/W1Yef8fHKwcwFUIZCqWS5oqZFnHlUQ7hkSktLDFVDJtTYmYoJHh4jO58bv/LdB1B2Y6cmU9ctTevkWRhwWeKdcMJkWm1U/2SViYJ1za1vvYFmycKt6LADyvPrvusIH2PF7JI9TcfaBMjwlnD4MyTMFappsv1j5IdJKarPGtA+TBZhT6VLUqiaYs6WAomkPKOqQJWnm7Yz/+JmMBzdM2Xf9oXihNxix6aYguDgxgJuJt0WUUcBeGf/DEsv859LI4Ai2cGjS5jtXrBffQ0/5/Tc6kDzMCrWN/Xrz8SdAfk+SPNRTuMx2diviV1Fg9qvbK9xoVpFnKS9If7StEsoidNhKNfZiTpx8UJaepkoZfSL0OsX75I0dunW0VBRIj6DelpXxi73A6xw7volu6gMHE1uPOgAs7mpAEk/j4pWPQsvdEyfbxqh78Ac8JS0tYVYKuXeuq4UeXTEaP8qwOkz2WautbkhRxtSABYW0EDjGdeMqeEgeMYaDUAR986tbASd0+QZNoNkS8TC8ewxzaupbVGddbndcKgsy/VLYcTS5AsqlHs5lAgZgWjo4/eP4gIh9zgU+7+dmJOz2N4Z77aY4UknNxzDx9u0t/ZgAE/EGdiQW4dpKtNlrU55JoccEnIb97Mdx/Tz7Ghl/jUrOa2GvtqV7LAFAVePwxHslBJgI+bY32SHxavPBCyImdef0qf55KDUBUyLLE6PZAIaR3mz+OgLyGXoAaOm4YtagAqAXBTX4zr6aZZVevSUtzgC3c2I8Ul66XALpEX0stbdhn2koYcxDsyIaseUEPbju5WUqxVfrmPCNqiC1rwJHdS4XS79w4is++Tr7SIc5bj09OOwZbtrqCjeedFhYi7vfcNymcoYIPVg2xH6e1ysP0yCuML2HjoFS5b7wIxASnEL5vbH0ev33TfprrMBTk8Nsunxiq4z4lvjwQAa5O/rcs5S4Pd4z8I+B1mAyeqdHUlwYu9rjRlDTn9uKoqewnPMezbTLJ7lxlrn0vT7NuByonS8Cu2zM/UqLRcUt01wq+roNeNVhW3+EyV1x55LwtgyUFSN3UBnK8bB3SFR2GnRxWAEZ/7eRxxbHaKDk/So5qoCv9X5Hqlao6HAXMGfZ7pfr1MRLrbjf+UtmfKqwZk29y1IJ2cLBe7YDXYSKEirAH2d0u/NO18D0PF970evq1yb4OO07mFIVt+CVtjb4MSFpNtwQCVxUGGeZ08k4UZROJ7OqguyskiRmwxh9UfLjOJ6zLSlcABGC0QU+4D0tgX65vwIQ5NwSliywTOjyeWixEms/xc0BfT20ij0CzCfmMDiXYJP", + "certificate": "-----BEGIN CERTIFICATE-----\nMIID1DCCArygAwIBAgICBnowDQYJKoZIhvcNAQELBQAwUjELMAkGA1UEBhMCVVMx\nCTAHBgNVBAcTADEVMBMGA1UEChMMY29udGFpbmVybGFiMQkwBwYDVQQLEwAxFjAU\nBgNVBAMTDWV2cG4wMSBsYWIgQ0EwHhcNMjQwMzA4MTUwMzM4WhcNMjUwMzA4MTUw\nMzM4WjBUMQswCQYDVQQGEwJVUzEJMAcGA1UEBxMAMRUwEwYDVQQKEwxjb250YWlu\nZXJsYWIxCTAHBgNVBAsTADEYMBYGA1UEAxMPbGVhZjEuZXZwbjAxLmlvMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+N+jjl88be/Dg1GJ76OFR2dr2kEB\nWaSAYbuYcBq8DgybocEgoq3qmb2sOM272xOfB11b00A5Z7HdFvSNO6pefVegXFux\nM3YWRBBSJOMsiBl1G1/NRhNrMqbnWKOiIn8pHauHwhuOWVdFEwrbYPqnyhh0uvFF\n7ZvDuCq/aqL7hLMNIfGr9348s2lVZD17t9B2UAm/tjGhOg5pSRYRwNphcJ8SNzre\nGkvJtMNuGe2mBYqJjI7v8J6T9BAXtiKE/tmnvBAluBAf+p+xRYKOOIJnJU4NowBv\nFEqixwKkrHBaXinJ2msj+6j1duhg0NS2R7+s4/L1YxfE18V06ArbXR6nmwIDAQAB\no4GxMIGuMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB\nBQUHAwEwDgYDVR0OBAcEBQECAwQGMB8GA1UdIwQYMBaAFPClEVv4DfVq7CaMZ7zj\nSro/N2/rMEwGA1UdEQRFMEOCBWxlYWYxghFjbGFiLWV2cG4wMS1sZWFmMYIPbGVh\nZjEuZXZwbjAxLmlvhwSsFBRmhxAgAQFyACAAIAAAAAAAAAACMA0GCSqGSIb3DQEB\nCwUAA4IBAQCOaBP6aAdWEx2aSrjfFIk46RxPulJOcwBgpBvLYRYYlbL6I5ky81Po\nUbP4NYyFjIvAqTH6mbkbIZ/qXbjdw0CylWHYdOlgKfGxUNZ9j/tCpWewjv5PkZtV\nIF9W/k2P9g+Gk77no0OR+wHGdEZfyPfQwTKNQU2YSGQJzj14gYJbYv9WsBnTTtwl\nZULNf89XTcEAXe15EYv90ItEzuCao6ky7ZzEElmtadxrDqSFVQJnfZYIxKftziRQ\nNpQ8eNAvN+ApAa+u6TYztULGzivX9hy/T7zDABnaPhdBsCUO14COOi7VY6ZeHMM1\nOCK0zX+xEhiPxqFW/IoU2DqPVekPU9s9\n-----END CERTIFICATE-----\n", + "authenticate-client": false, + "cipher-list": [ + "srl_nokia-tls:ecdhe-ecdsa-aes256-gcm-sha384", + "srl_nokia-tls:ecdhe-ecdsa-aes128-gcm-sha256", + "srl_nokia-tls:ecdhe-rsa-aes256-gcm-sha384", + "srl_nokia-tls:ecdhe-rsa-aes128-gcm-sha256" + ] + } + ] + }, + "srl_nokia-json-rpc:json-rpc-server": { + "admin-state": "enable", + "commit-confirmed-timeout": 0, + "network-instance": [ + { + "name": "mgmt", + "http": { + "admin-state": "enable", + "oper-state": "up", + "use-authentication": true, + "session-limit": 10, + "port": 80, + "source-address": [ + "::" + ] + }, + "https": { + "admin-state": "enable", + "oper-state": "up", + "use-authentication": true, + "session-limit": 10, + "port": 443, + "tls-profile": "clab-profile", + "source-address": [ + "::" + ] + } + } + ], + "unix-socket": { + "admin-state": "disable", + "oper-state": "down", + "use-authentication": true, + "socket-path": "" + } + }, + "srl_nokia-system-bridge-table:bridge-table": { + "mac-learning": { + "mac-relearn-only": false + }, + "mac-limit": { + "maximum-entries": 156000, + "warning-threshold-pct": 95 + }, + "statistics": { + "active-entries": "0", + "total-entries": "0", + "failed-entries": "0", + "mac-type": [ + { + "type": "static", + "active-entries": "0", + "total-entries": "0", + "failed-entries": "0" + }, + { + "type": "duplicate", + "active-entries": "0", + "total-entries": "0", + "failed-entries": "0" + }, + { + "type": "learnt", + "active-entries": "0", + "total-entries": "0", + "failed-entries": "0" + }, + { + "type": "irb-interface", + "active-entries": "0", + "total-entries": "0", + "failed-entries": "0" + }, + { + "type": "evpn", + "active-entries": "0", + "total-entries": "0", + "failed-entries": "0" + }, + { + "type": "evpn-static", + "active-entries": "0", + "total-entries": "0", + "failed-entries": "0" + }, + { + "type": "irb-interface-anycast", + "active-entries": "0", + "total-entries": "0", + "failed-entries": "0" + }, + { + "type": "proxy-anti-spoof", + "active-entries": "0", + "total-entries": "0", + "failed-entries": "0" + }, + { + "type": "reserved", + "active-entries": "0", + "total-entries": "0", + "failed-entries": "0" + }, + { + "type": "eth-cfm", + "active-entries": "0", + "total-entries": "0", + "failed-entries": "0" + } + ] + } + }, + "srl_nokia-dns:dns": { + "oper-state": "up", + "network-instance": "mgmt", + "server-list": [ + "84.88.62.194" + ] + }, + "srl_nokia-load-balancing:load-balancing": { + "hash-options": { + "hash-seed": 0, + "destination-address": true, + "destination-port": true, + "ipv6-flow-label": false, + "protocol": true, + "source-address": true, + "source-port": true, + "vlan": true, + "mpls-label-stack": false + } + }, + "srl_nokia-ntp:clock": { + "timezone": "UTC" + }, + "srl_nokia-snmp:snmp": { + "community": "$aes1$AWCxS35D1SWo6m8=$1ZTaOX6kE3OwF9Vuv+RQnQ==", + "network-instance": [ + { + "name": "mgmt", + "admin-state": "enable", + "oper-state": "up" + } + ] + }, + "srl_nokia-ssh:ssh-server": { + "host-key": { + "preserve": true + }, + "network-instance": [ + { + "name": "mgmt", + "admin-state": "enable", + "timeout": 0, + "rate-limit": 20, + "oper-state": "up", + "protocol-version": 2 + } + ] + }, + "srl_nokia-system-banner:banner": { + "login-banner": "................................................................\n: Welcome to Nokia SR Linux! :\n: Open Network OS for the NetOps era. :\n: :\n: This is a freely distributed official container image. :\n: Use it - Share it :\n: :\n: Get started: https://learn.srlinux.dev :\n: Container: https://go.srlinux.dev/container-image :\n: Docs: https://doc.srlinux.dev/23-10 :\n: Rel. notes: https://doc.srlinux.dev/rn23-10-1 :\n: YANG: https://yang.srlinux.dev/release/v23.10.1 :\n: Discord: https://go.srlinux.dev/discord :\n: Contact: https://go.srlinux.dev/contact-sales :\n................................................................\n" + }, + "srl_nokia-system-info:information": { + "description": "SRLinux-v23.10.1-218-ga3fc1bea5a 7220 IXR-D2 Copyright (c) 2000-2020 Nokia. Kernel 5.15.0-97-generic #107-Ubuntu SMP Wed Feb 7 13:26:48 UTC 2024", + "current-datetime": "2024-03-11T14:52:11.490Z", + "last-booted": "2024-03-08T15:03:49.013Z", + "version": "v23.10.1-218-ga3fc1bea5a" + }, + "srl_nokia-logging:logging": { + "subsystem-facility": "local6", + "use-fqdn": false, + "console": { + "format": "%TIMEGENERATED:::date-rfc3339% %HOSTNAME% %SYSLOGTAG%%MSG:::sp-if-no-1st-sp%%MSG:::drop-last-lf%\\n" + }, + "buffer": [ + { + "buffer-name": "messages", + "persist": 0, + "format": "%TIMEGENERATED:::date-rfc3339% %HOSTNAME% %SYSLOGTAG%%MSG:::sp-if-no-1st-sp%%MSG:::drop-last-lf%\\n", + "rotate": 3, + "size": "10000000", + "facility": [ + { + "facility-name": "local6", + "priority": { + "match-above": "informational" + } + } + ] + }, + { + "buffer-name": "system", + "persist": 0, + "format": "%TIMEGENERATED:::date-rfc3339% %HOSTNAME% %SYSLOGTAG%%MSG:::sp-if-no-1st-sp%%MSG:::drop-last-lf%\\n", + "rotate": 4, + "size": "10M", + "facility": [ + { + "facility-name": "auth", + "priority": { + "match-above": "warning" + } + }, + { + "facility-name": "cron", + "priority": { + "match-above": "warning" + } + }, + { + "facility-name": "daemon", + "priority": { + "match-above": "warning" + } + }, + { + "facility-name": "ftp", + "priority": { + "match-above": "warning" + } + }, + { + "facility-name": "kern", + "priority": { + "match-above": "warning" + } + }, + { + "facility-name": "lpr", + "priority": { + "match-above": "warning" + } + }, + { + "facility-name": "mail", + "priority": { + "match-above": "warning" + } + }, + { + "facility-name": "news", + "priority": { + "match-above": "warning" + } + }, + { + "facility-name": "syslog", + "priority": { + "match-above": "warning" + } + }, + { + "facility-name": "user", + "priority": { + "match-above": "warning" + } + }, + { + "facility-name": "uucp", + "priority": { + "match-above": "warning" + } + }, + { + "facility-name": "local0", + "priority": { + "match-above": "warning" + } + }, + { + "facility-name": "local1", + "priority": { + "match-above": "warning" + } + }, + { + "facility-name": "local2", + "priority": { + "match-above": "warning" + } + }, + { + "facility-name": "local3", + "priority": { + "match-above": "warning" + } + }, + { + "facility-name": "local4", + "priority": { + "match-above": "warning" + } + }, + { + "facility-name": "local5", + "priority": { + "match-above": "warning" + } + }, + { + "facility-name": "local7", + "priority": { + "match-above": "warning" + } + } + ] + } + ], + "file": [ + { + "file-name": "messages", + "directory": "/var/log/srlinux/file", + "format": "%TIMEGENERATED:::date-rfc3339% %HOSTNAME% %SYSLOGTAG%%MSG:::sp-if-no-1st-sp%%MSG:::drop-last-lf%\\n", + "rotate": 3, + "size": "10000000", + "facility": [ + { + "facility-name": "local6", + "priority": { + "match-above": "warning" + } + } + ] + } + ] + }, + "srl_nokia-system-multicast:multicast": { + "multicast-ids": { + "statistics": { + "maximum-ids": 16380, + "current-usage": "0", + "total-pending": "0", + "multicast-id-user-type": [ + { + "user": "mac-vrf", + "current-usage": "0", + "total-pending": "0" + }, + { + "user": "vxlan-interface", + "current-usage": "0", + "total-pending": "0" + }, + { + "user": "l2-proxy-arp-nd", + "current-usage": "0", + "total-pending": "0" + }, + { + "user": "mfib", + "current-usage": "0", + "total-pending": "0" + }, + { + "user": "mac-vrf-bgp-evpn", + "current-usage": "0", + "total-pending": "0" + } + ] + } + } + }, + "srl_nokia-app-mgmt:app-management": { + "application": [ + { + "name": "aaa_mgr", + "pid": 1492, + "state": "running", + "last-change": "2024-03-08T15:03:44.627Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_aaa_mgr", + "search-command": "./sr_aaa_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-aaa", + "srl_nokia-aaa-password", + "srl_nokia-aaa-types", + "srl_nokia-gnsi-authz" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "acl_mgr", + "pid": 1521, + "state": "running", + "last-change": "2024-03-08T15:03:44.627Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_acl_mgr", + "search-command": "./sr_acl_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-acl", + "srl_nokia-policy-forwarding", + "srl_nokia-packet-match-types", + "srl_nokia-acl-qos", + "srl_nokia-acl-policers" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "app_mgr", + "pid": 1385, + "state": "running", + "last-change": "2024-03-08T15:03:45.154Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_app_mgr", + "search-command": "./sr_app_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold" + ], + "restricted-operations": [ + "start", + "stop", + "restart", + "quit", + "kill" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-app-mgmt" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "arp_nd_mgr", + "pid": 1561, + "state": "running", + "last-change": "2024-03-08T15:03:44.627Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_arp_nd_mgr", + "search-command": "./sr_arp_nd_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-interfaces-nbr", + "srl_nokia-interfaces-nbr-virtual-ip-discovery", + "srl_nokia-interfaces-router-adv" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "bfd_mgr", + "state": "waiting-for-config", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_bfd_mgr", + "search-command": "./sr_bfd_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-bfd", + "srl_nokia-micro-bfd" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "bgp_mgr", + "pid": 2595, + "state": "running", + "last-change": "2024-03-08T15:03:47.890Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_bgp_mgr", + "search-command": "./sr_bgp_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-bgp", + "srl_nokia-bgp-vpn", + "srl_nokia-rib-bgp", + "srl_nokia-system-network-instance-bgp-vpn", + "srl_nokia-system-protocols" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "chassis_mgr", + "pid": 1597, + "state": "running", + "last-change": "2024-03-08T15:03:44.627Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_chassis_mgr", + "search-command": "./sr_chassis_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "stop", + "quit", + "kill", + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-boot", + "srl_nokia-interfaces", + "srl_nokia-interfaces-bridge-table", + "srl_nokia-interfaces-ip-dhcp", + "srl_nokia-interfaces-l2cp", + "srl_nokia-interfaces-p4rt", + "srl_nokia-interfaces-vlans", + "srl_nokia-interfaces-vxdp", + "srl_nokia-if-ip", + "srl_nokia-if-mpls", + "srl_nokia-mtu", + "srl_nokia-packet-link-qual", + "srl_nokia-platform", + "srl_nokia-platform-acl", + "srl_nokia-platform-chassis", + "srl_nokia-platform-control", + "srl_nokia-platform-datapath-resources", + "srl_nokia-platform-fabric", + "srl_nokia-platform-fan", + "srl_nokia-platform-healthz", + "srl_nokia-platform-lc", + "srl_nokia-platform-linecard-fib", + "srl_nokia-platform-mtu", + "srl_nokia-platform-p4rt", + "srl_nokia-platform-pipeline-counters", + "srl_nokia-platform-psu", + "srl_nokia-platform-qos", + "srl_nokia-platform-resource-mgmt", + "srl_nokia-platform-resource-monitoring", + "srl_nokia-platform-redundancy", + "srl_nokia-platform-secure-boot", + "srl_nokia-platform-tcam", + "srl_nokia-platform-tpm", + "srl_nokia-platform-vxdp", + "srl_nokia-system-name" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "dev_mgr", + "pid": 1399, + "state": "running", + "last-change": "2024-03-08T15:03:42.344Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 1, + "failure-window": 800, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_device_mgr", + "search-command": "./sr_device_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold" + ], + "restricted-operations": [ + "kill", + "quit", + "reload", + "restart", + "start", + "stop" + ], + "statistics": { + "restart-count": 0 + }, + "yang": {} + }, + { + "name": "dhcp_client_mgr", + "pid": 1623, + "state": "running", + "last-change": "2024-03-08T15:03:44.627Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_dhcp_client_mgr", + "search-command": "./sr_dhcp_client_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "stop", + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": {} + }, + { + "name": "dhcp_relay_mgr", + "state": "waiting-for-config", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_dhcp_relay_mgr", + "search-command": "./sr_dhcp_relay_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "stop", + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-interfaces-ip-dhcp-relay" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "dhcp_server_mgr", + "state": "waiting-for-config", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_dhcp_server_mgr", + "search-command": "./sr_dhcp_server_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "stop", + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-dhcp-server", + "srl_nokia-interfaces-ip-dhcp-server" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "dnsmasq-mgmt", + "pid": 3936, + "state": "running", + "last-change": "2024-03-08T15:03:57.127Z", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/usr/sbin", + "launch-command": "LD_PRELOAD=\"\" ./dnsmasq --conf-file=/etc/dnsmasq.conf", + "search-command": "./dnsmasq --conf-file=/etc/dnsmasq.conf", + "version": "2.89", + "oom-score-adj": 0, + "statistics": { + "restart-count": 0 + }, + "yang": {} + }, + { + "name": "ethcfm_mgr", + "state": "waiting-for-config", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_ethcfm_mgr", + "search-command": "./sr_ethcfm_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-ethcfm", + "srl_nokia-oam-pm-ethcfm" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "event_mgr", + "state": "waiting-for-config", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_event_mgr", + "search-command": "./sr_event_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-event-handler" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "evpn_mgr", + "pid": 1645, + "state": "running", + "last-change": "2024-03-08T15:03:44.627Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_evpn_mgr", + "search-command": "./sr_evpn_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-mpls-services-evpn-label-management", + "srl_nokia-interfaces-nbr-evpn", + "srl_nokia-interfaces-ethernet-segment-association", + "srl_nokia-system-network-instance-bgp-evpn-ethernet-segments", + "srl_nokia-bgp-evpn-bgp-instance-mpls-vpws-destinations" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "fhs_mgr", + "state": "waiting-for-config", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_fhs_mgr", + "search-command": "./sr_fhs_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-ra_guard" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "fib_mgr", + "pid": 1696, + "state": "running", + "last-change": "2024-03-08T15:03:44.628Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_fib_mgr", + "search-command": "./sr_fib_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-ip-route-tables", + "srl_nokia-mpls-route-tables", + "srl_nokia-tunnel-tables" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "gnmi_server", + "pid": 2671, + "state": "running", + "last-change": "2024-03-08T15:03:48.042Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_gnmi_server", + "search-command": "./sr_gnmi_server", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-gnmi-server" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "gribi_server", + "state": "waiting-for-config", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_gribi_server", + "search-command": "./sr_gribi_server", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-gribi-server" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "idb_server", + "pid": 1453, + "state": "running", + "last-change": "2024-03-08T15:03:42.502Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_idb_server", + "search-command": "./sr_idb_server", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold" + ], + "restricted-operations": [ + "start", + "stop", + "restart", + "quit", + "kill", + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": {} + }, + { + "name": "isis_mgr", + "state": "waiting-for-config", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_isis_mgr", + "search-command": "./sr_isis_mgr", + "version": "", + "oom-score-adj": 0, + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-isis", + "srl_nokia-isis-lsdb", + "srl_nokia-isis-lsdb-types" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "json_rpc", + "pid": 3812, + "state": "running", + "last-change": "2024-03-08T15:03:55.335Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_json_rpc", + "search-command": "./sr_json_rpc", + "version": "", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-json-rpc" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "l2_mac_learn_mgr", + "pid": 1749, + "state": "running", + "last-change": "2024-03-08T15:03:44.628Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_l2_mac_learn_mgr", + "search-command": "./sr_l2_mac_learn_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-bridge-table-mac-learning-entries", + "srl_nokia-interfaces-bridge-table-mac-learning-entries" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "l2_mac_mgr", + "pid": 1800, + "state": "running", + "last-change": "2024-03-08T15:03:44.628Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_l2_mac_mgr", + "search-command": "./sr_l2_mac_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-bgp-evpn-bgp-instance-mpls-bridge-table-unicast-destinations", + "srl_nokia-bgp-evpn-bgp-instance-mpls-bridge-table-statistics", + "srl_nokia-bridge-table-mac-table", + "srl_nokia-bridge-table-mac-duplication-entries", + "srl_nokia-bridge-table-reserved-macs", + "srl_nokia-interfaces-bridge-table-mac-duplication-entries", + "srl_nokia-interfaces-bridge-table-mac-table", + "srl_nokia-interfaces-bridge-table-statistics", + "srl_nokia-system-bridge-table", + "srl_nokia-tunnel-interfaces-vxlan-interface-bridge-table", + "srl_nokia-tunnel-interfaces-vxlan-interface-bridge-table-unicast-destinations" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "l2_proxy_arp_nd_mgr", + "state": "waiting-for-config", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_l2_proxy_arp_nd_mgr", + "search-command": "./sr_l2_proxy_arp_nd_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-bridge-table-proxy-arp-nd", + "srl_nokia-system-bridge-table-proxy-arp" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "l2_static_mac_mgr", + "state": "waiting-for-config", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_l2_static_mac_mgr", + "search-command": "./sr_l2_static_mac_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-bridge-table-static-mac" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "label_mgr", + "state": "waiting-for-config", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_label_mgr", + "search-command": "./sr_label_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-mpls-label-management" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "lag_mgr", + "pid": 1866, + "state": "running", + "last-change": "2024-03-08T15:03:44.628Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_lag_mgr", + "search-command": "./sr_lag_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-interfaces-lag", + "srl_nokia-lacp" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "ldp_mgr", + "state": "waiting-for-config", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_ldp_mgr", + "search-command": "./sr_ldp_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-ldp" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "license_mgr", + "pid": 1905, + "state": "running", + "last-change": "2024-03-08T15:03:44.628Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_license_mgr", + "search-command": "./sr_license_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-license" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "linux_mgr", + "pid": 1943, + "state": "running", + "last-change": "2024-03-08T15:03:44.629Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_linux_mgr", + "search-command": "./sr_linux_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-dns", + "srl_nokia-ftp", + "srl_nokia-gnsi-certz", + "srl_nokia-keychains", + "srl_nokia-linux", + "srl_nokia-load-balancing", + "srl_nokia-network-instance-mtu", + "srl_nokia-ntp", + "srl_nokia-platform-cgroup", + "srl_nokia-platform-cpu", + "srl_nokia-platform-disk", + "srl_nokia-platform-memory", + "srl_nokia-sflow", + "srl_nokia-snmp", + "srl_nokia-ssh", + "srl_nokia-system-banner", + "srl_nokia-system-info", + "srl_nokia-tcp-udp", + "srl_nokia-timezone", + "srl_nokia-tls" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models", + "/opt/srlinux/models/openconfig" + ] + } + }, + { + "name": "lldp_mgr", + "pid": 3778, + "state": "running", + "last-change": "2024-03-08T15:03:55.306Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_lldp_mgr", + "search-command": "./sr_lldp_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-lldp", + "srl_nokia-lldp-types" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "log_mgr", + "pid": 1989, + "state": "running", + "last-change": "2024-03-08T15:03:44.629Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_log_mgr", + "search-command": "./sr_log_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-logging" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "macsec_mgr", + "state": "waiting-for-config", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_macsec_mgr", + "search-command": "./sr_macsec_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-transport-security", + "srl_nokia-macsec" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models/transport-security" + ] + } + }, + { + "name": "mcid_mgr", + "pid": 2042, + "state": "running", + "last-change": "2024-03-08T15:03:44.637Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_mcid_mgr", + "search-command": "./sr_mcid_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-system-multicast", + "srl_nokia-bgp-evpn-bgp-instance-mpls-bridge-table-multicast-destinations", + "srl_nokia-tunnel-interfaces-vxlan-interface-bridge-table-multicast-destinations" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "mgmt_server", + "pid": 2085, + "state": "running", + "last-change": "2024-03-08T15:03:44.638Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_mgmt_server", + "search-command": "./sr_mgmt_server", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "start", + "stop", + "quit", + "kill", + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": {} + }, + { + "name": "mirror_mgr", + "state": "waiting-for-config", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_mirror_mgr", + "search-command": "./sr_mirror_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-mirroring", + "srl_nokia-interfaces-local-mirror-destination" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "mpls_mgr", + "state": "waiting-for-config", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_mpls_mgr", + "search-command": "./sr_mpls_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-mpls" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "mplsoam_mgr", + "pid": 2105, + "state": "running", + "last-change": "2024-03-08T15:03:44.638Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_mplsoam_mgr", + "search-command": "./sr_mplsoam_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold" + ], + "restricted-operations": [ + "stop", + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-lsp-ping-trace" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "net_inst_mgr", + "pid": 2152, + "state": "running", + "last-change": "2024-03-08T15:03:44.638Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_net_inst_mgr", + "search-command": "./sr_net_inst_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "stop", + "quit", + "kill", + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-bgp-evpn", + "srl_nokia-bgp-ipvpn", + "srl_nokia-bridge-table", + "srl_nokia-bridge-table-mac-duplication", + "srl_nokia-bridge-table-mac-learning", + "srl_nokia-bridge-table-mac-limit", + "srl_nokia-bridge-table-shg", + "srl_nokia-connection-point", + "srl_nokia-icmp", + "srl_nokia-mpls-services-network-instance-label-management", + "srl_nokia-network-instance", + "srl_nokia-system-network-instance" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "oam_mgr", + "state": "waiting-for-config", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_oam_mgr", + "search-command": "./sr_oam_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-oam" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "oc_mgmt_server", + "state": "waiting-for-config", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_oc_mgmt_server --yang-model-config /opt/srlinux/appmgr/oc_yang_config.conf", + "search-command": "./sr_oc_mgmt_server", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-openconfig" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "ospf_mgr", + "state": "waiting-for-config", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_ospf_mgr", + "search-command": "./sr_ospf_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-ospf" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "p4rt_server", + "state": "waiting-for-config", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_p4rt_server", + "search-command": "./sr_p4rt_server", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-p4rt-server" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "plcy_mgr", + "pid": 2645, + "state": "running", + "last-change": "2024-03-08T15:03:47.931Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_plcy_mgr", + "search-command": "./sr_plcy_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-routing-policy" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "qos_mgr", + "pid": 2677, + "state": "running", + "last-change": "2024-03-08T15:03:48.006Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_qos_mgr", + "search-command": "./sr_qos_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-qos", + "srl_nokia-qos-policers" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "radius_mgr", + "pid": 2192, + "state": "running", + "last-change": "2024-03-08T15:03:44.638Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_radius_mgr", + "search-command": "./sr_radius_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold" + ], + "statistics": { + "restart-count": 0 + }, + "yang": {} + }, + { + "name": "sdk_mgr", + "pid": 2222, + "state": "running", + "last-change": "2024-03-08T15:03:44.650Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_sdk_mgr", + "search-command": "./sr_sdk_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": {} + }, + { + "name": "segrt_mgr", + "state": "waiting-for-config", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_segrt_mgr", + "search-command": "./sr_segrt_mgr", + "version": "", + "oom-score-adj": 0, + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-segment-routing" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "sflow_sample_mgr", + "pid": 2261, + "state": "running", + "last-change": "2024-03-08T15:03:44.650Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_sflow_sample_mgr", + "search-command": "./sr_sflow_sample_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": {} + }, + { + "name": "snmp_server-mgmt", + "pid": 3989, + "state": "running", + "last-change": "2024-03-08T15:03:57.132Z", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "LD_PRELOAD=\"\" ./sr_snmp_server -M -c mgmt udp:161,udp6:161", + "search-command": "./sr_snmp_server -M -c mgmt udp:161,udp6:161", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "statistics": { + "restart-count": 0 + }, + "yang": {} + }, + { + "name": "sshd-mgmt", + "pid": 3161, + "state": "running", + "last-change": "2024-03-08T15:03:52.112Z", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/usr/sbin", + "launch-command": "unset TZ; LD_PRELOAD=\"\" /usr/sbin/sshd -f /etc/ssh/sshd_config_mgmt", + "search-command": "sshd: /usr/sbin/sshd -f /etc/ssh/sshd_config_mgmt", + "version": "OpenSSH_9.2p1 Debian-2+deb12u1, OpenSSL 3.0.11 19 Sep 2023", + "oom-score-adj": 0, + "restricted-operations": [ + "stop", + "quit", + "kill" + ], + "statistics": { + "restart-count": 1 + }, + "yang": {} + }, + { + "name": "static_route_mgr", + "state": "waiting-for-config", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_static_route_mgr", + "search-command": "./sr_static_route_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-static-routes", + "srl_nokia-aggregate-routes", + "srl_nokia-next-hop-groups" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "supportd", + "pid": 469, + "state": "running", + "last-change": "2024-03-08T15:03:41.996Z", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_supportd --server-mode", + "search-command": "./sr_supportd --server-mode", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": {} + }, + { + "name": "te_mgr", + "state": "waiting-for-config", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_te_mgr", + "search-command": "./sr_te_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-traffic-engineering" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "tepolicy_mgr", + "state": "waiting-for-config", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_tepolicy_mgr", + "search-command": "./sr_tepolicy_mgr", + "version": "", + "oom-score-adj": 0, + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-te-policies", + "srl_nokia-maintenance-policies" + ], + "source-directories": [ + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models/common", + "/opt/srlinux/models/srl_nokia/models/interfaces", + "/opt/srlinux/models/srl_nokia/models/network-instance", + "/opt/srlinux/models/srl_nokia/models/system" + ] + } + }, + { + "name": "twamp_mgr", + "state": "waiting-for-config", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "wait=60", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_twamp_mgr", + "search-command": "./sr_twamp_mgr", + "version": "", + "oom-score-adj": 0, + "restricted-operations": [ + "stop", + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-ippm-source-udp-pool", + "srl_nokia-link-measurement", + "srl_nokia-oam-pm-ip", + "srl_nokia-twamp", + "srl_nokia-stamp" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "vrrp_mgr", + "state": "waiting-for-config", + "author": "", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_vrrp_mgr", + "search-command": "./sr_vrrp_mgr", + "version": "", + "oom-score-adj": 0, + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-interfaces-ip-vrrp" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "vxlan_mgr", + "pid": 2710, + "state": "running", + "last-change": "2024-03-08T15:03:48.017Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 3, + "failure-window": 300, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "./sr_vxlan_mgr", + "search-command": "./sr_vxlan_mgr", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold", + "warm" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": { + "modules": [ + "srl_nokia-tunnel", + "srl_nokia-tunnel-interfaces", + "srl_nokia-tunnel-interfaces-vxlan-interface-bridge-table-unicast-es-destination-vteps", + "srl_nokia-vxlan-tunnel-vtep" + ], + "source-directories": [ + "/opt/srlinux/models/iana", + "/opt/srlinux/models/ietf", + "/opt/srlinux/models/srl_nokia/models" + ] + } + }, + { + "name": "xdp_lc_1", + "pid": 2331, + "state": "running", + "last-change": "2024-03-08T15:03:45.346Z", + "last-start-type": "cold", + "author": "Nokia", + "failure-threshold": 2, + "failure-window": 600, + "failure-action": "reboot", + "path": "/opt/srlinux/bin", + "launch-command": "exec -a sr_xdp_lc_1 ./sr_xdp_lc --slot_num 1 --complex_num 2", + "search-command": "sr_xdp_lc_1 --slot_num 1 --complex_num 2", + "version": "v23.10.1-218-ga3fc1bea5a", + "oom-score-adj": 0, + "supported-restart-types": [ + "cold" + ], + "restricted-operations": [ + "reload" + ], + "statistics": { + "restart-count": 0 + }, + "yang": {} + } + ] + } +} \ No newline at end of file diff --git a/src/device/service/drivers/gnmi_nokia_srlinux/handlers/routingpolicy.py b/src/device/service/drivers/gnmi_nokia_srlinux/handlers/routingpolicy.py index 5f2b9d1d67ef67e58e9efaa7370ac2e3ce119a74..05a08b3e410b681d80cb10feefd8a67f9894c265 100644 --- a/src/device/service/drivers/gnmi_nokia_srlinux/handlers/routingpolicy.py +++ b/src/device/service/drivers/gnmi_nokia_srlinux/handlers/routingpolicy.py @@ -26,7 +26,7 @@ class routingpolicyhandler(_Handler): return '/routing-policy' def get_path(self) -> str: - return '/routing-policy' + return '/srl_nokia-routing-policy:routing-policy' def compose(self, resource_key: str, resource_value: Dict, delete: bool = False) -> Tuple[str, str]: if delete: diff --git a/src/device/tests/descriptors/tfs-01-onboard-devices.json b/src/device/tests/descriptors/tfs-01-onboard-devices.json index 12a4fee2fb6b33aade6e93a9a6ffce732541e003..a33126518dc48619d93447e8df265d4770bfffc5 100644 --- a/src/device/tests/descriptors/tfs-01-onboard-devices.json +++ b/src/device/tests/descriptors/tfs-01-onboard-devices.json @@ -7,7 +7,7 @@ ], "devices": [ { - "device_id": {"device_uuid": {"uuid": "spine"}}, "device_type": "packet-router", "device_drivers": [9], + "device_id": {"device_uuid": {"uuid": "spine1"}}, "device_type": "packet-router", "device_drivers": [9], "device_operational_status": 1, "device_config": {"config_rules": [ {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "172.20.20.101"}}, {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "57400"}}, @@ -37,7 +37,7 @@ ]} }, { - "device_id": {"device_uuid": {"uuid": "server1"}}, "device_type": "emu-datacenter", "device_drivers": [0], + "device_id": {"device_uuid": {"uuid": "srv1"}}, "device_type": "emu-datacenter", "device_drivers": [0], "device_config": {"config_rules": [ {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, @@ -47,7 +47,7 @@ ]} }, { - "device_id": {"device_uuid": {"uuid": "server2"}}, "device_type": "emu-datacenter", "device_drivers": [0], + "device_id": {"device_uuid": {"uuid": "srv2"}}, "device_type": "emu-datacenter", "device_drivers": [0], "device_config": {"config_rules": [ {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, diff --git a/src/device/tests/descriptors/tfs-02-onboard-links.json b/src/device/tests/descriptors/tfs-02-onboard-links.json index 8b6fb13160e2aff92e0ea28d794a7c635cb9ce40..bdcc1638ba3821ab795d7287c82ae34c8d0a18c7 100644 --- a/src/device/tests/descriptors/tfs-02-onboard-links.json +++ b/src/device/tests/descriptors/tfs-02-onboard-links.json @@ -1,62 +1,62 @@ { "links": [ { - "link_id": {"link_uuid": {"uuid": "leaf1/ethernet-1/2==spine/ethernet-1/1"}}, + "link_id": {"link_uuid": {"uuid": "leaf1/ethernet-1/49==spine1/ethernet-1/1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "leaf1"}}, "endpoint_uuid": {"uuid": "ethernet-1/2"}}, - {"device_id": {"device_uuid": {"uuid": "spine"}}, "endpoint_uuid": {"uuid": "ethernet-1/1"}} + {"device_id": {"device_uuid": {"uuid": "leaf1"}}, "endpoint_uuid": {"uuid": "ethernet-1/49"}}, + {"device_id": {"device_uuid": {"uuid": "spine1"}}, "endpoint_uuid": {"uuid": "ethernet-1/1"}} ] }, { - "link_id": {"link_uuid": {"uuid": "spine/ethernet-1/1==leaf1/ethernet-1/2"}}, + "link_id": {"link_uuid": {"uuid": "spine1/ethernet-1/1==leaf1/ethernet-1/49"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "spine"}}, "endpoint_uuid": {"uuid": "ethernet-1/1"}}, - {"device_id": {"device_uuid": {"uuid": "leaf1"}}, "endpoint_uuid": {"uuid": "ethernet-1/2"}} + {"device_id": {"device_uuid": {"uuid": "spine1"}}, "endpoint_uuid": {"uuid": "ethernet-1/1"}}, + {"device_id": {"device_uuid": {"uuid": "leaf1"}}, "endpoint_uuid": {"uuid": "ethernet-1/49"}} ] }, { - "link_id": {"link_uuid": {"uuid": "spine/ethernet-1/3==leaf2/ethernet-1/2"}}, + "link_id": {"link_uuid": {"uuid": "spine1/ethernet-1/2==leaf2/ethernet-1/49"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "spine"}}, "endpoint_uuid": {"uuid": "ethernet-1/3"}}, - {"device_id": {"device_uuid": {"uuid": "leaf2"}}, "endpoint_uuid": {"uuid": "ethernet-1/2"}} + {"device_id": {"device_uuid": {"uuid": "spine1"}}, "endpoint_uuid": {"uuid": "ethernet-1/2"}}, + {"device_id": {"device_uuid": {"uuid": "leaf2"}}, "endpoint_uuid": {"uuid": "ethernet-1/49"}} ] }, { - "link_id": {"link_uuid": {"uuid": "leaf2/ethernet-1/2==spine/ethernet-1/3"}}, + "link_id": {"link_uuid": {"uuid": "leaf2/ethernet-1/2==spine1/ethernet-1/49"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "leaf2"}}, "endpoint_uuid": {"uuid": "ethernet-1/2"}}, - {"device_id": {"device_uuid": {"uuid": "spine"}}, "endpoint_uuid": {"uuid": "ethernet-1/3"}} + {"device_id": {"device_uuid": {"uuid": "leaf2"}}, "endpoint_uuid": {"uuid": "ethernet-1/49"}}, + {"device_id": {"device_uuid": {"uuid": "spine1"}}, "endpoint_uuid": {"uuid": "ethernet-1/2"}} ] }, { - "link_id": {"link_uuid": {"uuid": "server1/eth1==leaf1/ethernet-1/10"}}, + "link_id": {"link_uuid": {"uuid": "srv1/eth1==leaf1/ethernet-1/1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "server1"}}, "endpoint_uuid": {"uuid": "eth1"}}, - {"device_id": {"device_uuid": {"uuid": "leaf1"}}, "endpoint_uuid": {"uuid": "ethernet-1/10"}} + {"device_id": {"device_uuid": {"uuid": "srv1"}}, "endpoint_uuid": {"uuid": "eth1"}}, + {"device_id": {"device_uuid": {"uuid": "leaf1"}}, "endpoint_uuid": {"uuid": "ethernet-1/1"}} ] }, { - "link_id": {"link_uuid": {"uuid": "leaf1/ethernet-1/10==server1/eth1"}}, + "link_id": {"link_uuid": {"uuid": "leaf1/ethernet-1/1==srv1/eth1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "leaf1"}}, "endpoint_uuid": {"uuid": "ethernet-1/10"}}, - {"device_id": {"device_uuid": {"uuid": "server1"}}, "endpoint_uuid": {"uuid": "eth1"}} + {"device_id": {"device_uuid": {"uuid": "leaf1"}}, "endpoint_uuid": {"uuid": "ethernet-1/1"}}, + {"device_id": {"device_uuid": {"uuid": "srv1"}}, "endpoint_uuid": {"uuid": "eth1"}} ] }, { - "link_id": {"link_uuid": {"uuid": "server2/eth1==leaf2/ethernet-1/10"}}, + "link_id": {"link_uuid": {"uuid": "srv2/eth1==leaf2/ethernet-1/1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "server2"}}, "endpoint_uuid": {"uuid": "eth1"}}, - {"device_id": {"device_uuid": {"uuid": "leaf2"}}, "endpoint_uuid": {"uuid": "ethernet-1/10"}} + {"device_id": {"device_uuid": {"uuid": "srv2"}}, "endpoint_uuid": {"uuid": "eth1"}}, + {"device_id": {"device_uuid": {"uuid": "leaf2"}}, "endpoint_uuid": {"uuid": "ethernet-1/1"}} ] }, { - "link_id": {"link_uuid": {"uuid": "leaf2/ethernet-1/10==server2/eth1"}}, + "link_id": {"link_uuid": {"uuid": "leaf2/ethernet-1/1==srv2/eth1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "leaf2"}}, "endpoint_uuid": {"uuid": "ethernet-1/10"}}, - {"device_id": {"device_uuid": {"uuid": "server2"}}, "endpoint_uuid": {"uuid": "eth1"}} + {"device_id": {"device_uuid": {"uuid": "leaf2"}}, "endpoint_uuid": {"uuid": "ethernet-1/1"}}, + {"device_id": {"device_uuid": {"uuid": "srv2"}}, "endpoint_uuid": {"uuid": "eth1"}} ] } ] diff --git a/src/device/tests/descriptors/tfs-03-configure-evpn.json b/src/device/tests/descriptors/tfs-03-configure-evpn.json index e19f835b30e1eae504255918f3e0660c27e15982..76fd08a8e14ba15304d00d9ae09a64697c065c85 100644 --- a/src/device/tests/descriptors/tfs-03-configure-evpn.json +++ b/src/device/tests/descriptors/tfs-03-configure-evpn.json @@ -7,7 +7,7 @@ "if_name" : "ethernet-1/49", "if_admin_state" : true, "subif_index" : 0, - "subif_ipv4_admin_state": true, + "subif_ipv4_admin_state":true, "subif_ipv4_address" : "192.168.11.1", "subif_ipv4_prefix" : "30" }}}, @@ -15,6 +15,220 @@ "if_name" : "all", "if_policy_result": "accept" }}} + + ,{"action": 1, "custom": {"resource_key": "/network-instance[name=default]", "resource_value": { + "if_name" : "default", + "if_interface1" : "ethernet-1/49.0", + "if_interface2" : "system0.0", + "if_admin_state_bgp" : true, + "if_afi_safi_name_bgp" : "ipv4-unicast", + "if_autonomous_system_bgp" : 101, + "if_export_policy" : "all", + "if_group_name" : "eBGP-underlay", + "if_import_policy" : "all", + "if_peer_as" : 201, + "if_admin_state_group" : true, + "if_afi_safi_name_group" : "evpn", + "if_admin_state_group_2" : false, + "if_afi_safi_name_group_2" : "ipv4-unicast", + "if_export_policy_2" : "all", + "if_group_name_2" : "iBGP-overlay", + "if_import_policy_2" : "all", + "if_as_number" : 100, + "if_peer_as_2" : 100, + "if_minimum_advertisement_interval" : 1, + "if_admin_state_neighbor" : true, + "if_peer_address_neighbor" : "10.0.0.2", + "if_peer_group_neighbor" : "iBGP-overlay", + "if_local_address_neighbor" : "10.0.0.1", + "if_peer_address_neighbor_2" : "192.168.11.2", + "if_peer_group_neighbor_2" : "eBGP-underlay", + "if_router_id" : "10.0.0.1" + + }}}, + + {"action": 1, "custom": {"resource_key": "/interface[name=system0]", "resource_value": { + "if_name" : "system0", + "if_admin_state" : true, + "subif_index" : 0, + "subif_ipv4_admin_state":true, + "subif_ipv4_address" : "10.0.0.1", + "subif_ipv4_prefix" : "32" + }}}, + + {"action": 1, "custom": {"resource_key": "/interface[name=ethernet-1/1]", "resource_value": { + "if_name" : "ethernet-1/1", + "if_vlan_tagging" : true, + "subif_index" : 0, + "subif_type" : "bridged", + "subif_vlan_admin_state" : true, + "subif_vlan_encap":"untagged" + }}}, + {"action": 1, "custom": {"resource_key": "/network-instance[name=vrf-1]", "resource_value": { + "if_name" : "vrf-1", + "if_type" : "mac-vrf", + "if_admin_state_vrf" : true, + "if_interface1_name" : "ethernet-1/1.0", + "if_vxlaninterface_name" : "vxlan1.1", + "if_bgp_evpn_instance_id":1, + "if_bgp_evpn_instance_admin_state":true, + "if_bgp_evpn_instance_vxlan_interface":"vxlan1.1", + "if_bgp_evpn_instance_evi":111, + "if_bgp_vpn_instance_id":1, + "if_bgp_vpn_instance_export_rt":"target:100:111", + "if_bgp_vpn_instance_import_rt":"target:100:111" + }}}, + {"action": 1, "custom": {"resource_key": "/tunnel-interface[name=vxlan1]", "resource_value": { + "if_name" : "vxlan1", + "if_index" : 1, + "if_type_tunnel" :"bridged", + "if_vni_tunnel" : 1 + }}} + + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "leaf2"}}, "device_type": "packet-router", "device_drivers": [9], + "device_operational_status": 2, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "/interface[name=ethernet-1/49]", "resource_value": { + "if_name" : "ethernet-1/49", + "if_admin_state" : true, + "subif_index" : 0, + "subif_ipv4_admin_state":true, + "subif_ipv4_address" : "192.168.12.1", + "subif_ipv4_prefix" : "30" + }}}, + {"action": 1, "custom": {"resource_key": "/routing-policy", "resource_value": { + "if_name" : "all", + "if_policy_result": "accept" + }}} + + ,{"action": 1, "custom": {"resource_key": "/network-instance[name=default]", "resource_value": { + "if_name" : "default", + "if_interface1" : "ethernet-1/49.0", + "if_interface2" : "system0.0", + "if_admin_state_bgp" : true, + "if_afi_safi_name_bgp" : "ipv4-unicast", + "if_autonomous_system_bgp" : 102, + "if_export_policy" : "all", + "if_group_name" : "eBGP-underlay", + "if_import_policy" : "all", + "if_peer_as" : 201, + "if_admin_state_group" : true, + "if_afi_safi_name_group" : "evpn", + "if_admin_state_group_2" : false, + "if_afi_safi_name_group_2" : "ipv4-unicast", + "if_export_policy_2" : "all", + "if_group_name_2" : "iBGP-overlay", + "if_import_policy_2" : "all", + "if_as_number" : 100, + "if_peer_as_2" : 100, + "if_minimum_advertisement_interval" : 1, + "if_admin_state_neighbor" : true, + "if_peer_address_neighbor" : "10.0.0.1", + "if_peer_group_neighbor" : "iBGP-overlay", + "if_local_address_neighbor" : "10.0.0.2", + "if_peer_address_neighbor_2" : "192.168.12.2", + "if_peer_group_neighbor_2" : "eBGP-underlay", + "if_router_id" : "10.0.0.2" + + }}}, + + {"action": 1, "custom": {"resource_key": "/interface[name=system0]", "resource_value": { + "if_name" : "system0", + "if_admin_state" : true, + "subif_index" : 0, + "subif_ipv4_admin_state":true, + "subif_ipv4_address" : "10.0.0.2", + "subif_ipv4_prefix" : "32" + }}}, + + {"action": 1, "custom": {"resource_key": "/interface[name=ethernet-1/1]", "resource_value": { + "if_name" : "ethernet-1/1", + "if_vlan_tagging" : true, + "subif_index" : 0, + "subif_type" : "bridged", + "subif_vlan_admin_state" : true, + "subif_vlan_encap":"untagged" + }}}, + {"action": 1, "custom": {"resource_key": "/network-instance[name=vrf-1]", "resource_value": { + "if_name" : "vrf-1", + "if_type" : "mac-vrf", + "if_admin_state_vrf" : true, + "if_interface1_name" : "ethernet-1/1.0", + "if_vxlaninterface_name" : "vxlan1.1", + "if_bgp_evpn_instance_id":1, + "if_bgp_evpn_instance_admin_state":true, + "if_bgp_evpn_instance_vxlan_interface":"vxlan1.1", + "if_bgp_evpn_instance_evi":111, + "if_bgp_vpn_instance_id":1, + "if_bgp_vpn_instance_export_rt":"target:100:111", + "if_bgp_vpn_instance_import_rt":"target:100:111" + }}}, + {"action": 1, "custom": {"resource_key": "/tunnel-interface[name=vxlan1]", "resource_value": { + "if_name" : "vxlan1", + "if_index" : 1, + "if_type_tunnel" :"bridged", + "if_vni_tunnel" : 1 + }}} + + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "spine1"}}, "device_type": "packet-router", "device_drivers": [9], + "device_operational_status": 2, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "/interface[name=ethernet-1/49]", "resource_value": { + "if_name" : "ethernet-1/1", + "if_admin_state" : true, + "subif_index" : 0, + "subif_ipv4_admin_state":true, + "subif_ipv4_address" : "192.168.11.2", + "subif_ipv4_prefix" : "30" + }}}, + {"action": 1, "custom": {"resource_key": "/interface[name=ethernet-1/49]", "resource_value": { + "if_name" : "ethernet-1/2", + "if_admin_state" : true, + "subif_index" : 0, + "subif_ipv4_admin_state":true, + "subif_ipv4_address" : "192.168.12.2", + "subif_ipv4_prefix" : "30" + }}}, + + {"action": 1, "custom": {"resource_key": "/network-instance[name=default]", "resource_value": { + "if_interface1_spine" : "ethernet-1/1.0", + "if_interface2_spine" : "ethernet-1/2.0", + "if_interface3_spine" : "system0.0", + "if_name" : "default", + "if_admin_state_spine" : true, + "if_afi_safi_name_bgp_spine" : "ipv4-unicast", + "if_autonomous_system_bgp_spine" : 201, + "if_export_policy_spine" : "all", + "if_group_name_spine" : "eBGP-underlay", + "if_import_policy_spine" : "all", + "if_peer_address_neighbor_spine" : "192.168.11.1", + "if_peeras_group_neighbor_spine" : 101, + "if_peer_group_neighbor_spine" : "eBGP-underlay", + "if_peer_address2_neighbor_spine" : "192.168.12.1", + "if_peeras_group_neighbor2_spine" : 102, + "if_peer_group_neighbor2_spine" : "eBGP-underlay", + "if_router_id_spine":"10.0.1.1" + }}}, + {"action": 1, "custom": {"resource_key": "/interface[name=ethernet-1/49]", "resource_value": { + "if_name" : "system0", + "if_admin_state" : true, + "subif_index" : 0, + "subif_ipv4_admin_state":true, + "subif_ipv4_address" : "10.0.1.1", + "subif_ipv4_prefix" : 32 + }}}, + + {"action": 1, "custom": {"resource_key": "/routing-policy", "resource_value": { + "if_name" : "all", + "if_policy_result": "accept" + }}} + + + ]} } ] diff --git a/src/device/tests/test_gnmi_nokia_srlinux-get-ifs.py b/src/device/tests/test_gnmi_nokia_srlinux-get-ifs.py index 0bedcd2e65f6e30198902024369d66c57e4d0611..b9e1fda4266be023b527631cd42688112bbbf8e2 100644 --- a/src/device/tests/test_gnmi_nokia_srlinux-get-ifs.py +++ b/src/device/tests/test_gnmi_nokia_srlinux-get-ifs.py @@ -17,7 +17,7 @@ os.environ['DEVICE_EMULATED_ONLY'] = 'YES' # pylint: disable=wrong-import-position from device.service.drivers.gnmi_nokia_srlinux.GnmiNokiaSrLinuxDriver import GnmiNokiaSrLinuxDriver -from device.service.driver_api._Driver import RESOURCE_INTERFACES , RESOURCE_NETWORK_INSTANCES,RESOURCE_TUNNEL_INTERFACE,RESOURCE_ROUTING_POLICY +from device.service.driver_api._Driver import RESOURCE_INTERFACES , RESOURCE_NETWORK_INSTANCES,RESOURCE_TUNNEL_INTERFACE,RESOURCE_ROUTING_POLICY,RESOURCE_ENDPOINTS logging.basicConfig(level=logging.DEBUG) LOGGER = logging.getLogger(__name__) @@ -32,7 +32,8 @@ def test_gnmi_nokia_srlinux(): } dev1_driver = GnmiNokiaSrLinuxDriver('172.20.20.102', 57400, **driver_settings_leaf1) dev1_driver.Connect() - resources_to_get_leaf1 = [RESOURCE_INTERFACES,RESOURCE_NETWORK_INSTANCES,RESOURCE_TUNNEL_INTERFACE,RESOURCE_ROUTING_POLICY] + #resources_to_get_leaf1 = [RESOURCE_INTERFACES,RESOURCE_NETWORK_INSTANCES,RESOURCE_TUNNEL_INTERFACE,RESOURCE_ROUTING_POLICY] + resources_to_get_leaf1 = [RESOURCE_NETWORK_INSTANCES] LOGGER.info('resources_to_get = {:s}'.format(str(resources_to_get_leaf1))) results_getconfig_leaf1 = dev1_driver.GetConfig(resources_to_get_leaf1) LOGGER.info('results_getconfig = {:s}'.format(str(results_getconfig_leaf1))) diff --git a/src/service/service/service_handler_api/FilterFields.py b/src/service/service/service_handler_api/FilterFields.py index 430e25938601d522187046b0ebd4cad6971261bb..a8ec76f3abd1dd662f83c936595c4e7ea9ba5d88 100644 --- a/src/service/service/service_handler_api/FilterFields.py +++ b/src/service/service/service_handler_api/FilterFields.py @@ -37,6 +37,7 @@ DEVICE_DRIVER_VALUES = { DeviceDriverEnum.DEVICEDRIVER_XR, DeviceDriverEnum.DEVICEDRIVER_IETF_L2VPN, DeviceDriverEnum.DEVICEDRIVER_GNMI_OPENCONFIG, + DeviceDriverEnum.DEVICEDRIVER_GNMI_NOKIA_SRLINUX, } # Map allowed filter fields to allowed values per Filter field. If no restriction (free text) None is specified diff --git a/src/webui/service/device/forms.py b/src/webui/service/device/forms.py index bcd5804d32927763344d08371320fdde5f2fcab7..1520cc3deb21e8e26ea1440fffa40f9b6cbdea28 100644 --- a/src/webui/service/device/forms.py +++ b/src/webui/service/device/forms.py @@ -31,6 +31,7 @@ class AddDeviceForm(FlaskForm): device_drivers_xr = BooleanField('XR') device_drivers_ietf_l2vpn = BooleanField('IETF L2VPN') device_drivers_gnmi_openconfig = BooleanField('GNMI OPENCONFIG') + device_drivers_gnmi_nokia_srlinux = BooleanField('GNMI NOKIA SR LINUX') device_config_address = StringField('connect/address',default='127.0.0.1',validators=[DataRequired(), Length(min=5)]) device_config_port = StringField('connect/port',default='0',validators=[DataRequired(), Length(min=1)]) diff --git a/src/webui/service/device/routes.py b/src/webui/service/device/routes.py index 4459deeebd000642cfe235f4f46ebf65670ae2ee..7096a61ff4477595244e638b41c240504dcc9d95 100644 --- a/src/webui/service/device/routes.py +++ b/src/webui/service/device/routes.py @@ -125,6 +125,8 @@ def add(): device_drivers.append(DeviceDriverEnum.DEVICEDRIVER_IETF_L2VPN) if form.device_drivers_gnmi_openconfig.data: device_drivers.append(DeviceDriverEnum.DEVICEDRIVER_GNMI_OPENCONFIG) + if form.device_drivers_gnmi_nokia_srlinux.data: + device_drivers.append(DeviceDriverEnum.DEVICEDRIVER_GNMI_NOKIA_SRLINUX) device_obj.device_drivers.extend(device_drivers) # pylint: disable=no-member try: diff --git a/src/webui/service/templates/device/add.html b/src/webui/service/templates/device/add.html index c115657aa08828849172345ca50caaeb4150fe0f..b4b913f51d5ea602d5fea388e2b8ea06c733c811 100644 --- a/src/webui/service/templates/device/add.html +++ b/src/webui/service/templates/device/add.html @@ -92,6 +92,8 @@ {{ form.device_drivers_xr }} {{ form.device_drivers_xr.label(class="col-sm-3 col-form-label") }} {{ form.device_drivers_ietf_l2vpn }} {{ form.device_drivers_ietf_l2vpn.label(class="col-sm-3 col-form-label") }} {{ form.device_drivers_gnmi_openconfig }} {{ form.device_drivers_gnmi_openconfig.label(class="col-sm-3 col-form-label") }} + <br /> + {{ form.device_drivers_gnmi_nokia_srlinux }} {{ form.device_drivers_gnmi_nokia_srlinux.label(class="col-sm-3 col-form-label") }} {% endif %} </div> </div>