Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
de.ugoe.cs.rwm.mocci
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
rwm
de.ugoe.cs.rwm.mocci
Commits
66a0d229
Commit
66a0d229
authored
4 years ago
by
erbel
Browse files
Options
Downloads
Patches
Plain Diff
Add UpScalerSpark
parent
84a9e71a
No related branches found
No related tags found
No related merge requests found
Pipeline
#178911
failed
4 years ago
Stage: build
Stage: test
Stage: pages
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
build.gradle
+133
-132
133 additions, 132 deletions
build.gradle
src/main/java/de/ugoe/cs/rwm/mocci/UpScalerSpark.java
+260
-0
260 additions, 0 deletions
src/main/java/de/ugoe/cs/rwm/mocci/UpScalerSpark.java
with
393 additions
and
132 deletions
build.gradle
+
133
−
132
View file @
66a0d229
apply
plugin:
"com.github.psxpaul.execfork"
apply
plugin:
'com.github.johnrengelman.shadow'
ext
{
ext
{
tocciVersion
=
'1.0.1'
docciVersion
=
'1.0.
1
'
docciVersion
=
'1.0.
4
'
cocciVersion
=
'1.0.0'
}
buildscript
{
repositories
{
maven
{
url
"https://plugins.gradle.org/m2/"
}
}
dependencies
{
classpath
"gradle.plugin.com.github.psxpaul:gradle-execfork-plugin:0.1.8"
classpath
"com.github.jengelman.gradle.plugins:shadow:4.0.3"
}
repositories
{
maven
{
url
"https://plugins.gradle.org/m2/"
}
}
dependencies
{
classpath
"gradle.plugin.com.github.psxpaul:gradle-execfork-plugin:0.1.8"
classpath
"com.github.jengelman.gradle.plugins:shadow:4.0.3"
}
}
allprojects
{
apply
plugin:
'java'
apply
plugin:
'eclipse'
apply
plugin:
'maven'
apply
plugin:
'eclipse'
apply
plugin:
'maven'
sourceCompatibility
=
1.8
targetCompatibility
=
1.8
repositories
{
mavenCentral
()
maven
{
url
"https://nexus.informatik.uni-goettingen.de/content/repositories/thirdparty/"
}
maven
{
url
"https://nexus.informatik.uni-goettingen.de/content/repositories/rwm/"
}
}
javadoc
{
source
=
sourceSets
.
main
.
allJava
classpath
=
configurations
.
compile
failOnError
=
true
}
test
{
testLogging
.
showStandardStreams
=
true
mavenCentral
()
maven
{
url
"https://nexus.informatik.uni-goettingen.de/content/repositories/thirdparty/"
}
maven
{
url
"https://nexus.informatik.uni-goettingen.de/content/repositories/rwm/"
}
}
javadoc
{
source
=
sourceSets
.
main
.
allJava
classpath
=
configurations
.
compile
failOnError
=
true
}
test
{
testLogging
.
showStandardStreams
=
true
testLogging
{
exceptionFormat
=
'full'
}
}
exceptionFormat
=
'full'
}
}
}
configure
([
project
(
':de.ugoe.cs.rwm.mocci.connector'
),
project
(
':de.ugoe.cs.rwm.mocci.connector.dummy'
),
rootProject
])
{
apply
plugin:
'checkstyle'
apply
plugin:
'findbugs'
apply
plugin:
'jacoco'
checkstyle
{
checkstyle
{
toolVersion
=
'8.2'
configFile
=
rootProject
.
file
(
'config/checkstyle/checkstyle.xml'
)
configProperties
=
[
...
...
@@ -67,104 +67,105 @@ configure([project(':de.ugoe.cs.rwm.mocci.connector'), project(':de.ugoe.cs.rwm.
ignoreFailures
=
false
showViolations
=
true
}
findbugs
{
sourceSets
=
[
sourceSets
.
main
]
ignoreFailures
=
true
}
tasks
.
withType
(
FindBugs
)
{
reports
{
xml
.
enabled
false
html
.
enabled
true
}
}
test
.
finalizedBy
jacocoTestReport
jacoco
{
toolVersion
=
"0.8.1"
}
jacocoTestReport
{
additionalSourceDirs
=
files
(
sourceSets
.
main
.
allSource
.
srcDirs
)
sourceDirectories
=
files
(
sourceSets
.
main
.
allSource
.
srcDirs
)
classDirectories
=
files
(
sourceSets
.
main
.
output
)
reports
{
xml
.
enabled
false
csv
.
enabled
false
}
}
sourceSets
=
[
sourceSets
.
main
]
ignoreFailures
=
true
}
tasks
.
withType
(
FindBugs
)
{
reports
{
xml
.
enabled
false
html
.
enabled
true
}
}
test
.
finalizedBy
jacocoTestReport
jacoco
{
toolVersion
=
"0.8.1"
}
jacocoTestReport
{
additionalSourceDirs
=
files
(
sourceSets
.
main
.
allSource
.
srcDirs
)
sourceDirectories
=
files
(
sourceSets
.
main
.
allSource
.
srcDirs
)
classDirectories
=
files
(
sourceSets
.
main
.
output
)
reports
{
xml
.
enabled
false
csv
.
enabled
false
}
}
}
sourceSets
{
startMartServer
{
resources
{
srcDir
'src/test/resources'
startMartServer
{
resources
{
srcDir
'src/test/resources'
}
}
}
}
eclipse
.
classpath
.
file
.
beforeMerged
{
classpath
->
classpath
.
entries
.
clear
()
}
dependencies
{
//occiware
compile
group:
'org.eclipse.cmf.occi'
,
name:
'core'
,
version:
'1.0.0'
compile
group:
'org.eclipse.cmf.occi'
,
name:
'infrastructure'
,
version:
'1.0.0'
compile
group:
'org.eclipse.cmf.occi'
,
name:
'crtp'
,
version:
'1.0.0'
compile
group:
'org.modmacao'
,
name:
'core'
,
version:
'1.0.0'
compile
group:
'org.modmacao'
,
name:
'placement'
,
version:
'1.0.0'
compile
group:
'org.modmacao.occi'
,
name:
'platform'
,
version:
'1.0.0'
compile
group:
'org.modmacao.openstack'
,
name:
'runtime'
,
version:
'1.0.0'
compile
group:
'org.modmacao.openstack.swe'
,
name:
'runtime'
,
version:
'1.0.0'
compile
group:
'org.modmacao'
,
name:
'ansible'
,
version:
'1.0.0'
//own
compile
group:
'de.ugoe.cs.rwm'
,
name:
'cocci'
,
version:
cocciVersion
compile
group:
'de.ugoe.cs.rwm'
,
name:
'docci'
,
version:
docciVersion
compile
group:
'de.ugoe.cs.rwm'
,
name:
'tocci'
,
version:
tocciVersion
compile
group:
'de.ugoe.cs.rwm.pog'
,
name:
'model'
,
version:
'1.0.0'
//compile group: 'de.ugoe.cs.rwm.mocci', name: 'model', version: '1.0.0'
compile
project
(
':de.ugoe.cs.rwm.mocci.model'
)
//maven
compile
group:
'log4j'
,
name:
'log4j'
,
version:
'1.2.17'
compile
group:
'com.google.guava'
,
name:
'guava'
,
version:
'25.1-jre'
compile
group:
'org.apache.logging.log4j'
,
name:
'log4j-slf4j-impl'
,
version:
'2.11.0'
compile
"org.eclipse.core:org.eclipse.core.runtime:3.7.0"
compile
group:
'com.googlecode.json-simple'
,
name:
'json-simple'
,
version:
'1.1.1'
compile
group:
'com.jcraft'
,
name:
'jsch'
,
version:
'0.1.54'
//Nexus
compile
"org.eclipse.uml2:org.eclipse.uml2.uml:4.1.2"
//runtime?
compile
"org.eclipse.uml2:org.eclipse.uml2.types:1.1.0"
compile
"org.eclipse.uml2:org.eclipse.uml2.common:1.8.2"
compile
group:
'org.eclipse.ocl'
,
name:
'pivot'
,
version:
'1.3.0'
testCompile
group:
'junit'
,
name:
'junit'
,
version:
'4.12'
}
eclipse
.
classpath
.
file
.
beforeMerged
{
classpath
->
classpath
.
entries
.
clear
()
}
dependencies
{
//occiware
compile
group:
'org.eclipse.cmf.occi'
,
name:
'core'
,
version:
'1.0.0'
compile
group:
'org.eclipse.cmf.occi'
,
name:
'infrastructure'
,
version:
'1.0.0'
compile
group:
'org.eclipse.cmf.occi'
,
name:
'crtp'
,
version:
'1.0.0'
compile
group:
'org.modmacao'
,
name:
'core'
,
version:
'1.0.0'
compile
group:
'org.modmacao'
,
name:
'placement'
,
version:
'1.0.0'
compile
group:
'org.modmacao.occi'
,
name:
'platform'
,
version:
'1.0.0'
compile
group:
'org.modmacao.openstack'
,
name:
'runtime'
,
version:
'1.0.1'
compile
group:
'org.modmacao.openstack.swe'
,
name:
'runtime'
,
version:
'1.0.0'
compile
group:
'org.modmacao'
,
name:
'ansible'
,
version:
'1.0.0'
compile
group:
'org.eclipse.cmf.occi'
,
name:
'docker'
,
version:
'1.0.0'
project
(
':de.ugoe.cs.rwm.mocci.model.edit'
)
{
dependencies
{
//own
compile
group:
'de.ugoe.cs.rwm.domain'
,
name:
'workload'
,
version:
'1.0.1'
compile
group:
'de.ugoe.cs.rwm'
,
name:
'cocci'
,
version:
cocciVersion
compile
group:
'de.ugoe.cs.rwm'
,
name:
'docci'
,
version:
docciVersion
compile
group:
'de.ugoe.cs.rwm'
,
name:
'tocci'
,
version:
tocciVersion
compile
group:
'de.ugoe.cs.rwm.pog'
,
name:
'model'
,
version:
'1.0.0'
//compile group: 'de.ugoe.cs.rwm.mocci', name: 'model', version: '1.0.0'
compile
project
(
':de.ugoe.cs.rwm.mocci.model'
)
}
//maven
compile
group:
'log4j'
,
name:
'log4j'
,
version:
'1.2.17'
compile
group:
'com.google.guava'
,
name:
'guava'
,
version:
'25.1-jre'
compile
group:
'org.apache.logging.log4j'
,
name:
'log4j-slf4j-impl'
,
version:
'2.11.0'
compile
"org.eclipse.core:org.eclipse.core.runtime:3.7.0"
compile
group:
'com.googlecode.json-simple'
,
name:
'json-simple'
,
version:
'1.1.1'
compile
group:
'com.jcraft'
,
name:
'jsch'
,
version:
'0.1.54'
//Nexus
compile
"org.eclipse.uml2:org.eclipse.uml2.uml:4.1.2"
//runtime?
compile
"org.eclipse.uml2:org.eclipse.uml2.types:1.1.0"
compile
"org.eclipse.uml2:org.eclipse.uml2.common:1.8.2"
compile
group:
'org.eclipse.ocl'
,
name:
'pivot'
,
version:
'1.3.0'
testCompile
group:
'junit'
,
name:
'junit'
,
version:
'4.12'
}
project
(
':de.ugoe.cs.rwm.mocci.connector'
)
{
dependencies
{
compile
project
(
':de.ugoe.cs.rwm.mocci.model'
)
}
project
(
':de.ugoe.cs.rwm.mocci.model.edit'
)
{
dependencies
{
compile
project
(
':de.ugoe.cs.rwm.mocci.model'
)
}
}
project
(
':de.ugoe.cs.rwm.mocci.connector.dummy'
)
{
dependencies
{
compile
project
(
':de.ugoe.cs.rwm.mocci.model'
)
}
project
(
':de.ugoe.cs.rwm.mocci.connector'
)
{
dependencies
{
compile
project
(
':de.ugoe.cs.rwm.mocci.model'
)
}
}
project
(
':de.ugoe.cs.rwm.mocci.connector.dummy'
)
{
dependencies
{
compile
project
(
':de.ugoe.cs.rwm.mocci.model'
)
}
}
jar
{
...
...
@@ -198,7 +199,7 @@ task jacocoRootReport(type: org.gradle.testing.jacoco.tasks.JacocoReport) {
dependsOn
=
subprojects
.
test
additionalSourceDirs
=
files
([
project
(
':de.ugoe.cs.rwm.mocci.connector.dummy'
),
rootProject
].
sourceSets
.
main
.
allSource
.
srcDirs
)
sourceDirectories
=
files
([
project
(
':de.ugoe.cs.rwm.mocci.connector.dummy'
),
rootProject
].
sourceSets
.
main
.
allSource
.
srcDirs
)
classDirectories
=
files
([
project
(
':de.ugoe.cs.rwm.mocci.connector.dummy'
),
rootProject
].
sourceSets
.
main
.
output
)
classDirectories
=
files
([
project
(
':de.ugoe.cs.rwm.mocci.connector.dummy'
),
rootProject
].
sourceSets
.
main
.
output
)
executionData
=
files
([
project
(
':de.ugoe.cs.rwm.mocci.connector.dummy'
),
rootProject
].
jacocoTestReport
.
executionData
)
reports
{
xml
.
enabled
false
...
...
@@ -208,17 +209,17 @@ task jacocoRootReport(type: org.gradle.testing.jacoco.tasks.JacocoReport) {
uploadArchives
{
repositories
{
mavenDeployer
{
repository
(
url:
"https://nexus.informatik.uni-goettingen.de/content/repositories/rwm/"
)
{
authentication
(
userName:
System
.
getenv
(
'NEXUSUSER'
),
password:
System
.
getenv
(
'NEXUSPASSWORD'
))
mavenDeployer
{
repository
(
url:
"https://nexus.informatik.uni-goettingen.de/content/repositories/rwm/"
)
{
authentication
(
userName:
System
.
getenv
(
'NEXUSUSER'
),
password:
System
.
getenv
(
'NEXUSPASSWORD'
))
}
if
(
System
.
getenv
(
'VERSION'
)
!=
null
)
{
pom
.
version
=
System
.
getenv
(
'VERSION'
)
println
"Version is set to: "
+
System
.
getenv
(
'VERSION'
)
}
if
(
System
.
getenv
(
'VERSION'
)
!=
null
)
{
pom
.
version
=
System
.
getenv
(
'VERSION'
)
println
"Version is set to: "
+
System
.
getenv
(
'VERSION'
)
}
pom
.
version
=
"SNAPSHOT"
pom
.
artifactId
=
"mocci"
pom
.
groupId
=
"de.ugoe.cs.rwm"
}
pom
.
version
=
"SNAPSHOT"
pom
.
artifactId
=
"mocci"
pom
.
groupId
=
"de.ugoe.cs.rwm"
}
}
}
This diff is collapsed.
Click to expand it.
src/main/java/de/ugoe/cs/rwm/mocci/UpScalerSpark.java
0 → 100644
+
260
−
0
View file @
66a0d229
/**
* Copyright (c) 2018-2019 University of Goettingen
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* - Johannes Erbel <johannes.erbel@cs.uni-goettingen.de>
*/
package
de.ugoe.cs.rwm.mocci
;
import
java.nio.file.Path
;
import
org.eclipse.cmf.occi.core.AttributeState
;
import
org.eclipse.cmf.occi.core.Configuration
;
import
org.eclipse.cmf.occi.core.Mixin
;
import
org.eclipse.cmf.occi.core.MixinBase
;
import
org.eclipse.cmf.occi.docker.Container
;
import
org.eclipse.cmf.occi.docker.DockerFactory
;
import
org.eclipse.cmf.occi.infrastructure.Compute
;
import
org.eclipse.cmf.occi.infrastructure.ComputeStatus
;
import
org.eclipse.emf.ecore.resource.Resource
;
import
org.modmacao.occi.platform.Application
;
import
org.modmacao.occi.platform.Component
;
import
org.modmacao.occi.platform.Componentlink
;
import
org.modmacao.placement.Placementlink
;
import
de.ugoe.cs.rwm.docci.ModelUtility
;
import
de.ugoe.cs.rwm.docci.connector.Connector
;
import
de.ugoe.cs.rwm.domain.workload.Componentsim
;
import
de.ugoe.cs.rwm.domain.workload.Computesim
;
import
de.ugoe.cs.rwm.domain.workload.Sensorsim
;
import
de.ugoe.cs.rwm.domain.workload.WorkloadFactory
;
import
monitoring.*
;
public
class
UpScalerSpark
extends
AbsScaler
{
public
UpScalerSpark
(
Connector
conn
,
Path
runtimePath
)
{
this
.
conn
=
conn
;
this
.
runtimePath
=
runtimePath
;
}
@SuppressWarnings
(
"unused"
)
public
Resource
upScaleNodes
()
{
runtimeModel
=
ModelUtility
.
loadOCCIintoEMFResource
(
conn
.
loadRuntimeModel
(
runtimePath
));
Configuration
config
=
((
Configuration
)
runtimeModel
.
getContents
().
get
(
0
));
Compute
comp
=
addCompute
(
config
);
Component
worker
=
addWorkerComponent
(
config
,
comp
);
Sensor
sens
=
addSensor
(
config
,
comp
);
Resultprovider
rp
=
addResultProvider
(
config
,
comp
,
sens
);
config
.
getResources
().
add
(
comp
);
config
.
getResources
().
add
(
worker
);
config
.
getResources
().
add
(
sens
);
config
.
getResources
().
add
(
rp
);
return
runtimeModel
;
}
private
Compute
addCompute
(
Configuration
config
)
{
System
.
out
.
println
(
" Adding Compute Node to Model"
);
Compute
comp
=
iFactory
.
createCompute
();
comp
.
setOcciComputeState
(
ComputeStatus
.
ACTIVE
);
Container
cont
=
DockerFactory
.
eINSTANCE
.
createContainer
();
comp
.
setKind
(
cont
.
getKind
());
AttributeState
state
=
factory
.
createAttributeState
();
state
.
setName
(
"occi.compute.state"
);
state
.
setValue
(
"active"
);
comp
.
getAttributes
().
add
(
state
);
config
.
getResources
().
add
(
comp
);
comp
.
setTitle
(
"Hadoop-Worker-additional"
);
AttributeState
hostname
=
factory
.
createAttributeState
();
hostname
.
setName
(
"occi.compute.hostname"
);
hostname
.
setValue
(
"Hadoop-Worker-additional"
);
comp
.
getAttributes
().
add
(
hostname
);
Computesim
sim
=
WorkloadFactory
.
eINSTANCE
.
createComputesim
();
comp
.
getParts
().
add
(
sim
);
return
comp
;
}
private
Component
addWorkerComponent
(
Configuration
config
,
Compute
comp
)
{
System
.
out
.
println
(
" Adding Worker Component to Model"
);
Component
worker
=
pFactory
.
createComponent
();
worker
.
setTitle
(
"hWorker"
);
// worker.setOcciComponentState(Status.ACTIVE);
config
.
getResources
().
add
(
worker
);
AttributeState
attr
=
factory
.
createAttributeState
();
attr
.
setName
(
"occi.core.id"
);
attr
.
setValue
(
worker
.
getId
());
worker
.
getAttributes
().
add
(
attr
);
MixinBase
mBase
=
factory
.
createMixinBase
();
mBase
.
setMixin
(
getMixin
(
"hadoop-worker"
,
config
));
worker
.
getParts
().
add
(
mBase
);
Placementlink
pLink
=
placeFactory
.
createPlacementlink
();
pLink
.
setSource
(
worker
);
pLink
.
setTarget
(
comp
);
Componentlink
compLink
=
pFactory
.
createComponentlink
();
compLink
.
setSource
(
getResourceById
(
config
.
getResources
(),
getApplicationId
(
config
)));
compLink
.
setTarget
(
worker
);
Componentsim
sim
=
WorkloadFactory
.
eINSTANCE
.
createComponentsim
();
worker
.
getParts
().
add
(
sim
);
MAPE
.
newComp
=
worker
;
return
worker
;
}
private
String
getApplicationId
(
Configuration
config
)
{
for
(
org
.
eclipse
.
cmf
.
occi
.
core
.
Resource
res
:
config
.
getResources
())
{
if
(
res
instanceof
Application
)
{
if
(
res
.
getTitle
().
toLowerCase
().
contains
(
"hadoop"
))
{
return
res
.
getId
();
}
}
}
return
""
;
}
private
Sensor
addSensor
(
Configuration
config
,
Compute
comp
)
{
System
.
out
.
println
(
" Adding Sensor to Model"
);
Sensor
sens
=
mFactory
.
createSensor
();
sens
.
setTitle
(
"CPUSensor"
);
config
.
getResources
().
add
(
sens
);
AttributeState
attr
=
factory
.
createAttributeState
();
attr
.
setName
(
"occi.core.id"
);
attr
.
setValue
(
sens
.
getId
());
sens
.
getAttributes
().
add
(
attr
);
Monitorableproperty
mp
=
mFactory
.
createMonitorableproperty
();
mp
.
setTitle
(
"monProp"
);
mp
.
setMonitoringProperty
(
"CPU"
);
AttributeState
attrProp
=
factory
.
createAttributeState
();
attrProp
.
setName
(
"monitoring.property"
);
attrProp
.
setValue
(
"CPU"
);
mp
.
getAttributes
().
add
(
attrProp
);
mp
.
setSource
(
sens
);
mp
.
setTarget
(
comp
);
Sensorsim
sim
=
WorkloadFactory
.
eINSTANCE
.
createSensorsim
();
sim
.
setSimChangeRate
(
3000
);
sim
.
setSimMonitoringResults
(
"None, None, High, Critical"
);
sens
.
getParts
().
add
(
sim
);
return
sens
;
}
private
Datagatherer
addDataGatherer
(
Configuration
config
,
Compute
comp
,
Sensor
sens
)
{
System
.
out
.
println
(
" Adding Datagatherer to Model"
);
Datagatherer
dg
=
mFactory
.
createDatagatherer
();
dg
.
setTitle
(
"CPUGatherer"
);
config
.
getResources
().
add
(
dg
);
AttributeState
attr
=
factory
.
createAttributeState
();
attr
.
setName
(
"occi.core.id"
);
attr
.
setValue
(
dg
.
getId
());
dg
.
getAttributes
().
add
(
attr
);
MixinBase
mBase
=
factory
.
createMixinBase
();
mBase
.
setMixin
(
getMixin
(
"cpugatherer"
,
config
));
dg
.
getParts
().
add
(
mBase
);
Componentlink
c1
=
pFactory
.
createComponentlink
();
c1
.
setSource
(
sens
);
c1
.
setTarget
(
dg
);
Placementlink
pl
=
placeFactory
.
createPlacementlink
();
pl
.
setSource
(
dg
);
pl
.
setTarget
(
comp
);
return
dg
;
}
private
Dataprocessor
addDataProcessor
(
Configuration
config
,
Compute
comp
,
Sensor
sens
,
Datagatherer
dg
)
{
System
.
out
.
println
(
" Adding Dataprocessor to Model"
);
Dataprocessor
dp
=
mFactory
.
createDataprocessor
();
dp
.
setTitle
(
"CPUProcessor"
);
config
.
getResources
().
add
(
dp
);
AttributeState
attr
=
factory
.
createAttributeState
();
attr
.
setName
(
"occi.core.id"
);
attr
.
setValue
(
dp
.
getId
());
dp
.
getAttributes
().
add
(
attr
);
MixinBase
mBase
=
factory
.
createMixinBase
();
mBase
.
setMixin
(
getMixin
(
"cpuprocessorlocal"
,
config
));
dp
.
getParts
().
add
(
mBase
);
Componentlink
c2
=
pFactory
.
createComponentlink
();
c2
.
setSource
(
sens
);
c2
.
setTarget
(
dp
);
Placementlink
pl
=
placeFactory
.
createPlacementlink
();
pl
.
setSource
(
dp
);
pl
.
setTarget
(
comp
);
Componentlink
cl
=
pFactory
.
createComponentlink
();
cl
.
setSource
(
dp
);
cl
.
setTarget
(
dg
);
return
dp
;
}
private
Resultprovider
addResultProvider
(
Configuration
config
,
Compute
comp
,
Sensor
sens
)
{
System
.
out
.
println
(
" Adding Resultprovider to Model"
);
Resultprovider
rp
=
mFactory
.
createResultprovider
();
rp
.
setTitle
(
"CPUProvider"
);
config
.
getResources
().
add
(
rp
);
Occiresultprovider
orp
=
mFactory
.
createOcciresultprovider
();
orp
.
setResultProviderEndpoint
(
"localhost:8080"
);
AttributeState
attrOP
=
factory
.
createAttributeState
();
attrOP
.
setName
(
"result.provider.endpoint"
);
attrOP
.
setValue
(
"localhost:8080"
);
rp
.
getAttributes
().
add
(
attrOP
);
rp
.
getParts
().
add
(
orp
);
MixinBase
mBase
=
factory
.
createMixinBase
();
mBase
.
setMixin
(
getMixin
(
"cpupublisher"
,
config
));
rp
.
getParts
().
add
(
mBase
);
AttributeState
attr
=
factory
.
createAttributeState
();
attr
.
setName
(
"occi.core.id"
);
attr
.
setValue
(
rp
.
getId
());
rp
.
getAttributes
().
add
(
attr
);
Componentlink
c3
=
pFactory
.
createComponentlink
();
c3
.
setSource
(
sens
);
c3
.
setTarget
(
rp
);
Placementlink
pl
=
placeFactory
.
createPlacementlink
();
pl
.
setSource
(
rp
);
pl
.
setTarget
(
comp
);
Componentsim
sim
=
WorkloadFactory
.
eINSTANCE
.
createComponentsim
();
rp
.
getParts
().
add
(
sim
);
return
rp
;
}
private
Mixin
getMixin
(
String
string
,
Configuration
config
)
{
for
(
Mixin
mix
:
config
.
getMixins
())
{
if
(
mix
.
getTerm
().
equals
(
string
))
{
return
mix
;
}
}
return
null
;
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment