package org.onap.sdnc.northbound;
+import com.google.common.base.Optional;
+import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.Futures;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
-
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
-import com.google.common.util.concurrent.Futures;
-
/**
* Defines a base implementation for your provider. This class extends from a helper class which provides storage for
* the most commonly used components of the MD-SAL. Additionally the base class provides some basic logging and
final String svcOperation = "vnf-topology-operation";
ServiceData serviceData;
ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder();
- Properties parms = new Properties();
+ Properties properties = new Properties();
log.info(CALLED_STR, svcOperation);
// create a new response object
trySetSvcRequestId(input, responseBuilder);
- if (hasInvalidVnf(input)) {
+ if (hasInvalidVnfId(input)) {
log.debug("exiting {} because of null or empty vnf-id", svcOperation);
responseBuilder.setResponseCode("404");
responseBuilder.setResponseMessage("invalid input, null or empty vnf-id");
log.info(ADDING_INPUT_DATA_LOG, svcOperation, siid, input);
VnfTopologyOperationInputBuilder inputBuilder = new VnfTopologyOperationInputBuilder(input);
- GenericResourceApiUtil.toProperties(parms, inputBuilder.build());
+ GenericResourceApiUtil.toProperties(properties, inputBuilder.build());
log.info(ADDING_OPERATIONAL_DATA_LOG, svcOperation, siid,
operDataBuilder.build());
- GenericResourceApiUtil.toProperties(parms, OPERATIONAL_DATA_PARAM, operDataBuilder);
+ GenericResourceApiUtil.toProperties(properties, OPERATIONAL_DATA_PARAM, operDataBuilder);
// Call SLI sync method
// Get SvcLogicService reference
- ResponseObject error = new ResponseObject("200", "");
+ ResponseObject responseObject = new ResponseObject("200", "");
String ackFinal = "Y";
String serviceObjectPath = null;
- Properties respProps = tryGetProperties(svcOperation, parms, serviceDataBuilder, error);
+ Properties respProps = tryGetProperties(svcOperation, properties, serviceDataBuilder, responseObject);
if (respProps != null) {
- error.setMessage(respProps.getProperty(ERROR_MESSAGE_PARAM));
- error.setStatusCode(respProps.getProperty(ERROR_CODE_PARAM));
+ responseObject.setMessage(respProps.getProperty(ERROR_MESSAGE_PARAM));
+ responseObject.setStatusCode(respProps.getProperty(ERROR_CODE_PARAM));
ackFinal = respProps.getProperty(ACK_FINAL_PARAM, "Y");
serviceObjectPath = respProps.getProperty("vnf-object-path");
}
- setServiceStatus(serviceStatusBuilder, error.getStatusCode(), error.getMessage(), ackFinal);
+ setServiceStatus(serviceStatusBuilder, responseObject.getStatusCode(), responseObject.getMessage(), ackFinal);
serviceStatusBuilder.setRequestStatus(RequestStatus.Synccomplete);
serviceStatusBuilder.setRpcName(svcOperation);
- if (failed(error)) {
- responseBuilder.setResponseCode(error.getStatusCode());
- responseBuilder.setResponseMessage(error.getMessage());
+ if (failed(responseObject)) {
+ responseBuilder.setResponseCode(responseObject.getStatusCode());
+ responseBuilder.setResponseMessage(responseObject.getMessage());
responseBuilder.setAckFinalIndicator(ackFinal);
ServiceBuilder serviceBuilder = new ServiceBuilder();
} catch (Exception e) {
log.error(UPDATING_MDSAL_ERROR_MESSAGE, svcOperation, siid, e);
responseBuilder.setResponseCode("500");
- responseBuilder.setResponseMessage(e.toString());
+ responseBuilder.setResponseMessage(e.getMessage());
responseBuilder.setAckFinalIndicator("Y");
log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build());
}
// Update succeeded
- responseBuilder.setResponseCode(error.getStatusCode());
+ responseBuilder.setResponseCode(responseObject.getStatusCode());
responseBuilder.setAckFinalIndicator(ackFinal);
- trySetResponseMessage(responseBuilder, error);
+ trySetResponseMessage(responseBuilder, responseObject);
log.info(UPDATED_MDSAL_INFO_MESSAGE, svcOperation, siid);
log.info(RETURNED_SUCCESS_MESSAGE, svcOperation, siid, responseBuilder.build());
}
}
- private boolean hasInvalidVnf(VnfTopologyOperationInput input) {
+ private boolean hasInvalidVnfId(VnfTopologyOperationInput input) {
return input.getVnfInformation() == null || input.getVnfInformation().getVnfId() == null
|| input.getVnfInformation().getVnfId().length() == 0;
}
return Futures.immediateFuture(rpcResult);
}
- if (hasInvalidVnf(input)) {
+ if (hasInvalidVnfId(input)) {
log.debug("exiting {} because of null or empty vnf-id", svcOperation);
responseBuilder.setResponseCode("403");
responseBuilder.setResponseMessage("invalid input, null or empty vnf-id");
|| input.getVfModuleInformation().getVfModuleId().length() == 0;
}
- private boolean hasInvalidVnf(VfModuleTopologyOperationInput input) {
+ private boolean hasInvalidVnfId(VfModuleTopologyOperationInput input) {
return input.getVnfInformation() == null || input.getVnfInformation().getVnfId() == null
|| input.getVnfInformation().getVnfId().length() == 0;
}
return Futures.immediateFuture(rpcResult);
}
- private void trySetResponseMessage(ContrailRouteTopologyOperationOutputBuilder responseBuilder, ResponseObject error) {
+ private void trySetResponseMessage(ContrailRouteTopologyOperationOutputBuilder responseBuilder,
+ ResponseObject error) {
if (!error.getMessage().isEmpty()) {
responseBuilder.setResponseMessage(error.getMessage());
}
}
private Future<RpcResult<ContrailRouteTopologyOperationOutput>>
- buildRpcResultFuture(ContrailRouteTopologyOperationOutputBuilder responseBuilder, String responseMessage) {
+ buildRpcResultFuture(ContrailRouteTopologyOperationOutputBuilder responseBuilder, String responseMessage) {
responseBuilder.setResponseCode("404");
responseBuilder.setResponseMessage(responseMessage);
return Futures.immediateFuture(rpcResult);
}
- private void trySetResponseMessage(SecurityZoneTopologyOperationOutputBuilder responseBuilder, ResponseObject error) {
+ private void trySetResponseMessage(SecurityZoneTopologyOperationOutputBuilder responseBuilder,
+ ResponseObject error) {
if (!error.getMessage().isEmpty()) {
responseBuilder.setResponseMessage(error.getMessage());
}
}
private Future<RpcResult<SecurityZoneTopologyOperationOutput>>
- buildRpcResultFuture(SecurityZoneTopologyOperationOutputBuilder responseBuilder, String responseMessage) {
+ buildRpcResultFuture(SecurityZoneTopologyOperationOutputBuilder responseBuilder, String responseMessage) {
responseBuilder.setResponseCode("404");
responseBuilder.setResponseMessage(responseMessage);
return Futures.immediateFuture(rpcResult);
}
- private void trySetResponseMessage(TunnelxconnTopologyOperationOutputBuilder responseBuilder, ResponseObject error) {
+ private void trySetResponseMessage(TunnelxconnTopologyOperationOutputBuilder responseBuilder,
+ ResponseObject error) {
if (!error.getMessage().isEmpty()) {
responseBuilder.setResponseMessage(error.getMessage());
}
if (respProps != null) {
error.setStatusCode(respProps.getProperty(ERROR_CODE_PARAM));
error.setMessage(respProps.getProperty(ERROR_MESSAGE_PARAM));
- return respProps.getProperty(ACK_FINAL_PARAM, "Y");
+ return respProps.getProperty(ACK_FINAL_PARAM, "Y");
}
return "Y";
}
package org.onap.sdnc.northbound;
import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.onap.sdnc.northbound.GenericResourceApiProvider.APP_NAME;
import static org.onap.sdnc.northbound.util.MDSALUtil.serviceTopologyOperationInput;
import static org.onap.sdnc.northbound.util.MDSALUtil.serviceTopologyOperationOutput;
-import javax.xml.crypto.Data;
-import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.information.ServiceInformation;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.model.infrastructure.Service;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.status.ServiceStatus;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.common.RpcResult;
@RunWith(MockitoJUnitRunner.class)
public class ServiceTopologyOperationRPCTest extends GenericResourceApiProviderTest {
-
final String SVC_OPERATION = "service-topology-operation";
-
@Before
public void setUp() throws Exception {
super.setUp();
svcClient.setScvOperation(SVC_OPERATION);
}
-
/**
* Verify ServiceTopologyOperation RPC executes a DG then produces the expected {@link
* ServiceTopologyOperationOutput} and persisted the expected {@link Service} in the {@link DataBroker}
}
@Test
- public void serviceTopologyOperation_should_fail_when_service_info_not_present() throws Exception {
+ public void should_fail_when_service_info_not_present() throws Exception {
// create the ServiceTopologyOperationInput from the template
ServiceTopologyOperationInput input = build(
serviceTopologyOperationInput()
.setSdncRequestHeader(build(sdncRequestHeader()
- .setSvcRequestId("svc-request-id: xyz")
- .setSvcAction(SvcAction.Assign)
- ))
- .setRequestInformation(build(requestInformation()
- .setRequestId("request-id: xyz")
- .setRequestAction(RequestInformation.RequestAction.CreateServiceInstance)
- )));
+ .setSvcRequestId("svc-request-id: xyz")
+ .setSvcAction(SvcAction.Assign)
+ ))
+ .setRequestInformation(build(requestInformation()
+ .setRequestId("request-id: xyz")
+ .setRequestAction(RequestInformation.RequestAction.CreateServiceInstance)
+ )));
//execute the mdsal exec
ServiceTopologyOperationOutput output = exec(
@Test
- public void serviceTopologyOperation_should_fail_when_client_execution_failed() throws Exception {
+ public void should_fail_when_client_execution_failed() throws Exception {
svcClient.mockHasGraph(true);
svcClient.mockExecute(new RuntimeException("test exception"));
}
@Test
- public void serviceTopologyOperation_should_fail_when_client_has_no_graph() throws Exception {
+ public void should_fail_when_client_has_no_graph() throws Exception {
svcClient.mockHasGraph(false);
ServiceTopologyOperationInput input = createSTOI();
@Test
- public void serviceTopologyOperation_should_fail_when_failed_to_update_mdsal() throws Exception {
+ public void should_fail_when_failed_to_update_mdsal() throws Exception {
svcClient.mockHasGraph(true);
WriteTransaction mockWriteTransaction = mock(WriteTransaction.class);
assertEquals("Y", output.getAckFinalIndicator());
}
-
-
private ServiceTopologyOperationInput createSTOI() {
return build(
--- /dev/null
+package org.onap.sdnc.northbound;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import static org.onap.sdnc.northbound.GenericResourceApiProvider.APP_NAME;
+import static org.onap.sdnc.northbound.GenericResourceApiProvider.NO_SERVICE_LOGIC_ACTIVE;
+import static org.onap.sdnc.northbound.GenericResourceApiProvider.NULL_OR_EMPTY_ERROR_PARAM;
+import static org.onap.sdnc.northbound.util.MDSALUtil.build;
+import static org.onap.sdnc.northbound.util.MDSALUtil.exec;
+import static org.onap.sdnc.northbound.util.MDSALUtil.requestInformation;
+import static org.onap.sdnc.northbound.util.MDSALUtil.sdncRequestHeader;
+import static org.onap.sdnc.northbound.util.MDSALUtil.serviceInformationBuilder;
+import static org.onap.sdnc.northbound.util.MDSALUtil.serviceResponseInformation;
+import static org.onap.sdnc.northbound.util.MDSALUtil.vnfInformationBuilder;
+import static org.onap.sdnc.northbound.util.MDSALUtil.vnfTopologyOperationInput;
+import static org.onap.sdnc.northbound.util.MDSALUtil.vnfTopologyOperationOutput;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.onap.sdnc.northbound.util.PropBuilder;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.TransactionChainClosedException;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.VnfTopologyOperationInput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.VnfTopologyOperationOutput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.request.information.RequestInformation;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.sdnc.request.header.SdncRequestHeader.SvcAction;
+import org.opendaylight.yangtools.yang.common.RpcResult;
+
+@RunWith(MockitoJUnitRunner.class)
+public class VnfTopologyOperationRPCTest extends GenericResourceApiProviderTest {
+
+ private static final String SVC_OPERATION = "vnf-topology-operation";
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ svcClient.setScvOperation(SVC_OPERATION);
+ }
+
+ @Test
+ public void should_fail_when_service_info_not_present() throws Exception {
+
+ VnfTopologyOperationInput input = build(vnfTopologyOperationInput());
+
+ VnfTopologyOperationOutput output =
+ exec(genericResourceApiProvider::vnfTopologyOperation, input, RpcResult::getResult);
+
+ assertEquals("404", output.getResponseCode());
+ assertEquals(NULL_OR_EMPTY_ERROR_PARAM, output.getResponseMessage());
+ assertEquals("Y", output.getAckFinalIndicator());
+ }
+
+
+ @Test
+ public void should_fail_when_invalid_vnf_id() throws Exception {
+
+ VnfTopologyOperationInput input = build(vnfTopologyOperationInput()
+ .setServiceInformation(build(serviceInformationBuilder().
+ setServiceInstanceId("test-service-instance-id")))
+ );
+
+ VnfTopologyOperationOutput output =
+ exec(genericResourceApiProvider::vnfTopologyOperation, input, RpcResult::getResult);
+
+ assertEquals("404", output.getResponseCode());
+ assertEquals("invalid input, null or empty vnf-id", output.getResponseMessage());
+ assertEquals("Y", output.getAckFinalIndicator());
+ }
+
+
+ @Test
+ public void should_fail_when_client_execution_failed() throws Exception {
+
+ svcClient.mockHasGraph(true);
+ svcClient.mockExecute(new RuntimeException("test exception"));
+
+ VnfTopologyOperationInput input = build(vnfTopologyOperationInput()
+ .setServiceInformation(build(serviceInformationBuilder()
+ .setServiceInstanceId("test-service-instance-id")))
+ .setVnfInformation(build(vnfInformationBuilder()
+ .setVnfId("test-vnf-id")))
+ );
+
+ VnfTopologyOperationOutput output =
+ exec(genericResourceApiProvider::vnfTopologyOperation, input, RpcResult::getResult);
+
+ assertEquals("500", output.getResponseCode());
+ assertEquals("test exception", output.getResponseMessage());
+ assertEquals("Y", output.getAckFinalIndicator());
+ }
+
+ @Test
+ public void should_fail_when_client_has_no_graph() throws Exception {
+
+ svcClient.mockHasGraph(false);
+
+ VnfTopologyOperationInput input = build(vnfTopologyOperationInput()
+ .setServiceInformation(build(serviceInformationBuilder()
+ .setServiceInstanceId("test-service-instance-id")))
+ .setVnfInformation(build(vnfInformationBuilder()
+ .setVnfId("test-vnf-id")))
+ );
+
+ VnfTopologyOperationOutput output =
+ exec(genericResourceApiProvider::vnfTopologyOperation, input, RpcResult::getResult);
+
+ assertEquals("503", output.getResponseCode());
+ assertEquals(NO_SERVICE_LOGIC_ACTIVE + APP_NAME + ": '" + SVC_OPERATION + "'", output.getResponseMessage());
+ assertEquals("Y", output.getAckFinalIndicator());
+ }
+
+ @Test
+ public void should_fail_when_failed_to_update_mdsal() throws Exception {
+
+ PropBuilder svcResultProp = svcClient.createExecuteOKResult();
+ svcClient.mockExecute(svcResultProp);
+ svcClient.mockHasGraph(true);
+ WriteTransaction mockWriteTransaction = mock(WriteTransaction.class);
+ when(mockWriteTransaction.submit()).thenThrow(new TransactionChainClosedException("test exception"));
+
+ DataBroker spyDataBroker = Mockito.spy(dataBroker);
+ when(spyDataBroker.newWriteOnlyTransaction()).thenReturn(mockWriteTransaction);
+ genericResourceApiProvider.setDataBroker(spyDataBroker);
+
+ VnfTopologyOperationInput input = build(vnfTopologyOperationInput()
+ .setServiceInformation(build(serviceInformationBuilder()
+ .setServiceInstanceId("test-service-instance-id")))
+ .setVnfInformation(build(vnfInformationBuilder()
+ .setVnfId("test-vnf-id")))
+ );
+
+ VnfTopologyOperationOutput output =
+ exec(genericResourceApiProvider::vnfTopologyOperation, input, RpcResult::getResult);
+
+ assertEquals("500", output.getResponseCode());
+ assertEquals("test exception", output.getResponseMessage());
+ assertEquals("Y", output.getAckFinalIndicator());
+ }
+
+ @Test
+ public void should_complete_with_success_when_no_errors() throws Exception {
+
+ svcClient.mockHasGraph(true);
+ PropBuilder svcResultProp = svcClient.createExecuteOKResult();
+ svcClient.mockExecute(svcResultProp);
+
+ VnfTopologyOperationInput input = build(vnfTopologyOperationInput()
+ .setSdncRequestHeader(build(sdncRequestHeader()
+ .setSvcRequestId("test-svc-request-id")
+ .setSvcAction(SvcAction.Assign)
+ ))
+ .setRequestInformation(build(requestInformation()
+ .setRequestId("test-request-id")
+ .setRequestAction(RequestInformation.RequestAction.CreateServiceInstance)
+ ))
+ .setServiceInformation(build(serviceInformationBuilder()
+ .setServiceInstanceId("test-service-instance-id")))
+ .setVnfInformation(build(vnfInformationBuilder()
+ .setVnfId("test-vnf-id")))
+
+ );
+
+ VnfTopologyOperationOutput output =
+ exec(genericResourceApiProvider::vnfTopologyOperation, input, RpcResult::getResult);
+
+ assertEquals("200", output.getResponseCode());
+ assertEquals("OK", output.getResponseMessage());
+ assertEquals("Y", output.getAckFinalIndicator());
+
+ VnfTopologyOperationOutput expectedVnfTopologyOperationOutput = createExpectedVTOO(svcResultProp,
+ input);
+ assertEquals(expectedVnfTopologyOperationOutput, output);
+ }
+
+ private VnfTopologyOperationOutput createExpectedVTOO(PropBuilder expectedSvcResultProp,
+ VnfTopologyOperationInput vnfTopologyOperationInput) {
+ return build(
+ vnfTopologyOperationOutput()
+ .setSvcRequestId(vnfTopologyOperationInput.getSdncRequestHeader().getSvcRequestId())
+ .setResponseCode(expectedSvcResultProp.get(svcClient.errorCode))
+ .setAckFinalIndicator(expectedSvcResultProp.get(svcClient.ackFinal))
+ .setResponseMessage(expectedSvcResultProp.get(svcClient.errorMessage))
+ .setServiceResponseInformation(build(serviceResponseInformation()
+ .setInstanceId(vnfTopologyOperationInput.getServiceInformation().getServiceInstanceId())
+ .setObjectPath(expectedSvcResultProp.get("vnf-object-path"))
+ ))
+ );
+ }
+}
package org.onap.sdnc.northbound.util;
+import java.util.concurrent.Future;
+import java.util.function.Consumer;
+import java.util.function.Function;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.NetworkTopologyOperationInputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.NetworkTopologyOperationOutputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.ServiceTopologyOperationInputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.ServiceTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.VnfTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.VnfTopologyOperationOutputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.network.information.NetworkInformationBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.network.response.information.NetworkResponseInformationBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.request.information.RequestInformationBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.model.infrastructure.ServiceBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.response.information.ServiceResponseInformationBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.status.ServiceStatusBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.vnf.information.VnfInformationBuilder;
import org.opendaylight.yangtools.concepts.Builder;
import org.opendaylight.yangtools.yang.common.RpcResult;
-import java.util.concurrent.Future;
-import java.util.function.Consumer;
-import java.util.function.Function;
-
/**
* This uill class provides utility to build yang objects using a recursive syntax that resembles the tree structure
*/
public class MDSALUtil {
+ public static VnfTopologyOperationInputBuilder vnfTopologyOperationInput() {
+ return new VnfTopologyOperationInputBuilder();
+ }
+
+ public static VnfTopologyOperationOutputBuilder vnfTopologyOperationOutput() {
+ return new VnfTopologyOperationOutputBuilder();
+ }
+
public static ServiceTopologyOperationInputBuilder serviceTopologyOperationInput() {
return new ServiceTopologyOperationInputBuilder();
}
-
- public static ServiceTopologyOperationOutputBuilder serviceTopologyOperationOutput(){
+ public static ServiceTopologyOperationOutputBuilder serviceTopologyOperationOutput() {
return new ServiceTopologyOperationOutputBuilder();
}
return new RequestInformationBuilder();
}
- public static ServiceResponseInformationBuilder serviceResponseInformation(){
- return new ServiceResponseInformationBuilder();
+ public static ServiceResponseInformationBuilder serviceResponseInformation() {
+ return new ServiceResponseInformationBuilder();
}
public static ServiceInformationBuilder serviceInformationBuilder() {
- return new ServiceInformationBuilder();
+ return new ServiceInformationBuilder();
}
+ public static VnfInformationBuilder vnfInformationBuilder() {
+ return new VnfInformationBuilder();
+ }
- public static ServiceBuilder service(){return new ServiceBuilder();}
+ public static ServiceBuilder service() {
+ return new ServiceBuilder();
+ }
- public static ServiceDataBuilder serviceData(){return new ServiceDataBuilder();}
+ public static ServiceDataBuilder serviceData() {
+ return new ServiceDataBuilder();
+ }
- public static ServiceStatusBuilder serviceStatus(){return new ServiceStatusBuilder();}
- public static NetworkInformationBuilder networkInformation(){return new NetworkInformationBuilder();}
+ public static ServiceStatusBuilder serviceStatus() {
+ return new ServiceStatusBuilder();
+ }
- public static NetworkTopologyOperationInputBuilder networkTopologyOperationInput() {return new NetworkTopologyOperationInputBuilder();}
+ public static NetworkInformationBuilder networkInformation() {
+ return new NetworkInformationBuilder();
+ }
- public static NetworkTopologyOperationOutputBuilder networkTopologyOperationOutput() {return new NetworkTopologyOperationOutputBuilder();}
+ public static NetworkTopologyOperationInputBuilder networkTopologyOperationInput() {
+ return new NetworkTopologyOperationInputBuilder();
+ }
- public static NetworkResponseInformationBuilder networkResponseInformation(){return new NetworkResponseInformationBuilder();}
+ public static NetworkTopologyOperationOutputBuilder networkTopologyOperationOutput() {
+ return new NetworkTopologyOperationOutputBuilder();
+ }
- public static ServiceLevelOperStatusBuilder serviceLevelOperStatus() {return new ServiceLevelOperStatusBuilder();}
+ public static NetworkResponseInformationBuilder networkResponseInformation() {
+ return new NetworkResponseInformationBuilder();
+ }
+
+ public static ServiceLevelOperStatusBuilder serviceLevelOperStatus() {
+ return new ServiceLevelOperStatusBuilder();
+ }
public static <P> P build(Builder<P> b) {
- return b == null? null :b.build();
+ return b == null ? null : b.build();
}
- public static <P,B extends Builder<P>> P build(Function<P,B> builderConstructor,P sourceDataObject){
- if(sourceDataObject == null){
+ public static <P, B extends Builder<P>> P build(Function<P, B> builderConstructor, P sourceDataObject) {
+ if (sourceDataObject == null) {
return null;
}
B bp = builderConstructor.apply(sourceDataObject);
return bp.build();
}
- public static <P,B extends Builder<P>> P build(Function<P,B> builderConstructor,P sourceDataObject,Consumer<B> builder){
- if(sourceDataObject == null){
+ public static <P, B extends Builder<P>> P build(Function<P, B> builderConstructor, P sourceDataObject,
+ Consumer<B> builder) {
+ if (sourceDataObject == null) {
return null;
}
B bp = builderConstructor.apply(sourceDataObject);
return bp.build();
}
- public static <I,O> O exec(Function<I,Future<RpcResult<O>>> rpc,I rpcParameter,Function<RpcResult<O>,O> rpcResult) throws Exception {
+ public static <I, O> O exec(Function<I, Future<RpcResult<O>>> rpc, I rpcParameter,
+ Function<RpcResult<O>, O> rpcResult) throws Exception {
Future<RpcResult<O>> future = rpc.apply(rpcParameter);
return rpcResult.apply(future.get());
}