Skip to content

Move Container to Winery Model for Tosca interactions#78

Merged
lharzenetter merged 390 commits intomasterfrom
feature/winery-model
Jun 18, 2020
Merged

Move Container to Winery Model for Tosca interactions#78
lharzenetter merged 390 commits intomasterfrom
feature/winery-model

Conversation

@Vogel612
Copy link
Contributor

@Vogel612 Vogel612 commented Aug 22, 2018

Short Description

This change drops the duplication of the Tosca-Model by the container and instead directly uses the model exposed by the winery. It additionally changes the representation of CSARs used by the container. Instead of a self-rolled half-unpacked representation that necessitates resolving any contents of the CSAR through XML-Queries, a Csar is now encapsulated into a standalone winery IRepository that exposes query methods acting on the aforementioned winery model.

Additionally this PullRequest completely removes OSGI and all references to it from the codebase. Dependency Injection is instead performed through Spring using the standard javax.inject.@Inject annotation. The Event system of OSGI (which was only used for communication with the management bus) has been replaced with a direct invocation against a java bean.
There is no longer any way to add plugins to the container at runtime, but plugins on the classpath during startup that are correctly registered as spring-beans will be discovered and used.

Current Status / Functionality

The core functionality for Csars is working with the current changes. This notably includes uploading (including plan-generation), deployment and termination verified for MyTinyToDo_Bare_Docker and HomeAssistant_Bare_Docker.

