Search in sources :

Example 26 with Allocation

use of org.palladiosimulator.pcm.allocation.Allocation in project iobserve-analysis by research-iobserve.

the class PrivacyViolationDetectionServiceMain method createTeetimeConfiguration.

@Override
protected PipelineConfiguration createTeetimeConfiguration() throws ConfigurationException {
    /**
     * load models.
     */
    try {
        final ModelImporter modelHandler = new ModelImporter(this.parameterConfiguration.getModelInitDirectory());
        /**
         * initialize database.
         */
        final IModelResource<CorrespondenceModel> correspondenceModelResource = this.loadResourceAndInitDB(CorrespondencePackage.eINSTANCE, modelHandler.getCorrespondenceModel());
        final IModelResource<Repository> repositoryModelResource = this.loadResourceAndInitDB(RepositoryPackage.eINSTANCE, modelHandler.getRepositoryModel());
        final IModelResource<ResourceEnvironment> resourceEnvironmentModelResource = this.loadResourceAndInitDB(ResourceenvironmentPackage.eINSTANCE, modelHandler.getResourceEnvironmentModel());
        final IModelResource<System> systemModelResource = this.loadResourceAndInitDB(SystemPackage.eINSTANCE, modelHandler.getSystemModel());
        final IModelResource<Allocation> allocationModelResource = this.loadResourceAndInitDB(AllocationPackage.eINSTANCE, modelHandler.getAllocationModel());
        final IModelResource<DataProtectionModel> privacyModelResource = this.loadResourceAndInitDB(PrivacyPackage.eINSTANCE, modelHandler.getPrivacyModel());
        return new PipelineConfiguration(this.kiekerConfiguration, correspondenceModelResource, repositoryModelResource, resourceEnvironmentModelResource, systemModelResource, allocationModelResource, privacyModelResource, this.parameterConfiguration.getWarningFile(), this.parameterConfiguration.getAlarmsFile(), this.parameterConfiguration.getModelDumpDirectory());
    } catch (final DBException | IOException e) {
        throw new ConfigurationException(e);
    }
}
Also used : DBException(org.iobserve.model.persistence.DBException) ResourceEnvironment(org.palladiosimulator.pcm.resourceenvironment.ResourceEnvironment) DataProtectionModel(org.iobserve.model.privacy.DataProtectionModel) CorrespondenceModel(org.iobserve.model.correspondence.CorrespondenceModel) IOException(java.io.IOException) System(org.palladiosimulator.pcm.system.System) ModelImporter(org.iobserve.model.ModelImporter) Repository(org.palladiosimulator.pcm.repository.Repository) Allocation(org.palladiosimulator.pcm.allocation.Allocation) ConfigurationException(kieker.common.exception.ConfigurationException)

Example 27 with Allocation

use of org.palladiosimulator.pcm.allocation.Allocation in project iobserve-analysis by research-iobserve.

the class InitializeDeploymentVisualization method initialize.

/**
 * Populates the database of the deployment visualization initially and respects the changelog
 * constraints of iobserve-ui-deployment. It takes information from the system model, the
 * allocation model and the resource environment model and creates corresponding visualization
 * components, e.g. nodes and services.
 *
 * @throws IOException
 *             when post request fails
 */
