Skip to content

Commit

Permalink
Merge pull request #190 from steiler/rpcreplyseverity
Browse files Browse the repository at this point in the history
rpc-severity
  • Loading branch information
carlmontanari authored Aug 13, 2024
2 parents 82d6f7b + 734b5d5 commit a6c4329
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 20 deletions.
49 changes: 32 additions & 17 deletions response/netconf.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"fmt"
"regexp"
"strconv"
"strings"
"sync"
"time"

Expand All @@ -31,7 +32,8 @@ func errNetconf1Dot1ParseError(msg string) error {
}

type netconfPatterns struct {
rpcErrors *regexp.Regexp
rpcErrors *regexp.Regexp
rpcSingleErrors *regexp.Regexp
}

var (
Expand All @@ -42,7 +44,8 @@ var (
func getNetconfPatterns() *netconfPatterns {
netconfPatternsInstanceOnce.Do(func() {
netconfPatternsInstance = &netconfPatterns{
rpcErrors: regexp.MustCompile(`(?s)<rpc-errors?>(.*)</rpc-errors?>`),
rpcErrors: regexp.MustCompile(`(?s)<rpc-errors?>(.*)</rpc-errors?>`),
rpcSingleErrors: regexp.MustCompile(`(?sU)<rpc-errors?>.*</rpc-errors?>`),
}
})

Expand Down Expand Up @@ -81,21 +84,22 @@ func NewNetconfResponse(

// NetconfResponse is a struct returned from all netconf driver operations.
type NetconfResponse struct {
Host string
Port int
Input []byte
FramedInput []byte
RawResult []byte
Result string
StartTime time.Time
EndTime time.Time
ElapsedTime float64
FailedWhenContains [][]byte
Failed error
StripNamespaces bool
NetconfVersion string
ErrorMessages [][]string
SubscriptionID int
Host string
Port int
Input []byte
FramedInput []byte
RawResult []byte
Result string
StartTime time.Time
EndTime time.Time
ElapsedTime float64
FailedWhenContains [][]byte
Failed error
StripNamespaces bool
NetconfVersion string
ErrorMessages []string
WarningErrorMessages []string
SubscriptionID int
}

// Record records the output of a NETCONF operation.
Expand All @@ -113,6 +117,17 @@ func (r *NetconfResponse) Record(b []byte) {
Output: r.Result,
ErrorString: string(patterns.rpcErrors.Find(r.RawResult)),
}

for _, rpcerr := range patterns.rpcSingleErrors.FindAll(r.RawResult, -1) {
errStr := string(rpcerr)

switch {
case strings.Contains(errStr, "<error-severity>error</error-severity>"):
r.ErrorMessages = append(r.ErrorMessages, errStr)
case strings.Contains(errStr, "<error-severity>warning</error-severity>"):
r.WarningErrorMessages = append(r.WarningErrorMessages, errStr)
}
}
}

switch r.NetconfVersion {
Expand Down
5 changes: 5 additions & 0 deletions response/netconf_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,11 @@ func TestNetconfRecord(t *testing.T) {
version: "1.0",
payloadFile: "netconf-output-10.txt",
},
"record-response-10-errors": {
description: "simple test to test recording netconf 1.0 response with errors",
version: "1.0",
payloadFile: "netconf-output-10-errors.txt",
},
"record-response-11": {
description: "simple test to test recording netconf 1.1 response",
version: "1.1",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"Host":"localhost","Port":830,"Input":null,"FramedInput":null,"RawResult":"PHJwYy1yZXBseSB4bWxucz0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpuZXRjb25mOmJhc2U6MS4wIj4KCTxycGMtZXJyb3I+CgkJPGVycm9yLXR5cGU+RVJST1IxPC9lcnJvci10eXBlPgoJCTxlcnJvci1zZXZlcml0eT5lcnJvcjwvZXJyb3Itc2V2ZXJpdHk+Cgk8L3JwYy1lcnJvcj4KCTxycGMtZXJyb3I+CgkJPGVycm9yLXR5cGU+RVJST1IyPC9lcnJvci10eXBlPgoJCTxlcnJvci1zZXZlcml0eT5lcnJvcjwvZXJyb3Itc2V2ZXJpdHk+Cgk8L3JwYy1lcnJvcj4KCTxycGMtZXJyb3I+CgkJPGVycm9yLXR5cGU+V0FSTklORzE8L2Vycm9yLXR5cGU+CgkJPGVycm9yLXNldmVyaXR5Pndhcm5pbmc8L2Vycm9yLXNldmVyaXR5PgoJPC9ycGMtZXJyb3I+CjwvcnBjLXJlcGx5Pg==","Result":"\u003crpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"\u003e\n\t\u003crpc-error\u003e\n\t\t\u003cerror-type\u003eERROR1\u003c/error-type\u003e\n\t\t\u003cerror-severity\u003eerror\u003c/error-severity\u003e\n\t\u003c/rpc-error\u003e\n\t\u003crpc-error\u003e\n\t\t\u003cerror-type\u003eERROR2\u003c/error-type\u003e\n\t\t\u003cerror-severity\u003eerror\u003c/error-severity\u003e\n\t\u003c/rpc-error\u003e\n\t\u003crpc-error\u003e\n\t\t\u003cerror-type\u003eWARNING1\u003c/error-type\u003e\n\t\t\u003cerror-severity\u003ewarning\u003c/error-severity\u003e\n\t\u003c/rpc-error\u003e\n\u003c/rpc-reply\u003e","StartTime":"0001-01-01T00:00:00Z","EndTime":"0001-01-01T00:00:00Z","ElapsedTime":0,"FailedWhenContains":["PHJwYy1lcnJvcj4=","PHJwYy1lcnJvcnM+","PC9ycGMtZXJyb3I+","PC9ycGMtZXJyb3JzPg==","PG5jOnJwYy1lcnJvcj4=","PC9uYzpycGMtZXJyb3I+"],"Failed":{"Input":"","Output":"","ErrorString":"\u003crpc-error\u003e\n\t\t\u003cerror-type\u003eERROR1\u003c/error-type\u003e\n\t\t\u003cerror-severity\u003eerror\u003c/error-severity\u003e\n\t\u003c/rpc-error\u003e\n\t\u003crpc-error\u003e\n\t\t\u003cerror-type\u003eERROR2\u003c/error-type\u003e\n\t\t\u003cerror-severity\u003eerror\u003c/error-severity\u003e\n\t\u003c/rpc-error\u003e\n\t\u003crpc-error\u003e\n\t\t\u003cerror-type\u003eWARNING1\u003c/error-type\u003e\n\t\t\u003cerror-severity\u003ewarning\u003c/error-severity\u003e\n\t\u003c/rpc-error\u003e"},"StripNamespaces":false,"NetconfVersion":"1.0","ErrorMessages":["\u003crpc-error\u003e\n\t\t\u003cerror-type\u003eERROR1\u003c/error-type\u003e\n\t\t\u003cerror-severity\u003eerror\u003c/error-severity\u003e\n\t\u003c/rpc-error\u003e","\u003crpc-error\u003e\n\t\t\u003cerror-type\u003eERROR2\u003c/error-type\u003e\n\t\t\u003cerror-severity\u003eerror\u003c/error-severity\u003e\n\t\u003c/rpc-error\u003e"],"WarningErrorMessages":["\u003crpc-error\u003e\n\t\t\u003cerror-type\u003eWARNING1\u003c/error-type\u003e\n\t\t\u003cerror-severity\u003ewarning\u003c/error-severity\u003e\n\t\u003c/rpc-error\u003e"],"SubscriptionID":0}
2 changes: 1 addition & 1 deletion response/test-fixtures/golden/record-response-10-out.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"Host":"localhost","Port":830,"Input":null,"FramedInput":null,"RawResult":"PHJwYy1yZXBseSB4bWxucz0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpuZXRjb25mOmJhc2U6MS4wIiBtZXNzYWdlLWlkPSIxMDEiPjxkYXRhPjxjbGktY29uZmlnLWRhdGEtYmxvY2s+IQpUSU1FU1RBTVAKIQp2ZXJzaW9uIDE2LjEyCnNlcnZpY2UgdGltZXN0YW1wcyBkZWJ1ZyBkYXRldGltZSBtc2VjCnNlcnZpY2UgdGltZXN0YW1wcyBsb2cgZGF0ZXRpbWUgbXNlYwpzZXJ2aWNlIGNhbGwtaG9tZQpwbGF0Zm9ybSBxZnAgdXRpbGl6YXRpb24gbW9uaXRvciBsb2FkIDgwCnBsYXRmb3JtIHB1bnQta2VlcGFsaXZlIGRpc2FibGUta2VybmVsLWNvcmUKcGxhdGZvcm0gY29uc29sZSBzZXJpYWwKIQpob3N0bmFtZSBjc3IxMDAwdgohCmJvb3Qtc3RhcnQtbWFya2VyCmJvb3QtZW5kLW1hcmtlcgohCiEKZW5hYmxlIHNlY3JldCA5ICQ5JHh2V254OEZlMzVmOHhFJEU5aWpwN0dNL1Y0OFA1eTFVejNJRVB0b3RYZ3drSktZSm1OMHEzcTJFOTIKIQpubyBhYWEgbmV3LW1vZGVsCmNhbGwtaG9tZQogISBJZiBjb250YWN0IGVtYWlsIGFkZHJlc3MgaW4gY2FsbC1ob21lIGlzIGNvbmZpZ3VyZWQgYXMgc2NoLXNtYXJ0LWxpY2Vuc2luZ0BjaXNjby5jb20KICEgdGhlIGVtYWlsIGFkZHJlc3MgY29uZmlndXJlZCBpbiBDaXNjbyBTbWFydCBMaWNlbnNlIFBvcnRhbCB3aWxsIGJlIHVzZWQgYXMgY29udGFjdCBlbWFpbCBhZGRyZXNzIHRvIHNlbmQgU0NIIG5vdGlmaWNhdGlvbnMuCiBjb250YWN0LWVtYWlsLWFkZHIgc2NoLXNtYXJ0LWxpY2Vuc2luZ0BjaXNjby5jb20KIHByb2ZpbGUgIkNpc2NvVEFDLTEiCiAgYWN0aXZlCiAgZGVzdGluYXRpb24gdHJhbnNwb3J0LW1ldGhvZCBodHRwCiAgbm8gZGVzdGluYXRpb24gdHJhbnNwb3J0LW1ldGhvZCBlbWFpbAohCiEKIQohCiEKIQohCmlwIGRvbWFpbiBuYW1lIGV4YW1wbGUuY29tCiEKIQohCmxvZ2luIG9uLXN1Y2Nlc3MgbG9nCiEKIQohCiEKIQohCiEKc3Vic2NyaWJlciB0ZW1wbGF0aW5nCiEKIQohCiEKIQohCm11bHRpbGluayBidW5kbGUtbmFtZSBhdXRoZW50aWNhdGVkCiEKIQohCiEKIQohCiEKIQohCiEKIQohCiEKIQohCkNFUlRJRklDQVRFUyBBTkQgTElDRU5TRQpkaWFnbm9zdGljIGJvb3R1cCBsZXZlbCBtaW5pbWFsCmFyY2hpdmUKIGxvZyBjb25maWcKICBsb2dnaW5nIGVuYWJsZQogcGF0aCBib290Zmxhc2g6Cm1lbW9yeSBmcmVlIGxvdy13YXRlcm1hcmsgcHJvY2Vzc29yIDcyMzI5CiEKIQpzcGFubmluZy10cmVlIGV4dGVuZCBzeXN0ZW0taWQKIQp1c2VybmFtZSBib3hlbiBwcml2aWxlZ2UgMTUgcGFzc3dvcmQgMCBiMHgzTi1iMHgzTgohCnJlZHVuZGFuY3kKIQohCiEKIQohCiEKIQohCiEKIQohCiEKIQohCiEKIQohCiEKIQohCiEKIQohCmludGVyZmFjZSBHaWdhYml0RXRoZXJuZXQxCiBpcCBhZGRyZXNzIDEwLjAuMC4xNSAyNTUuMjU1LjI1NS4wCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDIKIG5vIGlwIGFkZHJlc3MKIHNodXRkb3duCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDMKIG5vIGlwIGFkZHJlc3MKIHNodXRkb3duCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDQKIG5vIGlwIGFkZHJlc3MKIHNodXRkb3duCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDUKIG5vIGlwIGFkZHJlc3MKIHNodXRkb3duCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDYKIG5vIGlwIGFkZHJlc3MKIHNodXRkb3duCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDcKIG5vIGlwIGFkZHJlc3MKIHNodXRkb3duCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDgKIG5vIGlwIGFkZHJlc3MKIHNodXRkb3duCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDkKIG5vIGlwIGFkZHJlc3MKIHNodXRkb3duCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDEwCiBubyBpcCBhZGRyZXNzCiBzaHV0ZG93bgogbmVnb3RpYXRpb24gYXV0bwogbm8gbW9wIGVuYWJsZWQKIG5vIG1vcCBzeXNpZAohCiEKdmlydHVhbC1zZXJ2aWNlIGNzcl9tZ210CiEKaXAgZm9yd2FyZC1wcm90b2NvbCBuZApubyBpcCBodHRwIHNlcnZlcgpubyBpcCBodHRwIHNlY3VyZS1zZXJ2ZXIKIQppcCBzc2ggcHVia2V5LWNoYWluCiAgdXNlcm5hbWUgYm94ZW4KICAga2V5LWhhc2ggc3NoLXJzYSA1Q0M3NEE2OEIxOEIwMjZBMTcwOUZCMDlEMUY0NEUyRgppcCBzY3Agc2VydmVyIGVuYWJsZQohCiEKIQohCiEKIQohCmNvbnRyb2wtcGxhbmUKIQohCiEKIQohCiEKbGluZSBjb24gMAogc3RvcGJpdHMgMQpsaW5lIHZ0eSAwIDQKIGxvZ2luIGxvY2FsCiB0cmFuc3BvcnQgaW5wdXQgYWxsCmxpbmUgdnR5IDUgMTUKIGxvZ2luIGxvY2FsCiB0cmFuc3BvcnQgaW5wdXQgYWxsCiEKbmV0Y29uZiBzc2gKIQohCiEKIQohCm5ldGNvbmYteWFuZwplbmQ8L2NsaS1jb25maWctZGF0YS1ibG9jaz48L2RhdGE+PC9ycGMtcmVwbHk+","Result":"\u003crpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"101\"\u003e\u003cdata\u003e\u003ccli-config-data-block\u003e!\nTIMESTAMP\n!\nversion 16.12\nservice timestamps debug datetime msec\nservice timestamps log datetime msec\nservice call-home\nplatform qfp utilization monitor load 80\nplatform punt-keepalive disable-kernel-core\nplatform console serial\n!\nhostname csr1000v\n!\nboot-start-marker\nboot-end-marker\n!\n!\nenable secret 9 $9$xvWnx8Fe35f8xE$E9ijp7GM/V48P5y1Uz3IEPtotXgwkJKYJmN0q3q2E92\n!\nno aaa new-model\ncall-home\n ! If contact email address in call-home is configured as [email protected]\n ! the email address configured in Cisco Smart License Portal will be used as contact email address to send SCH notifications.\n contact-email-addr [email protected]\n profile \"CiscoTAC-1\"\n active\n destination transport-method http\n no destination transport-method email\n!\n!\n!\n!\n!\n!\n!\nip domain name example.com\n!\n!\n!\nlogin on-success log\n!\n!\n!\n!\n!\n!\n!\nsubscriber templating\n!\n!\n!\n!\n!\n!\nmultilink bundle-name authenticated\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\nCERTIFICATES AND LICENSE\ndiagnostic bootup level minimal\narchive\n log config\n logging enable\n path bootflash:\nmemory free low-watermark processor 72329\n!\n!\nspanning-tree extend system-id\n!\nusername boxen privilege 15 password 0 b0x3N-b0x3N\n!\nredundancy\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\ninterface GigabitEthernet1\n ip address 10.0.0.15 255.255.255.0\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet2\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet3\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet4\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet5\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet6\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet7\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet8\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet9\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet10\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\n!\nvirtual-service csr_mgmt\n!\nip forward-protocol nd\nno ip http server\nno ip http secure-server\n!\nip ssh pubkey-chain\n username boxen\n key-hash ssh-rsa 5CC74A68B18B026A1709FB09D1F44E2F\nip scp server enable\n!\n!\n!\n!\n!\n!\n!\ncontrol-plane\n!\n!\n!\n!\n!\n!\nline con 0\n stopbits 1\nline vty 0 4\n login local\n transport input all\nline vty 5 15\n login local\n transport input all\n!\nnetconf ssh\n!\n!\n!\n!\n!\nnetconf-yang\nend\u003c/cli-config-data-block\u003e\u003c/data\u003e\u003c/rpc-reply\u003e","StartTime":"0001-01-01T00:00:00Z","EndTime":"0001-01-01T00:00:00Z","ElapsedTime":0,"FailedWhenContains":["PHJwYy1lcnJvcj4=","PHJwYy1lcnJvcnM+","PC9ycGMtZXJyb3I+","PC9ycGMtZXJyb3JzPg==","PG5jOnJwYy1lcnJvcj4=","PC9uYzpycGMtZXJyb3I+"],"Failed":null,"StripNamespaces":false,"NetconfVersion":"1.0","ErrorMessages":null,"SubscriptionID":0}
{"Host":"localhost","Port":830,"Input":null,"FramedInput":null,"RawResult":"PHJwYy1yZXBseSB4bWxucz0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpuZXRjb25mOmJhc2U6MS4wIiBtZXNzYWdlLWlkPSIxMDEiPjxkYXRhPjxjbGktY29uZmlnLWRhdGEtYmxvY2s+IQpUSU1FU1RBTVAKIQp2ZXJzaW9uIDE2LjEyCnNlcnZpY2UgdGltZXN0YW1wcyBkZWJ1ZyBkYXRldGltZSBtc2VjCnNlcnZpY2UgdGltZXN0YW1wcyBsb2cgZGF0ZXRpbWUgbXNlYwpzZXJ2aWNlIGNhbGwtaG9tZQpwbGF0Zm9ybSBxZnAgdXRpbGl6YXRpb24gbW9uaXRvciBsb2FkIDgwCnBsYXRmb3JtIHB1bnQta2VlcGFsaXZlIGRpc2FibGUta2VybmVsLWNvcmUKcGxhdGZvcm0gY29uc29sZSBzZXJpYWwKIQpob3N0bmFtZSBjc3IxMDAwdgohCmJvb3Qtc3RhcnQtbWFya2VyCmJvb3QtZW5kLW1hcmtlcgohCiEKZW5hYmxlIHNlY3JldCA5ICQ5JHh2V254OEZlMzVmOHhFJEU5aWpwN0dNL1Y0OFA1eTFVejNJRVB0b3RYZ3drSktZSm1OMHEzcTJFOTIKIQpubyBhYWEgbmV3LW1vZGVsCmNhbGwtaG9tZQogISBJZiBjb250YWN0IGVtYWlsIGFkZHJlc3MgaW4gY2FsbC1ob21lIGlzIGNvbmZpZ3VyZWQgYXMgc2NoLXNtYXJ0LWxpY2Vuc2luZ0BjaXNjby5jb20KICEgdGhlIGVtYWlsIGFkZHJlc3MgY29uZmlndXJlZCBpbiBDaXNjbyBTbWFydCBMaWNlbnNlIFBvcnRhbCB3aWxsIGJlIHVzZWQgYXMgY29udGFjdCBlbWFpbCBhZGRyZXNzIHRvIHNlbmQgU0NIIG5vdGlmaWNhdGlvbnMuCiBjb250YWN0LWVtYWlsLWFkZHIgc2NoLXNtYXJ0LWxpY2Vuc2luZ0BjaXNjby5jb20KIHByb2ZpbGUgIkNpc2NvVEFDLTEiCiAgYWN0aXZlCiAgZGVzdGluYXRpb24gdHJhbnNwb3J0LW1ldGhvZCBodHRwCiAgbm8gZGVzdGluYXRpb24gdHJhbnNwb3J0LW1ldGhvZCBlbWFpbAohCiEKIQohCiEKIQohCmlwIGRvbWFpbiBuYW1lIGV4YW1wbGUuY29tCiEKIQohCmxvZ2luIG9uLXN1Y2Nlc3MgbG9nCiEKIQohCiEKIQohCiEKc3Vic2NyaWJlciB0ZW1wbGF0aW5nCiEKIQohCiEKIQohCm11bHRpbGluayBidW5kbGUtbmFtZSBhdXRoZW50aWNhdGVkCiEKIQohCiEKIQohCiEKIQohCiEKIQohCiEKIQohCkNFUlRJRklDQVRFUyBBTkQgTElDRU5TRQpkaWFnbm9zdGljIGJvb3R1cCBsZXZlbCBtaW5pbWFsCmFyY2hpdmUKIGxvZyBjb25maWcKICBsb2dnaW5nIGVuYWJsZQogcGF0aCBib290Zmxhc2g6Cm1lbW9yeSBmcmVlIGxvdy13YXRlcm1hcmsgcHJvY2Vzc29yIDcyMzI5CiEKIQpzcGFubmluZy10cmVlIGV4dGVuZCBzeXN0ZW0taWQKIQp1c2VybmFtZSBib3hlbiBwcml2aWxlZ2UgMTUgcGFzc3dvcmQgMCBiMHgzTi1iMHgzTgohCnJlZHVuZGFuY3kKIQohCiEKIQohCiEKIQohCiEKIQohCiEKIQohCiEKIQohCiEKIQohCiEKIQohCmludGVyZmFjZSBHaWdhYml0RXRoZXJuZXQxCiBpcCBhZGRyZXNzIDEwLjAuMC4xNSAyNTUuMjU1LjI1NS4wCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDIKIG5vIGlwIGFkZHJlc3MKIHNodXRkb3duCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDMKIG5vIGlwIGFkZHJlc3MKIHNodXRkb3duCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDQKIG5vIGlwIGFkZHJlc3MKIHNodXRkb3duCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDUKIG5vIGlwIGFkZHJlc3MKIHNodXRkb3duCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDYKIG5vIGlwIGFkZHJlc3MKIHNodXRkb3duCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDcKIG5vIGlwIGFkZHJlc3MKIHNodXRkb3duCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDgKIG5vIGlwIGFkZHJlc3MKIHNodXRkb3duCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDkKIG5vIGlwIGFkZHJlc3MKIHNodXRkb3duCiBuZWdvdGlhdGlvbiBhdXRvCiBubyBtb3AgZW5hYmxlZAogbm8gbW9wIHN5c2lkCiEKaW50ZXJmYWNlIEdpZ2FiaXRFdGhlcm5ldDEwCiBubyBpcCBhZGRyZXNzCiBzaHV0ZG93bgogbmVnb3RpYXRpb24gYXV0bwogbm8gbW9wIGVuYWJsZWQKIG5vIG1vcCBzeXNpZAohCiEKdmlydHVhbC1zZXJ2aWNlIGNzcl9tZ210CiEKaXAgZm9yd2FyZC1wcm90b2NvbCBuZApubyBpcCBodHRwIHNlcnZlcgpubyBpcCBodHRwIHNlY3VyZS1zZXJ2ZXIKIQppcCBzc2ggcHVia2V5LWNoYWluCiAgdXNlcm5hbWUgYm94ZW4KICAga2V5LWhhc2ggc3NoLXJzYSA1Q0M3NEE2OEIxOEIwMjZBMTcwOUZCMDlEMUY0NEUyRgppcCBzY3Agc2VydmVyIGVuYWJsZQohCiEKIQohCiEKIQohCmNvbnRyb2wtcGxhbmUKIQohCiEKIQohCiEKbGluZSBjb24gMAogc3RvcGJpdHMgMQpsaW5lIHZ0eSAwIDQKIGxvZ2luIGxvY2FsCiB0cmFuc3BvcnQgaW5wdXQgYWxsCmxpbmUgdnR5IDUgMTUKIGxvZ2luIGxvY2FsCiB0cmFuc3BvcnQgaW5wdXQgYWxsCiEKbmV0Y29uZiBzc2gKIQohCiEKIQohCm5ldGNvbmYteWFuZwplbmQ8L2NsaS1jb25maWctZGF0YS1ibG9jaz48L2RhdGE+PC9ycGMtcmVwbHk+","Result":"\u003crpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"101\"\u003e\u003cdata\u003e\u003ccli-config-data-block\u003e!\nTIMESTAMP\n!\nversion 16.12\nservice timestamps debug datetime msec\nservice timestamps log datetime msec\nservice call-home\nplatform qfp utilization monitor load 80\nplatform punt-keepalive disable-kernel-core\nplatform console serial\n!\nhostname csr1000v\n!\nboot-start-marker\nboot-end-marker\n!\n!\nenable secret 9 $9$xvWnx8Fe35f8xE$E9ijp7GM/V48P5y1Uz3IEPtotXgwkJKYJmN0q3q2E92\n!\nno aaa new-model\ncall-home\n ! If contact email address in call-home is configured as [email protected]\n ! the email address configured in Cisco Smart License Portal will be used as contact email address to send SCH notifications.\n contact-email-addr [email protected]\n profile \"CiscoTAC-1\"\n active\n destination transport-method http\n no destination transport-method email\n!\n!\n!\n!\n!\n!\n!\nip domain name example.com\n!\n!\n!\nlogin on-success log\n!\n!\n!\n!\n!\n!\n!\nsubscriber templating\n!\n!\n!\n!\n!\n!\nmultilink bundle-name authenticated\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\nCERTIFICATES AND LICENSE\ndiagnostic bootup level minimal\narchive\n log config\n logging enable\n path bootflash:\nmemory free low-watermark processor 72329\n!\n!\nspanning-tree extend system-id\n!\nusername boxen privilege 15 password 0 b0x3N-b0x3N\n!\nredundancy\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\n!\ninterface GigabitEthernet1\n ip address 10.0.0.15 255.255.255.0\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet2\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet3\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet4\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet5\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet6\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet7\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet8\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet9\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\ninterface GigabitEthernet10\n no ip address\n shutdown\n negotiation auto\n no mop enabled\n no mop sysid\n!\n!\nvirtual-service csr_mgmt\n!\nip forward-protocol nd\nno ip http server\nno ip http secure-server\n!\nip ssh pubkey-chain\n username boxen\n key-hash ssh-rsa 5CC74A68B18B026A1709FB09D1F44E2F\nip scp server enable\n!\n!\n!\n!\n!\n!\n!\ncontrol-plane\n!\n!\n!\n!\n!\n!\nline con 0\n stopbits 1\nline vty 0 4\n login local\n transport input all\nline vty 5 15\n login local\n transport input all\n!\nnetconf ssh\n!\n!\n!\n!\n!\nnetconf-yang\nend\u003c/cli-config-data-block\u003e\u003c/data\u003e\u003c/rpc-reply\u003e","StartTime":"0001-01-01T00:00:00Z","EndTime":"0001-01-01T00:00:00Z","ElapsedTime":0,"FailedWhenContains":["PHJwYy1lcnJvcj4=","PHJwYy1lcnJvcnM+","PC9ycGMtZXJyb3I+","PC9ycGMtZXJyb3JzPg==","PG5jOnJwYy1lcnJvcj4=","PC9uYzpycGMtZXJyb3I+"],"Failed":null,"StripNamespaces":false,"NetconfVersion":"1.0","ErrorMessages":null,"WarningErrorMessages":null,"SubscriptionID":0}
Loading

0 comments on commit a6c4329

Please sign in to comment.