def set_execution_attribute_response_data(self, response_data):
self.setAttribute(ATTRIBUTE_RESPONSE_DATA, response_data)
+
+ def get(self, filter_content):
+ device_response = self.netconf_rpc_client.get(filter_content)
+ return device_response
+
+ def set_execution_attribute_response_data(self, response_data):
+ self.component_function.setAttribute(ATTRIBUTE_RESPONSE_DATA, response_data)
/*
* Copyright © 2017-2018 AT&T Intellectual Property.
+ * Modifications Copyright (c) 2019 IBM, Bell Canada
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @return Device response
*/
fun asyncRpc(request: String, messageId: String): DeviceResponse
+
+ /**
+ * Get
+ *
+ * @param filter filter content for operational command
+ * @return Device response
+ */
+ fun get(filter: String): DeviceResponse
}
\ No newline at end of file
/*
* Copyright © 2017-2019 AT&T, Bell Canada
+ * Modifications Copyright (c) 2019 IBM, Bell Canada
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
return output
}
+ override fun get(filter: String): DeviceResponse {
+ var output = DeviceResponse()
+ val messageId = messageIdInteger.getAndIncrement().toString()
+ log.info("$deviceInfo: get operational config: messageId($messageId)")
+ try {
+ val message = NetconfMessageUtils.get(messageId, filter)
+ output = asyncRpc(message, messageId)
+ } catch (e: Exception) {
+ output.status = RpcStatus.FAILURE
+ output.errorMessage = "$deviceInfo: failed in 'get' command ${e.message}"
+ }
+ return output
+ }
+
override fun getConfig(filter: String, configTarget: String): DeviceResponse {
var output = DeviceResponse()
val messageId = messageIdInteger.getAndIncrement().toString()
/*
* Copyright © 2017-2019 AT&T, Bell Canada
+ * Modifications Copyright (c) 2019 IBM.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
private val CHUNKED_SIZE_PATTERN: Pattern = Pattern.compile("\\n#([1-9][0-9]*)\\n")
private val MSG_ID_STRING_PATTERN = Pattern.compile("${RpcMessageUtils.MESSAGE_ID_STRING}=\"(.*?)\"")
+ fun get(messageId: String, filterContent: String): String {
+ val request = StringBuilder()
+
+ request.append("<get>").append(NEW_LINE)
+ if (!filterContent.isNullOrEmpty()) {
+ request.append(RpcMessageUtils.SUBTREE_FILTER_OPEN).append(NEW_LINE)
+ request.append(filterContent).append(NEW_LINE)
+ request.append(RpcMessageUtils.SUBTREE_FILTER_CLOSE).append(NEW_LINE)
+ }
+ request.append("</get>").append(NEW_LINE)
+
+ return doWrappedRpc(messageId, request.toString())
+ }
+
fun getConfig(messageId: String, configType: String, filterContent: String?): String {
val request = StringBuilder()
/*
* Copyright © 2019 Bell Canada
+ * Modifications Copyright (c) 2019 IBM
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
assertTrue { invokeRpcrResult.errorMessage!!.contains("failed in 'invokeRpc' command") }
}
+ @Test
+ fun `get completes normally`() {
+ val netconfRpcService = NetconfRpcServiceImpl(deviceInfo)
+ netconfRpcService.setNetconfSession(mockNetconfSession)
+ val spy = spyk(netconfRpcService)
+ every { spy.asyncRpc(any(), any()) } returns successfulDeviceResponse
+ val getRpcrResult = spy.get(someString)
+ assertEquals(successfulDeviceResponse, getRpcrResult)
+ }
+
+ @Test
+ fun `get on error sets DeviceResponse status to FAILURE`() {
+ val netconfRpcService = NetconfRpcServiceImpl(deviceInfo)
+ netconfRpcService.setNetconfSession(mockNetconfSession)
+ val spy = spyk(netconfRpcService)
+ every { spy.asyncRpc(any(), any()) } throws IOException("Some IO exception...")
+ val getRpcResult = spy.get(someString)
+ assertEquals(failedDeviceResponse.status, getRpcResult.status)
+ assertTrue { getRpcResult.errorMessage!!.contains("failed in 'get' command") }
+ }
+
@Test
fun `getConfig completes normally`() {
val netconfRpcService = NetconfRpcServiceImpl(deviceInfo)
netconfRpcService.setNetconfSession(mockNetconfSession)
val spy = spyk(netconfRpcService)
every { spy.asyncRpc(any(), any()) } returns successfulDeviceResponse
- val invokeRpcrResult = spy.getConfig(someString)
- assertEquals(successfulDeviceResponse, invokeRpcrResult)
+ val getConfigRpcResult = spy.getConfig(someString)
+ assertEquals(successfulDeviceResponse, getConfigRpcResult)
}
@Test
+/*
+ * Copyright © 2019 Bell Canada
+ * Modifications Copyright (c) 2019 IBM
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
package org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor.utils
import org.junit.Assert.*
assertEquals("getConfig return was not correct", expectation, outcome)
}
+ @Test
+ fun `test get operational`() {
+ val outcome = NetconfMessageUtils.get("customMessageId", "customConfigType")
+ val expectation = JacksonUtils.getClassPathFileContent("netconf-messages/get-response.xml")
+ assertEquals("get return was not correct", expectation, outcome)
+ }
+
@Test
fun `test getConfig with filterContent parameter null`() {
val outcome = NetconfMessageUtils.getConfig("customMessageId", "customConfigType",null)
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<rpc message-id="customMessageId" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<get>
+<filter type="subtree">
+customConfigType
+</filter>
+</get>
+</rpc>
\ No newline at end of file