public void initialize() throws IOException {
    // set up the system model and take parts from it
    final org.palladiosimulator.pcm.system.System systemModel = this.systemModelGraphProvider.readOnlyRootComponent(org.palladiosimulator.pcm.system.System.class);
    final List<AssemblyContext> assemblyContexts = systemModel.getAssemblyContexts__ComposedStructure();
    // set up the allocation model and take parts from it
    final List<String> allocationIds = this.allocationModelGraphProvider.readComponentByType(Allocation.class);
    // an allocation model contains exactly one allocation, therefore .get(0)
    final String allocationId = allocationIds.get(0);
    final Allocation allocation = this.allocationModelGraphProvider.readOnlyComponentById(Allocation.class, allocationId);
    final List<AllocationContext> allocationContexts = allocation.getAllocationContexts_Allocation();
    // set up the resource environment model and take parts from it
    final ResourceEnvironment resourceEnvironmentModel = this.resourceEnvironmentModelGraphProvider.readOnlyRootComponent(ResourceEnvironment.class);
    final List<LinkingResource> linkingResources = resourceEnvironmentModel.getLinkingResources__ResourceEnvironment();
    final List<ResourceContainer> resourceContainers = resourceEnvironmentModel.getResourceContainer_ResourceEnvironment();
    // sending created components to visualization (in predefined order stated in changelog
    // constraints)
    /**
     * system
     */
    SendHttpRequest.post(this.systemService.createSystem(systemModel), this.systemUrl, this.changelogUrl);
    /**
     * node group and node
     */
    for (int i = 0; i < resourceContainers.size(); i++) {
        final ResourceContainer resourceContainer = resourceContainers.get(i);
        SendHttpRequest.post(Changelog.create(this.nodegroupService.createNodegroup(this.systemService.getSystemId())), this.systemUrl, this.changelogUrl);
        SendHttpRequest.post(Changelog.create(this.nodeService.createNode(resourceContainer, this.systemService.getSystemId(), this.nodegroupService.getNodegroupId())), this.systemUrl, this.changelogUrl);
    }
    /**
     * service and service instance
     */
    for (int i = 0; i < assemblyContexts.size(); i++) {
        final AssemblyContext assemblyContext = assemblyContexts.get(i);
        SendHttpRequest.post(Changelog.create(this.serviceService.createService(assemblyContext, this.systemService.getSystemId())), this.systemUrl, this.changelogUrl);
    }
    for (int i = 0; i < allocationContexts.size(); i++) {
        final AllocationContext allocationContext = allocationContexts.get(i);
        final String resourceContainerId = allocationContext.getResourceContainer_AllocationContext().getId();
        final AssemblyContext assemblyContext = allocationContext.getAssemblyContext_AllocationContext();
        final String assemblyContextId = allocationContext.getAssemblyContext_AllocationContext().getId();
        SendHttpRequest.post(Changelog.create(this.serviceinstanceService.createServiceInstance(assemblyContext, this.systemService.getSystemId(), resourceContainerId, assemblyContextId)), this.systemUrl, this.changelogUrl);
    }
    /**
     * communication and communication instance
     */
    final List<Connector> connectors = systemModel.getConnectors__ComposedStructure();
    for (int i = 0; i < connectors.size(); i++) {
        final Connector connector = connectors.get(i);
        // we are only interested in AssemblyConnectors
        if (connector instanceof AssemblyConnector) {
            final String technology = this.getTechnology((AssemblyConnector) connector, linkingResources);
            SendHttpRequest.post(Changelog.create(this.communicationService.createCommunication((AssemblyConnector) connector, this.systemService.getSystemId(), technology)), this.systemUrl, this.changelogUrl);
            SendHttpRequest.post(Changelog.create(this.communicationinstanceService.createCommunicationInstance((AssemblyConnector) connector, this.systemService.getSystemId(), this.communicationService.getCommunicationId())), this.systemUrl, this.changelogUrl);
        } else {
            InitializeDeploymentVisualization.LOGGER.debug("no AssemblyConnector: connector.getEntityName()");
        }
    }
}
Also used : AssemblyConnector(org.palladiosimulator.pcm.core.composition.AssemblyConnector) Connector(org.palladiosimulator.pcm.core.composition.Connector) ResourceEnvironment(org.palladiosimulator.pcm.resourceenvironment.ResourceEnvironment) LinkingResource(org.palladiosimulator.pcm.resourceenvironment.LinkingResource) AssemblyConnector(org.palladiosimulator.pcm.core.composition.AssemblyConnector) AssemblyContext(org.palladiosimulator.pcm.core.composition.AssemblyContext) AllocationContext(org.palladiosimulator.pcm.allocation.AllocationContext) Allocation(org.palladiosimulator.pcm.allocation.Allocation) ResourceContainer(org.palladiosimulator.pcm.resourceenvironment.ResourceContainer)

Example 28 with Allocation

use of org.palladiosimulator.pcm.allocation.Allocation in project iobserve-analysis by research-iobserve.

the class AssemblyContextActionFactory method generateDeallocateAction.

/**
 * Create a deallocation action.
 *
 * @param runtimeNode
 *            node to be deallocated
 * @return returns the deallocation action
 */
public static DeallocateAction generateDeallocateAction(final ComponentNode runtimeNode) {
    final SystemadaptationFactory factory = SystemadaptationFactory.eINSTANCE;
    final DeallocateAction action = factory.createDeallocateAction();
    AssemblyContextActionFactory.setSourceAssemblyContext(action, runtimeNode.getAssemblyContextID());
    final Allocation runAllocation = ActionFactory.getRuntimeModels().getAllocationModel();
    action.setOldAllocationContext(ActionFactory.getAllocationContext(runtimeNode.getAllocationContextID(), runAllocation));
    return action;
}
Also used : Allocation(org.palladiosimulator.pcm.allocation.Allocation) SystemadaptationFactory(org.iobserve.planning.systemadaptation.SystemadaptationFactory) DeallocateAction(org.iobserve.planning.systemadaptation.DeallocateAction)

Example 29 with Allocation

use of org.palladiosimulator.pcm.allocation.Allocation in project iobserve-analysis by research-iobserve.

the class ResourceContainerActionFactory method createReplicateAction.

/**
 * Create replicate action.
 *
 * @param runtimeServer
 *            source server
 * @param reDeploymentServer
 *            target server
 * @return the action
 */
