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
449ba19a
Commit
449ba19a
authored
5 years ago
by
Spiros Koulouzis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
set cloud storm interfaces
parent
0ff9c39b
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
291 additions
and
30 deletions
+291
-30
application_example_2_topologies_cloudStorm_Interface.yaml
...pplication_example_2_topologies_cloudStorm_Interface.yaml
+239
-0
nodes.yaml
TOSCA/types/nodes.yaml
+5
-2
ToscaHelper.java
.../main/java/nl/uva/sne/drip/commons/utils/ToscaHelper.java
+11
-8
ToscaHelperTest.java
...t/java/nl/uva/sne/drip/commons/utils/ToscaHelperTest.java
+22
-7
tosca_template_service.py
...flask-server/sure_tosca/service/tosca_template_service.py
+14
-13
No files found.
TOSCA/application_example_2_topologies_cloudStorm_Interface.yaml
0 → 100644
View file @
449ba19a
artifact_types
:
null
capability_types
:
null
data_types
:
null
description
:
null
dsl_definitions
:
null
group_types
:
null
imports
:
-
nodes
:
https://raw.githubusercontent.com/skoulouzis/DRIP/DRIP_3.0/TOSCA/types/nodes.yaml
-
capabilities
:
https://raw.githubusercontent.com/skoulouzis/DRIP/DRIP_3.0/TOSCA/types/capabilities.yaml
-
policies
:
https://raw.githubusercontent.com/skoulouzis/DRIP/DRIP_3.0/TOSCA/types/policies.yaml
-
interfaces
:
https://raw.githubusercontent.com/skoulouzis/DRIP/DRIP_3.0/TOSCA/types/interfaces.yml
interface_types
:
null
node_types
:
null
policy_types
:
null
relationship_templates
:
null
relationship_types
:
null
repositories
:
null
template_author
:
null
template_name
:
null
template_version
:
null
topology_template
:
description
:
null
groups
:
null
inputs
:
null
node_templates
:
compute
:
interfaces
:
Standard
:
create
:
dumy.yaml
properties
:
disk_size
:
50000 MB
mem_size
:
6000 MB
num_cores
:
2
os
:
ubuntu 14.04
type
:
tosca.nodes.ARTICONF.VM.Compute
compute_1
:
interfaces
:
Standard
:
create
:
dumy.yaml
properties
:
disk_size
:
50000 MB
mem_size
:
6000 MB
num_cores
:
2
os
:
ubuntu 14.04
type
:
tosca.nodes.ARTICONF.VM.Compute
compute_2
:
interfaces
:
Standard
:
create
:
dumy.yaml
properties
:
disk_size
:
50000 MB
mem_size
:
6000 MB
num_cores
:
2
os
:
ubuntu 14.04.04
type
:
tosca.nodes.ARTICONF.VM.Compute
kubernetes
:
interfaces
:
Standard
:
create
:
interfaces/playbooks/kubernetes_install.yaml
properties
:
min_masters_num
:
1
min_workers_num
:
1
requirements
:
-
host
:
capability
:
tosca.capabilities.ARTICONF.VM.topology
node
:
topology
relationship
:
tosca.relationships.HostedOn
type
:
tosca.nodes.ARTICONF.Orchestrator.Kubernetes
logspout
:
artifacts
:
image
:
file
:
gliderlabs/logspout:latest
repository
:
docker_hub
type
:
tosca.artifacts.Deployment.Image.Container.Docker
properties
:
environment
:
publish
:
127.0.0.1:8000:80
ports
:
-
8000:80
volumes
:
-
/etc/hostname:/etc/host_hostname:ro
-
/var/run/docker.sock:/var/run/docker.sock
requirements
:
-
host
:
capability
:
tosca.capabilities.ARTICONF.Orchestrator
node
:
kubernetes
relationship
:
tosca.relationships.HostedOn
type
:
tosca.nodes.ARTICONF.Container.Application.Docker
mysql
:
artifacts
:
image
:
file
:
mysql:5.7
repository
:
docker_hub
type
:
tosca.artifacts.Deployment.Image.Container.Docker
properties
:
environment
:
MYSQL_DATABASE
:
wordpress
MYSQL_PASSWORD
:
wordpress
MYSQL_ROOT_PASSWORD
:
somewordpress
MYSQL_USER
:
wordpress
ports
:
-
3306:3306
volumes
:
-
db_data:/var/lib/mysql
requirements
:
-
host
:
capability
:
tosca.capabilities.ARTICONF.Orchestrator
node
:
kubernetes
relationship
:
tosca.relationships.HostedOn
type
:
tosca.nodes.ARTICONF.Container.Application.Docker
topology
:
attributes
:
credential
:
cloud_provider_name
:
ExoGeni
keys
:
key1
:
eeeeeeavovfouirveiuvbepuyb8rwqovd8boacbdbvwy8oqry7f08r3euadinanzxcjc078yn0183xoqedw
protocol
:
protocol
token
:
ijwbfciweubfriw
token_type
:
passwrd
user
:
user
interfaces
:
CloudsStorm
:
provision
:
inputs
:
-
code_type
:
SEQ
-
object_type
:
SubTopology
-
objects
:
-
subtopology
-
command
:
null
-
options
:
null
-
count
:
null
-
duration
:
null
-
deadline
:
null
properties
:
domain
:
UvA (Amsterdam, The Netherlands) XO Rack
provider
:
ExoGeni
requirements
:
-
vm
:
capability
:
tosca.capabilities.ARTICONF.VM
node
:
compute
relationship
:
tosca.relationships.DependsOn
-
vm
:
capability
:
tosca.capabilities.ARTICONF.VM
node
:
compute_1
relationship
:
tosca.relationships.DependsOn
type
:
tosca.nodes.ARTICONF.VM.topology
topology_1
:
attributes
:
credential
:
cloud_provider_name
:
ExoGeni
keys
:
key1
:
eeeeeeavovfouirveiuvbepuyb8rwqovd8boacbdbvwy8oqry7f08r3euadinanzxcjc078yn0183xoqedw
protocol
:
protocol
token
:
ijwbfciweubfriw
token_type
:
passwrd
user
:
user
interfaces
:
tosca.interfaces.ARTICONF.CloudsStorm
:
provision
:
inputs
:
-
code_type
:
SEQ
-
object_type
:
SubTopology
-
objects
:
-
subtopology
-
command
:
null
-
options
:
null
-
count
:
null
-
duration
:
null
-
deadline
:
null
properties
:
domain
:
UNC BEN (Chapel Hill, NC USA)
provider
:
ExoGeni
requirements
:
-
vm
:
capability
:
tosca.capabilities.ARTICONF.VM
node
:
compute_2
relationship
:
tosca.relationships.DependsOn
type
:
tosca.nodes.ARTICONF.VM.topology
wordpress
:
artifacts
:
image
:
file
:
wordpress:latest
repository
:
docker_hub
type
:
tosca.artifacts.Deployment.Image.Container.Docker
properties
:
environment
:
WORDPRESS_DB_HOST
:
mysql:3306
WORDPRESS_DB_NAME
:
wordpress
WORDPRESS_DB_PASSWORD
:
wordpress
WORDPRESS_DB_USER
:
wordpress
ports
:
-
8000:80
requirements
:
-
service
:
node
:
mysql
relationship
:
type
:
tosca.relationships.DependsOn
-
host
:
capability
:
tosca.capabilities.ARTICONF.Orchestrator
node
:
kubernetes
relationship
:
tosca.relationships.HostedOn
type
:
tosca.nodes.ARTICONF.Container.Application.Docker
outputs
:
private_ip_compute
:
description
:
"
The
private
IP
address
of
the
application
\u2019
s
first
tier."
value
:
get_attribute
:
-
compute
-
private_ip
private_ip_compute_1
:
description
:
"
The
private
IP
address
of
the
application
\u2019
s
second
tier."
value
:
get_attribute
:
-
compute_1
-
private_ip
private_ip_compute_2
:
description
:
"
The
private
IP
address
of
the
application
\u2019
s
second
tier."
value
:
get_attribute
:
-
compute_2
-
private_ip
policies
:
-
scalability
:
properties
:
constraint_name
:
cpu_load
max_value
:
90
targets
:
-
wordpress
type
:
tosca.policies.ARTICONF.Performance.CPU
-
faultTolerance
:
properties
:
level
:
1
targets
:
-
mysql
type
:
tosca.policies.ARTICONF.FaultTolerance
relationship_templates
:
null
substitution_mappings
:
null
tosca_default_namespace
:
null
tosca_definitions_version
:
tosca_simple_yaml_1_0
This diff is collapsed.
Click to expand it.
TOSCA/types/nodes.yaml
View file @
449ba19a
...
...
@@ -117,8 +117,11 @@ node_types:
type
:
tosca.datatypes.ARTICONF.Credential
required
:
false
interfaces
:
Standard
:
create
:
dumy.yaml
tosca.interfaces.ARTICONF.CloudsStorm
:
provision
:
inputs
:
-
code_type
:
SEQ
-
object_type
:
SubTopology
tosca.nodes.ARTICONF.VM.Compute
:
derived_from
:
tosca.nodes.ARTICONF.Infrastructure
...
...
This diff is collapsed.
Click to expand it.
drip-commons/src/main/java/nl/uva/sne/drip/commons/utils/ToscaHelper.java
View file @
449ba19a
...
...
@@ -219,12 +219,7 @@ public class ToscaHelper {
return
toscaTemplate
;
}
public
NodeTemplateMap
setProvisionerInterfaceInVMTopology
(
NodeTemplateMap
vmTopologyMap
,
Provisioner
provisioner
,
String
operation
)
throws
ApiException
{
List
<
String
>
toscaInterfaceTypes
=
new
ArrayList
<>();
toscaInterfaceTypes
.
add
(
provisioner
.
getToscaInterfaceType
());
List
<
Map
<
String
,
Object
>>
definitions
=
getProvisionInterfaceDefinitions
(
toscaInterfaceTypes
);
Map
<
String
,
Object
>
definition
=
getBestProvisionInterfaceDefinition
(
definitions
);
Map
<
String
,
Object
>
provisionInterface
=
getProvisionInterfaceInstance
(
definition
,
operation
);
public
NodeTemplateMap
setProvisionerInterfaceInVMTopology
(
NodeTemplateMap
vmTopologyMap
,
Map
<
String
,
Object
>
provisionInterface
)
throws
ApiException
{
vmTopologyMap
.
getNodeTemplate
().
setInterfaces
(
provisionInterface
);
return
vmTopologyMap
;
}
...
...
@@ -238,11 +233,19 @@ public class ToscaHelper {
return
null
;
}
private
Map
<
String
,
Object
>
getProvisionInterfaceInstance
(
Map
<
String
,
Object
>
definition
,
String
operation
)
throws
ApiException
{
private
Map
<
String
,
Object
>
getProvisionInterfaceInstance
DefaultValues
(
Map
<
String
,
Object
>
definition
,
String
operation
)
throws
ApiException
{
String
type
=
definition
.
keySet
().
iterator
().
next
();
String
[]
typeArray
=
type
.
split
(
"\\."
);
Map
<
String
,
Object
>
provisionInterface
=
api
.
getDefaultInterface
(
String
.
valueOf
(
id
),
type
,
typeArray
[
typeArray
.
length
-
1
]
.
toLowerCase
()
,
operation
);
Map
<
String
,
Object
>
provisionInterface
=
api
.
getDefaultInterface
(
String
.
valueOf
(
id
),
type
,
typeArray
[
typeArray
.
length
-
1
],
operation
);
return
provisionInterface
;
}
public
Map
<
String
,
Object
>
getProvisionInterface
(
Provisioner
provisioner
,
String
operation
)
throws
ApiException
{
List
<
String
>
toscaInterfaceTypes
=
new
ArrayList
<>();
toscaInterfaceTypes
.
add
(
provisioner
.
getToscaInterfaceType
());
List
<
Map
<
String
,
Object
>>
definitions
=
getProvisionInterfaceDefinitions
(
toscaInterfaceTypes
);
Map
<
String
,
Object
>
definition
=
getBestProvisionInterfaceDefinition
(
definitions
);
Map
<
String
,
Object
>
provisionInterface
=
getProvisionInterfaceInstanceDefaultValues
(
definition
,
operation
);
return
provisionInterface
;
}
}
This diff is collapsed.
Click to expand it.
drip-commons/src/test/java/nl/uva/sne/drip/commons/utils/ToscaHelperTest.java
View file @
449ba19a
...
...
@@ -179,7 +179,7 @@ public class ToscaHelperTest {
* @throws java.lang.Exception
*/
@Test
public
void
testSetCredentials
InVMTopology
()
throws
Exception
{
public
void
testSetCredentials
AndInterface
()
throws
Exception
{
if
(
serviceUp
)
{
toscaTemplateWithCredentials
=
null
;
...
...
@@ -221,13 +221,28 @@ public class ToscaHelperTest {
vmTopologies
=
instance
.
getVMTopologyTemplates
();
ToscaTemplate
toscaTemplateWithInterface
=
null
;
Provisioner
provisioner
=
new
Provisioner
();
provisioner
.
setName
(
"CloudsStorm"
);
provisioner
.
setDescription
(
"Interface for VM topology management with CloudsStorm. More at https://cloudsstorm.github.io/"
);
provisioner
.
setToscaInterfaceType
(
"tosca.interfaces.ARTICONF.CloudsStorm"
);
String
operation
=
"provision"
;
for
(
NodeTemplateMap
vmTopologyMap
:
vmTopologies
)
{
Provisioner
provisioner
=
new
Provisioner
();
provisioner
.
setName
(
"CloudsStorm"
);
provisioner
.
setDescription
(
"Interface for VM topology management with CloudsStorm. More at https://cloudsstorm.github.io/"
);
provisioner
.
setToscaInterfaceType
(
"tosca.interfaces.ARTICONF.CloudsStorm"
);
String
operation
=
"provision"
;
vmTopologyMap
=
instance
.
setProvisionerInterfaceInVMTopology
(
vmTopologyMap
,
provisioner
,
operation
);
Map
<
String
,
Object
>
provisionInterface
=
instance
.
getProvisionInterface
(
provisioner
,
operation
);
List
<
String
>
objects
=
new
ArrayList
<>();
objects
.
add
(
"subtopology"
);
String
key
=
provisionInterface
.
keySet
().
iterator
().
next
();
Map
<
String
,
Object
>
provisionOperation
=
(
Map
<
String
,
Object
>)
provisionInterface
.
get
(
key
);
Map
<
String
,
Object
>
operationMap
=
(
Map
<
String
,
Object
>)
provisionOperation
.
get
(
operation
);
List
<
Map
<
String
,
Object
>>
inputs
=
(
List
<
Map
<
String
,
Object
>>)
operationMap
.
get
(
"inputs"
);
for
(
Map
<
String
,
Object
>
input
:
inputs
)
{
if
(
input
.
containsKey
(
"objects"
))
{
input
.
put
(
"objects"
,
objects
);
break
;
}
}
vmTopologyMap
=
instance
.
setProvisionerInterfaceInVMTopology
(
vmTopologyMap
,
provisionInterface
);
toscaTemplateWithInterface
=
instance
.
setVMTopologyInToscaTemplate
(
toscaTemplate
,
vmTopologyMap
);
}
instance
.
uploadToscaTemplate
(
toscaTemplateWithInterface
);
...
...
This diff is collapsed.
Click to expand it.
sure_tosca-flask-server/sure_tosca/service/tosca_template_service.py
View file @
449ba19a
...
...
@@ -88,19 +88,20 @@ def purge_all_tables():
def
save
(
file
):
try
:
# tosca_template_file_path = os.path.join(db_dir_path, file.filename)
purge_all_tables
()
dictionary
=
yaml
.
safe_load
(
file
.
stream
)
print
(
yaml
.
dump
(
dictionary
))
tosca_template
=
ToscaTemplate
(
yaml_dict_tpl
=
copy
.
deepcopy
(
dictionary
))
tosca_template_model
=
ToscaTemplateModel
.
from_dict
(
dictionary
)
doc_id
=
tosca_templates_db
.
insert
(
dictionary
)
# tosca_templates_db.close()
return
doc_id
except
Exception
as
e
:
logging
.
error
(
str
(
e
))
return
str
(
e
),
400
# try:
# tosca_template_file_path = os.path.join(db_dir_path, file.filename)
purge_all_tables
()
dictionary
=
yaml
.
safe_load
(
file
.
stream
)
print
(
yaml
.
dump
(
dictionary
))
tosca_template
=
ToscaTemplate
(
yaml_dict_tpl
=
copy
.
deepcopy
(
dictionary
))
# all_custom_def = tosca_template.nodetemplates[0].custom_def
tosca_template_model
=
ToscaTemplateModel
.
from_dict
(
dictionary
)
doc_id
=
tosca_templates_db
.
insert
(
dictionary
)
# tosca_templates_db.close()
return
doc_id
# except Exception as e:
# logging.error(str(e))
# return str(e), 400
def
get_interface_types
(
id
,
interface_type
=
None
):
...
...
This diff is collapsed.
Click to expand it.
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