A variety of different issues around other functionalities remains present. Most notably the following functionalities are broken at time of writing:

  • Soft-Deletion for all persistence objects
  • SituationTriggerListener functionality around invoking plans (because we can't easily inject service components into the listener instance)
  • SituationAdaption (cf. SituationListener#sendServiceInstanceAdaptionEvent)
  • Remaining functionalities using IToscaReferenceMapper, notably consolidation, as well as Resolver implementations and the call pattern determination in PlanInvocationEngine

Next Steps

The next steps revolve around replacing the last usages of IToscaReferenceMapper, which is functionally broken as well as getting to parity of functionality with the mainline to enable merging this massive set of changes

@Vogel612 Vogel612 mentioned this pull request Jan 25, 2019
miwurster pushed a commit that referenced this pull request Jan 28, 2019
This removes the disused legacy api. It preempts this change from the pull-request that moves the tosca model to the winery provisioned model and thus eliminates a source of conflicts for #78.
That way it also removes over a quarter of the current deletions from the diff.
@Vogel612 Vogel612 force-pushed the feature/winery-model branch from ea0c963 to 946a92e Compare February 8, 2019 18:35
@Vogel612 Vogel612 force-pushed the feature/winery-model branch from 75164fb to 2d47640 Compare February 26, 2019 16:53
@wederbn wederbn force-pushed the feature/winery-model branch from 0421630 to 09899f5 Compare June 16, 2020 14:11
wederbn and others added 17 commits June 16, 2020 16:13
…merges

# Conflicts:
#	.gitignore
#	org.opentosca.bus.management.service.impl/src/org/opentosca/bus/management/service/impl/ManagementBusServiceImpl.java
#	org.opentosca.container.api/OSGI-INF/ServiceTemplateController.xml
#	org.opentosca.container.api/src/org/opentosca/container/api/controller/CsarController.java
#	org.opentosca.container.api/src/org/opentosca/container/api/controller/RootController.java
#	org.opentosca.container.api/src/org/opentosca/container/api/controller/ServiceTemplateController.java
#	org.opentosca.container.api/src/org/opentosca/container/api/controller/ServiceTemplateInstanceController.java
#	org.opentosca.container.api/src/org/opentosca/container/api/controller/SituationsController.java
#	org.opentosca.container.api/src/org/opentosca/container/api/dto/plan/PlanDTO.java
#	org.opentosca.container.api/src/org/opentosca/container/api/dto/plan/PlanInstanceEventDTO.java
#	org.opentosca.container.api/src/org/opentosca/container/api/dto/situations/SituationTriggerDTO.java
#	org.opentosca.container.api/src/org/opentosca/container/api/service/CsarService.java
#	org.opentosca.container.api/src/org/opentosca/container/api/service/InstanceService.java
#	org.opentosca.container.api/src/org/opentosca/container/api/service/PlanService.java
#	org.opentosca.container.core.impl/src/org/opentosca/container/core/impl/plan/PlanInvocationEngine.java
#	org.opentosca.container.core.tosca/src/org/opentosca/container/core/tosca/convention/Interfaces.java
#	org.opentosca.container.core.tosca/src/org/opentosca/container/core/tosca/convention/Types.java
#	org.opentosca.container.core.tosca/src/org/opentosca/container/core/tosca/convention/Utils.java
#	org.opentosca.container.core.tosca/src/org/opentosca/container/core/tosca/extension/PlanInvocationEvent.java
#	org.opentosca.container.core.tosca/src/org/opentosca/container/core/tosca/extension/TParameter.java
#	org.opentosca.container.core.tosca/src/org/opentosca/container/core/tosca/extension/TPlanDTO.java
#	org.opentosca.container.core.tosca/src/org/opentosca/container/core/tosca/model/TParameter.java
#	org.opentosca.container.core.tosca/src/org/opentosca/container/core/tosca/model/TPlan.java
#	org.opentosca.container.core/src/org/opentosca/container/core/next/model/PlanInstance.java
#	org.opentosca.container.core/src/org/opentosca/container/core/next/model/PlanInstanceEvent.java
#	org.opentosca.container.core/src/org/opentosca/container/core/next/model/SituationTrigger.java
#	org.opentosca.container.core/src/org/opentosca/container/core/next/repository/PlanInstanceRepository.java
#	org.opentosca.container.core/src/org/opentosca/container/core/next/trigger/SituationTriggerInstanceListener.java
#	org.opentosca.container.engine.plan.plugin.bpel/META-INF/MANIFEST.MF
#	org.opentosca.container.engine.plan.plugin.bpel/src/org/opentosca/container/engine/plan/plugin/bpel/BpelPlanEnginePlugin.java
#	org.opentosca.container.feature/feature.xml
#	org.opentosca.container.product/org.opentosca.container.product
#	org.opentosca.planbuilder.core.bpel/src/main/resources/core-bpel/BPELWaitTillTrue.xml
#	org.opentosca.planbuilder.core.bpel/src/org/opentosca/planbuilder/core/bpel/artifactbasednodehandler/InterfaceDummy.java
#	org.opentosca.planbuilder.core.bpel/src/org/opentosca/planbuilder/core/bpel/artifactbasednodehandler/OperationChain.java
#	org.opentosca.planbuilder.core.bpel/src/org/opentosca/planbuilder/core/bpel/context/BPELPlanContext.java
#	org.opentosca.planbuilder.core.bpel/src/org/opentosca/planbuilder/core/bpel/fragments/BPELProcessFragments.java
#	org.opentosca.planbuilder.core.bpel/src/org/opentosca/planbuilder/core/bpel/handlers/BPELFinalizer.java
#	org.opentosca.planbuilder.core.bpel/src/org/opentosca/planbuilder/core/bpel/handlers/BPELPlanHandler.java
#	org.opentosca.planbuilder.core.bpel/src/org/opentosca/planbuilder/core/bpel/handlers/BPELScopeHandler.java
#	org.opentosca.planbuilder.core.bpel/src/org/opentosca/planbuilder/core/bpel/tosca/handlers/NodeRelationInstanceVariablesHandler.java
#	org.opentosca.planbuilder.core.bpel/src/org/opentosca/planbuilder/core/bpel/typebasednodehandler/BPELPluginHandler.java
#	org.opentosca.planbuilder.core.bpel/src/org/opentosca/planbuilder/core/bpel/typebasedplanbuilder/BPELBackupManagementProcessBuilder.java
#	org.opentosca.planbuilder.core.bpel/src/org/opentosca/planbuilder/core/bpel/typebasedplanbuilder/BPELBuildProcessBuilder.java
#	org.opentosca.planbuilder.core.bpel/src/org/opentosca/planbuilder/core/bpel/typebasedplanbuilder/BPELDefrostProcessBuilder.java
#	org.opentosca.planbuilder.core.bpel/src/org/opentosca/planbuilder/core/bpel/typebasedplanbuilder/BPELFreezeProcessBuilder.java
#	org.opentosca.planbuilder.core.bpel/src/org/opentosca/planbuilder/core/bpel/typebasedplanbuilder/BPELPolicyAwareBuildProcessBuilder.java
#	org.opentosca.planbuilder.core.bpel/src/org/opentosca/planbuilder/core/bpel/typebasedplanbuilder/BPELScaleOutProcessBuilder.java
#	org.opentosca.planbuilder.core.bpel/src/org/opentosca/planbuilder/core/bpel/typebasedplanbuilder/BPELTestManagementProcessBuilder.java
#	org.opentosca.planbuilder.core.bpel/src/org/opentosca/planbuilder/core/bpel/typebasedplanbuilder/BPELTransformationProcessBuilder.java
#	org.opentosca.planbuilder.integration/src/org/opentosca/planbuilder/export/Exporter.java
#	org.opentosca.planbuilder.integration/src/org/opentosca/planbuilder/importer/context/impl/InterfaceImpl.java
#	org.opentosca.planbuilder.integration/src/org/opentosca/planbuilder/importer/context/impl/OperationImpl.java
#	org.opentosca.planbuilder.model/src/org/opentosca/planbuilder/model/plan/bpel/BPELScope.java
#	org.opentosca.planbuilder.model/src/org/opentosca/planbuilder/model/tosca/AbstractDefinitions.java
#	org.opentosca.planbuilder.model/src/org/opentosca/planbuilder/model/tosca/AbstractNodeType.java
#	org.opentosca.planbuilder.model/src/org/opentosca/planbuilder/model/tosca/AbstractOperation.java
#	org.opentosca.planbuilder.model/src/org/opentosca/planbuilder/model/tosca/AbstractRelationshipTemplate.java
#	org.opentosca.planbuilder.postphase.plugin.instancedata/src/org/opentosca/planbuilder/postphase/plugin/instancedata/bpel/BPELInstanceDataPlugin.java
#	org.opentosca.planbuilder.postphase.plugin.instancedata/src/org/opentosca/planbuilder/postphase/plugin/instancedata/bpel/Handler.java
#	org.opentosca.planbuilder.postphase.plugin.monitoring/src/org/opentosca/planbuilder/postphase/plugin/monitoring/bpel/impl/BPELMonitoringPlugin.java
#	org.opentosca.planbuilder.postphase.plugin.vinothek/src/org/opentosca/planbuilder/postphase/plugin/vinothek/bpel/BPELVinothekPlugin.java
#	org.opentosca.planbuilder.postphase.plugin.vinothek/src/org/opentosca/planbuilder/postphase/plugin/vinothek/core/VinothekPlugin.java
#	org.opentosca.planbuilder.provphase.plugin.invoker/src/org/opentosca/planbuilder/provphase/plugin/invoker/bpel/BPELInvokerPlugin.java
#	org.opentosca.planbuilder.provphase.plugin.invoker/src/org/opentosca/planbuilder/provphase/plugin/invoker/bpel/handlers/BPELInvokerPluginHandler.java
#	org.opentosca.planbuilder.provphase.plugin.invoker/src/org/opentosca/planbuilder/provphase/plugin/invoker/bpel/handlers/ResourceHandler.java
#	org.opentosca.planbuilder.service/META-INF/MANIFEST.MF
#	org.opentosca.planbuilder.service/src/org/opentosca/planbuilder/service/resources/RootResource.java
#	org.opentosca.planbuilder.type.plugin.dockercontainer/src/org/opentosca/planbuilder/type/plugin/dockercontainer/bpel/BPELDockerContainerTypePlugin.java
#	org.opentosca.planbuilder.type.plugin.dockercontainer/src/org/opentosca/planbuilder/type/plugin/dockercontainer/bpel/handler/BPELDockerContainerTypePluginHandler.java
#	org.opentosca.planbuilder.type.plugin.hardware/src/org/opentosca/planbuilder/type/plugin/hardware/HardwarePlugin.java
#	org.opentosca.planbuilder.type.plugin.patternbased/src/org/opentosca/planbuilder/type/plugin/patternbased/bpel/ContainerPatternBasedHandler.java
#	org.opentosca.planbuilder.type.plugin.patternbased/src/org/opentosca/planbuilder/type/plugin/patternbased/bpel/LifecyclePatternBasedHandler.java
#	org.opentosca.planbuilder.type.plugin.patternbased/src/org/opentosca/planbuilder/type/plugin/patternbased/bpel/PatternBasedPlugin.java
#	org.opentosca.planbuilder/src/org/opentosca/planbuilder/AbstractTransformingPlanbuilder.java
#	org.opentosca.planbuilder/src/org/opentosca/planbuilder/plugins/typebased/IPlanBuilderPostPhasePlugin.java

Signed-off-by: Kálmán Képes <kalman.kepes@iaas.uni-stuttgart.de>
# Conflicts:
#	org.opentosca.container.war/pom.xml

Signed-off-by: Kálmán Képes <kalman.kepes@iaas.uni-stuttgart.de>
Signed-off-by: Kálmán Képes <kalman.kepes@iaas.uni-stuttgart.de>
@lharzenetter lharzenetter merged commit b29cb6c into master Jun 18, 2020
@lharzenetter lharzenetter deleted the feature/winery-model branch June 18, 2020 14:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

5 participants