public static ReplicateAction createReplicateAction(final DeploymentNode runtimeServer, final DeploymentNode reDeploymentServer) {
    final SystemadaptationFactory factory = SystemadaptationFactory.eINSTANCE;
    final ReplicateAction action = factory.createReplicateAction();
    ResourceContainerActionFactory.setSourceResourceContainer(action, runtimeServer.getResourceContainerID());
    final Allocation runtimeAllocModel = ActionFactory.getRuntimeModels().getAllocationModel();
    for (final ComponentNode component : runtimeServer.getContainingComponents()) {
        final AllocationContext oldAllocationContext = ActionFactory.getAllocationContext(component.getAllocationContextID(), runtimeAllocModel);
        action.getSourceAllocationContext().add(oldAllocationContext);
    }
    final Allocation reDeplAllocModel = ActionFactory.getRedeploymentModels().getAllocationModel();
    for (final ComponentNode component : reDeploymentServer.getContainingComponents()) {
        final AllocationContext newAllocationContext = ActionFactory.getAllocationContext(component.getAllocationContextID(), reDeplAllocModel);
        action.getSourceAllocationContext().add(newAllocationContext);
    }
    final ResourceEnvironment resEnvModel = ActionFactory.getRedeploymentModels().getResourceEnvironmentModel();
    final ResourceContainer newResourceContainer = ActionFactory.getResourceContainer(reDeploymentServer.getResourceContainerID(), resEnvModel);
    action.setNewResourceContainer(newResourceContainer);
    return action;
}
Also used : AllocationContext(org.palladiosimulator.pcm.allocation.AllocationContext) ResourceEnvironment(org.palladiosimulator.pcm.resourceenvironment.ResourceEnvironment) Allocation(org.palladiosimulator.pcm.allocation.Allocation) SystemadaptationFactory(org.iobserve.planning.systemadaptation.SystemadaptationFactory) ComponentNode(org.iobserve.analysis.data.graph.ComponentNode) ReplicateAction(org.iobserve.planning.systemadaptation.ReplicateAction) ResourceContainer(org.palladiosimulator.pcm.resourceenvironment.ResourceContainer)

Example 30 with Allocation

use of org.palladiosimulator.pcm.allocation.Allocation in project iobserve-analysis by research-iobserve.

the class PrivacyViolationDetectionServiceMain method createConfiguration.

@Override
protected PrivacyViolationDetectionConfiguration createConfiguration(final Configuration configuration) throws ConfigurationException {
    /**
     * load models.
     */
    final PCMModelHandler modelHandler = new PCMModelHandler(this.pcmDirectory);
    final GraphLoader graphLoader = new GraphLoader(this.modelDatabaseDirectory);
    final Graph allocationModelGraph = graphLoader.initializeAllocationModelGraph(modelHandler.getAllocationModel());
    final Graph resourceEnvironmentGraph = graphLoader.initializeResourceEnvironmentModelGraph(modelHandler.getResourceEnvironmentModel());
    final Graph systemGraph = graphLoader.initializeSystemModelGraph(modelHandler.getSystemModel());
    final ModelProvider<Allocation> allocationModelProvider = new ModelProvider<>(allocationModelGraph);
    final ModelProvider<ResourceEnvironment> resourceEnvironmentModelProvider = new ModelProvider<>(resourceEnvironmentGraph);
    final ModelProvider<System> systemModelProvider = new ModelProvider<>(systemGraph);
    try {
        return new PrivacyViolationDetectionConfiguration(this.inputPort, this.outputs, modelHandler.getCorrespondenceModel(), resourceEnvironmentModelProvider, allocationModelProvider, systemModelProvider, this.warningFile, this.alarmsFile);
    } catch (final IOException e) {
        throw new ConfigurationException(e);
    }
}
Also used : ResourceEnvironment(org.palladiosimulator.pcm.resourceenvironment.ResourceEnvironment) ModelProvider(org.iobserve.model.provider.neo4j.ModelProvider) PCMModelHandler(org.iobserve.model.PCMModelHandler) IOException(java.io.IOException) System(org.palladiosimulator.pcm.system.System) Graph(org.iobserve.model.provider.neo4j.Graph) GraphLoader(org.iobserve.model.provider.neo4j.GraphLoader) Allocation(org.palladiosimulator.pcm.allocation.Allocation) ConfigurationException(org.iobserve.stages.general.ConfigurationException)

Aggregations

Allocation (org.palladiosimulator.pcm.allocation.Allocation)37 Test (org.junit.Test)16 ResourceEnvironment (org.palladiosimulator.pcm.resourceenvironment.ResourceEnvironment)10 System (org.palladiosimulator.pcm.system.System)10 AllocationContext (org.palladiosimulator.pcm.allocation.AllocationContext)9 AssemblyContext (org.palladiosimulator.pcm.core.composition.AssemblyContext)7 ResourceContainer (org.palladiosimulator.pcm.resourceenvironment.ResourceContainer)7 File (java.io.File)4 IOException (java.io.IOException)4 PCMModelHandler (org.iobserve.model.PCMModelHandler)4 Repository (org.palladiosimulator.pcm.repository.Repository)4 CorrespondenceModel (org.iobserve.model.correspondence.CorrespondenceModel)3 DBException (org.iobserve.model.persistence.DBException)3 UsageModel (org.palladiosimulator.pcm.usagemodel.UsageModel)3 ArrayList (java.util.ArrayList)2 URI (org.eclipse.emf.common.util.URI)2 EObject (org.eclipse.emf.ecore.EObject)2 ModelImporter (org.iobserve.model.ModelImporter)2 Neo4JModelResource (org.iobserve.model.persistence.neo4j.Neo4JModelResource)2 DataProtectionModel (org.iobserve.model.privacy.DataProtectionModel)2