Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
CONF
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
UvA
CONF
Commits
883de1b9
Commit
883de1b9
authored
Jan 12, 2020
by
Spiros Koulouzis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added more properties missing from cloudstorm topology
parent
e3ff8cf2
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
102 additions
and
17 deletions
+102
-17
nodes.yaml
TOSCA/types/nodes.yaml
+5
-0
ToscaHelper.java
.../main/java/nl/uva/sne/drip/commons/utils/ToscaHelper.java
+4
-2
CloudsStormSubTopology.java
...va/sne/drip/model/cloud/storm/CloudsStormSubTopology.java
+57
-4
workspace.xml
drip-planner/.idea/workspace.xml
+0
-2
CloudStormService.java
...n/java/nl/uva/sne/drip/provisioner/CloudStormService.java
+24
-8
CloudsStormSubTopology.yml
openAPI/schema/CloudStorm/CloudsStormSubTopology.yml
+12
-1
No files found.
TOSCA/types/nodes.yaml
View file @
883de1b9
...
...
@@ -120,6 +120,11 @@ node_types:
credential
:
type
:
tosca.datatypes.ARTICONF.Credential
required
:
false
status
:
type
:
string
required
:
false
constraints
:
-
valid_values
:
[
"
fresh"
,
"
running"
,
"
deleted"
,
"
failed"
,
"
stopped"
]
interfaces
:
CloudsStorm
:
type
:
tosca.interfaces.ARTICONF.CloudsStorm
...
...
drip-commons/src/main/java/nl/uva/sne/drip/commons/utils/ToscaHelper.java
View file @
883de1b9
...
...
@@ -237,10 +237,12 @@ public class ToscaHelper {
for
(
NodeTemplateMap
nodeTemplateMap
:
vmTopologyTemplatesMap
)
{
List
<
NodeTemplateMap
>
vmTemplatesMap
=
getTemplateVMsForVMTopology
(
nodeTemplateMap
);
for
(
NodeTemplateMap
vmMap
:
vmTemplatesMap
)
{
Map
<
String
,
Object
>
att
=
vmMap
.
getNodeTemplate
().
getAttributes
();
Map
<
String
,
Object
>
prop
=
vmMap
.
getNodeTemplate
().
getProperties
();
if
(
prop
!=
null
&&
prop
.
containsKey
(
"user_name"
))
{
return
(
String
)
prop
.
get
(
"user_name"
);
}
}
}
return
"vm_user"
;
}
}
drip-commons/src/main/java/nl/uva/sne/drip/model/cloud/storm/CloudsStormSubTopology.java
View file @
883de1b9
...
...
@@ -15,6 +15,48 @@ import org.springframework.validation.annotation.Validated;
public
class
CloudsStormSubTopology
{
/**
* @return the scaledFrom
*/
public
Object
getScaledFrom
()
{
return
scaledFrom
;
}
/**
* @param scaledFrom the scaledFrom to set
*/
public
void
setScaledFrom
(
Object
scaledFrom
)
{
this
.
scaledFrom
=
scaledFrom
;
}
/**
* @return the sshKeyPairId
*/
public
String
getSshKeyPairId
()
{
return
sshKeyPairId
;
}
/**
* @param sshKeyPairId the sshKeyPairId to set
*/
public
void
setSshKeyPairId
(
String
sshKeyPairId
)
{
this
.
sshKeyPairId
=
sshKeyPairId
;
}
/**
* @return the subTopologyClass
*/
public
String
getSubTopologyClass
()
{
return
subTopologyClass
;
}
/**
* @param subTopologyClass the subTopologyClass to set
*/
public
void
setSubTopologyClass
(
String
subTopologyClass
)
{
this
.
subTopologyClass
=
subTopologyClass
;
}
@JsonProperty
(
"topology"
)
private
String
topology
=
null
;
...
...
@@ -24,6 +66,17 @@ public class CloudsStormSubTopology {
@JsonProperty
(
"domain"
)
private
String
domain
=
null
;
@JsonProperty
(
"subTopologyClass"
)
private
String
subTopologyClass
=
null
;
@JsonProperty
(
"logsInfo"
)
private
Object
logsInfo
;
@JsonProperty
(
"sshKeyPairId"
)
private
String
sshKeyPairId
;
@JsonProperty
(
"scaledFrom"
)
private
Object
scaledFrom
;
/**
* Gets or Sets status
*/
...
...
@@ -69,7 +122,7 @@ public class CloudsStormSubTopology {
* Get topology
*
* @return topology
*
*
*/
@ApiModelProperty
(
value
=
""
)
...
...
@@ -90,7 +143,7 @@ public class CloudsStormSubTopology {
* Get cloudProvider
*
* @return cloudProvider
*
*
*/
@ApiModelProperty
(
value
=
""
)
...
...
@@ -111,7 +164,7 @@ public class CloudsStormSubTopology {
* Get domain
*
* @return domain
*
*
*/
@ApiModelProperty
(
value
=
""
)
...
...
@@ -132,7 +185,7 @@ public class CloudsStormSubTopology {
* Get status
*
* @return status
*
*
*/
@ApiModelProperty
(
value
=
""
)
...
...
drip-planner/.idea/workspace.xml
View file @
883de1b9
...
...
@@ -2,9 +2,7 @@
<project
version=
"4"
>
<component
name=
"ChangeListManager"
>
<list
default=
"true"
id=
"e478ccae-5352-4e8e-9efb-3f5cda44e877"
name=
"Default Changelist"
comment=
""
>
<change
beforePath=
"$PROJECT_DIR$/../.gitignore"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/../.gitignore"
afterDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/.idea/workspace.xml"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/.idea/workspace.xml"
afterDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/../sure_tosca-flask-server/sure_tosca/service/tosca_template_service.py"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/../sure_tosca-flask-server/sure_tosca/service/tosca_template_service.py"
afterDir=
"false"
/>
</list>
<option
name=
"SHOW_DIALOG"
value=
"false"
/>
<option
name=
"HIGHLIGHT_CONFLICTS"
value=
"true"
/>
...
...
drip-provisioner/src/main/java/nl/uva/sne/drip/provisioner/CloudStormService.java
View file @
883de1b9
...
...
@@ -23,6 +23,7 @@ import java.util.List;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Properties
;
import
java.util.Set
;
import
java.util.logging.Level
;
import
java.util.logging.Logger
;
import
nl.uva.sne.drip.commons.utils.Converter
;
...
...
@@ -60,6 +61,12 @@ class CloudStormService {
private
final
ObjectMapper
objectMapper
;
private
final
String
cloudStormDBPath
;
private
final
String
SUB_TOPOLOGY_NAME
=
"subTopology"
;
private
final
String
TOPOLOGY_FOLDER_NAME
=
"Topology"
;
private
final
String
INFS_FOLDER_NAME
=
"Infs"
;
private
final
String
UC_FOLDER_NAME
=
"UC"
;
private
final
String
UD_FOLDER_NAME
=
"UD"
;
private
final
String
APP_FOLDER_NAME
=
"App"
;
private
final
String
TOP_TOPOLOGY_FILE_NAME
=
"_top.yml"
;
CloudStormService
(
Properties
properties
,
ToscaTemplate
toscaTemplate
)
throws
IOException
,
JsonProcessingException
,
ApiException
{
// this.toscaTemplate = toscaTemplate;
...
...
@@ -80,28 +87,29 @@ class CloudStormService {
if
(!(
tempInputDir
.
mkdirs
()))
{
throw
new
FileNotFoundException
(
"Could not create input directory: "
+
tempInputDir
.
getAbsolutePath
());
}
String
topologyTempInputDirPath
=
tempInputDirPath
+
File
.
separator
+
"Infs"
+
File
.
separator
+
"Topology"
;
String
topologyTempInputDirPath
=
tempInputDirPath
+
File
.
separator
+
INFS_FOLDER_NAME
+
File
.
separator
+
TOPOLOGY_FOLDER_NAME
;
File
topologyTempInputDir
=
new
File
(
topologyTempInputDirPath
);
if
(!(
topologyTempInputDir
.
mkdirs
()))
{
throw
new
FileNotFoundException
(
"Could not create input directory: "
+
topologyTempInputDir
.
getAbsolutePath
());
}
Map
<
String
,
Object
>
subTopologiesAndVMs
=
writeCloudStormTopologyFiles
(
topologyTempInputDirPath
);
String
credentialsTempInputDirPath
=
tempInputDirPath
+
File
.
separator
+
"Infs"
+
File
.
separator
+
"UC"
;
String
credentialsTempInputDirPath
=
tempInputDirPath
+
File
.
separator
+
INFS_FOLDER_NAME
+
File
.
separator
+
UC_FOLDER_NAME
;
File
credentialsTempInputDir
=
new
File
(
credentialsTempInputDirPath
);
if
(!(
credentialsTempInputDir
.
mkdirs
()))
{
throw
new
FileNotFoundException
(
"Could not create input directory: "
+
credentialsTempInputDir
.
getAbsolutePath
());
}
writeCloudStormCredentialsFiles
(
credentialsTempInputDirPath
);
String
providersDBTempInputDirPath
=
tempInputDirPath
+
File
.
separator
+
"Infs"
+
File
.
separator
+
"UD"
;
String
providersDBTempInputDirPath
=
tempInputDirPath
+
File
.
separator
+
INFS_FOLDER_NAME
+
File
.
separator
+
UD_FOLDER_NAME
;
File
providersDBTempInputDir
=
new
File
(
providersDBTempInputDirPath
);
if
(!(
providersDBTempInputDir
.
mkdirs
()))
{
throw
new
FileNotFoundException
(
"Could not create input directory: "
+
providersDBTempInputDir
.
getAbsolutePath
());
}
writeCloudStormProvidersDBFiles
(
providersDBTempInputDirPath
);
String
infrasCodeTempInputDirPath
=
tempInputDirPath
+
File
.
separator
+
"App"
;
String
infrasCodeTempInputDirPath
=
tempInputDirPath
+
File
.
separator
+
APP_FOLDER_NAME
;
File
infrasCodeTempInputDir
=
new
File
(
infrasCodeTempInputDirPath
);
if
(!(
infrasCodeTempInputDir
.
mkdirs
()))
{
throw
new
FileNotFoundException
(
"Could not create input directory: "
+
topologyTempInputDir
.
getAbsolutePath
());
...
...
@@ -124,7 +132,7 @@ class CloudStormService {
List
<
CloudsStormSubTopology
>
cloudsStormSubTopology
=
(
List
<
CloudsStormSubTopology
>)
subTopologiesAndVMs
.
get
(
"cloud_storm_subtopologies"
);
topTopology
.
setTopologies
(
cloudsStormSubTopology
);
objectMapper
.
writeValue
(
new
File
(
tempInputDirPath
+
File
.
separator
+
"_top.yml"
),
topTopology
);
objectMapper
.
writeValue
(
new
File
(
tempInputDirPath
+
File
.
separator
+
TOP_TOPOLOGY_FILE_NAME
),
topTopology
);
return
subTopologiesAndVMs
;
}
...
...
@@ -271,9 +279,17 @@ class CloudStormService {
FileUtils
.
copyDirectory
(
srcDir
,
destDir
);
}
private
ToscaTemplate
runCloudStorm
(
String
tempInputDirPath
)
{
String
[]
args
=
new
String
[]{
"run"
,
tempInputDirPath
};
standalone
.
MainAsTool
.
main
(
args
);
private
ToscaTemplate
runCloudStorm
(
String
tempInputDirPath
)
throws
IOException
,
ApiException
{
// String[] args = new String[]{"run", tempInputDirPath};
// standalone.MainAsTool.main(args);
tempInputDirPath
=
"/tmp/Input-87672007429577"
;
CloudsStormTopTopology
_top
=
objectMapper
.
readValue
(
new
File
(
tempInputDirPath
+
File
.
separator
+
INFS_FOLDER_NAME
+
File
.
separator
+
TOPOLOGY_FOLDER_NAME
+
File
.
separator
+
TOP_TOPOLOGY_FILE_NAME
),
CloudsStormTopTopology
.
class
);
List
<
CloudsStormSubTopology
>
subTopologies
=
_top
.
getTopologies
();
return
null
;
}
...
...
openAPI/schema/CloudStorm/CloudsStormSubTopology.yml
View file @
883de1b9
...
...
@@ -10,4 +10,15 @@
status
:
type
:
"
string"
enum
:
[
fresh
,
running
,
deleted
,
failed
,
stopped
]
subTopologyClass
:
type
:
"
string"
logsInfo
:
type
:
object
additionalProperties
:
type
:
object
subTopologyClass
:
type
:
"
sshKeyPairId"
scaledFrom
:
type
:
object
additionalProperties
:
type
:
object
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment