Skip to content
Snippets Groups Projects
Commit ebb0dd91 authored by Mohamad Rahhal's avatar Mohamad Rahhal
Browse files

16/4/2024-LAST-COMMIT

parent 3d5ef2aa
No related branches found
No related tags found
1 merge request!176Draft: Resolve "(CTTC) Implement SBI Driver for Nokia SR Linux L2 VPNs through gNMI"
Showing
with 3556 additions and 234 deletions
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
......@@ -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=""
......
......@@ -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):
......
......@@ -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)
......@@ -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(
......
......@@ -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,
# ],
#}
]))
......
......@@ -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)))
......
......@@ -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))
......
......@@ -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:
......
......@@ -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
......@@ -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
......@@ -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:
......
This diff is collapsed.
......@@ -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:
......
......@@ -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"}},
......
{
"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"}}
]
}
]
......
......@@ -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"
}}}
]}
}
]
......
......@@ -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)))
......
......@@ -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
......
......@@ -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)])
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment