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
a6e38c65
Commit
a6e38c65
authored
Dec 10, 2019
by
Spiros Koulouzis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added name to node
parent
3dc7c5e2
Changes
17
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
1617 additions
and
1145 deletions
+1617
-1145
ToscaHelper.java
.../main/java/nl/uva/sne/drip/commons/utils/ToscaHelper.java
+0
-5
CloudsStormSubMembers.java
...ain/java/nl/uva/sne/drip/model/CloudsStormSubMembers.java
+103
-0
CloudsStormSubTopology.java
...in/java/nl/uva/sne/drip/model/CloudsStormSubTopology.java
+142
-147
CloudsStormSubnets.java
...c/main/java/nl/uva/sne/drip/model/CloudsStormSubnets.java
+169
-0
CloudsStormTopTopology.java
...in/java/nl/uva/sne/drip/model/CloudsStormTopTopology.java
+163
-145
Credentials.java
...mons/src/main/java/nl/uva/sne/drip/model/Credentials.java
+5
-4
Message.java
...-commons/src/main/java/nl/uva/sne/drip/model/Message.java
+0
-1
NodeTemplate.java
...ons/src/main/java/nl/uva/sne/drip/model/NodeTemplate.java
+343
-319
TopologyTemplate.java
...src/main/java/nl/uva/sne/drip/model/TopologyTemplate.java
+294
-286
ToscaTemplate.java
...ns/src/main/java/nl/uva/sne/drip/model/ToscaTemplate.java
+21
-25
User.java
drip-commons/src/main/java/nl/uva/sne/drip/model/User.java
+12
-183
ApiClient.java
...ain/java/nl/uva/sne/drip/sure_tosca/client/ApiClient.java
+1
-0
JSON.java
...src/main/java/nl/uva/sne/drip/sure_tosca/client/JSON.java
+22
-23
ToscaHelperTest.java
...t/java/nl/uva/sne/drip/commons/utils/ToscaHelperTest.java
+6
-4
DefaultApiTest.java
...ava/nl/uva/sne/drip/sure_tosca/client/DefaultApiTest.java
+334
-0
pom.xml
drip-provisioner/pom.xml
+0
-3
NodeTemplate.yml
openAPI/schema/TOSCA/NodeTemplate.yml
+2
-0
No files found.
drip-commons/src/main/java/nl/uva/sne/drip/commons/utils/ToscaHelper.java
View file @
a6e38c65
...
@@ -73,7 +73,6 @@ public class ToscaHelper {
...
@@ -73,7 +73,6 @@ public class ToscaHelper {
for
(
String
type
:
toscaInterfaceTypes
)
{
for
(
String
type
:
toscaInterfaceTypes
)
{
String
derivedFrom
=
null
;
String
derivedFrom
=
null
;
List
<
Map
<
String
,
Object
>>
interfaces
=
api
.
getTypes
(
String
.
valueOf
(
id
),
"interface_types"
,
null
,
type
,
null
,
null
,
null
,
null
,
null
,
derivedFrom
);
List
<
Map
<
String
,
Object
>>
interfaces
=
api
.
getTypes
(
String
.
valueOf
(
id
),
"interface_types"
,
null
,
type
,
null
,
null
,
null
,
null
,
null
,
derivedFrom
);
interfaceDefinitions
.
addAll
(
interfaces
);
interfaceDefinitions
.
addAll
(
interfaces
);
}
}
...
@@ -85,8 +84,4 @@ public class ToscaHelper {
...
@@ -85,8 +84,4 @@ public class ToscaHelper {
return
vmTopologyTemplates
;
return
vmTopologyTemplates
;
}
}
public
ToscaTemplate
execute
()
{
throw
new
UnsupportedOperationException
(
"Not supported yet."
);
//To change body of generated methods, choose Tools | Templates.
}
}
}
drip-commons/src/main/java/nl/uva/sne/drip/model/CloudsStormSubMembers.java
0 → 100644
View file @
a6e38c65
package
nl
.
uva
.
sne
.
drip
.
model
;
import
java.util.Objects
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
org.springframework.validation.annotation.Validated
;
/**
* CloudsStormSubMembers
*/
@Validated
@javax
.
annotation
.
Generated
(
value
=
"io.swagger.codegen.languages.SpringCodegen"
,
date
=
"2019-12-10T15:39:04.296Z"
)
public
class
CloudsStormSubMembers
{
@JsonProperty
(
"vmName"
)
private
String
vmName
=
null
;
@JsonProperty
(
"address"
)
private
String
address
=
null
;
public
CloudsStormSubMembers
vmName
(
String
vmName
)
{
this
.
vmName
=
vmName
;
return
this
;
}
/**
* Get vmName
*
* @return vmName
*
*/
@ApiModelProperty
(
value
=
""
)
public
String
getVmName
()
{
return
vmName
;
}
public
void
setVmName
(
String
vmName
)
{
this
.
vmName
=
vmName
;
}
public
CloudsStormSubMembers
address
(
String
address
)
{
this
.
address
=
address
;
return
this
;
}
/**
* Get address
*
* @return address
*
*/
@ApiModelProperty
(
value
=
""
)
public
String
getAddress
()
{
return
address
;
}
public
void
setAddress
(
String
address
)
{
this
.
address
=
address
;
}
@Override
public
boolean
equals
(
java
.
lang
.
Object
o
)
{
if
(
this
==
o
)
{
return
true
;
}
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
{
return
false
;
}
CloudsStormSubMembers
cloudsStormSubMembers
=
(
CloudsStormSubMembers
)
o
;
return
Objects
.
equals
(
this
.
vmName
,
cloudsStormSubMembers
.
vmName
)
&&
Objects
.
equals
(
this
.
address
,
cloudsStormSubMembers
.
address
);
}
@Override
public
int
hashCode
()
{
return
Objects
.
hash
(
vmName
,
address
);
}
@Override
public
String
toString
()
{
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
"class CloudsStormSubMembers {\n"
);
sb
.
append
(
" vmName: "
).
append
(
toIndentedString
(
vmName
)).
append
(
"\n"
);
sb
.
append
(
" address: "
).
append
(
toIndentedString
(
address
)).
append
(
"\n"
);
sb
.
append
(
"}"
);
return
sb
.
toString
();
}
/**
* Convert the given object to string with each line indented by 4 spaces
* (except the first line).
*/
private
String
toIndentedString
(
java
.
lang
.
Object
o
)
{
if
(
o
==
null
)
{
return
"null"
;
}
return
o
.
toString
().
replace
(
"\n"
,
"\n "
);
}
}
drip-commons/src/main/java/nl/uva/sne/drip/model/CloudsStormSubTopology.java
View file @
a6e38c65
/*
* Copyright 2019 S. Koulouzis
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
nl
.
uva
.
sne
.
drip
.
model
;
package
nl
.
uva
.
sne
.
drip
.
model
;
import
java.util.Objects
;
import
java.util.Objects
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
org.springframework.validation.annotation.Validated
;
/**
/**
*
* CloudsStormSubTopology
* @author S. Koulouzis
*/
*/
@javax
.
annotation
.
Generated
(
value
=
"io.swagger.codegen.v3.generators.java.SpringCodegen"
,
date
=
"2019-12-09T15:55:39.959Z[GMT]"
)
@Validated
public
class
CloudsStormSubTopology
{
@javax
.
annotation
.
Generated
(
value
=
"io.swagger.codegen.languages.SpringCodegen"
,
date
=
"2019-12-10T15:39:04.296Z"
)
@JsonProperty
(
"topology"
)
private
String
topology
=
null
;
public
class
CloudsStormSubTopology
{
@JsonProperty
(
"cloudProvider"
)
@JsonProperty
(
"topology"
)
private
String
cloudProvider
=
null
;
private
String
topology
=
null
;
@JsonProperty
(
"domain"
)
@JsonProperty
(
"cloudProvider"
)
private
String
domain
=
null
;
private
String
cloudProvider
=
null
;
@JsonProperty
(
"status"
)
@JsonProperty
(
"domain"
)
private
String
status
=
null
;
private
String
domain
=
null
;
public
CloudsStormSubTopology
topology
(
String
topology
)
{
@JsonProperty
(
"status"
)
this
.
topology
=
topology
;
private
String
status
=
null
;
return
this
;
}
public
CloudsStormSubTopology
topology
(
String
topology
)
{
this
.
topology
=
topology
;
/**
return
this
;
* Get topology
}
* @return topology
**/
/**
@ApiModelProperty
(
value
=
""
)
* Get topology
*
* @return topology
*
*/
@ApiModelProperty
(
value
=
""
)
public
String
getTopology
()
{
public
String
getTopology
()
{
return
topology
;
return
topology
;
}
}
public
void
setTopology
(
String
topology
)
{
public
void
setTopology
(
String
topology
)
{
this
.
topology
=
topology
;
this
.
topology
=
topology
;
}
}
public
CloudsStormSubTopology
cloudProvider
(
String
cloudProvider
)
{
public
CloudsStormSubTopology
cloudProvider
(
String
cloudProvider
)
{
this
.
cloudProvider
=
cloudProvider
;
this
.
cloudProvider
=
cloudProvider
;
return
this
;
return
this
;
}
}
/**
/**
* Get cloudProvider
* Get cloudProvider
* @return cloudProvider
*
**/
* @return cloudProvider
@ApiModelProperty
(
value
=
""
)
*
*/
@ApiModelProperty
(
value
=
""
)
public
String
getCloudProvider
()
{
public
String
getCloudProvider
()
{
return
cloudProvider
;
return
cloudProvider
;
}
}
public
void
setCloudProvider
(
String
cloudProvider
)
{
public
void
setCloudProvider
(
String
cloudProvider
)
{
this
.
cloudProvider
=
cloudProvider
;
this
.
cloudProvider
=
cloudProvider
;
}
}
public
CloudsStormSubTopology
domain
(
String
domain
)
{
public
CloudsStormSubTopology
domain
(
String
domain
)
{
this
.
domain
=
domain
;
this
.
domain
=
domain
;
return
this
;
return
this
;
}
}
/**
/**
* Get domain
* Get domain
* @return domain
*
**/
* @return domain
@ApiModelProperty
(
value
=
""
)
*
*/
@ApiModelProperty
(
value
=
""
)
public
String
getDomain
()
{
public
String
getDomain
()
{
return
domain
;
return
domain
;
}
}
public
void
setDomain
(
String
domain
)
{
public
void
setDomain
(
String
domain
)
{
this
.
domain
=
domain
;
this
.
domain
=
domain
;
}
}
public
CloudsStormSubTopology
status
(
String
status
)
{
public
CloudsStormSubTopology
status
(
String
status
)
{
this
.
status
=
status
;
this
.
status
=
status
;
return
this
;
return
this
;
}
}
/**
/**
* Get status
* Get status
* @return status
*
**/
* @return status
@ApiModelProperty
(
value
=
""
)
*
*/
@ApiModelProperty
(
value
=
""
)
public
String
getStatus
()
{
public
String
getStatus
()
{
return
status
;
return
status
;
}
}
public
void
setStatus
(
String
status
)
{
public
void
setStatus
(
String
status
)
{
this
.
status
=
status
;
this
.
status
=
status
;
}
}
@Override
@Override
public
boolean
equals
(
java
.
lang
.
Object
o
)
{
public
boolean
equals
(
java
.
lang
.
Object
o
)
{
if
(
this
==
o
)
{
if
(
this
==
o
)
{
return
true
;
return
true
;
}
}
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
{
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
{
return
false
;
return
false
;
}
}
CloudsStormSubTopology
cloudsStormSubTopology
=
(
CloudsStormSubTopology
)
o
;
CloudsStormSubTopology
cloudsStormSubTopology
=
(
CloudsStormSubTopology
)
o
;
return
Objects
.
equals
(
this
.
topology
,
cloudsStormSubTopology
.
topology
)
return
Objects
.
equals
(
this
.
topology
,
cloudsStormSubTopology
.
topology
)
&&
&&
Objects
.
equals
(
this
.
cloudProvider
,
cloudsStormSubTopology
.
cloudProvider
)
Objects
.
equals
(
this
.
cloudProvider
,
cloudsStormSubTopology
.
cloudProvider
)
&&
&&
Objects
.
equals
(
this
.
domain
,
cloudsStormSubTopology
.
domain
)
Objects
.
equals
(
this
.
domain
,
cloudsStormSubTopology
.
domain
)
&&
&&
Objects
.
equals
(
this
.
status
,
cloudsStormSubTopology
.
status
);
Objects
.
equals
(
this
.
status
,
cloudsStormSubTopology
.
status
);
}
}
@Override
@Override
public
int
hashCode
()
{
public
int
hashCode
()
{
return
Objects
.
hash
(
topology
,
cloudProvider
,
domain
,
status
);
return
Objects
.
hash
(
topology
,
cloudProvider
,
domain
,
status
);
}
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
StringBuilder
sb
=
new
StringBuilder
();
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
"class CloudsStormSubTopology {\n"
);
sb
.
append
(
"class CloudsStormSubTopology {\n"
);
sb
.
append
(
" topology: "
).
append
(
toIndentedString
(
topology
)).
append
(
"\n"
);
sb
.
append
(
" topology: "
).
append
(
toIndentedString
(
topology
)).
append
(
"\n"
);
sb
.
append
(
" cloudProvider: "
).
append
(
toIndentedString
(
cloudProvider
)).
append
(
"\n"
);
sb
.
append
(
" cloudProvider: "
).
append
(
toIndentedString
(
cloudProvider
)).
append
(
"\n"
);
sb
.
append
(
" domain: "
).
append
(
toIndentedString
(
domain
)).
append
(
"\n"
);
sb
.
append
(
" domain: "
).
append
(
toIndentedString
(
domain
)).
append
(
"\n"
);
sb
.
append
(
" status: "
).
append
(
toIndentedString
(
status
)).
append
(
"\n"
);
sb
.
append
(
" status: "
).
append
(
toIndentedString
(
status
)).
append
(
"\n"
);
sb
.
append
(
"}"
);
sb
.
append
(
"}"
);
return
sb
.
toString
();
return
sb
.
toString
();
}
}
/**
/**
* Convert the given object to string with each line indented by 4 spaces
* Convert the given object to string with each line indented by 4 spaces
* (except the first line).
* (except the first line).
*/
*/
private
String
toIndentedString
(
java
.
lang
.
Object
o
)
{
private
String
toIndentedString
(
java
.
lang
.
Object
o
)
{
if
(
o
==
null
)
{
if
(
o
==
null
)
{
return
"null"
;
return
"null"
;
}
}
return
o
.
toString
().
replace
(
"\n"
,
"\n "
);
return
o
.
toString
().
replace
(
"\n"
,
"\n "
);
}
}
}
}
drip-commons/src/main/java/nl/uva/sne/drip/model/CloudsStormSubnets.java
0 → 100644
View file @
a6e38c65
package
nl
.
uva
.
sne
.
drip
.
model
;
import
java.util.Objects
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.util.ArrayList
;
import
java.util.List
;
import
org.springframework.validation.annotation.Validated
;
import
javax.validation.Valid
;
/**
* CloudsStormSubnets
*/
@Validated
@javax
.
annotation
.
Generated
(
value
=
"io.swagger.codegen.languages.SpringCodegen"
,
date
=
"2019-12-10T15:39:04.296Z"
)
public
class
CloudsStormSubnets
{
@JsonProperty
(
"name"
)
private
String
name
=
null
;
@JsonProperty
(
"subnet"
)
private
String
subnet
=
null
;
@JsonProperty
(
"netmask"
)
private
String
netmask
=
null
;
@JsonProperty
(
"members"
)
@Valid
private
List
<
CloudsStormSubMembers
>
members
=
null
;
public
CloudsStormSubnets
name
(
String
name
)
{
this
.
name
=
name
;
return
this
;
}
/**
* Get name
*
* @return name
*
*/
@ApiModelProperty
(
value
=
""
)
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
CloudsStormSubnets
subnet
(
String
subnet
)
{
this
.
subnet
=
subnet
;
return
this
;
}
/**
* Get subnet
*
* @return subnet
*
*/
@ApiModelProperty
(
value
=
""
)
public
String
getSubnet
()
{
return
subnet
;
}
public
void
setSubnet
(
String
subnet
)
{
this
.
subnet
=
subnet
;
}
public
CloudsStormSubnets
netmask
(
String
netmask
)
{
this
.
netmask
=
netmask
;
return
this
;
}
/**
* Get netmask
*
* @return netmask
*
*/
@ApiModelProperty
(
value
=
""
)
public
String
getNetmask
()
{
return
netmask
;
}
public
void
setNetmask
(
String
netmask
)
{
this
.
netmask
=
netmask
;
}
public
CloudsStormSubnets
members
(
List
<
CloudsStormSubMembers
>
members
)
{
this
.
members
=
members
;
return
this
;
}
public
CloudsStormSubnets
addMembersItem
(
CloudsStormSubMembers
membersItem
)
{
if
(
this
.
members
==
null
)
{
this
.
members
=
new
ArrayList
<
CloudsStormSubMembers
>();
}
this
.
members
.
add
(
membersItem
);
return
this
;
}
/**
* Get members
*
* @return members
*
*/
@ApiModelProperty
(
value
=
""
)
@Valid
public
List
<
CloudsStormSubMembers
>
getMembers
()
{
return
members
;
}
public
void
setMembers
(
List
<
CloudsStormSubMembers
>
members
)
{
this
.
members
=
members
;
}
@Override
public
boolean
equals
(
java
.
lang
.
Object
o
)
{
if
(
this
==
o
)
{
return
true
;
}
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
{
return
false
;
}
CloudsStormSubnets
cloudsStormSubnets
=
(
CloudsStormSubnets
)
o
;
return
Objects
.
equals
(
this
.
name
,
cloudsStormSubnets
.
name
)
&&
Objects
.
equals
(
this
.
subnet
,
cloudsStormSubnets
.
subnet
)
&&
Objects
.
equals
(
this
.
netmask
,
cloudsStormSubnets
.
netmask
)
&&
Objects
.
equals
(
this
.
members
,
cloudsStormSubnets
.
members
);
}
@Override
public
int
hashCode
()
{
return
Objects
.
hash
(
name
,
subnet
,
netmask
,
members
);
}
@Override
public
String
toString
()
{
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
"class CloudsStormSubnets {\n"
);
sb
.
append
(
" name: "
).
append
(
toIndentedString
(
name
)).
append
(
"\n"
);
sb
.
append
(
" subnet: "
).
append
(
toIndentedString
(
subnet
)).
append
(
"\n"
);
sb
.
append
(
" netmask: "
).
append
(
toIndentedString
(
netmask
)).
append
(
"\n"
);
sb
.
append
(
" members: "
).
append
(
toIndentedString
(
members
)).
append
(
"\n"
);
sb
.
append
(
"}"
);
return
sb
.
toString
();
}
/**
* Convert the given object to string with each line indented by 4 spaces
* (except the first line).
*/
private
String
toIndentedString
(
java
.
lang
.
Object
o
)
{
if
(
o
==
null
)
{
return
"null"
;
}
return
o
.
toString
().
replace
(
"\n"
,
"\n "
);
}
}
drip-commons/src/main/java/nl/uva/sne/drip/model/CloudsStormTopTopology.java
View file @
a6e38c65
/*
* Copyright 2019 S. Koulouzis
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
nl
.
uva
.
sne
.
drip
.
model
;
package
nl
.
uva
.
sne
.
drip
.
model
;
import
java.util.Objects
;
import
java.util.Objects
;
import
com.
google.gson.annotations.SerializedName
;
import
com.
fasterxml.jackson.annotation.JsonProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
org.springframework.validation.annotation.Validated
;
import
javax.validation.Valid
;
/**
/**
*
* CloudsStormTopTopology
* @author S. Koulouzis
*/
*/
@javax
.
annotation
.
Generated
(
value
=
"org.openapitools.codegen.languages.JavaClientCodegen"
,
date
=
"2019-12-09T16:51:48.830052+01:00[Europe/Amsterdam]"
)
@Validated
@javax
.
annotation
.
Generated
(
value
=
"io.swagger.codegen.languages.SpringCodegen"
,
date
=
"2019-12-10T15:39:04.296Z"
)
public
class
CloudsStormTopTopology
{
public
class
CloudsStormTopTopology
{
public
static
final
String
SERIALIZED_NAME_USER_NAME
=
"userName"
;
@SerializedName
(
SERIALIZED_NAME_USER_NAME
)
private
String
userName
;
public
static
final
String
SERIALIZED_NAME_PUBLIC_KEY_PATH
=
"publicKeyPath"
;
@JsonProperty
(
"userName"
)
@SerializedName
(
SERIALIZED_NAME_PUBLIC_KEY_PATH
)
private
String
userName
=
null
;
private
String
publicKeyPath
;
@JsonProperty
(
"publicKeyPath"
)
private
String
publicKeyPath
=
null
;
public
static
final
String
SERIALIZED_NAME_TOPOLOGIES
=
"topologies"
;
@JsonProperty
(
"topologies"
)
@SerializedName
(
SERIALIZED_NAME_TOPOLOGIES
)
@Valid
private
List
<
CloudsStormSubTopology
>
topologies
=
null
;
private
List
<
CloudsStormSubTopology
>
topologies
=
null
;
@JsonProperty
(
"subnets"
)
@Valid
private
List
<
CloudsStormSubnets
>
subnets
=
null
;
public
CloudsStormTopTopology
userName
(
String
userName
)
{
this
.
userName
=
userName
;
return
this
;
}
/**
* Get userName
*
* @return userName
*
*/
@ApiModelProperty
(
value
=
""
)
public
String
getUserName
()
{
return
userName
;
}
public
void
setUserName
(
String
userName
)
{
this
.
userName
=
userName
;
}
public
CloudsStormTopTopology
publicKeyPath
(
String
publicKeyPath
)
{
this
.
publicKeyPath
=
publicKeyPath
;
return
this
;
}
/**
* Get publicKeyPath
*
* @return publicKeyPath
*
*/
@ApiModelProperty
(
value
=
""
)
public
String
getPublicKeyPath
()
{
return
publicKeyPath
;
}
public
void
setPublicKeyPath
(
String
publicKeyPath
)
{
this
.
publicKeyPath
=
publicKeyPath
;
}
public
CloudsStormTopTopology
topologies
(
List
<
CloudsStormSubTopology
>
topologies
)
{
this
.
topologies
=
topologies
;
return
this
;
}
public
CloudsStormTopTopology
addTopologiesItem
(
CloudsStormSubTopology
topologiesItem
)
{
if
(
this
.
topologies
==
null
)
{
this
.
topologies
=
new
ArrayList
<
CloudsStormSubTopology
>();
}
this
.
topologies
.
add
(
topologiesItem
);
return
this
;
}
public
CloudsStormTopTopology
userName
(
String
userName
)
{
/**
* Get topologies
this
.
userName
=
userName
;
*
return
this
;
* @return topologies
}
*
*/
@ApiModelProperty
(
value
=
""
)
/**
@Valid
* Get userName
* @return userName
public
List
<
CloudsStormSubTopology
>
getTopologies
()
{
**/
return
topologies
;
@javax
.
annotation
.
Nullable
}
@ApiModelProperty
(
value
=
""
)
public
void
setTopologies
(
List
<
CloudsStormSubTopology
>
topologies
)
{
public
String
getUserName
()
{
this
.
topologies
=
topologies
;
return
userName
;
}
}
public
CloudsStormTopTopology
subnets
(
List
<
CloudsStormSubnets
>
subnets
)
{
this
.
subnets
=
subnets
;
public
void
setUserName
(
String
userName
)
{
return
this
;
this
.
userName
=
userName
;
}
}
public
CloudsStormTopTopology
addSubnetsItem
(
CloudsStormSubnets
subnetsItem
)
{
if
(
this
.
subnets
==
null
)
{
public
CloudsStormTopTopology
publicKeyPath
(
String
publicKeyPath
)
{
this
.
subnets
=
new
ArrayList
<
CloudsStormSubnets
>();
}
this
.
publicKeyPath
=
publicKeyPath
;
this
.
subnets
.
add
(
subnetsItem
);
return
this
;
return
this
;
}
}
/**
/**
* Get publicKeyPath
* Get subnets
* @return publicKeyPath
*
**/
* @return subnets
@javax
.
annotation
.
Nullable
*
@ApiModelProperty
(
value
=
""
)
*/
@ApiModelProperty
(
value
=
""
)
public
String
getPublicKeyPath
()
{
return
publicKeyPath
;
@Valid
}
public
List
<
CloudsStormSubnets
>
getSubnets
()
{
return
subnets
;
public
void
setPublicKeyPath
(
String
publicKeyPath
)
{
}
this
.
publicKeyPath
=
publicKeyPath
;
}
public
void
setSubnets
(
List
<
CloudsStormSubnets
>
subnets
)
{
this
.
subnets
=
subnets
;
}
public
CloudsStormTopTopology
topologies
(
List
<
CloudsStormSubTopology
>
topologies
)
{
@Override
this
.
topologies
=
topologies
;
public
boolean
equals
(
java
.
lang
.
Object
o
)
{
return
this
;
if
(
this
==
o
)
{
}
return
true
;
}
public
CloudsStormTopTopology
addTopologiesItem
(
CloudsStormSubTopology
topologiesItem
)
{
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
{
if
(
this
.
topologies
==
null
)
{
return
false
;
this
.
topologies
=
new
ArrayList
<
CloudsStormSubTopology
>();
}
}
CloudsStormTopTopology
cloudsStormTopTopology
=
(
CloudsStormTopTopology
)
o
;
this
.
topologies
.
add
(
topologiesItem
);
return
Objects
.
equals
(
this
.
userName
,
cloudsStormTopTopology
.
userName
)
return
this
;
&&
Objects
.
equals
(
this
.
publicKeyPath
,
cloudsStormTopTopology
.
publicKeyPath
)
}
&&
Objects
.
equals
(
this
.
topologies
,
cloudsStormTopTopology
.
topologies
)
&&
Objects
.
equals
(
this
.
subnets
,
cloudsStormTopTopology
.
subnets
);
/**
}
* Get topologies
* @return topologies
@Override
**/
public
int
hashCode
()
{
@javax
.
annotation
.
Nullable
return
Objects
.
hash
(
userName
,
publicKeyPath
,
topologies
,
subnets
);
@ApiModelProperty
(
value
=
""
)
}
public
List
<
CloudsStormSubTopology
>
getTopologies
()
{
@Override
return
topologies
;
public
String
toString
()
{
}
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
"class CloudsStormTopTopology {\n"
);
public
void
setTopologies
(
List
<
CloudsStormSubTopology
>
topologies
)
{
sb
.
append
(
" userName: "
).
append
(
toIndentedString
(
userName
)).
append
(
"\n"
);
this
.
topologies
=
topologies
;
sb
.
append
(
" publicKeyPath: "
).
append
(
toIndentedString
(
publicKeyPath
)).
append
(
"\n"
);
}
sb
.
append
(
" topologies: "
).
append
(
toIndentedString
(
topologies
)).
append
(
"\n"
);
sb
.
append
(
" subnets: "
).
append
(
toIndentedString
(
subnets
)).
append
(
"\n"
);
sb
.
append
(
"}"
);
@Override
return
sb
.
toString
();
public
boolean
equals
(
java
.
lang
.
Object
o
)
{
}
if
(
this
==
o
)
{
return
true
;
}
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
{
return
false
;
}
CloudsStormTopTopology
cloudsStormTopTopology
=
(
CloudsStormTopTopology
)
o
;
return
Objects
.
equals
(
this
.
userName
,
cloudsStormTopTopology
.
userName
)
&&
Objects
.
equals
(
this
.
publicKeyPath
,
cloudsStormTopTopology
.
publicKeyPath
)
&&
Objects
.
equals
(
this
.
topologies
,
cloudsStormTopTopology
.
topologies
);
}
@Override
/**
public
int
hashCode
()
{
* Convert the given object to string with each line indented by 4 spaces
return
Objects
.
hash
(
userName
,
publicKeyPath
,
topologies
);
* (except the first line).
}
*/
private
String
toIndentedString
(
java
.
lang
.
Object
o
)
{
if
(
o
==
null
)
{
@Override
return
"null"
;
public
String
toString
()
{
}
StringBuilder
sb
=
new
StringBuilder
();
return
o
.
toString
().
replace
(
"\n"
,
"\n "
);
sb
.
append
(
"class CloudsStormTopTopology {\n"
);
sb
.
append
(
" userName: "
).
append
(
toIndentedString
(
userName
)).
append
(
"\n"
);
sb
.
append
(
" publicKeyPath: "
).
append
(
toIndentedString
(
publicKeyPath
)).
append
(
"\n"
);
sb
.
append
(
" topologies: "
).
append
(
toIndentedString
(
topologies
)).
append
(
"\n"
);
sb
.
append
(
"}"
);
return
sb
.
toString
();
}
/**
* Convert the given object to string with each line indented by 4 spaces
* (except the first line).
*/
private
String
toIndentedString
(
java
.
lang
.
Object
o
)
{
if
(
o
==
null
)
{
return
"null"
;
}
}
return
o
.
toString
().
replace
(
"\n"
,
"\n "
);
}
}
}
\ No newline at end of file
drip-commons/src/main/java/nl/uva/sne/drip/model/Credentials.java
View file @
a6e38c65
package
nl
.
uva
.
sne
.
drip
.
model
;
package
nl
.
uva
.
sne
.
drip
.
model
;
import
com.fasterxml.jackson.annotation.JsonI
nclud
e
;
import
com.fasterxml.jackson.annotation.JsonI
gnor
e
;
import
java.util.Objects
;
import
java.util.Objects
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
...
@@ -14,10 +14,9 @@ import org.springframework.data.annotation.Id;
...
@@ -14,10 +14,9 @@ import org.springframework.data.annotation.Id;
* Credentials
* Credentials
*/
*/
@Validated
@Validated
@javax
.
annotation
.
Generated
(
value
=
"io.swagger.codegen.languages.SpringCodegen"
,
date
=
"2019-12-06T13:31:49.386Z"
)
@javax
.
annotation
.
Generated
(
value
=
"io.swagger.codegen.languages.SpringCodegen"
,
date
=
"2019-12-10T15:39:04.296Z"
)
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
Credentials
{
public
class
Credentials
{
/**
/**
* @return the id
* @return the id
*/
*/
...
@@ -33,8 +32,10 @@ public class Credentials {
...
@@ -33,8 +32,10 @@ public class Credentials {
}
}
@Id
@Id
@JsonIgnore
private
String
id
;
private
String
id
;
@JsonProperty
(
"protocol"
)
@JsonProperty
(
"protocol"
)
private
String
protocol
=
null
;
private
String
protocol
=
null
;
...
...
drip-commons/src/main/java/nl/uva/sne/drip/model/Message.java
View file @
a6e38c65
...
@@ -16,7 +16,6 @@
...
@@ -16,7 +16,6 @@
package
nl
.
uva
.
sne
.
drip
.
model
;
package
nl
.
uva
.
sne
.
drip
.
model
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.List
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
...
...
drip-commons/src/main/java/nl/uva/sne/drip/model/NodeTemplate.java
View file @
a6e38c65
This diff is collapsed.
Click to expand it.
drip-commons/src/main/java/nl/uva/sne/drip/model/TopologyTemplate.java
View file @
a6e38c65
This diff is collapsed.
Click to expand it.
drip-commons/src/main/java/nl/uva/sne/drip/model/ToscaTemplate.java
View file @
a6e38c65
package
nl
.
uva
.
sne
.
drip
.
model
;
package
nl
.
uva
.
sne
.
drip
.
model
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
java.util.Objects
;
import
java.util.Objects
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
...
@@ -17,13 +16,10 @@ import org.springframework.data.annotation.Id;
...
@@ -17,13 +16,10 @@ import org.springframework.data.annotation.Id;
* ToscaTemplate
* ToscaTemplate
*/
*/
@Validated
@Validated
@javax
.
annotation
.
Generated
(
value
=
"io.swagger.codegen.languages.SpringCodegen"
,
date
=
"2019-12-
06T13:31:49.38
6Z"
)
@javax
.
annotation
.
Generated
(
value
=
"io.swagger.codegen.languages.SpringCodegen"
,
date
=
"2019-12-
10T15:39:04.29
6Z"
)
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
ToscaTemplate
{
public
class
ToscaTemplate
{
/**
* @return the id
*/
public
String
getId
()
{
public
String
getId
()
{
return
id
;
return
id
;
}
}
...
@@ -117,7 +113,7 @@ public class ToscaTemplate {
...
@@ -117,7 +113,7 @@ public class ToscaTemplate {
* Get toscaDefinitionsVersion
* Get toscaDefinitionsVersion
*
*
* @return toscaDefinitionsVersion
* @return toscaDefinitionsVersion
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -138,7 +134,7 @@ public class ToscaTemplate {
...
@@ -138,7 +134,7 @@ public class ToscaTemplate {
* Get toscaDefaultNamespace
* Get toscaDefaultNamespace
*
*
* @return toscaDefaultNamespace
* @return toscaDefaultNamespace
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -159,7 +155,7 @@ public class ToscaTemplate {
...
@@ -159,7 +155,7 @@ public class ToscaTemplate {
* Get templateName
* Get templateName
*
*
* @return templateName
* @return templateName
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -180,7 +176,7 @@ public class ToscaTemplate {
...
@@ -180,7 +176,7 @@ public class ToscaTemplate {
* Get topologyTemplate
* Get topologyTemplate
*
*
* @return topologyTemplate
* @return topologyTemplate
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -203,7 +199,7 @@ public class ToscaTemplate {
...
@@ -203,7 +199,7 @@ public class ToscaTemplate {
* Get templateAuthor
* Get templateAuthor
*
*
* @return templateAuthor
* @return templateAuthor
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -224,7 +220,7 @@ public class ToscaTemplate {
...
@@ -224,7 +220,7 @@ public class ToscaTemplate {
* Get templateVersion
* Get templateVersion
*
*
* @return templateVersion
* @return templateVersion
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -245,7 +241,7 @@ public class ToscaTemplate {
...
@@ -245,7 +241,7 @@ public class ToscaTemplate {
* Get description
* Get description
*
*
* @return description
* @return description
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -274,7 +270,7 @@ public class ToscaTemplate {
...
@@ -274,7 +270,7 @@ public class ToscaTemplate {
* Get imports
* Get imports
*
*
* @return imports
* @return imports
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -305,7 +301,7 @@ public class ToscaTemplate {
...
@@ -305,7 +301,7 @@ public class ToscaTemplate {
* Get dslDefinitions
* Get dslDefinitions
*
*
* @return dslDefinitions
* @return dslDefinitions
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -334,7 +330,7 @@ public class ToscaTemplate {
...
@@ -334,7 +330,7 @@ public class ToscaTemplate {
* Get nodeTypes
* Get nodeTypes
*
*
* @return nodeTypes
* @return nodeTypes
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -363,7 +359,7 @@ public class ToscaTemplate {
...
@@ -363,7 +359,7 @@ public class ToscaTemplate {
* Get relationshipTypes
* Get relationshipTypes
*
*
* @return relationshipTypes
* @return relationshipTypes
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -392,7 +388,7 @@ public class ToscaTemplate {
...
@@ -392,7 +388,7 @@ public class ToscaTemplate {
* Get relationshipTemplates
* Get relationshipTemplates
*
*
* @return relationshipTemplates
* @return relationshipTemplates
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -421,7 +417,7 @@ public class ToscaTemplate {
...
@@ -421,7 +417,7 @@ public class ToscaTemplate {
* Get capabilityTypes
* Get capabilityTypes
*
*
* @return capabilityTypes
* @return capabilityTypes
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -450,7 +446,7 @@ public class ToscaTemplate {
...
@@ -450,7 +446,7 @@ public class ToscaTemplate {
* Get artifactTypes
* Get artifactTypes
*
*
* @return artifactTypes
* @return artifactTypes
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -479,7 +475,7 @@ public class ToscaTemplate {
...
@@ -479,7 +475,7 @@ public class ToscaTemplate {
* Get dataTypes
* Get dataTypes
*
*
* @return dataTypes
* @return dataTypes
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -508,7 +504,7 @@ public class ToscaTemplate {
...
@@ -508,7 +504,7 @@ public class ToscaTemplate {
* Get interfaceTypes
* Get interfaceTypes
*
*
* @return interfaceTypes
* @return interfaceTypes
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -537,7 +533,7 @@ public class ToscaTemplate {
...
@@ -537,7 +533,7 @@ public class ToscaTemplate {
* Get policyTypes
* Get policyTypes
*
*
* @return policyTypes
* @return policyTypes
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -566,7 +562,7 @@ public class ToscaTemplate {
...
@@ -566,7 +562,7 @@ public class ToscaTemplate {
* Get groupTypes
* Get groupTypes
*
*
* @return groupTypes
* @return groupTypes
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
@@ -595,7 +591,7 @@ public class ToscaTemplate {
...
@@ -595,7 +591,7 @@ public class ToscaTemplate {
* Get repositories
* Get repositories
*
*
* @return repositories
* @return repositories
*
*
*/
*/
@ApiModelProperty
(
value
=
""
)
@ApiModelProperty
(
value
=
""
)
...
...
drip-commons/src/main/java/nl/uva/sne/drip/model/User.java
View file @
a6e38c65
package
nl
.
uva
.
sne
.
drip
.
model
;
package
io
.
swagger
.
model
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
java.util.Objects
;
import
java.util.Objects
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
com.fasterxml.jackson.annotation.JsonProperty.Access
;
import
io.swagger.annotations.ApiModelProperty
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.data.annotation.Id
;
/**
/**
* User
* User
*/
*/
@Validated
@Validated
@javax
.
annotation
.
Generated
(
value
=
"io.swagger.codegen.languages.SpringCodegen"
,
date
=
"2019-10-25T14:09:25.182Z"
)
@javax
.
annotation
.
Generated
(
value
=
"io.swagger.codegen.languages.SpringCodegen"
,
date
=
"2019-12-10T15:39:04.296Z"
)
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
User
{
@JsonProperty
(
"id"
)
private
Long
id
=
null
;
@JsonProperty
(
"username"
)
private
String
username
=
null
;
@JsonProperty
(
"firstName"
)
private
String
firstName
=
null
;
@JsonProperty
(
"lastName"
)
private
String
lastName
=
null
;
@JsonProperty
(
"email"
)
public
class
User
{
private
String
email
=
null
;
@JsonProperty
(
value
=
"password"
,
access
=
Access
.
WRITE_ONLY
)
private
String
password
=
null
;
@JsonProperty
(
"userStatus"
)
private
Integer
userStatus
=
null
;
public
User
id
(
Long
id
)
{
this
.
id
=
id
;
return
this
;
}
/**
* Get id
*
* @return id
*
*/
@ApiModelProperty
(
value
=
""
)
public
Lo
ng
getId
()
{
public
Stri
ng
getId
()
{
return
id
;
return
id
;
}
}
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
public
User
username
(
String
username
)
{
this
.
username
=
username
;
return
this
;
}
/**
/**
* Get username
* @param id the id to set
*
* @return username
*
*/
*/
@ApiModelProperty
(
value
=
""
)
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
public
String
getUsername
()
{
return
username
;
}
public
void
setUsername
(
String
username
)
{
this
.
username
=
username
;
}
public
User
firstName
(
String
firstName
)
{
this
.
firstName
=
firstName
;
return
this
;
}
/**
* Get firstName
*
* @return firstName
*
*/
@ApiModelProperty
(
value
=
""
)
public
String
getFirstName
()
{
return
firstName
;
}
public
void
setFirstName
(
String
firstName
)
{
this
.
firstName
=
firstName
;
}
public
User
lastName
(
String
lastName
)
{
this
.
lastName
=
lastName
;
return
this
;
}
/**
* Get lastName
*
* @return lastName
*
*/
@ApiModelProperty
(
value
=
""
)
public
String
getLastName
()
{
return
lastName
;
}
public
void
setLastName
(
String
lastName
)
{
this
.
lastName
=
lastName
;
}
public
User
email
(
String
email
)
{
this
.
email
=
email
;
return
this
;
}
/**
* Get email
*
* @return email
*
*/
@ApiModelProperty
(
value
=
""
)
public
String
getEmail
()
{
return
email
;
}
public
void
setEmail
(
String
email
)
{
this
.
email
=
email
;
}
public
User
password
(
String
password
)
{
this
.
password
=
password
;
return
this
;
}
}
/**
@Id
* Get password
*
* @return password
*
*/
@ApiModelProperty
(
value
=
""
)
@JsonIgnore
@JsonIgnore
public
String
getPassword
()
{
private
String
id
;
return
password
;
}
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
}
public
User
userStatus
(
Integer
userStatus
)
{
this
.
userStatus
=
userStatus
;
return
this
;
}
/**
* User Status
*
* @return userStatus
*
*/
@ApiModelProperty
(
value
=
"User Status"
)
public
Integer
getUserStatus
()
{
return
userStatus
;
}
public
void
setUserStatus
(
Integer
userStatus
)
{
this
.
userStatus
=
userStatus
;
}
@Override
@Override
public
boolean
equals
(
java
.
lang
.
Object
o
)
{
public
boolean
equals
(
java
.
lang
.
Object
o
)
{
...
@@ -193,19 +36,12 @@ public class User {
...
@@ -193,19 +36,12 @@ public class User {
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
{
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
{
return
false
;
return
false
;
}
}
User
user
=
(
User
)
o
;
return
true
;
return
Objects
.
equals
(
this
.
id
,
user
.
id
)
&&
Objects
.
equals
(
this
.
username
,
user
.
username
)
&&
Objects
.
equals
(
this
.
firstName
,
user
.
firstName
)
&&
Objects
.
equals
(
this
.
lastName
,
user
.
lastName
)
&&
Objects
.
equals
(
this
.
email
,
user
.
email
)
&&
Objects
.
equals
(
this
.
password
,
user
.
password
)
&&
Objects
.
equals
(
this
.
userStatus
,
user
.
userStatus
);
}
}
@Override
@Override
public
int
hashCode
()
{
public
int
hashCode
()
{
return
Objects
.
hash
(
id
,
username
,
firstName
,
lastName
,
email
,
password
,
userStatus
);
return
Objects
.
hash
();
}
}
@Override
@Override
...
@@ -213,13 +49,6 @@ public class User {
...
@@ -213,13 +49,6 @@ public class User {
StringBuilder
sb
=
new
StringBuilder
();
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
"class User {\n"
);
sb
.
append
(
"class User {\n"
);
sb
.
append
(
" id: "
).
append
(
toIndentedString
(
id
)).
append
(
"\n"
);
sb
.
append
(
" username: "
).
append
(
toIndentedString
(
username
)).
append
(
"\n"
);
sb
.
append
(
" firstName: "
).
append
(
toIndentedString
(
firstName
)).
append
(
"\n"
);
sb
.
append
(
" lastName: "
).
append
(
toIndentedString
(
lastName
)).
append
(
"\n"
);
sb
.
append
(
" email: "
).
append
(
toIndentedString
(
email
)).
append
(
"\n"
);
sb
.
append
(
" password: "
).
append
(
toIndentedString
(
password
)).
append
(
"\n"
);
sb
.
append
(
" userStatus: "
).
append
(
toIndentedString
(
userStatus
)).
append
(
"\n"
);
sb
.
append
(
"}"
);
sb
.
append
(
"}"
);
return
sb
.
toString
();
return
sb
.
toString
();
}
}
...
...
drip-commons/src/main/java/nl/uva/sne/drip/sure_tosca/client/ApiClient.java
View file @
a6e38c65
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
*/
*/
package
nl
.
uva
.
sne
.
drip
.
sure_tosca
.
client
;
package
nl
.
uva
.
sne
.
drip
.
sure_tosca
.
client
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.squareup.okhttp.*
;
import
com.squareup.okhttp.*
;
import
javax.net.ssl.*
;
import
javax.net.ssl.*
;
...
...
drip-commons/src/main/java/nl/uva/sne/drip/sure_tosca/client/JSON.java
View file @
a6e38c65
...
@@ -9,8 +9,6 @@
...
@@ -9,8 +9,6 @@
* https://github.com/swagger-api/swagger-codegen.git
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
* Do not edit the class manually.
*/
*/
package
nl
.
uva
.
sne
.
drip
.
sure_tosca
.
client
;
package
nl
.
uva
.
sne
.
drip
.
sure_tosca
.
client
;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
...
@@ -38,6 +36,7 @@ import java.util.Date;
...
@@ -38,6 +36,7 @@ import java.util.Date;
import
java.util.Map
;
import
java.util.Map
;
public
class
JSON
{
public
class
JSON
{
private
Gson
gson
;
private
Gson
gson
;
private
boolean
isLenientOnJson
=
false
;
private
boolean
isLenientOnJson
=
false
;
private
DateTypeAdapter
dateTypeAdapter
=
new
DateTypeAdapter
();
private
DateTypeAdapter
dateTypeAdapter
=
new
DateTypeAdapter
();
...
@@ -47,15 +46,14 @@ public class JSON {
...
@@ -47,15 +46,14 @@ public class JSON {
private
ByteArrayAdapter
byteArrayAdapter
=
new
ByteArrayAdapter
();
private
ByteArrayAdapter
byteArrayAdapter
=
new
ByteArrayAdapter
();
public
static
GsonBuilder
createGson
()
{
public
static
GsonBuilder
createGson
()
{
GsonFireBuilder
fireBuilder
=
new
GsonFireBuilder
()
GsonFireBuilder
fireBuilder
=
new
GsonFireBuilder
();
;
GsonBuilder
builder
=
fireBuilder
.
createGsonBuilder
();
GsonBuilder
builder
=
fireBuilder
.
createGsonBuilder
();
return
builder
;
return
builder
;
}
}
private
static
String
getDiscriminatorValue
(
JsonElement
readElement
,
String
discriminatorField
)
{
private
static
String
getDiscriminatorValue
(
JsonElement
readElement
,
String
discriminatorField
)
{
JsonElement
element
=
readElement
.
getAsJsonObject
().
get
(
discriminatorField
);
JsonElement
element
=
readElement
.
getAsJsonObject
().
get
(
discriminatorField
);
if
(
null
==
element
)
{
if
(
null
==
element
)
{
throw
new
IllegalArgumentException
(
"missing discriminator field: <"
+
discriminatorField
+
">"
);
throw
new
IllegalArgumentException
(
"missing discriminator field: <"
+
discriminatorField
+
">"
);
}
}
return
element
.
getAsString
();
return
element
.
getAsString
();
...
@@ -63,7 +61,7 @@ public class JSON {
...
@@ -63,7 +61,7 @@ public class JSON {
private
static
Class
getClassByDiscriminator
(
Map
classByDiscriminatorValue
,
String
discriminatorValue
)
{
private
static
Class
getClassByDiscriminator
(
Map
classByDiscriminatorValue
,
String
discriminatorValue
)
{
Class
clazz
=
(
Class
)
classByDiscriminatorValue
.
get
(
discriminatorValue
.
toUpperCase
());
Class
clazz
=
(
Class
)
classByDiscriminatorValue
.
get
(
discriminatorValue
.
toUpperCase
());
if
(
null
==
clazz
)
{
if
(
null
==
clazz
)
{
throw
new
IllegalArgumentException
(
"cannot determine model class of name: <"
+
discriminatorValue
+
">"
);
throw
new
IllegalArgumentException
(
"cannot determine model class of name: <"
+
discriminatorValue
+
">"
);
}
}
return
clazz
;
return
clazz
;
...
@@ -71,12 +69,12 @@ public class JSON {
...
@@ -71,12 +69,12 @@ public class JSON {
public
JSON
()
{
public
JSON
()
{
gson
=
createGson
()
gson
=
createGson
()
.
registerTypeAdapter
(
Date
.
class
,
dateTypeAdapter
)
.
registerTypeAdapter
(
Date
.
class
,
dateTypeAdapter
)
.
registerTypeAdapter
(
java
.
sql
.
Date
.
class
,
sqlDateTypeAdapter
)
.
registerTypeAdapter
(
java
.
sql
.
Date
.
class
,
sqlDateTypeAdapter
)
.
registerTypeAdapter
(
OffsetDateTime
.
class
,
offsetDateTimeTypeAdapter
)
.
registerTypeAdapter
(
OffsetDateTime
.
class
,
offsetDateTimeTypeAdapter
)
.
registerTypeAdapter
(
LocalDate
.
class
,
localDateTypeAdapter
)
.
registerTypeAdapter
(
LocalDate
.
class
,
localDateTypeAdapter
)
.
registerTypeAdapter
(
byte
[].
class
,
byteArrayAdapter
)
.
registerTypeAdapter
(
byte
[].
class
,
byteArrayAdapter
)
.
create
();
.
create
();
}
}
/**
/**
...
@@ -117,12 +115,11 @@ public class JSON {
...
@@ -117,12 +115,11 @@ public class JSON {
/**
/**
* Deserialize the given JSON string to Java object.
* Deserialize the given JSON string to Java object.
*
*
* @param <T>
Type
* @param <T> Type
* @param body
The JSON string
* @param body The JSON string
* @param returnType The type to deserialize into
* @param returnType The type to deserialize into
* @return The deserialized Java object
* @return The deserialized Java object
*/
*/
@SuppressWarnings
(
"unchecked"
)
public
<
T
>
T
deserialize
(
String
body
,
Type
returnType
)
{
public
<
T
>
T
deserialize
(
String
body
,
Type
returnType
)
{
try
{
try
{
if
(
isLenientOnJson
)
{
if
(
isLenientOnJson
)
{
...
@@ -136,9 +133,11 @@ public class JSON {
...
@@ -136,9 +133,11 @@ public class JSON {
}
catch
(
JsonParseException
e
)
{
}
catch
(
JsonParseException
e
)
{
// Fallback processing when failed to parse JSON form response body:
// Fallback processing when failed to parse JSON form response body:
// return the response body string directly for the String return type;
// return the response body string directly for the String return type;
if
(
returnType
.
equals
(
String
.
class
))
if
(
returnType
.
equals
(
String
.
class
))
{
return
(
T
)
body
;
return
(
T
)
body
;
else
throw
(
e
);
}
else
{
throw
(
e
);
}
}
}
}
}
...
@@ -207,7 +206,7 @@ public class JSON {
...
@@ -207,7 +206,7 @@ public class JSON {
default
:
default
:
String
date
=
in
.
nextString
();
String
date
=
in
.
nextString
();
if
(
date
.
endsWith
(
"+0000"
))
{
if
(
date
.
endsWith
(
"+0000"
))
{
date
=
date
.
substring
(
0
,
date
.
length
()
-
5
)
+
"Z"
;
date
=
date
.
substring
(
0
,
date
.
length
()
-
5
)
+
"Z"
;
}
}
return
OffsetDateTime
.
parse
(
date
,
formatter
);
return
OffsetDateTime
.
parse
(
date
,
formatter
);
}
}
...
@@ -266,9 +265,9 @@ public class JSON {
...
@@ -266,9 +265,9 @@ public class JSON {
}
}
/**
/**
* Gson TypeAdapter for java.sql.Date type
* Gson TypeAdapter for java.sql.Date type
If the dateFormat is null, a
*
If the dateFormat is null, a simple "yyyy-MM-dd" format will be used
*
simple "yyyy-MM-dd" format will be used (more efficient than
*
(more efficient than
SimpleDateFormat).
* SimpleDateFormat).
*/
*/
public
static
class
SqlDateTypeAdapter
extends
TypeAdapter
<
java
.
sql
.
Date
>
{
public
static
class
SqlDateTypeAdapter
extends
TypeAdapter
<
java
.
sql
.
Date
>
{
...
@@ -321,8 +320,8 @@ public class JSON {
...
@@ -321,8 +320,8 @@ public class JSON {
}
}
/**
/**
* Gson TypeAdapter for java.util.Date type
* Gson TypeAdapter for java.util.Date type
If the dateFormat is null,
* I
f the dateFormat is null, I
SO8601Utils will be used.
* ISO8601Utils will be used.
*/
*/
public
static
class
DateTypeAdapter
extends
TypeAdapter
<
Date
>
{
public
static
class
DateTypeAdapter
extends
TypeAdapter
<
Date
>
{
...
...
drip-commons/src/test/java/nl/uva/sne/drip/commons/utils/ToscaHelperTest.java
View file @
a6e38c65
...
@@ -29,6 +29,7 @@ import java.util.ArrayList;
...
@@ -29,6 +29,7 @@ import java.util.ArrayList;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Properties
;
import
java.util.Properties
;
import
java.util.Set
;
import
nl.uva.sne.drip.model.NodeTemplate
;
import
nl.uva.sne.drip.model.NodeTemplate
;
import
nl.uva.sne.drip.model.ToscaTemplate
;
import
nl.uva.sne.drip.model.ToscaTemplate
;
import
org.junit.After
;
import
org.junit.After
;
...
@@ -60,10 +61,8 @@ public class ToscaHelperTest {
...
@@ -60,10 +61,8 @@ public class ToscaHelperTest {
prop
.
load
(
new
FileInputStream
(
resourceName
));
prop
.
load
(
new
FileInputStream
(
resourceName
));
byte
[]
bytes
=
Files
.
readAllBytes
(
Paths
.
get
(
testUpdatedApplicationExampleToscaFilePath
));
byte
[]
bytes
=
Files
.
readAllBytes
(
Paths
.
get
(
testUpdatedApplicationExampleToscaFilePath
));
String
ymlStr
=
new
String
(
bytes
,
"UTF-8"
);
String
ymlStr
=
new
String
(
bytes
,
"UTF-8"
);
objectMapper
=
new
ObjectMapper
(
new
YAMLFactory
().
disable
(
YAMLGenerator
.
Feature
.
WRITE_DOC_START_MARKER
));
objectMapper
=
new
ObjectMapper
(
new
YAMLFactory
().
disable
(
YAMLGenerator
.
Feature
.
WRITE_DOC_START_MARKER
));
toscaTemplate
=
objectMapper
.
readValue
(
ymlStr
,
ToscaTemplate
.
class
);
toscaTemplate
=
objectMapper
.
readValue
(
ymlStr
,
ToscaTemplate
.
class
);
instance
=
new
ToscaHelper
(
toscaTemplate
,
prop
.
getProperty
(
"sure-tosca.base.path"
));
instance
=
new
ToscaHelper
(
toscaTemplate
,
prop
.
getProperty
(
"sure-tosca.base.path"
));
}
}
...
@@ -97,9 +96,12 @@ public class ToscaHelperTest {
...
@@ -97,9 +96,12 @@ public class ToscaHelperTest {
public
void
testGetProvisionInterfaceDefinitions
()
throws
Exception
{
public
void
testGetProvisionInterfaceDefinitions
()
throws
Exception
{
System
.
out
.
println
(
"getProvisionInterfaceDefinitions"
);
System
.
out
.
println
(
"getProvisionInterfaceDefinitions"
);
List
<
String
>
toscaInterfaceTypes
=
new
ArrayList
<>();
List
<
String
>
toscaInterfaceTypes
=
new
ArrayList
<>();
toscaInterfaceTypes
.
add
(
"tosca.interfaces.ARTICONF.CloudsStorm"
);
String
expected
=
"tosca.interfaces.ARTICONF.CloudsStorm"
;
toscaInterfaceTypes
.
add
(
expected
);
List
<
Map
<
String
,
Object
>>
result
=
instance
.
getProvisionInterfaceDefinitions
(
toscaInterfaceTypes
);
List
<
Map
<
String
,
Object
>>
result
=
instance
.
getProvisionInterfaceDefinitions
(
toscaInterfaceTypes
);
assertNotNull
(
result
);
assertNotNull
(
result
);
String
key
=
result
.
get
(
0
).
keySet
().
iterator
().
next
();
assertEquals
(
expected
,
key
);
}
}
/**
/**
...
@@ -110,7 +112,7 @@ public class ToscaHelperTest {
...
@@ -110,7 +112,7 @@ public class ToscaHelperTest {
System
.
out
.
println
(
"getVMTopologyTemplates"
);
System
.
out
.
println
(
"getVMTopologyTemplates"
);
List
<
NodeTemplate
>
result
=
instance
.
getVMTopologyTemplates
();
List
<
NodeTemplate
>
result
=
instance
.
getVMTopologyTemplates
();
assertNotNull
(
result
);
assertNotNull
(
result
);
for
(
NodeTemplate
nodeTemplate:
result
)
{
for
(
NodeTemplate
nodeTemplate
:
result
)
{
assertEquals
(
nodeTemplate
.
getType
(),
"tosca.nodes.ARTICONF.VM.topology"
);
assertEquals
(
nodeTemplate
.
getType
(),
"tosca.nodes.ARTICONF.VM.topology"
);
}
}
}
}
...
...
drip-commons/src/test/java/nl/uva/sne/drip/sure_tosca/client/DefaultApiTest.java
0 → 100644
View file @
a6e38c65
/*
* tosca-sure
* TOSCA Simple qUeRy sErvice (SURE).
*
* OpenAPI spec version: 1.0.0
* Contact: S.Koulouzis@uva.nl
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
package
nl
.
uva
.
sne
.
drip
.
sure_tosca
.
client
;
import
java.io.File
;
import
org.junit.Test
;
import
java.util.List
;
import
static
org
.
junit
.
Assert
.
assertTrue
;
/**
* API tests for DefaultApi
*/
public
class
DefaultApiTest
{
// private final DefaultApi api = new DefaultApi();
/**
*
*
* Recursively get all requirements all the way to the ROOT including the
* input node's
*
* @throws ApiException if the Api call fails
*/
@Test
public
void
getAllAncestorPropertiesTest
()
throws
ApiException
{
String
id
=
"1"
;
String
nodeName
=
null
;
assertTrue
(
true
);
// List<Map<String, Object>> response = api.getAllAncestorProperties(id, nodeName);
// TODO: test validations
}
// /**
// *
// *
// * Recursively get all requirements all the way to the ROOT including the
// * input node's
// *
// * @throws ApiException if the Api call fails
// */
// @Test
// public void getAllAncestorTypesTest() throws ApiException {
// String id = null;
// String nodeName = null;
//// List<String> response = api.getAllAncestorTypes(id, nodeName);
//
// // TODO: test validations
// }
//
// /**
// *
// *
// * Recursively get all requirements all the way to the ROOT including the
// * input node's
// *
// * @throws ApiException if the Api call fails
// */
// @Test
// public void getAncestorsRequirementsTest() throws ApiException {
// String id = null;
// String nodeName = null;
//// Map<String, Object> response = api.getAncestorsRequirements(id, nodeName);
//
// // TODO: test validations
// }
//
// /**
// *
// *
// * returns the interface types
// *
// * @throws ApiException if the Api call fails
// */
// @Test
// public void getDslDefinitionsTest() throws ApiException {
// String id = null;
// List<String> anchors = null;
// String derivedFrom = null;
//// List<Map<String, Object>> response = api.getDslDefinitions(id, anchors, derivedFrom);
//
// // TODO: test validations
// }
//
// /**
// *
// *
// * returns the interface types
// *
// * @throws ApiException if the Api call fails
// */
// @Test
// public void getImportsTest() throws ApiException {
// String id = null;
//// List<Map<String, Object>> response = api.getImports(id);
//
// // TODO: test validations
// }
//
// /**
// *
// *
// * s
// *
// * @throws ApiException if the Api call fails
// */
// @Test
// public void getNodeOutputsTest() throws ApiException {
// String id = null;
// String nodeName = null;
//// List<Map<String, Object>> response = api.getNodeOutputs(id, nodeName);
//
// // TODO: test validations
// }
//
// /**
// *
// *
// * s
// *
// * @throws ApiException if the Api call fails
// */
// @Test
// public void getNodePropertiesTest() throws ApiException {
// String id = null;
// String nodeName = null;
//// Map<String, Object> response = api.getNodeProperties(id, nodeName);
//
// // TODO: test validations
// }
//
// /**
// *
// *
// * Returns the requirements for an input node as described in the template
// * not in the node's definition
// *
// * @throws ApiException if the Api call fails
// */
// @Test
// public void getNodeRequirementsTest() throws ApiException {
// String id = null;
// String nodeName = null;
//// Map<String, Object> response = api.getNodeRequirements(id, nodeName);
//
// // TODO: test validations
// }
//
// /**
// *
// *
// * returns nodes templates in topology
// *
// * @throws ApiException if the Api call fails
// */
// @Test
// public void getNodeTemplatesTest() throws ApiException {
// String id = null;
// String typeName = null;
// String nodeName = null;
// Boolean hasInterfaces = null;
// Boolean hasProperties = null;
// Boolean hasAttributes = null;
// Boolean hasRequirements = null;
// Boolean hasCapabilities = null;
// Boolean hasArtifacts = null;
//// List<NodeTemplate> response = api.getNodeTemplates(id, typeName, nodeName, hasInterfaces, hasProperties, hasAttributes, hasRequirements, hasCapabilities, hasArtifacts);
//
// // TODO: test validations
// }
//
// /**
// *
// *
// *
// *
// * @throws ApiException if the Api call fails
// */
// @Test
// public void getNodeTypeNameTest() throws ApiException {
// String id = null;
// String nodeName = null;
//// String response = api.getNodeTypeName(id, nodeName);
//
// // TODO: test validations
// }
//
// /**
// *
// *
// *
// *
// * @throws ApiException if the Api call fails
// */
// @Test
// public void getParentTypeNameTest() throws ApiException {
// String id = null;
// String nodeName = null;
//// String response = api.getParentTypeName(id, nodeName);
//
// // TODO: test validations
// }
//
// /**
// *
// *
// * s
// *
// * @throws ApiException if the Api call fails
// */
// @Test
// public void getRelatedNodesTest() throws ApiException {
// String id = null;
// String nodeName = null;
//// List<NodeTemplate> response = api.getRelatedNodes(id, nodeName);
//
// // TODO: test validations
// }
//
// /**
// *
// *
// * returns the interface types
// *
// * @throws ApiException if the Api call fails
// */
// @Test
// public void getRelationshipTemplatesTest() throws ApiException {
// String id = null;
// String typeName = null;
// String derivedFrom = null;
//// List<Map<String, Object>> response = api.getRelationshipTemplates(id, typeName, derivedFrom);
//
// // TODO: test validations
// }
//
// /**
// *
// *
// * r
// *
// * @throws ApiException if the Api call fails
// */
// @Test
// public void getTopologyTemplateTest() throws ApiException {
// String id = null;
//// TopologyTemplate response = api.getTopologyTemplate(id);
//
// // TODO: test validations
// }
//
// /**
// *
// *
// *
// *
// * @throws ApiException if the Api call fails
// */
// @Test
// public void getToscaTemplateTest() throws ApiException {
// String id = null;
//// ToscaTemplate response = api.getToscaTemplate(id);
//
// // TODO: test validations
// }
//
// /**
// *
// *
// * returns the interface types
// *
// * @throws ApiException if the Api call fails
// */
// @Test
// public void getTypesTest() throws ApiException {
// String id = null;
// String kindOfType = null;
// Boolean hasInterfaces = null;
// String typeName = null;
// Boolean hasProperties = null;
// Boolean hasAttributes = null;
// Boolean hasRequirements = null;
// Boolean hasCapabilities = null;
// Boolean hasArtifacts = null;
// String derivedFrom = null;
//// List<Map<String, Object>> response = api.getTypes(id, kindOfType, hasInterfaces, typeName, hasProperties, hasAttributes, hasRequirements, hasCapabilities, hasArtifacts, derivedFrom);
//
// // TODO: test validations
// }
//
// /**
// *
// *
// * s
// *
// * @throws ApiException if the Api call fails
// */
// @Test
// public void setNodePropertiesTest() throws ApiException {
// String id = null;
// Object properties = null;
// String nodeName = null;
//// String response = api.setNodeProperties(id, properties, nodeName);
//
// // TODO: test validations
// }
//
// /**
// * upload a tosca template description file
// *
// * upload and validate a tosca template description file
// *
// * @throws ApiException if the Api call fails
// */
// @Test
// public void uploadToscaTemplateTest() throws ApiException {
// File file = null;
//// String response = api.uploadToscaTemplate(file);
//
// // TODO: test validations
// }
}
drip-provisioner/pom.xml
View file @
a6e38c65
...
@@ -28,7 +28,6 @@
...
@@ -28,7 +28,6 @@
<dependency>
<dependency>
<groupId>
com.fasterxml.jackson.core
</groupId>
<groupId>
com.fasterxml.jackson.core
</groupId>
<artifactId>
jackson-databind
</artifactId>
<artifactId>
jackson-databind
</artifactId>
<version>
2.9.9.3
</version>
<type>
jar
</type>
<type>
jar
</type>
</dependency>
</dependency>
<dependency>
<dependency>
...
@@ -52,13 +51,11 @@
...
@@ -52,13 +51,11 @@
<dependency>
<dependency>
<groupId>
junit
</groupId>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<artifactId>
junit
</artifactId>
<version>
4.12
</version>
<scope>
test
</scope>
<scope>
test
</scope>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
org.hamcrest
</groupId>
<groupId>
org.hamcrest
</groupId>
<artifactId>
hamcrest-core
</artifactId>
<artifactId>
hamcrest-core
</artifactId>
<version>
1.3
</version>
<scope>
test
</scope>
<scope>
test
</scope>
</dependency>
</dependency>
</dependencies>
</dependencies>
...
...
openAPI/schema/TOSCA/NodeTemplate.yml
View file @
a6e38c65
NodeTemplate
:
NodeTemplate
:
type
:
"
object"
type
:
"
object"
properties
:
properties
:
name
:
type
:
"
string"
derived_from
:
derived_from
:
type
:
"
string"
type
:
"
string"
properties
:
properties
:
...
...
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