<?xml version="1.0" encoding="ASCII"?> <adaptation:AdaptationProcess xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:adaptation="http://www.descartes-research.net/metamodel/adaptation/0.1" xmlns:adaptationpoints="http://www.descartes-research.net/metamodel/adaptationpoints/0.1" xmlns:resourcelandscape="http://www.descartes-research.net/metamodel/resourcelandscape/0.1" id="_07SqMKaFEeKsaqdh-1smGw" name="PushPullAdaptationProcess"> <tactics id="2341234" name="increaseResources"> <implementedPlan id="qweqweqwe" name="IncreaseResourcesAdaptationPlan"> <steps xsi:type="adaptation:StartAction" id="2342623434" successor="33eadsea"/> <steps xsi:type="adaptation:BranchAction" id="33eadsea" predecessor="2342623434" successor="6423423423" condition="RuntimeEnvironment.allInstances()->select( re | re.template = self.template )->exists(re | re.configSpec.oclAsType(resourceconfiguration::ActiveResourceSpecification).processingResourceSpecifications->forAll(nrOfParProcUnits.number < 4)) and RuntimeEnvironment.allInstances()->select( re | re.template = self.template )->forAll(re | re.template.templateConfig.oclAsType(resourceconfiguration::ActiveResourceSpecification).processingResourceSpecifications->forAll(nrOfParProcUnits.number < 4))"> <context xsi:type="resourcelandscape:RuntimeEnvironment" href="AcamarCluster.xmi#12"/> <conditionTrueBranch id="efasfasd" name="increaseCores"> <steps xsi:type="adaptation:ActionReference" id="35634534" predecessor="321321" successor="345fdas" refersTo="2"/> <steps xsi:type="adaptation:StartAction" id="321321" successor="35634534"/> <steps xsi:type="adaptation:StopAction" id="345fdas" predecessor="35634534"/> </conditionTrueBranch> <conditionFalseBranch id="adsgsadas" name="increaseServers"> <steps xsi:type="adaptation:ActionReference" id="453412341241" predecessor="e123134" successor="e63412" refersTo="41123123"/> <steps xsi:type="adaptation:StartAction" id="e123134" successor="453412341241"/> <steps xsi:type="adaptation:StopAction" id="e63412" predecessor="453412341241"/> </conditionFalseBranch> </steps> <steps xsi:type="adaptation:StopAction" id="6423423423" predecessor="33eadsea"/> </implementedPlan> </tactics> <tactics id="123123" name="gracefullyDecreaseResources"> <implementedPlan id="123123123" name="DecreaseResourcesAdaptationPlan"> <steps xsi:type="adaptation:StartAction" id="321" successor="branchDecrease"/> <steps xsi:type="adaptation:BranchAction" id="branchDecrease" predecessor="321" successor="432" condition="RuntimeEnvironment.allInstances()->select( re | re.template = self.template and not re.configSpec->isEmpty())->exists(re | re.configSpec.oclAsType(resourceconfiguration::ActiveResourceSpecification).processingResourceSpecifications->forAll(nrOfParProcUnits.number > 2))"> <context xsi:type="resourcelandscape:RuntimeEnvironment" href="AcamarCluster.xmi#12"/> <conditionTrueBranch id="_k0FLAICyEeKnieBrE9C24w" name="decreaseCores"> <steps xsi:type="adaptation:ActionReference" id="decreaseVirtualCpu" predecessor="_q13HQICyEeKnieBrE9C24w" successor="_rJvFgYCyEeKnieBrE9C24w" refersTo="345242342"/> <steps xsi:type="adaptation:StartAction" id="_q13HQICyEeKnieBrE9C24w" successor="decreaseVirtualCpu"/> <steps xsi:type="adaptation:StopAction" id="_rJvFgYCyEeKnieBrE9C24w" predecessor="decreaseVirtualCpu"/> </conditionTrueBranch> <conditionFalseBranch id="_nZJv1oCyEeKnieBrE9C24w" name="decreaseServers"> <steps xsi:type="adaptation:ActionReference" id="decreaseServers" predecessor="_xUQHAICyEeKnieBrE9C24w" successor="_xx9WsYCyEeKnieBrE9C24w" refersTo="1287127123"/> <steps xsi:type="adaptation:StartAction" id="_xUQHAICyEeKnieBrE9C24w" successor="decreaseServers"/> <steps xsi:type="adaptation:StopAction" id="_xx9WsYCyEeKnieBrE9C24w" predecessor="decreaseServers"/> </conditionFalseBranch> </steps> <steps xsi:type="adaptation:StopAction" id="432" predecessor="branchDecrease"/> </implementedPlan> </tactics> <actions id="2" name="addVCPU"> <referredAdaptationPoint xsi:type="adaptationpoints:ModelVariableConfigurationRange" href="AdaptationPoints.xmi#238746123"/> <adaptationActionOperation adaptationOperationScope="RANDOM" adaptationOperationDirection="INCREASE"/> </actions> <actions id="345242342" name="removeCPU"> <referredAdaptationPoint xsi:type="adaptationpoints:ModelVariableConfigurationRange" href="AdaptationPoints.xmi#238746123"/> <adaptationActionOperation adaptationOperationScope="RANDOM" adaptationOperationDirection="DECREASE"/> </actions> <actions id="41123123" name="addAppServer"> <referredAdaptationPoint xsi:type="adaptationpoints:ModelEntityConfigurationRange" href="AdaptationPoints.xmi#12312412412"/> <adaptationActionOperation adaptationOperationScope="RANDOM" adaptationOperationDirection="INCREASE"/> </actions> <actions id="1287127123" name="removeAppServer"> <referredAdaptationPoint xsi:type="adaptationpoints:ModelEntityConfigurationRange" href="AdaptationPoints.xmi#12312412412"/> <adaptationActionOperation adaptationOperationScope="RANDOM" adaptationOperationDirection="DECREASE"/> </actions> <strategies id="s1" name="PUSH"> <triggeringEvents id="12345" name="SlaViolatedEvent"/> <tactics id="wt1" name="weightedTacticIncreaseResources" usedTactic="2341234" currentWeight="100.0" defaultWeight="100.0"/> <weightingFunction id="wf1" name="weightedSum"> <weightedMetrics id="_TzHMgGVXEeK4L53_AeGtGA" name="utilizationMetricWeight" weight="1.0"> <metricType href="PerformanceDataRepositoryDummy.xmi#2"/> </weightedMetrics> <weightedMetrics id="_QKf6YGllEeKYrN0mFHpJCQ" name="goldCustomerResponseTimeWeight" weight="-2.0"> <metricType href="PerformanceDataRepositoryDummy.xmi#3"/> </weightedMetrics> <weightedMetrics id="_UBs1cGllEeKYrN0mFHpJCQ" name="silverCustomerResponseTimeWeight" weight="-1.0"> <metricType href="PerformanceDataRepositoryDummy.xmi#4"/> </weightedMetrics> </weightingFunction> </strategies> <strategies id="_Cg--ZYAnEeKW2vVcg5ekRw" name="PULL"> <triggeringEvents id="_H_MTgIAnEeKW2vVcg5ekRw" name="ScheduledMaintenanceEvent"/> <tactics id="_Tk5LUYAnEeKW2vVcg5ekRw" name="weightedTacticDecreaseResources" usedTactic="123123" currentWeight="100.0" defaultWeight="100.0"/> <weightingFunction id="wf1" name="weightedSum"> <weightedMetrics id="_TzHMgGVXEeK4L53_AeGtGA1" name="utilizationMetricWeight" weight="1.0"> <metricType href="PerformanceDataRepositoryDummy.xmi#2"/> </weightedMetrics> <weightedMetrics id="_QKf6YGllEeKYrN0mFHpJCQ1" name="goldCustomerResponseTimeWeight" weight="-2.0"> <metricType href="PerformanceDataRepositoryDummy.xmi#3"/> </weightedMetrics> <weightedMetrics id="_UBs1cGllEeKYrN0mFHpJCQ1" name="silverCustomerResponseTimeWeight" weight="-1.0"> <metricType href="PerformanceDataRepositoryDummy.xmi#4"/> </weightedMetrics> </weightingFunction> </strategies> <goal description="<<Maintain SLAs of all serivces while using resources efficiently>>"> <objectives id="_GdVkoKaGEeKsaqdh-1smGw" name="ServiceLevelAgreements" specification=""/> <objectives id="_G-ctoKaGEeKsaqdh-1smGw" name="resourceEfficiency"/> </goal> </adaptation:AdaptationProcess>