Giter Club home page Giter Club logo

osc-core's People

Contributors

balmukundblr avatar dmitryintel avatar hai1337 avatar karimull-intc avatar lakodali avatar larkinscarvalho avatar neilxb avatar pravinrajr9 avatar wardtimx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

osc-core's Issues

Null pointer on startup

  1. Create a Distributed Appliance on OSC
  2. Restart the server

As part of restart, we try to sync all the DA's. I see a NPE at this point.

replace line 49 in SyncDistributedApplianceJob

      ConformService conformService = (ConformService) context.get(ConformService.class.getName());

       ConformService conformService = (ConformService) context.getMergedJobDataMap().get(ConformService.class.getName());
java.lang.NullPointerException
	at org.osc.core.server.scheduler.SyncDistributedApplianceJob$1.lambda$run$0(SyncDistributedApplianceJob.java:71)
	at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.doWork(AbstractTransactionControlImpl.java:161)
	at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.required(AbstractTransactionControlImpl.java:84)
	at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl.required(AbstractTransactionControlImpl.java:263)
	at org.osc.core.server.scheduler.SyncDistributedApplianceJob$1.run(SyncDistributedApplianceJob.java:66)
	at java.lang.Thread.run(Thread.java:745)

Validate OpenStack image format

Currently, we do not validate the OpenStack image format. OpenStack supports a huge list of images. We need to evaluate the list to add validation for them.

Deployment Spec (DS) not being displayed in the UI

Deployment Specs are not be reloaded in their view when the user exits and reopens the view.

Steps:

  1. Create an NSM Manager Connector (MC1). You must have an NSM for this.
  2. Create an OpenStack Virtualization Connector (VC1).
  3. Import an appliance image (IM1) for MC1 and VC1.
  4. Create a Distributed Appliance (DA1) using VC1, MC1 and IM1.
  5. Create a Deployment Spec (DS1) for (DA1).
  6. Click Back to exit the Deployment Specifications View.
  7. Click Deployments to reopen the View.

Expected Result:
View displays DS1.

Actual Result:
No DS is displayed.

Notes:
From the logs below this may have been caused by #212 .

Logs:

2017-05-11 00:34:33,798 [ERROR| qtp1750666857-52| DeploymentSpecSubView]: Failed to populate Deployment Specification
java.lang.NullPointerException
at org.osc.core.broker.view.deploymentspec.DeploymentSpecSubView.populateTable(DeploymentSpecSubView.java:145)
at org.osc.core.broker.view.CRUDBaseSubView.createTable(CRUDBaseSubView.java:132)
at org.osc.core.broker.view.CRUDBaseSubView.createSubView(CRUDBaseSubView.java:113)
at org.osc.core.broker.view.CRUDBaseSubView.(CRUDBaseSubView.java:93)
at org.osc.core.broker.view.deploymentspec.DeploymentSpecSubView.(DeploymentSpecSubView.java:92)
at org.osc.core.broker.view.DistributedApplianceView.switchToDsSubView(DistributedApplianceView.java:262)
at org.osc.core.broker.view.DistributedApplianceView.buttonClicked(DistributedApplianceView.java:243)
at org.osc.core.broker.view.CRUDBaseView$1.buttonClick(CRUDBaseView.java:105)
at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163)
at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1015)
at com.vaadin.ui.Button.fireClick(Button.java:377)
at com.vaadin.ui.Button$1.click(Button.java:54)
at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:119)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:432)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:404)
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:273)
at com.vaadin.server.communication.PushHandler$2.run(PushHandler.java:148)
at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:240)
at com.vaadin.server.communication.PushHandler.onMessage(PushHandler.java:494)
at com.vaadin.server.communication.PushAtmosphereHandler.onMessage(PushAtmosphereHandler.java:87)
at com.vaadin.server.communication.PushAtmosphereHandler.onRequest(PushAtmosphereHandler.java:77)
at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:199)
at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:107)
at org.atmosphere.container.Jetty9AsyncSupportWithWebSocket.service(Jetty9AsyncSupportWithWebSocket.java:180)
at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:2075)
at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:571)
at org.atmosphere.websocket.DefaultWebSocketProcessor$3.run(DefaultWebSocketProcessor.java:333)
at org.atmosphere.util.VoidExecutorService.execute(VoidExecutorService.java:101)
at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:328)
at org.atmosphere.websocket.DefaultWebSocketProcessor.invokeWebSocketProtocol(DefaultWebSocketProcessor.java:425)
at org.atmosphere.container.Jetty9WebSocketHandler.onWebSocketText(Jetty9WebSocketHandler.java:125)
at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextMessage(JettyListenerEventDriver.java:189)
at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69)
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:66)
at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextFrame(JettyListenerEventDriver.java:158)
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:162)
at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:376)
at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:220)
at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:220)
at org.eclipse.jetty.websocket.common.Parser.parse(Parser.java:256)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.readParse(AbstractWebSocketConnection.java:679)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:511)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:202)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
at java.lang.Thread.run(Thread.java:745)

osc-service-api needs to reference osc nexus to get libraries

osc-service-api is missing the following reference

<repository>
            <id>osc-nexus</id>
            <name>OSC Nexus</name>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <url>http://ci.opensecuritycontroller.org:8082/nexus/content/repositories/osc-snapshot/</url>
        </repository>

VC with controller type NONE fails with error message "Unsupported Controller type 'NONE'"

Steps to reproduce:

  • Add VC with Controller Type 'None'

  • Click 'OK'

Expected result: VC should be successfully created with no error message

Actual result: Fails with error message "Unsupported Controller type 'NONE'"

Logs:

[qtp781943562-65] INFO org.osc.core.broker.service.ServiceDispatcher - Service dispatch AddVirtualizationConnectorService. User: admin, Request: BaseRequest [dto=VirtualizationConnectorRequest{skipRemoteValidation=false, forceAddSSLCertificates=false}, isApi=false]
[qtp781943562-65] WARN org.osc.core.broker.service.ServiceDispatcher - Service request failed (logically): Open Security Controller: Unsupported Controller type 'NONE'
[qtp781943562-65] ERROR org.osc.core.broker.window.CRUDBaseWindow - Open Security Controller: Unsupported Controller type 'NONE'```

LazyInitializationException On startup

  1. Create a Distributed Appliance on OSC
  2. Create security group, add a members and bind to the DA
  3. Restart the server

Looks like OsSecurityGroupNotificationRunner is listing all the security groups in a transaction, but the listeners depend on some lazy loaded instances within the SG(like SGMs).

org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: org.osc.core.broker.model.entities.virtualization.SecurityGroup.securityGroupMembers, could not initialize proxy - no Session
	at org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:582)
	at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:201)
	at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:561)
	at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:132)
	at org.hibernate.collection.internal.PersistentSet.iterator(PersistentSet.java:163)
	at org.osc.core.broker.rest.client.openstack.vmidc.notification.runner.OsSecurityGroupNotificationRunner.getMemberIdsFromSG(OsSecurityGroupNotificationRunner.java:135)
	at org.osc.core.broker.rest.client.openstack.vmidc.notification.runner.OsSecurityGroupNotificationRunner.addMemberListener(OsSecurityGroupNotificationRunner.java:267)
	at org.osc.core.broker.rest.client.openstack.vmidc.notification.runner.OsSecurityGroupNotificationRunner.addListener(OsSecurityGroupNotificationRunner.java:165)
	at org.osc.core.broker.rest.client.openstack.vmidc.notification.runner.OsSecurityGroupNotificationRunner.<init>(OsSecurityGroupNotificationRunner.java:72)
	at org.osc.core.broker.rest.client.openstack.vmidc.notification.runner.RabbitMQRunner.<init>(RabbitMQRunner.java:77)
	at com.mcafee.vmidc.server.Server.startRabbitMq(Server.java:519)
	at com.mcafee.vmidc.server.Server.startServer(Server.java:185)
	at com.mcafee.vmidc.server.Server.access$000(Server.java:81)
	at com.mcafee.vmidc.server.Server$1.run(Server.java:126)
	at java.lang.Thread.run(Thread.java:745)

New unit test failures

It seems the following unit tests are now failing. Likely due to #242

org.osc.core.broker.rest.server.api.AlarmApisTest.testPutAlarm_withBadPathParam_expectErrorCode
org.osc.core.broker.rest.server.api.AlarmApisTest.testPutAlarm_withGoodRequest_expectStatusAccepted
org.osc.core.broker.rest.server.api.AlarmApisTest.testPostAlarm_withGoodRequest_expectStatusAccepted
org.osc.core.broker.rest.server.api.AlarmApisTest.testGetAlarms_expectListOfAlarmsAndStatusOk

See: http://10.3.240.52:8080/view/Master/job/osc-core/261/

SDN Controller Plugin reload issue

Observed 2 issues w.r.t plugin load/unload

  1. As part of plugin load, OSC installs plugin as bundle, which invokes start() method of bundle context. And as part of unload, stop() method of bundle gets invoked.
    After loading plugin, if user clicks on any tab, then stop() method of bundle gets invoked, but plugin is not removed from context and still loaded in OSC. This'll remove any initialization done as part of start(), which is not an intended behavior. Ideally stop() methos should get called only if plugin gets unloaded.
    This is a consistent behavior

  2. Sometimes plugin doesn't get loaded properly i.e. some of the classes/libraries of plugin doesn't gets initialized/exist. UI shows that plugin gets loaded successfully, but at time of bind plugin throws exception when it tries to access those class/libraries. Looks like at time of plugin unload cleanup not happened properly, which is affecting next plugin load.
    This is an inconsistent behavior, observed issue few times only.
    To resolve this issue, user need to restart osc-server after every plugin unload, to cleanup context properly.

OSC is unable to sync security group of type subnet when a new VM is created

In case of Security group with type subnet is protected, when new VMs added in the subnet these are not being protected due to delay in osc-server in sending a trigger to SDN plugin to redirect the traffic for protection.
As a workaround, whenever a new VM is added in the subnet which is protected by a security group of type Subnet, user needs to do trigger manual sync of the security group from OSC UI, to protect new vms.
Observed issue only when security group protects subnet, with network case this is working fine.

Steps to reproduce:

  1. Followed openstack user workflow and successfully created Deployment Spec.
  2. Created a Security group (SG) with type Subnet
  3. Bind this SG with the VNF
  4. The subnet is protected successfully i.e. existing vms gets protected properly.
  5. Now created a new openstack VM in the above subnet.
  6. The issue is that OSC doesn't sync the SG automatically. As a result the newly created vm is not protected.

Jobs in MC (and in VC pull request) keeps failing

All jobs in conform job are failing with nullpointer. I have investigated the issue - it may be problem with synchronization.

2017-04-07 14:02:15,839 [INFO | qtp1155878056-53| ReadWriteLockRecord]: tryLock LockRequest [objectRef=LockObjectReference [id=1, type=Manager Connector], unlockTask=org.osc.core.broker.service.tasks.conformance.UnlockObjectTask@329dc95a [LockObjectReference [id=1, type=Manager Connector]], [Write Lock]] 2017-04-07 14:02:15,872 [INFO | qtp1155878056-53| ReadWriteLockRecord]: Gained Write lock LockRequest [objectRef=LockObjectReference [id=1, type=Manager Connector], unlockTask=org.osc.core.broker.service.tasks.conformance.UnlockObjectTask@329dc95a [LockObjectReference [id=1, type=Manager Connector]], [Write Lock]] 2017-04-07 14:02:15,872 [INFO | qtp1155878056-53| ConformService]: Start MC (id:1) Conformance Job 2017-04-07 14:02:15,998 [INFO | qtp1155878056-53| ConformService]: Done submitting with jobId: 1 2017-04-07 14:02:15,999 [ERROR| isc-job-pool-0| Job]: Fail to update JobRecord Job [name=Syncing Appliance Manager Connector 'smc_test', state=RUNNING, status=PASSED] java.lang.NullPointerException at org.osc.core.broker.job.Job.lambda$persistState$1(Job.java:396) at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.doWork(AbstractTransactionControlImpl.java:161) at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.required(AbstractTransactionControlImpl.java:84) at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl.required(AbstractTransactionControlImpl.java:263) at org.osc.core.broker.job.Job.persistState(Job.java:393) at org.osc.core.broker.job.Job.setState(Job.java:385) at org.osc.core.broker.job.Job.executeGraph(Job.java:182) at org.osc.core.broker.job.Job.run(Job.java:167) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 2017-04-07 14:02:16,004 [INFO | qtp1155878056-53| ServiceDispatcher]: Service response: org.osc.core.broker.service.response.BaseJobResponse@269b283b 2017-04-07 14:02:16,011 [INFO | qtp1155878056-53| ServiceDispatcher]: Service dispatch ListManagerConnectoryPolicyService. User: admin, Request: BaseRequest [dto=null, isApi=false]

2017-04-07 15:10:40,530 [WARN | qtp1252837892-200| AddApplianceManagerConnectorService]: Exception encountered when trying to add Manager Connector, allowing user to either ignore or correct issue
2017-04-07 15:10:43,352 [ERROR| isc-job-pool-0| Job]: Fail to update JobRecord Job [name=Syncing Appliance Manager Connector 'SMC_MC', state=RUNNING, status=PASSED]
java.lang.NullPointerException
at org.osc.core.broker.job.Job.lambda$persistState$1(Job.java:396)
at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.doWork(AbstractTransactionControlImpl.java:161)
at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.required(AbstractTransactionControlImpl.java:84)
at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl.required(AbstractTransactionControlImpl.java:263)
at org.osc.core.broker.job.Job.persistState(Job.java:393)
at org.osc.core.broker.job.Job.setState(Job.java:385)
at org.osc.core.broker.job.Job.executeGraph(Job.java:182)
at org.osc.core.broker.job.Job.run(Job.java:167)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
2017-04-07 15:10:43,356 [ERROR| isc-job-pool-0| TaskNode]: Fail to update TaskRecord TaskNode [task=[Checking Appliance Manager Connector 'SMC_MC'], state=QUEUED, status=PASSED, guard=ALL_PREDECESSORS_SUCCEEDED]
java.lang.NullPointerException
at org.osc.core.broker.job.TaskNode.lambda$persistState$0(TaskNode.java:140)
at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.doWork(AbstractTransactionControlImpl.java:161)
at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.required(AbstractTransactionControlImpl.java:84)
at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl.required(AbstractTransactionControlImpl.java:263)
at org.osc.core.broker.job.TaskNode.persistState(TaskNode.java:136)
at org.osc.core.broker.job.TaskNode.setState(TaskNode.java:122)
at org.osc.core.broker.job.Job.executeTask(Job.java:172)
at org.osc.core.broker.job.Job.executeGraph(Job.java:248)
at org.osc.core.broker.job.Job.run(Job.java:167)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
2017-04-07 15:10:44,581 [ERROR| Thread-91| ConformService]: A serious error occurred in the Job Listener
org.osgi.service.transaction.control.ScopedWorkException: The scoped work threw an exception
at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.doWork(AbstractTransactionControlImpl.java:185)
at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.required(AbstractTransactionControlImpl.java:84)
at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl.required(AbstractTransactionControlImpl.java:263)
at org.osc.core.broker.service.ConformService$2.completed(ConformService.java:224)
at org.osc.core.broker.job.Job$NotifyJobCompletionListeners.run(Job.java:307)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at org.osc.core.broker.service.ConformService$2.lambda$completed$0(ConformService.java:226)
at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.doWork(AbstractTransactionControlImpl.java:161)
... 5 more
2017-04-07 15:10:44,582 [ERROR| Thread-91| LogUtil$StdOutErrLog]: Exception in thread "Thread-91"
2017-04-07 15:10:44,583 [ERROR| Thread-91| LogUtil$StdOutErrLog]: java.lang.RuntimeException: No Transactional resources are available
2017-04-07 15:10:44,583 [ERROR| Thread-91| LogUtil$StdOutErrLog]: at org.osc.core.broker.service.ConformService$2.completed(ConformService.java:229)
2017-04-07 15:10:44,583 [ERROR| Thread-91| LogUtil$StdOutErrLog]: at org.osc.core.broker.job.Job$NotifyJobCompletionListeners.run(Job.java:307)
2017-04-07 15:10:44,583 [ERROR| Thread-91| LogUtil$StdOutErrLog]: at java.lang.Thread.run(Thread.java:745)
2017-04-07 15:10:44,583 [ERROR| Thread-91| LogUtil$StdOutErrLog]: Caused by: org.osgi.service.transaction.control.ScopedWorkException: The scoped work threw an exception
2017-04-07 15:10:44,583 [ERROR| Thread-91| LogUtil$StdOutErrLog]: at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.doWork(AbstractTransactionControlImpl.java:185)
2017-04-07 15:10:44,583 [ERROR| Thread-91| LogUtil$StdOutErrLog]: at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.required(AbstractTransactionControlImpl.java:84)
2017-04-07 15:10:44,584 [ERROR| Thread-91| LogUtil$StdOutErrLog]: at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl.required(AbstractTransactionControlImpl.java:263)
2017-04-07 15:10:44,584 [ERROR| Thread-91| LogUtil$StdOutErrLog]: at org.osc.core.broker.service.ConformService$2.completed(ConformService.java:224)
2017-04-07 15:10:44,584 [ERROR| Thread-91| LogUtil$StdOutErrLog]: ... 2 more
2017-04-07 15:10:44,584 [ERROR| Thread-91| LogUtil$StdOutErrLog]: Caused by: java.lang.NullPointerException
2017-04-07 15:10:44,584 [ERROR| Thread-91| LogUtil$StdOutErrLog]: at org.osc.core.broker.service.ConformService$2.lambda$completed$0(ConformService.java:226)
2017-04-07 15:10:44,584 [ERROR| Thread-91| LogUtil$StdOutErrLog]: at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.doWork(AbstractTransactionControlImpl.java:161)
2017-04-07 15:10:44,584 [ERROR| Thread-91| LogUtil$StdOutErrLog]: ... 5 more

All completed jobs are marked as aborted after restart

Start OSC
run a few jobs to completion
restart osc
all OSC tasks within the job which were showing up as completed before the restart are now marked as aborted.

Looks like regression from JPA changes

public List getUncompletedTasks() {
return this.session.createCriteria(TaskRecord.class).add(Restrictions.ne("state", TaskState.COMPLETED)).list();
}

was changed to
query = query.select(from).where(
cb.equal(from.get("state"), COMPLETED));

should be
query = query.select(from).where(
cb.notEqual(from.get("state"), COMPLETED));

OVF build missing jre

The build is not downloading the jre. This is not failing the build however the resulting image is not functional wihtout the jre.

Sync MC not working

Repro Steps:

  1. Add a manager connector, can be NSM or ISM
  2. Click Sync

Expected Behavior:
A job is triggered and finishes successfully.

Actual Behavior:
An error pop up shows.

Likely Root Cause:
The class ManagerConnectorView is not making using of the field private SyncManagerConnectorService syncManagerConnectorService = StaticRegistry.syncManagerConnectorService(); instead it is instantiating another sync service which likely wont have a ConformanceService resolved through OSGi.

Logs:
2017-04-12 01:56:55,024 [ERROR| qtp992985605-52| ServiceDispatcher]: Service request failed (unexpectedly): null
java.lang.NullPointerException
at org.osc.core.broker.service.mc.SyncManagerConnectorService.exec(SyncManagerConnectorService.java:43)
at org.osc.core.broker.service.mc.SyncManagerConnectorService.exec(SyncManagerConnectorService.java:31)
at org.osc.core.broker.service.ServiceDispatcher.lambda$dispatch$0(ServiceDispatcher.java:70)
at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.doWork(AbstractTransactionControlImpl.java:161)
at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.required(AbstractTransactionControlImpl.java:84)
at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl.required(AbstractTransactionControlImpl.java:263)
at org.osc.core.broker.service.ServiceDispatcher.dispatch(ServiceDispatcher.java:70)
at org.osc.core.broker.view.ManagerConnectorView.conformManagerConnector(ManagerConnectorView.java:93)
at org.osc.core.broker.view.ManagerConnectorView.buttonClicked(ManagerConnectorView.java:83)
at org.osc.core.broker.view.CRUDBaseView$1.buttonClick(CRUDBaseView.java:103)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163)
at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1015)
at com.vaadin.ui.Button.fireClick(Button.java:377)
at com.vaadin.ui.Button$1.click(Button.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:119)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:432)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:404)
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:273)
at com.vaadin.server.communication.PushHandler$2.run(PushHandler.java:148)
at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:240)
at com.vaadin.server.communication.PushHandler.onMessage(PushHandler.java:494)
at com.vaadin.server.communication.PushAtmosphereHandler.onMessage(PushAtmosphereHandler.java:87)
at com.vaadin.server.communication.PushAtmosphereHandler.onRequest(PushAtmosphereHandler.java:77)
at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:199)
at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:107)
at org.atmosphere.container.Jetty9AsyncSupportWithWebSocket.service(Jetty9AsyncSupportWithWebSocket.java:180)
at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:2075)
at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:571)
at org.atmosphere.websocket.DefaultWebSocketProcessor$3.run(DefaultWebSocketProcessor.java:333)
at org.atmosphere.util.VoidExecutorService.execute(VoidExecutorService.java:101)
at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:328)
at org.atmosphere.websocket.DefaultWebSocketProcessor.invokeWebSocketProtocol(DefaultWebSocketProcessor.java:425)
at org.atmosphere.container.Jetty9WebSocketHandler.onWebSocketText(Jetty9WebSocketHandler.java:125)
at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextMessage(JettyListenerEventDriver.java:189)
at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69)
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:66)
at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextFrame(JettyListenerEventDriver.java:158)
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:162)
at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:376)
at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:220)
at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:220)
at org.eclipse.jetty.websocket.common.Parser.parse(Parser.java:256)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.readParse(AbstractWebSocketConnection.java:679)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:511)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:202)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
at java.lang.Thread.run(Thread.java:745)
2017-04-12 01:56:59,337 [ERROR| qtp992985605-50| LogUtil$StdOutErrLog]: log4j:ERROR A "org.apache.log4j.RollingFileAppender" object is not assignable to a "org.apache.log4j.Appender" variable.
2017-04-12 01:56:59,337 [ERROR| qtp992985605-50| LogUtil$StdOutErrLog]: log4j:ERROR The class

Unbinding Security group from one DA and binding it with other DA fails

Description

Unbinding a security group from one Distributed Appliance and binding it to another Distributed Appliance in same request fails to protect the security group, as OSC is not triggering the InstallInspectionHook call to plugin.

Expected Behavior

SG bind should be successful when update with new DA

Actual Behavior

SG bind is successful when update with new DA(w.r.t job) but redirection not happened as plugin didn't get the call.

Steps to Reproduce

  1. Create a security group (SG) of type VM with 2 vms selected for protection.
  2. Create two Distributed appliances (DA1 and DA2) using same VC and Service function.
  3. Create Deployment Specifications corresponding to each DA.
  4. Now bind SG with DA1. Everything is fine including datapath validation.
  5. Now unbind the SG from DA1 and bind it with DA2 (in same request from UI).
  6. SG is unbound from DA1 successfully.
  7. The issue is that the vms of SG are not protected, even though in OSC UI the SG is bound to DA2.

Additional Information

api-doc MC GET and POST have wrong name "PolicyMappingSupported", should be "isPolicyMappingSupported"

Description

In https://OSCipaddress:8090/api-doc, Operations for Manager Connectors section there are three GETs, POST, PUT all have field name "PolicyMappingSupported", POST did get "bad request, un-recognize field", so all 5 places need to name it as "isPolicyMappingSupported". POST may even take this field out (not needed)

Expected Behavior

User can use api-doc to test Rest API functions OSC provides

Actual Behavior

POST/PUT failed. GET Model Schema display can confuse user with wrong name.

Steps to Reproduce

1)https://OSCipaddress:8090/api-doc, Operations for Manager Connectors section
2)GET Model Schema display in the yellow box
3)POST/PUT click write box and real fields in yellow box has wrong name and causes request fauiled

Additional Information

screenshot attached.

Environment

  • OSC Version/Build: v1B30
  • Cloud Provider Info:
  • Plugin Info:
  • Other:

Status

  • Reproduced
  • In Progress
  • Validated => Verified in Version/Build:

apidocgetmcs

apidocpostmcs

null pointer exception when trying to upgrade distributed appliance

Expected Behavior

no null pointer and upgrade should succeed.

Actual Behavior

getting a null pointer with the below stacktrace

java.lang.NullPointerException
	at org.osc.core.broker.service.tasks.conformance.openstack.deploymentspec.OsDAIUpgradeMetaTask.executeTransaction(OsDAIUpgradeMetaTask.java:107)
	at org.osc.core.broker.service.tasks.TransactionalMetaTask.lambda$execute$0(TransactionalMetaTask.java:51)
	at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.doWork(AbstractTransactionControlImpl.java:161)
	at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.required(AbstractTransactionControlImpl.java:84)
	at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl.required(AbstractTransactionControlImpl.java:263)
	at org.osc.core.broker.service.tasks.TransactionalMetaTask.execute(TransactionalMetaTask.java:50)
	at org.osc.core.broker.job.TaskNode.run(TaskNode.java:308)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:748)

Steps to Reproduce

  1. Deploy a Distributed appliance with a service function definition of version 1
  2. Allow sync job to complete
  3. Edit Distributed appliance with service function definition of version 2
  4. Sync job fails and the appliance on the virtualization environment is not upgraded

Additional Information

Looks like this is related to the OSGI changes. deleteSvaServerTask is being injected as a dynamic reference, but it is being intialized to null

Status

  • Reproduced
  • In Progress
  • Validated

Database not included in support bundle download

Description

Checking the option "Include Database Backup with Log Bundle" under Manage -> server -> summary tab and downloading the support bundle vs downloading just the logs works the same.

Expected Behavior

checking the "Include Database Backup with Log Bundle" should include the database in the zip file

Actual Behavior

No database in the zip file

Steps to Reproduce

goto Manage -> server -> summary and click "Download support Bundle" after checking the "Include Database Backup with Log Bundle" checkbox

Additional Information

Environment

  • OSC Version/Build: 1.0.0-SNAPSHOT (Build:30-g1a88e9b

Status

  • Reproduced
  • In Progress
  • Validated => Verified in Version/Build:

ISM Plugin is not functional

Steps:

  1. Upload ISM Manager Plugin - SampleMgrPlugin.bar using Manage/Pulgins/Manager Plugins

  2. Add an ISM Manager Connector

  3. Remove an ISM Manager Connector

  4. Remove the plugin

  5. Add the plugin once again

  6. Add the ISM MC once again.

Expected Result:
All the steps above should be completed successfully

Actual Result:
There is a DB related issue preventing the plugin from being functional, add MC does not succeed.

Note:
After this bug is fixed it is OK if the ISM plugin still shows INSTALL_WAIT and Services as 0 as long as the plugin is functional. This status issue will be fixed by Intel once the PR opensecuritycontroller/security-mgr-sample-plugin#5 is handled.

Edit Alarm config got extra red Error pop-up even function works ok

Description

Manage->Alarm->Edit select/deselect Enabled, click OK got red Error! Function ok.

Expected Behavior

Should not pop-up red Error!

Actual Behavior

Pop-up red "Error!" after click OK

Steps to Reproduce

Manage->Alarm->Edit select or deselect Enabled, click OK

Additional Information

Environment

  • OSC Version/Build: v1Build28
  • Cloud Provider Info:
  • Plugin Info:
  • Other:

Status

  • Reproduced
  • In Progress
  • Validated => Verified in Version/Build: Version: 1.0.0-SNAPSHOT (Build:148-g353071c, 2017-10-28T07:21:47Z)

API requests failing with parse exception

For the adding VC

DEBUG - createOstackVC
-- Sending POST Request for Action: create Virtualization Connector:
-- IP Addr: "10.3.205.104:8090"
-- Headers: "JSON"
-- URL: "/api/server/v1/virtualizationConnectors"

-- Body:

    {
        "name": "104-VC",
        "type": "OPENSTACK",
        "providerIP": "10.3.205.92",
        "providerUser": "admin",
        "providerPassword": "admin123",
        "softwareVersion": "Icehouse",
        "controllerType": {
            "value": "NONE"
        },
        "adminTenantName": "admin",
        "skipRemoteValidation": true,
        "forceAddSSLCertificates": true,
       
        "providerAttributes": {
            "ishttps": "false",
            "rabbitMQPort": "5672",
            "rabbitUser": "guest",
            "rabbitMQPassword": "guest"
        }
   
    }

DEBUG - Enter get_exception_info Exception: "_isc_connection: Status 400 for create Virtualization Connector: Bad Request b'{"errorCode":4000,"errorMessages":["Parse exception. Invalid request."]}'"

For adding MC

DEBUG - _isc_connection -- Sending POST Request for Action: create Manager Connector/createOrUpdateManagerConnector:
-- IP Addr: "10.3.205.104:8090"
-- Method: "POST"
-- Headers: "{'Authorization': 'Basic YWRtaW46YWRtaW4xMjM=', 'Content-Type': 'application/json', 'Accept': 'application/json'}"
-- URL: "/api/server/v1/applianceManagerConnectors"

-- Body:

    {
        "name": "104-MC",
        "managerType": {
             "value": "NSM"
        },
        "ipAddress": "10.3.205.105",
        "username": "admin",
        "password": "admin123",
        "skipRemoteValidation": true,
        "forceAddSSLCertificates": true,
        "isPolicyMappingSupported": false
    }

DEBUG - Enter get_exception_info Exception: "_isc_connection: Status 400 for create Manager Connector/createOrUpdateManagerConnector: Bad Request b'{"errorCode":4000,"errorMessages":["Parse exception. Invalid request."]}'"

Tested the same requests using 0.6 and they seem to work fine. used version 0.6 (Build:35-g00caf91)

You can test out the above requests by going into osc

https://OSC-IP:8090/api-doc/ and using swagger doc to submit and test the requests with the payload.

  • Reproduced
  • In Progress
  • Validated

org.osc.core:osc-common build failure

BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.219 s
[INFO] Finished at: 2017-07-20T21:14:49+08:00
[INFO] Final Memory: 13M/297M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal biz.aQute.bnd:bnd-maven-plugin:3.0.0:bnd-process (default) on project osc-common: bnd error: No enum constant aQute.bnd.osgi.Packages.QUERY.VERSIONED, for cmd: packages, arguments; [packages, VERSIONED] -> [Help 1]
[ERROR] 


support exec and query functionality in server-control

there is commented code in
https://github.com/opensecuritycontroller/osc-core/blob/master/osc-control/src/main/java/org/osc/core/server/control/ServerControl.java

When the server is not running, we still want to allow query and exec functionality for debug purposes.

if (isRunningServer()) {
            VmidcServerRestClient restClient = new VmidcServerRestClient(apiPort);
            String queryOutput = restClient.postResource("query", String.class, sql);
            System.out.println(queryOutput);
        } else {
            //            System.out.println(ServerDebugApis.query(sql).toString());
}

Create README

Create a README for osc-core. The README should include all information (whether new content or linked) to build, test, understand versioning, etc. Research other open source projects' READMEs, for example, see this README template.

Archiving is non-functional

Steps to Reproduce:

  • Login to OSC
  • Goto Manage -> server -> Archive -> select ondemand
  • See the following exception in the logs
javax.persistence.PersistenceException: Hibernate cannot unwrap interface java.sql.Connection
        at org.hibernate.internal.SessionImpl.unwrap(SessionImpl.java:3786)
        at org.apache.aries.tx.control.jpa.common.impl.EntityManagerWrapper.unwrap(EntityManagerWrapper.java:198)
        at org.apache.aries.tx.control.jpa.common.impl.EntityManagerWrapper.unwrap(EntityManagerWrapper.java:198)
        at org.osc.core.broker.service.archive.ArchiveService.exec(ArchiveService.java:77)
        at org.osc.core.broker.service.archive.ArchiveService.exec(ArchiveService.java:54)
        at org.osc.core.broker.service.ServiceDispatcher.lambda$dispatch$0(ServiceDispatcher.java:70)
        at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.doWork(AbstractTransactionControlImpl.java:161)
        at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.required(AbstractTransactionControlImpl.java:84)
        at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl.required(AbstractTransactionControlImpl.java:263)
        at org.osc.core.broker.service.ServiceDispatcher.dispatch(ServiceDispatcher.java:70)
        at org.osc.core.broker.view.maintenance.JobsArchiverPanel$3$1.run(JobsArchiverPanel.java:311)
        at java.lang.Thread.run(Thread.java:745)

Evaluate and fix warnings during bnd-process phase

In the bnd process phase i see warning for some of the modules during build time.

Evaluate and fix the warnings as applicable.

bnd-maven-plugin:3.3.0:bnd-process


[WARNING] /var/lib/jenkins/jobs/osc-core/workspace/osc-control/bnd.bnd [0:0]: Export org.osc.core.broker.service.api,  has 1,  private references [javax.ws.rs.container], 
[WARNING] /var/lib/jenkins/jobs/osc-core/workspace/osc-control/bnd.bnd [0:0]: Export org.osc.core.broker.service.exceptions,  has 1,  private references [javax.ws.rs], 

issue adding entities for second time

Repro Steps:
Create MC first time(successfully or unsuccessfully)
Second MC creating fails

Result:
Getting an error like below

2017-03-27 11:22:16,361 [ERROR| qtp1729923688-177| ServiceDispatcher]: Service request failed (unexpectedly): Transaction already active
java.lang.IllegalStateException: Transaction already active
      at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:52)
      at org.osc.core.broker.service.ServiceDispatcher.dispatch(ServiceDispatcher.java:67)
      at org.osc.core.broker.window.add.AddManagerConnectorWindow.createAndSubmitRequest(AddManagerConnectorWindow.java:224)
      at org.osc.core.broker.window.add.AddManagerConnectorWindow.submitForm(AddManagerConnectorWindow.java:191)
      at org.osc.core.broker.window.CRUDBaseWindow.lambda$createWindow$633c848f$1(CRUDBaseWindow.java:69)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:508)
      at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:198)
      at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:161)
      at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:979)
      at com.vaadin.ui.Button.fireClick(Button.java:393)
      at com.vaadin.ui.Button$1.click(Button.java:57)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:168)
      at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:118)
      at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:287)
      at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:180)
      at com.vaadin.server.communication.PushHandler$3.run(PushHandler.java:174)
      at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:253)
      at com.vaadin.server.communication.PushHandler.access$200(PushHandler.java:56)
      at com.vaadin.server.communication.PushHandler$1.onRequest(PushHandler.java:76)
      at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:174)
      at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:95)
      at org.atmosphere.container.Jetty9AsyncSupportWithWebSocket.service(Jetty9AsyncSupportWithWebSocket.java:180)
      at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:1802)
      at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:432)
      at org.atmosphere.websocket.DefaultWebSocketProcessor$2.run(DefaultWebSocketProcessor.java:285)
      at org.atmosphere.util.VoidExecutorService.execute(VoidExecutorService.java:101)
      at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:280)
      at org.atmosphere.websocket.DefaultWebSocketProcessor.invokeWebSocketProtocol(DefaultWebSocketProcessor.java:303)
      at org.atmosphere.container.Jetty9WebSocketHandler.onWebSocketText(Jetty9WebSocketHandler.java:77)
      at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextMessage(JettyListenerEventDriver.java:189)
      at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69)
      at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:66)
      at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextFrame(JettyListenerEventDriver.java:158)
      at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:162)
      at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:376)
      at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:220)
      at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:220)
      at org.eclipse.jetty.websocket.common.Parser.parse(Parser.java:256)
      at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.readParse(AbstractWebSocketConnection.java:679)
      at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:511)
      at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
      at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
      at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:202)
      at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
      at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
      at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
      at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
      at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
      at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
      at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
      at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
      at java.lang.Thread.run(Thread.java:745)
2017-03-27 11:22:20,149 [ERROR| qtp1729923688-57| ServiceDispatcher]: Service request failed (unexpectedly): org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl@4e8f8bb8 is closed
java.lang.IllegalStateException: org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl@4e8f8bb8 is closed
      at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.errorIfClosed(AbstractLogicalConnectionImplementor.java:37)
      at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:128)
      at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getConnectionForTransactionManagement(LogicalConnectionManagedImpl.java:247)
      at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.begin(LogicalConnectionManagedImpl.java:254)
      at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.begin(JdbcResourceLocalTransactionCoordinatorImpl.java:203)
      at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:56)
      at org.osc.core.broker.service.ServiceDispatcher.dispatch(ServiceDispatcher.java:67)
      at org.osc.core.broker.window.add.AddManagerConnectorWindow.createAndSubmitRequest(AddManagerConnectorWindow.java:224)
      at org.osc.core.broker.window.add.AddManagerConnectorWindow.submitForm(AddManagerConnectorWindow.java:191)
      at org.osc.core.broker.window.CRUDBaseWindow.lambda$createWindow$633c848f$1(CRUDBaseWindow.java:69)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:508)
      at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:198)
      at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:161)
      at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:979)
      at com.vaadin.ui.Button.fireClick(Button.java:393)
      at com.vaadin.ui.Button$1.click(Button.java:57)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:168)
      at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:118)
      at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:287)
      at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:180)
      at com.vaadin.server.communication.PushHandler$3.run(PushHandler.java:174)
      at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:253)
      at com.vaadin.server.communication.PushHandler.access$200(PushHandler.java:56)
      at com.vaadin.server.communication.PushHandler$1.onRequest(PushHandler.java:76)
      at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:174)
      at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:95)
      at org.atmosphere.container.Jetty9AsyncSupportWithWebSocket.service(Jetty9AsyncSupportWithWebSocket.java:180)
      at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:1802)
      at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:432)
      at org.atmosphere.websocket.DefaultWebSocketProcessor$2.run(DefaultWebSocketProcessor.java:285)
      at org.atmosphere.util.VoidExecutorService.execute(VoidExecutorService.java:101)
      at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:280)
      at org.atmosphere.websocket.DefaultWebSocketProcessor.invokeWebSocketProtocol(DefaultWebSocketProcessor.java:303)
      at org.atmosphere.container.Jetty9WebSocketHandler.onWebSocketText(Jetty9WebSocketHandler.java:77)
      at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextMessage(JettyListenerEventDriver.java:189)
      at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69)
      at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:66)
      at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextFrame(JettyListenerEventDriver.java:158)
      at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:162)
      at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:376)
      at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:220)
      at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:220)
      at org.eclipse.jetty.websocket.common.Parser.parse(Parser.java:256)
      at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.readParse(AbstractWebSocketConnection.java:679)
      at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:511)
      at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
      at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
      at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:202)
      at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
      at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
      at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
      at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
      at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
      at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
      at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
      at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
      at java.lang.Thread.run(Thread.java:745)

Expected Result:
Should be able to successfully create MC's multiple times.

I think this impacts all the services using the static registry.

private ConformService conformService;
private SetNetworkSettingsService setNetworkSettingsService;
private SetNATSettingsService setNATSettingsService;
private UpgradeService upgradeService;
private AddApplianceManagerConnectorService addApplianceManagerConnectorService;
private UpdateApplianceManagerConnectorService updateApplianceManagerConnectorService;
private SyncManagerConnectorService syncManagerConnectorService;
private DeleteUserService deleteUserService;

proposed fix is to add isOpen call to org.osc.core.broker.service.ServiceDispatcher.dispatch(I) method.

    if (this.em == null || !this.em.isOpen()) {
        this.em = getEntityManager();
    }

Checkstyle header check should reference single header file

Expected Behavior

There should be a single java.header file which all submodules refer to and allow building just the submodule.

Actual Behavior

Currently in all the submodules there is a java.header file. Removing this file will cause the submodule build to fail with the error below when the submodule is build independent of the parent.

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.15:check (default) on project osc-service-api: Failed during checkstyle configuration: cannot initialize module Header - unable to load header file java.header -> [Help 1]

Steps to Reproduce

delete java.header file and try to run submodule build only

Additional Information

Status

  • Reproduced
  • In Progress
  • Validated

Failed to build osc-core from command line

Description

Failed to build osc-core from command line

Expected Behavior

[INFO] BUILD SUCCESS

Actual Behavior

[INFO] org.osc.core:osc-export ............................ FAILURE [ 20.051 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:15 min
[INFO] Finished at: 2017-07-27T17:18:52+03:00
[INFO] Final Memory: 122M/1814M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal biz.aQute.bnd:bnd-export-maven-plugin:3.3.0:export (default) on project osc-export: Default handler for Launcher-Plugin not found in biz.aQute.launcher -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal biz.aQute.bnd:bnd-export-maven-plugin:3.3.0:export (default) on project osc-export: Default handler for Launcher-Plugin not found in biz.aQute.launcher
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Default handler for Launcher-Plugin not found in biz.aQute.launcher
at aQute.bnd.maven.export.plugin.ExportMojo.execute(ExportMojo.java:52)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 20 more
Caused by: java.lang.IllegalArgumentException: Default handler for Launcher-Plugin not found in biz.aQute.launcher
at aQute.bnd.build.Project.getHandler(Project.java:2531)
at aQute.bnd.build.Project.getProjectLauncher(Project.java:2480)
at aQute.bnd.maven.export.plugin.ExportMojo.export(ExportMojo.java:57)
at aQute.bnd.maven.export.plugin.ExportMojo.execute(ExportMojo.java:48)
... 22 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn -rf :osc-export

Steps to Reproduce

git clone {URL}
cd {repo}/osc-core
mvn clean install -DskipTests -e

Additional Information

Environment

  • OSC Version/Build: 1.0.0-SNAPSHOT
  • Cloud Provider Info:
  • Plugin Info:
  • Other:

Status

  • Reproduced
  • In Progress
  • Validated => Verified in Version/Build:

Adding multiple security group members (SGM) of the same type to the security group entity does not work

Expected Behavior

From within OSC code calling SecurityGroup.addSecurityGroupMember with members of the same type should work as expected: new and different members should be added. This issue does not seem to reflect directly on OSC APIs or UI but it does affect unit testing and it could have other not yet found side effects.

Actual Behavior

From within OSC code calling SecurityGroup.addSecurityGroupMember with members of the same type does not work. Only the first member gets added, this is happening because the type of the security members collection is TreeSet which uses compareTo to identify if elements are the same. Currently the SecurityGroupMember implements compareTo using the type only, thus adding elements of the same type does not work. This does not seem to be affecting any behavior on the APIs or UIs, the reason seems because the persistence framework instantiates the set of SGMs with a different collection other than TreeSet this affects the unit tests though.

Steps to Reproduce

Since this is currently only affecting unit tests the repro steps involve removing the workaround added for the unit tests and running them:

  1. Run the unit tests AllocateDAIWithSGIMembersTaskTest
  2. Observe the unit tests are passing
  3. Remove the workaround/TODO on UpdateDAIToSGIMembersTaskTest.newSGM which is currently mocking the compareTo method of the SGM
  4. Rerun the unit tests AllocateDAIWithSGIMembersTaskTest and observe that they will now fail due to the TreeSet issue.

Additional Information

Once the TreeSet issue is addressed, i.e.: use a HashSet then the tests should pass without the need for any workaround.

Status

  • Reproduced
  • In Progress
  • Validated

Checked exceptions are needed to let the client side know of connection-related issues.

Description

If the user encounters a connection-related exception while adding an MC, any number of exceptions may be thrown while trying to connect (SocketException, SocketTImeout, and many more).

This could be due to wrong IP, to appliance being down, to SSL certificate issues, authentication etc.

It is hard for the client or even the AddApplianceManagerConnectorService to determine the exact cause and alert the user appropriately, because the API classes in security-mgr-api are declared to throw Exception.

See, e.g., ApplianceManagerApi.createManagerDeviceApi(). Such exception are thrown inside it, typically by ApiFactoryService.checkConnection().

Expected Behavior

We need to create our own checked Exception classes, and have the implementors throw those instead.

Actual Behavior

We use instanceof someException do determine why we could not connect. See, e.g., ApplianceManagerApi.createManagerDeviceApi(). Such exception are thrown inside it, typically by ApiFactoryService.checkConnection().

Steps to Reproduce

Add NSM plugin. Then try adding a ManagerConnector with bogus IP, wrong credentials, SSL certificate. Debug into the methods mentioned above.

Additional Information

Environment

  • OSC Version/Build:
  • Cloud Provider Info:
  • Plugin Info:
  • Other:

Status

  • Reproduced
  • In Progress
  • Validated => Verified in Version/Build:

Investigate Removing esapi dependency

Esapi API has a large transitive dependency graph.

Based on the usages in the code, its only used to escape HTML. SafeHTML provided by GWT provides the equivalent functionality and possibly can be used.

OWASP/java-html-sanitizer also seems like a much more focused library for our use

scrren

SG Bind fails with error - Unable to locate attribute with the given name on this Managed Type

Repro Steps:
Create VC, MC, DA and DS.
Create an SG.
Bind the SG to a DA.

Result:
Getting an error - binding an SG (using Build 0.6-129)

IllegalArgumentException: Unable to locate Attribute with the the given name [protectedPorts] on this ManagedType [org.osc.core.broker.model.entities.BaseEntity]

Expected Result:
Should be able to successfully bind an SG.

Internal Bug ID: DE3596

Rabbitmq Queue not being auto-deleted

Sometime the rabbitmq queue osc_queue is not being auto deleted like it supposed to. Seems to be an RabbitMQ issue. Best practise is to add ttl for every queue created so it gets deleted automatically.
http://www.rabbitmq.com/ttl.html#queue-ttl

Map<String, Object> args = new HashMap<String, Object>();
args.put("x-expires", 1800000);
channel.queueDeclare("myqueue", false, false, false, args);

Status

  • Reproduced
  • In Progress
  • Validated => Verified in Version/Build: Version: 1.0.0-SNAPSHOT (Build:0-g7500b5a, 2017-10-30T17:15:38Z)

Using all profile causes checkstyle failures

Expected Behavior

Using the maven all profile should not result in build failure unless an actual issue is found

Actual Behavior

Build fails in the sub-modules with the following error.

[INFO] --- maven-checkstyle-plugin:2.15:check (osc-checkstyle) @ sdn-controller-api ---
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] org.osc.api:sdn-controller-api ..................... FAILURE [  8.402 s]
                            ..............................................
                            ..............................................
                            ..............................................
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.731 s
[INFO] Finished at: 2017-07-13T15:48:59-07:00
[INFO] Final Memory: 33M/522M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.15:check (osc-checkstyle) on project sdn-controller-api: Failed during checkstyle configuration: cannot initialize module Header - unable to load header file java.header -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Steps to Reproduce

run "mvn clean install -Pall" from the osc-core project while the submodules like sdn-controller-api are checked out in the parent folder.

Additional Information

Status

  • Reproduced
  • In Progress
  • Validated

Unit Tests with inconsistent behavior

The following tests fail inconsistently on both local runs and on the CI services. These tests should be fixed, redesigned to align with the unit test guidelines and re-enabled:
JobQueuerTest:testPutJob
JobEngineTest:testTaskDependencyExecutionOrder

JobEngineTest Failing - not updated for tx control

The Job engine tests are failing with the error below. Looks like this code was not updated for aries tx-control

9057 [main] ERROR org.osc.core.broker.job.Job  - Fail to create JobRecord Job [name=Job-task-graph-wiring, state=NOT_RUNNING, status=PASSED]
java.lang.NullPointerException
	at org.osc.core.broker.util.db.HibernateUtil.ensureInitialized(HibernateUtil.java:78)
	at org.osc.core.broker.util.db.HibernateUtil.getConnectionManager(HibernateUtil.java:44)
	at org.osc.core.broker.util.db.HibernateUtil.getTransactionalEntityManager(HibernateUtil.java:62)
	at org.osc.core.broker.job.Job.persistJob(Job.java:575)
	at org.osc.core.broker.job.JobEngine.initJob(JobEngine.java:185)
	at org.osc.core.broker.job.JobEngine.submit(JobEngine.java:156)
	at org.osc.core.broker.job.JobEngineTest.testAddTaskGraph(JobEngineTest.java:465)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)

Potential backwards compatibility problem with some APIs

This issue is related to the PR #256 . That PR turns additional entity enums used in the DTOS into strings. We must discuss further whether this can cause a real compatibility problem and, if so, maybe replicate those enums in the API service.
@derekwb I will leave this issue assigned to myself for now to discuss with @arvindn05 upon his return. We will assign to you in case this is something we must fix.

Status

  • Reproduced
  • In Progress
  • Validated => Verified in Version/Build: Version: 1.0.0-SNAPSHOT (Build:148-g353071c, 2017-10-28T07:21:47Z)

Delete autogenerated code from git

Expected Behavior

The following folder content is automatically generated at compile time, this should not be checked in.
https://github.com/opensecuritycontroller/osc-core/tree/master/osc-ui/src/main/webapp/VAADIN/widgetsets

Actual Behavior

reverting the files leads to stack traces like below

2017-07-06 16:10:41,947 [ERROR| qtp1593532558-89| CRUDBaseWindow]:
com.vaadin.data.util.MethodProperty$MethodException
at com.vaadin.data.util.MethodProperty.invokeSetMethod(MethodProperty.java:678)
at com.vaadin.data.util.MethodProperty.setValue(MethodProperty.java:649)

Steps to Reproduce

compile application, revert the files under the widgetsets folder

Additional Information

Status

  • Reproduced
  • In Progress
  • Validated

Remove job for Virtualization connector

Since Virtualization connector has a job associated with it which checks SSL connectivity we should be able to force delete the VC incase the endpoint is no longer accessible.

NullPointerException (NPE) thrown when updating a DA with a different Service Function Definition, when the SG is binded with the DA

Description

NullPointerException (NPE) thrown when updating a DA with a different Service Function Definition. SG is binded with the DA

Expected Behavior

The DA edit/update should have been successful with a Passed job

Actual Behavior

DA edit fails when a different Service Function definition (Image) is selected

Steps to Reproduce

Create a DA (e.g. da-1) using Setup > Distributed Appliances. Use an image with 1 nic interface.
Now edit the above DA using a different Service Function Definition. use an image with 2-nic interface.
A warning is received which asks for comfirmation if you want to make the change.
Click on OK.
DA edit Job fails - Failed Task shows Null Pointer Exception
Note - That the Sg is binded with this DA

Additional Information

Screenshot

npe-editing-da

Logs

NPE-Editing-DA.txt

java.lang.NullPointerException
at org.osc.core.broker.service.tasks.conformance.openstack.deploymentspec.OsDAIConformanceCheckMetaTask.executeTransaction(OsDAIConformanceCheckMetaTask.java:194)
at org.osc.core.broker.service.tasks.TransactionalMetaTask.lambda$execute$0(TransactionalMetaTask.java:51)
at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.doWork(AbstractTransactionControlImpl.java:161)
at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl$TransactionBuilderImpl.required(AbstractTransactionControlImpl.java:84)
at org.apache.aries.tx.control.service.common.impl.AbstractTransactionControlImpl.required(AbstractTransactionControlImpl.java:263)
at org.osc.core.broker.service.tasks.TransactionalMetaTask.execute(TransactionalMetaTask.java:50)
at org.osc.core.broker.job.TaskNode.run(TaskNode.java:308)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)

Environment

  • OSC Version/Build: Version: 1.0.0-SNAPSHOT (Build:30-g1a88e9b, 2017-07-24T19:39:58Z)
  • Cloud Provider Info:
  • Plugin Info: NSC SDN Controller, ISM Manager
  • Other:

Status

  • Reproduced
  • In Progress
  • Validated => Verified in Version/Build:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.