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
a428e436
Commit
a428e436
authored
Mar 02, 2017
by
Spiros Koulouzis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Parse to Message POJO
parent
c3886b3f
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
159 additions
and
48 deletions
+159
-48
ClusterCredentialsDao.java
...n/java/nl/uva/sne/drip/api/dao/ClusterCredentialsDao.java
+27
-0
DeployController.java
.../main/java/nl/uva/sne/drip/api/rest/DeployController.java
+54
-9
ProvisionController.java
...in/java/nl/uva/sne/drip/api/rest/ProvisionController.java
+26
-26
DRIPCaller.java
...api/src/main/java/nl/uva/sne/drip/api/rpc/DRIPCaller.java
+5
-4
ClusterCredentialService.java
...nl/uva/sne/drip/api/service/ClusterCredentialService.java
+38
-0
PlannerService.java
...main/java/nl/uva/sne/drip/api/service/PlannerService.java
+4
-4
SimplePlannerService.java
...ava/nl/uva/sne/drip/api/service/SimplePlannerService.java
+5
-5
No files found.
drip-api/src/main/java/nl/uva/sne/drip/api/dao/ClusterCredentialsDao.java
0 → 100644
View file @
a428e436
/*
* Copyright 2017 S. Koulouzis, Wang Junchao, Huan Zhou, Yang Hu
*
* 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
.
api
.
dao
;
import
nl.uva.sne.drip.commons.types.ClusterCredentials
;
import
org.springframework.data.mongodb.repository.MongoRepository
;
/**
*
* @author S. Koulouzis
*/
public
interface
ClusterCredentialsDao
extends
MongoRepository
<
ClusterCredentials
,
String
>
{
}
drip-api/src/main/java/nl/uva/sne/drip/api/rest/DeployController.java
View file @
a428e436
...
...
@@ -15,6 +15,8 @@
*/
package
nl
.
uva
.
sne
.
drip
.
api
.
rest
;
import
com.fasterxml.jackson.core.JsonParser
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
...
...
@@ -26,7 +28,7 @@ import java.util.logging.Logger;
import
javax.annotation.security.RolesAllowed
;
import
nl.uva.sne.drip.api.dao.CloudCredentialsDao
;
import
nl.uva.sne.drip.commons.types.Message
;
import
nl.uva.sne.drip.commons.types.Parameter
;
import
nl.uva.sne.drip.commons.types.
Message
Parameter
;
import
org.json.JSONException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
...
...
@@ -37,9 +39,11 @@ import org.springframework.web.bind.annotation.ResponseBody;
import
org.springframework.web.bind.annotation.RestController
;
import
nl.uva.sne.drip.api.rpc.DRIPCaller
;
import
nl.uva.sne.drip.api.rpc.DeployerCaller
;
import
nl.uva.sne.drip.api.service.ClusterCredentialService
;
import
nl.uva.sne.drip.api.service.ProvisionService
;
import
nl.uva.sne.drip.api.service.UserService
;
import
nl.uva.sne.drip.commons.types.CloudCredentials
;
import
nl.uva.sne.drip.commons.types.ClusterCredentials
;
import
nl.uva.sne.drip.commons.types.DeployParameter
;
import
nl.uva.sne.drip.commons.types.LoginKey
;
import
nl.uva.sne.drip.commons.types.ProvisionInfo
;
...
...
@@ -63,6 +67,9 @@ public class DeployController {
@Autowired
private
ProvisionService
provisionService
;
@Autowired
private
ClusterCredentialService
clusterCredentialService
;
@RequestMapping
(
value
=
"/deploy/{id}"
,
method
=
RequestMethod
.
GET
)
@RolesAllowed
({
UserService
.
USER
,
UserService
.
ADMIN
})
public
@ResponseBody
...
...
@@ -70,14 +77,21 @@ public class DeployController {
try
(
DRIPCaller
deployer
=
new
DeployerCaller
(
messageBrokerHost
);)
{
Message
deployerInvokationMessage
=
buildDeployerMessage
(
provisionID
);
Message
response
=
deployer
.
call
(
deployerInvokationMessage
);
//
Message response = generateFakeResponse();
List
<
Parameter
>
params
=
response
.
getParameters
();
for
(
Parameter
p
:
params
)
{
//
Message response = deployer.call(deployerInvokationMessage);
Message
response
=
generateFakeResponse
();
List
<
Message
Parameter
>
params
=
response
.
getParameters
();
ClusterCredentials
clusterCred
=
new
ClusterCredentials
();
for
(
Message
Parameter
p
:
params
)
{
String
name
=
p
.
getName
();
// System.err.println("Name: " + name);
String
value
=
p
.
getValue
();
// System.err.println("Value: " + value);
// Map<String, Object> map = Converter.ymlString2Map(value);
// clusterCred.setKvMap(map);
clusterCredentialService
.
getDao
().
save
(
clusterCred
);
}
return
null
;
return
clusterCred
.
getId
()
;
}
catch
(
IOException
|
TimeoutException
|
JSONException
|
InterruptedException
ex
)
{
Logger
.
getLogger
(
DeployController
.
class
.
getName
()).
log
(
Level
.
SEVERE
,
null
,
ex
);
}
...
...
@@ -90,10 +104,10 @@ public class DeployController {
CloudCredentials
cCred
=
cloudCredentialsDao
.
findOne
(
cloudConfID
);
List
<
LoginKey
>
loginKeys
=
cCred
.
getLoginKeys
();
List
<
DeployParameter
>
deployParams
=
pro
.
getDeployParameters
();
List
<
Parameter
>
parameters
=
new
ArrayList
<>();
List
<
Message
Parameter
>
parameters
=
new
ArrayList
<>();
for
(
DeployParameter
dp
:
deployParams
)
{
String
cName
=
dp
.
getCloudCertificateName
();
Parameter
messageParameter
=
new
Parameter
();
MessageParameter
messageParameter
=
new
Message
Parameter
();
messageParameter
.
setName
(
"credential"
);
messageParameter
.
setEncoding
(
"UTF-8"
);
String
key
=
null
;
...
...
@@ -122,4 +136,35 @@ public class DeployController {
return
deployInvokationMessage
;
}
private
Message
generateFakeResponse
()
throws
IOException
,
TimeoutException
,
InterruptedException
,
JSONException
{
String
strResponse
=
"{'creationDate': 1488453891505, 'parameters': "
+
"[{'url': 'null', 'attributes': 'null', 'name': 'credential', "
+
"'value': 'apiVersion: v1\\nclusters:\\n- cluster:\\n "
+
"certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tL"
+
"S0tCk1JSUN5RENDQWJDZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBRE"
+
"FWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRFM01ETXdNakV"
+
"4TWpNek9Gb1hEVEkzTURJeU9ERXhNak16T0Zvd0ZURVRNQkVHQTFVRQpBeE1L"
+
"YTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBR"
+
"ENDQVFvQ2dnRUJBTGV4CitSS2p4SjR3WXJacTc5bHU1dExCc0JZbWtCTi9xZl"
+
"AzUXRUeXV6RW5nWmFYaHpQWnNYbGlGK3VLNVVROEFVNmYKdDdFNzVVQWVtYlR"
+
"MeXdjeDZqYmlYOXJuMEsxVnJBaktpdCsycGR1dHFZN1N0UDB5K2sxRXd4aWNR"
+
"aFZaeE8yNgpxbkM4QXNFL0Y3U2lBYXhVeVo2emVSVU1VTGZXMTk0UXQ1YS8xZ"
+
"nhkcERCUHZOOGlNOEVKUWk1RXJrbkN5S2piCm5Wa0lEU2VIQk9hUW5yYjBrM2"
+
"1OOStBdGNrM1pPNU1oRFJGajF3VWFZNFdKbmIzd01yZUhlWmJJL1Y5NWhjMFk"
+
"KREhlNGs2eW1MbFE4NmhmWjZyMDNQWTVGVC81eE55ZDRCN1p2YURqdW5zWXNB"
+
"NU11UWFIdUQwM3p3QkNxTlRNMQpyY3NRUkk1dVI0ejFYUVFheUVVQ0F3RUFBY"
+
"U1qTUNFd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU"
+
"1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFLYmFzMlRIa010YnVjZkJ"
+
"lS3FUVGVDaGdMOEcKN0JqZmwxSGtqRWFYZUtsS1BTZ3NYYlNLdXNiUjNHTjdM"
+
"SGtZd0NQa0FXT1hoSmV6andxUVFTdzVyMUdVbXAvRgpFaHBKOTByM2l3NUJ3MnJxOUdRNytOb1lQNENQdXYwd0N3V0wrWXd3ejhFSzhvVi9vdGNxdWxYVWUwUUZlL2txCkN3VGJvS2JBRElXd2xoSDdDd09ZOHo3SnRjREZ2WEtRYnRlTGNyUTY5MFYyTUQxeTZyeUdmUUhsaWtsRjA2Sk8KMElXSVhDam1NYXppaG1hNGVHQTRHOXZ6R2lMMVlyZGIxVDdYbFd3Zm5iOTg1QmVUWEZvV1JjMUo3RjFvQ3BaVwp2OTN3cko5L01uUzZxN3p2NkdNaUE0Rm5VanZiUDB4OHhWVXpsYjVvVG5HenFycSt2MXJLQklGSlFXdz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=\\n server: https://52.201.84.116:6443\\n name: kubernetes\\ncontexts:\\n- context:\\n cluster: kubernetes\\n user: admin\\n name: admin@kubernetes\\n- context:\\n cluster: kubernetes\\n user: kubelet\\n name: kubelet@kubernetes\\ncurrent-context: admin@kubernetes\\nkind: Config\\npreferences: {}\\nusers:\\n- name: admin\\n user:\\n client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM0ekNDQWN1Z0F3SUJBZ0lJWlR0eVhaRWNRUTh3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB4TnpBek1ESXhNVEl6TXpoYUZ3MHhPREF6TURJeE1USXpOREJhTUJzeApHVEFYQmdOVkJBTVRFR3QxWW1WeWJtVjBaWE10WVdSdGFXNHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCCkR3QXdnZ0VLQW9JQkFRRFFkOWdJK0liTVhDWlB6d244cGZuK1Vxd0RldXRKZjY5YWFCNFI4ZjZsSHl0dVRyNTkKZWJoZm43Uk5Od0UyTjZmeUdpOXpMdXdrcllpdU1zK3MvcTlDNVBmUXZiWTNaR2xTQk1KWXhTTGx6eFZ0UW1xdApKb1djWTBucUgwa2xjVnlZaFNKaEtKU25MdGx5UHBNZ0lkSWZBM1VDNXY4RVVzTzd0bFU5eGFZc0dkdDRmUDloCllxdDRZQndjOFY1VjgzNm5nTlFmNDdKZXJlMXR4RDRNV3JvM2pOZnp2NE9MVS9qTjlxdTdLWGpXZGZmenJiblIKQ2l3b1lhQ094aEV4Z3pvYkQvT01XZm1EcktRZlJZV3E2aUlWSmgvL0FoZi9KVGR6K3NoV2NndG96Q21KZDFXWgoyaEJnMTIwNE8zNTFLemVvZnp4MjJZc012NDdjVldIVjZ1QWhBZ01CQUFHak1UQXZNQTRHQTFVZER3RUIvd1FFCkF3SUZvREFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUwKQlFBRGdnRUJBTE41VzJVT05RT3psaFNpenJsdWVQRGkySWlEczhnWWhPdTQwWndVSXE5eG9GREpFWE5xUXpvbQpRbjU3Y2l1OGhKSTZSV1FkWTNHNkZRTTV2ZG5meHRHVkRmUEs4Yk03SzFvZUFxSkNURm5xV1RKMEdSbnplSkhvCk5FemNIazZZYkxlVlhjenVJTHIxaWx1dGhscTJHQTlVT3VSc3JTNy9yTU1lYi9tUGd3Z0NWZ1cvd0piOEZoS2wKdkFDMmExS3lycUVlNGFxYWJyV283UndHMTRzSHJoN3RuTko0c1k2ZVJIajE1RGRYT1BUSko0NHJXc1pCd3N3awprNS84WnF4WlR5WjhySXljbnZPU01sbmJMeXZudmN6dytHUEgwQ2tuT2VhMUk5SU9KL3BtMXlOdTJvTElKN1ZNCm5pdlZNY282cEVpVE5Bd3UwbFF5N1FzSUNiaFAwa3M9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K\\n client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBMEhmWUNQaUd6RndtVDg4Si9LWDUvbEtzQTNyclNYK3ZXbWdlRWZIK3BSOHJiazYrCmZYbTRYNSswVFRjQk5qZW44aG92Y3k3c0pLMklyakxQclA2dlF1VDMwTDIyTjJScFVnVENXTVVpNWM4VmJVSnEKclNhRm5HTko2aDlKSlhGY21JVWlZU2lVcHk3WmNqNlRJQ0hTSHdOMUF1Yi9CRkxEdTdaVlBjV21MQm5iZUh6LwpZV0tyZUdBY0hQRmVWZk4rcDREVUgrT3lYcTN0YmNRK0RGcTZONHpYODcrRGkxUDR6ZmFydXlsNDFuWDM4NjI1CjBRb3NLR0dnanNZUk1ZTTZHdy96akZuNWc2eWtIMFdGcXVvaUZTWWYvd0lYL3lVM2MvcklWbklMYU13cGlYZFYKbWRvUVlOZHRPRHQrZFNzM3FIODhkdG1MREwrTzNGVmgxZXJnSVFJREFRQUJBb0lCQVFDQzNQaHNpVFoxU3ROeAovaEhTMjQ0WExHWjJ1TTdDa0xqUEU5VHNodkRIVHMzQXJRVy9WbzE2MlpJaGRvbjRNdS9tZHJHYXFMWHNRRk13CnB3emZGL0dGR0o3SUZvOHdMb1ErekdZRHU1eXdqbEp4QitSWFZYdENOTUhOaWw0c2R3RWRiVldya0FIaEFQUFgKVjVpYjd4OHNBTXVQU3RxREtFRmVzSkxKK0N6Y09TeGxFTXlGYnRQVkZpOGlTRkpCQjFUV0RZa25BWXU0L3plNQpNeDBvVWFzZFlGdkdvV3grblpISEh0bVQwVWhQdUY5Rm5wamtlZkdpZ3FPdlZ3NlpSMWZiN0lPMTBxd1BaQ2NsCklvQjJHSE1lUFZWRzFOKytPRUlJWkM4eWY2bjJNejYrYXZyWFpVeE9IV2ZBQTYrZUhhODNXT1l1Ym5RK0ZkVG4KK25KNVFIUUJBb0dCQU5lU2VlekYrdjlMQnlBTmVhYjVDSFJxNVp3OHZrWm1aOHp4QVU1c25uRnJDSnpNeWJtbQo1cUxQWUNLdXJITW9ZaUJyT1k2UTVUTlViNjVNQWgwYTdWRjJFWjhHZlBoRmNEMEZsMjlhVjRmSUtRTFI3RTFJClFUemdjTHJkbVVhbUVDZE9oc1BMTWMvTkFUa1dqVEw5SVRFRytUUktFMk8yb0hZUWt6RmVYYWNSQW9HQkFQZVEKVG1HK3piRDdSNjhybjFCYmNKRUpKSVVZT0podSs5K3JhZW1hbllYcFN4bVV2c0xNV0ZObXpSZGJVdlRNUS95VgpMNmVDb202MUFSMnV2NjlqVmc2b003a0tvOUhEakh3bVZzK01COXJacXUyYjd6N0NsdEQ2NVcyN2RneXUxdHdjCnd2Wk5BRXJQcWNNazY0MkswczlxeWRNUC94eVVqeUxFQytaclZrZ1JBb0dBTWRtQ2JsbGQ4SGsySFpoZ0lGZUkKTi91Y095UGswRHpRRmhsSk53eHhHME1vQzdKamw1WGIwWnhvMjd4T3pwWnhFcFFaRERtL2RyNDQwVEpzYnJTUwpXbnNXR2hNVEJRcHhxUHJKQ1F2NEg4TU9rTU5naElLSDYzN3ZNcGNaNGJkM0ZzL1c1Q0h4MDk3UlFKVlJjNUFMCmc5M2I5TmFJWTArUkRaeEpuV24zK0RFQ2dZQVRncmI2c3h2bzM5VGxkRTJvK3B2amdsSHpmMVl1aFVpcWR3cncKMHpPbzh4cnRHREQwajBCQ3ltNU5jZkFXeE9aeXlKc3AyM3pMdHM0d3RhMzd0NXQzcWoveFRHcGV4TWVVblR6bwpQSVA5OW51bklFdjVxVUpUbEFKeTVIeElRWnREVzZ6dDFtRzRnNmRBYnU5MWgwUlgvbldMZ2M0OFJXVUdlMmJvCnNQcnEwUUtCZ1FERW9BK0pqUUZ6Q3gxNFhhRGh4RkNYRjdXZnpsei9xejMzb0ZPdWxFTkdTZ2pPV2RMR2VyaWEKeGFqclZaT3dLTjRNd1NMNXEyYWJIczZtdC9KTjRONDlIazZqL0lnRTZKbFhMeHZ2TmxuK0kyYTB1RU5BVFVEKwp5elQ5dEQ4K3JaZ2hJR2oyd0dmekN3VCswUHFwNGM4WnFnbVg0a0hucE9oUkNObUlQVEZKSGc9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=\\n- name: kubelet\\n user:\\n client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM0ekNDQWN1Z0F3SUJBZ0lJTkFhdmdhbkFSL2N3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB4TnpBek1ESXhNVEl6TXpoYUZ3MHhPREF6TURJeE1USXpOREJhTUJzeApHVEFYQmdOVkJBTVRFR3QxWW1WeWJtVjBaWE10WVdSdGFXNHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCCkR3QXdnZ0VLQW9JQkFRRGZja0tOYkdWSmgzUlVSaFJhQWY5WUVmV1B3OWpkQmZETHlSdDJXWlZZeFY4ci91bEkKeWVWdzRPeHc0bmR1NXNBTE84b1c4NGM0Sm92cUJaN0ZLK0hkMkpLTzRsWVRCdmhPcEpCS0tCbUhLamgrRFZkegpjQ0NKS0FOUXlNLzZhcS9JTjZyZ0J4NXoreVJyblVhd1Jad0ZHZ3NLQzF5dURDMzNodTFhWmNFelNmc3JibC92CkcvNGVLWnhrSUV6Qzc3N0VnRHBvQTJWR2pCNUIwd001dzlpU2ZCVFQvNHFBc3psM2MwMEIrVnBBeFRQV3plK0sKZmNEeVJZQ3lEWmJmKytHdTRkVzRxaUUrcUVBYUxaK2R2MjUvNG5WWGM1b0xycVZnNEM1bWpPU1A5THkxVUJGMwoyQXMxSXVvNVdBU2lCY1JmQ2ZYaGpYUlVreG1IWVBVaVRRRXhBZ01CQUFHak1UQXZNQTRHQTFVZER3RUIvd1FFCkF3SUZvREFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUwKQlFBRGdnRUJBRCtUSGZUVEZkOVpoMEhuQklOWkxmdXBiWXFDQ0NQQUJ4YStFMXY3Z011Q1dwUFBRL1VqWlpsZApsU1ZIL2dqd1FVb3hGMmtKY2ZOVHJTNHRJSTFhMEIyZVByRzNIdVNaQ0MxYVVLeUFhL2NXcFFiVDZaR1lyV3Q4CkJ6bWFVaFUvTVVhNXU4ckF4VlorYm5iZmtnTzdjaStPcDl1Z1dmMlpPS2E1YldPZ3VCMVNhNFJ5ZkJpRk5JRnIKZndEbXZDam51UloxbDU0N1FVNm5Pd2lFenVqQ1RNMytjYlBoejk0K054cFJKSFYyVGlVL3ZMeXRGZmNtdTFrRgpsWURiZkUwSUptK0xiL2wyTEhGSnQ1d1d0emEyZit2RHEzaGV6R1o4THRBeEM4eGgzelpvR0FScUh0bjV5V0k4ClpLOWFIcjE4cUVadHZyVlhWYzBseC9tbTB4N2ZrTGs9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K\\n client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBMzNKQ2pXeGxTWWQwVkVZVVdnSC9XQkgxajhQWTNRWHd5OGtiZGxtVldNVmZLLzdwClNNbmxjT0RzY09KM2J1YkFDenZLRnZPSE9DYUw2Z1dleFN2aDNkaVNqdUpXRXdiNFRxU1FTaWdaaHlvNGZnMVgKYzNBZ2lTZ0RVTWpQK21xdnlEZXE0QWNlYy9za2E1MUdzRVdjQlJvTENndGNyZ3d0OTRidFdtWEJNMG43SzI1Zgo3eHYrSGltY1pDQk13dSsreElBNmFBTmxSb3dlUWRNRE9jUFlrbndVMC8rS2dMTTVkM05OQWZsYVFNVXoxczN2CmluM0E4a1dBc2cyVzMvdmhydUhWdUtvaFBxaEFHaTJmbmI5dWYrSjFWM09hQzY2bFlPQXVab3prai9TOHRWQVIKZDlnTE5TTHFPVmdFb2dYRVh3bjE0WTEwVkpNWmgyRDFJazBCTVFJREFRQUJBb0lCQUc2bW9IcDBRVHhHVGI4bAo3UklkaHh0UDJYRFdKV0JlZnI0TDJ3T2luU2lXcE9pZWxWdXNUMmkwbWFIVkpCdlJQU3pTOE9Lb3VqOStKeTgrCmxUOUMyZGtJVkp0WlRoS2lFdml1MlowL2VsVEsvYXErWko0UDJxelJHY001am5TTnZIckR4bVNtWWRoQmQrbXEKdXNTejArMWExamlsSThJMDJkYUlCS1lOV2IxUmFvQ1JKWHFEaFZ6cDNkcE9XQmJVaE9RU2poTmZ2d2p2NjE0WAo4bndlRFNvQmVRSG0vKzU3Q2FwYU1xakpKKzVoSS9rbjNtbVhER2hKMyt1MTVPT2VjSjRORnU4SzY5aWNaQkROCklTbGFMcG40SVB5bk0vdUhBaHNyUTIveWxtdVdlNjl3NVFHTkVGY2JlWHhTL1FvUU91TkFBTnhqUit5MXlhRVIKZWtYMGdya0NnWUVBNXZscWZTSEdOZjhrTk00SVhzZCsvVU5DbkhJa0xlSUcwN0xxd1lDRUw0ektySGpKN0tuZwpJeWtXbHNyWDUzRlJGMXhnb3FTeGtYSkczbVFnbWtlL2FjQ0RMa0t4SThIaWVvbGlSUDk0TFN2REZlbGlOUTRSCnBiYjkwWm5GSHBsU1hMK3diZlRRY1o5RC9kTGxkbkVHR2pOTEJvZzJjZm1MY2prNjBvQ0tpc3NDZ1lFQTk2Z0sKSGY4NkxLUysvVkVPTFVSV1hWSkxqOTkwbFB6QTFBQUxLak5xUndFZzcrMEhVSlphLzJ0d1VFY1kvSjV4dmZYNApyN0U4VXBkbmZ5QjEweE5iMkc0Y20zaEsrTkpEQTNJMThDZ215Y2FLbUl5ZitYeHVIV0p3Vyt3MDBMaXNrbTJVCnYrZktwRU81eUJuTmxzZjNlQ29kSmo4NnJEZTlxUnpmQ1lsVStITUNnWUVBc01xS0V0dHVMdGhxNnl3a3hmOG4KR1UySlI5d3FDeUN0bnc2Y2w1MzZEN2RSVG5CcUJvY0VjNFU0c0JUMDYwY1dEYTU4blNFNGRSNm1WZ1VIMjI4OQplUUdNcHpVUEIxS1pPcmU3aXhxTDd1OUhOSmRkdjBSVWg2WW9ZMjJ5cnJnbWphMS9xcm92YmppOHZ5VFUxREt3CnZBODB4dnd0eUZGOHhlSStQdTk2bTc4Q2dZQnlteGpUZU9ENjkrSktaOUFmc3BnazU0aUFNL0JIWWcvNkMyc2YKUkZ2U0wvdUdEREp1WUtZTHZUUmtjZ0ptSlF5TjA5NFpyL015WlU1SHprVzRRQ1VvcXd3aUJqRHJwS0hPWG5RSApodzBzSXV6UVc0Tk1lUUNjS0luR2dEQ1F4bVZWL2Mvd1h0dXYySWVJeWlnUnRzZ1dtNmFScElFS1lXRXJlV2pkCmlPZ0JjUUtCZ0ZZeTJYMmRubHVnUUI5TDhDWVRYMDZ2Q3ZNM3BsOWIwZXN3MFcxTzljVGJEbmViYXRUdW1lUy8KMEtpUHh5b2tBS1pCM3NDTUl3ZC9ZbTdtbEdjRU9aNEhCLzJCWURHaTdUWFdyTjkwRmVGZFlPVVRXWEpQaHNwQwpQRXVET2hGSHBMZTN6Smxyck9ySG1Ebm5aOFdtWU4rdGZzNnVuVHVsSXZPQWFKd01xVlZ4Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==\\n', "
+
"'encoding': 'UTF-8'}]}"
;
strResponse
=
strResponse
.
replaceAll
(
"'null'"
,
"null"
).
replaceAll
(
"\'"
,
"\""
).
replaceAll
(
" "
,
""
);
ObjectMapper
mapper
=
new
ObjectMapper
();
mapper
.
configure
(
JsonParser
.
Feature
.
ALLOW_SINGLE_QUOTES
,
true
);
return
mapper
.
readValue
(
strResponse
,
Message
.
class
);
}
}
drip-api/src/main/java/nl/uva/sne/drip/api/rest/ProvisionController.java
View file @
a428e436
...
...
@@ -33,7 +33,7 @@ import java.util.logging.Logger;
import
javax.annotation.security.RolesAllowed
;
import
nl.uva.sne.drip.api.dao.CloudCredentialsDao
;
import
nl.uva.sne.drip.commons.types.Message
;
import
nl.uva.sne.drip.commons.types.Parameter
;
import
nl.uva.sne.drip.commons.types.
Message
Parameter
;
import
nl.uva.sne.drip.commons.utils.Converter
;
import
org.json.JSONException
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -104,9 +104,9 @@ public class ProvisionController {
Message
response
=
provisioner
.
call
(
provisionerInvokationMessage
);
// Message response = generateFakeResponse();
List
<
Parameter
>
params
=
response
.
getParameters
();
List
<
Message
Parameter
>
params
=
response
.
getParameters
();
for
(
Parameter
p
:
params
)
{
for
(
Message
Parameter
p
:
params
)
{
String
name
=
p
.
getName
();
if
(!
name
.
equals
(
"kubernetes"
))
{
String
value
=
p
.
getValue
();
...
...
@@ -147,29 +147,29 @@ public class ProvisionController {
private
Message
buildProvisionerMessage
(
ProvisionInfo
pReq
)
throws
JSONException
,
IOException
{
Message
invokationMessage
=
new
Message
();
List
<
Parameter
>
parameters
=
new
ArrayList
();
List
<
Message
Parameter
>
parameters
=
new
ArrayList
();
CloudCredentials
cred
=
cloudCredentialsDao
.
findOne
(
pReq
.
getCloudConfID
());
if
(
cred
==
null
)
{
throw
new
NotFoundException
(
"Cloud credentials :"
+
pReq
.
getCloudConfID
()
+
" not found"
);
}
Parameter
conf
=
buildCloudConfParam
(
cred
);
Message
Parameter
conf
=
buildCloudConfParam
(
cred
);
parameters
.
add
(
conf
);
List
<
Parameter
>
certs
=
buildCertificatesParam
(
cred
);
List
<
Message
Parameter
>
certs
=
buildCertificatesParam
(
cred
);
parameters
.
addAll
(
certs
);
List
<
Parameter
>
topologies
=
buildTopologyParams
(
pReq
.
getPlanID
());
List
<
Message
Parameter
>
topologies
=
buildTopologyParams
(
pReq
.
getPlanID
());
parameters
.
addAll
(
topologies
);
String
scriptID
=
pReq
.
getUserScriptID
();
if
(
scriptID
!=
null
)
{
List
<
Parameter
>
userScripts
=
buildScriptParams
(
scriptID
);
List
<
Message
Parameter
>
userScripts
=
buildScriptParams
(
scriptID
);
parameters
.
addAll
(
userScripts
);
}
String
userKeyID
=
pReq
.
getUserKeyID
();
if
(
userKeyID
!=
null
)
{
List
<
Parameter
>
userKeys
=
buildKeysParams
(
userKeyID
);
List
<
Message
Parameter
>
userKeys
=
buildKeysParams
(
userKeyID
);
parameters
.
addAll
(
userKeys
);
}
...
...
@@ -178,8 +178,8 @@ public class ProvisionController {
return
invokationMessage
;
}
private
Parameter
buildCloudConfParam
(
CloudCredentials
cred
)
throws
JsonProcessingException
,
JSONException
,
IOException
{
Parameter
conf
=
null
;
private
Message
Parameter
buildCloudConfParam
(
CloudCredentials
cred
)
throws
JsonProcessingException
,
JSONException
,
IOException
{
Message
Parameter
conf
=
null
;
String
provider
=
cred
.
getCloudProviderName
();
if
(
provider
==
null
)
{
throw
new
BadRequestException
(
"Provider name can't be null. Check the cloud credentials: "
+
cred
.
getId
());
...
...
@@ -192,18 +192,18 @@ public class ProvisionController {
return
conf
;
}
private
List
<
Parameter
>
buildCertificatesParam
(
CloudCredentials
cred
)
{
private
List
<
Message
Parameter
>
buildCertificatesParam
(
CloudCredentials
cred
)
{
List
<
LoginKey
>
loginKeys
=
cred
.
getLoginKeys
();
if
(
loginKeys
==
null
||
loginKeys
.
isEmpty
())
{
throw
new
BadRequestException
(
"Log in keys can't be empty"
);
}
List
<
Parameter
>
parameters
=
new
ArrayList
<>();
List
<
Message
Parameter
>
parameters
=
new
ArrayList
<>();
for
(
LoginKey
lk
:
loginKeys
)
{
String
domainName
=
lk
.
getAttributes
().
get
(
"domain_name"
);
if
(
domainName
==
null
)
{
domainName
=
lk
.
getAttributes
().
get
(
"domain_name "
);
}
Parameter
cert
=
new
Parameter
();
MessageParameter
cert
=
new
Message
Parameter
();
cert
.
setName
(
"certificate"
);
cert
.
setValue
(
lk
.
getKey
());
Map
<
String
,
String
>
attributes
=
new
HashMap
<>();
...
...
@@ -214,13 +214,13 @@ public class ProvisionController {
return
parameters
;
}
private
List
<
Parameter
>
buildTopologyParams
(
String
planID
)
throws
JSONException
{
private
List
<
Message
Parameter
>
buildTopologyParams
(
String
planID
)
throws
JSONException
{
Plan
plan
=
planService
.
getDao
().
findOne
(
planID
);
if
(
plan
==
null
)
{
throw
new
NotFoundException
();
}
List
<
Parameter
>
parameters
=
new
ArrayList
();
Parameter
topology
=
new
Parameter
();
List
<
Message
Parameter
>
parameters
=
new
ArrayList
();
MessageParameter
topology
=
new
Message
Parameter
();
topology
.
setName
(
"topology"
);
topology
.
setValue
(
Converter
.
map2YmlString
(
plan
.
getKvMap
()));
Map
<
String
,
String
>
attributes
=
new
HashMap
<>();
...
...
@@ -232,7 +232,7 @@ public class ProvisionController {
Set
<
String
>
ids
=
plan
.
getLoweLevelPlanIDs
();
for
(
String
lowID
:
ids
)
{
Plan
lowPlan
=
planService
.
getDao
().
findOne
(
lowID
);
topology
=
new
Parameter
();
topology
=
new
Message
Parameter
();
topology
.
setName
(
"topology"
);
topology
.
setValue
(
Converter
.
map2YmlString
(
lowPlan
.
getKvMap
()));
attributes
=
new
HashMap
<>();
...
...
@@ -244,13 +244,13 @@ public class ProvisionController {
return
parameters
;
}
private
Parameter
buildEC2Conf
(
CloudCredentials
cred
)
throws
JsonProcessingException
,
JSONException
,
IOException
{
private
Message
Parameter
buildEC2Conf
(
CloudCredentials
cred
)
throws
JsonProcessingException
,
JSONException
,
IOException
{
Properties
prop
=
Converter
.
getEC2Properties
(
cred
);
ByteArrayOutputStream
baos
=
new
ByteArrayOutputStream
();
prop
.
store
(
baos
,
null
);
byte
[]
bytes
=
baos
.
toByteArray
();
Parameter
conf
=
new
Parameter
();
MessageParameter
conf
=
new
Message
Parameter
();
conf
.
setName
(
"ec2.conf"
);
String
charset
=
"UTF-8"
;
conf
.
setValue
(
new
String
(
bytes
,
charset
));
...
...
@@ -258,13 +258,13 @@ public class ProvisionController {
}
private
List
<
Parameter
>
buildScriptParams
(
String
userScriptID
)
{
private
List
<
Message
Parameter
>
buildScriptParams
(
String
userScriptID
)
{
UserScript
script
=
userScriptService
.
getDao
().
findOne
(
userScriptID
);
if
(
script
==
null
)
{
throw
new
BadRequestException
(
"User script: "
+
userScriptID
+
" was not found"
);
}
List
<
Parameter
>
parameters
=
new
ArrayList
();
Parameter
scriptParameter
=
new
Parameter
();
List
<
Message
Parameter
>
parameters
=
new
ArrayList
();
MessageParameter
scriptParameter
=
new
Message
Parameter
();
scriptParameter
.
setName
(
"guiscript"
);
scriptParameter
.
setValue
(
script
.
getContents
());
scriptParameter
.
setEncoding
(
"UTF-8"
);
...
...
@@ -272,13 +272,13 @@ public class ProvisionController {
return
parameters
;
}
private
List
<
Parameter
>
buildKeysParams
(
String
userKeyID
)
{
private
List
<
Message
Parameter
>
buildKeysParams
(
String
userKeyID
)
{
LoginKey
key
=
userKeysService
.
get
(
userKeyID
,
LoginKey
.
Type
.
PUBLIC
);
if
(
key
==
null
)
{
throw
new
BadRequestException
(
"User key: "
+
userKeyID
+
" was not found"
);
}
List
<
Parameter
>
parameters
=
new
ArrayList
();
Parameter
keyParameter
=
new
Parameter
();
List
<
Message
Parameter
>
parameters
=
new
ArrayList
();
MessageParameter
keyParameter
=
new
Message
Parameter
();
keyParameter
.
setName
(
"sshkey"
);
keyParameter
.
setValue
(
key
.
getKey
());
keyParameter
.
setEncoding
(
"UTF-8"
);
...
...
drip-api/src/main/java/nl/uva/sne/drip/api/rpc/DRIPCaller.java
View file @
a428e436
...
...
@@ -16,7 +16,7 @@ import java.util.concurrent.ArrayBlockingQueue;
import
java.util.concurrent.BlockingQueue
;
import
java.util.concurrent.TimeoutException
;
import
nl.uva.sne.drip.commons.types.Message
;
import
nl.uva.sne.drip.commons.types.Parameter
;
import
nl.uva.sne.drip.commons.types.
Message
Parameter
;
import
org.json.JSONArray
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
...
...
@@ -118,7 +118,8 @@ public abstract class DRIPCaller implements AutoCloseable {
}
});
String
strResponse
=
response
.
take
();
strResponse
=
strResponse
.
replaceAll
(
"'null'"
,
"null"
).
replaceAll
(
"\'"
,
"\""
).
replaceAll
(
" "
,
""
);
System
.
err
.
println
(
strResponse
);
// return unMarshallWithSimpleJson(strResponse);
return
mapper
.
readValue
(
strResponse
,
Message
.
class
);
}
...
...
@@ -130,12 +131,12 @@ public abstract class DRIPCaller implements AutoCloseable {
Message
responseMessage
=
new
Message
();
responseMessage
.
setCreationDate
((
Long
)
jsonObj
.
get
(
"creationDate"
));
JSONArray
jsonParams
=
(
JSONArray
)
jsonObj
.
get
(
"parameters"
);
List
<
Parameter
>
parameters
=
new
ArrayList
<>();
List
<
Message
Parameter
>
parameters
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
jsonParams
.
length
();
i
++)
{
JSONObject
jsonParam
=
(
JSONObject
)
jsonParams
.
get
(
i
);
Parameter
parameter
=
new
Parameter
();
MessageParameter
parameter
=
new
Message
Parameter
();
parameter
.
setName
(
jsonParam
.
getString
(
"name"
));
parameter
.
setValue
(
jsonParam
.
getString
(
"value"
));
parameters
.
add
(
parameter
);
...
...
drip-api/src/main/java/nl/uva/sne/drip/api/service/ClusterCredentialService.java
0 → 100644
View file @
a428e436
/*
* Copyright 2017 S. Koulouzis, Wang Junchao, Huan Zhou, Yang Hu
*
* 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
.
api
.
service
;
import
nl.uva.sne.drip.api.dao.ClusterCredentialsDao
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
*
* @author S. Koulouzis
*/
@Service
public
class
ClusterCredentialService
{
@Autowired
private
ClusterCredentialsDao
dao
;
/**
* @return the dao
*/
public
ClusterCredentialsDao
getDao
()
{
return
dao
;
}
}
drip-api/src/main/java/nl/uva/sne/drip/api/service/PlannerService.java
View file @
a428e436
...
...
@@ -24,7 +24,7 @@ import java.util.concurrent.TimeoutException;
import
nl.uva.sne.drip.api.exception.BadRequestException
;
import
nl.uva.sne.drip.api.rpc.PlannerCaller
;
import
nl.uva.sne.drip.commons.types.Message
;
import
nl.uva.sne.drip.commons.types.Parameter
;
import
nl.uva.sne.drip.commons.types.
Message
Parameter
;
import
nl.uva.sne.drip.commons.types.ToscaRepresentation
;
import
nl.uva.sne.drip.commons.utils.Converter
;
import
org.json.JSONException
;
...
...
@@ -51,8 +51,8 @@ public class PlannerService {
Message
plannerInvokationMessage
=
buildPlannerMessage
(
toscaId
);
Message
plannerReturnedMessage
=
planner
.
call
(
plannerInvokationMessage
);
List
<
Parameter
>
parameters
=
plannerReturnedMessage
.
getParameters
();
for
(
Parameter
param
:
parameters
)
{
List
<
Message
Parameter
>
parameters
=
plannerReturnedMessage
.
getParameters
();
for
(
Message
Parameter
param
:
parameters
)
{
}
ToscaRepresentation
tr
=
new
ToscaRepresentation
();
...
...
@@ -75,7 +75,7 @@ public class PlannerService {
Message
invokationMessage
=
new
Message
();
List
parameters
=
new
ArrayList
();
Parameter
jsonArgument
=
new
Parameter
();
MessageParameter
jsonArgument
=
new
Message
Parameter
();
String
charset
=
"UTF-8"
;
jsonArgument
.
setValue
(
new
String
(
bytes
,
charset
));
jsonArgument
.
setEncoding
(
charset
);
...
...
drip-api/src/main/java/nl/uva/sne/drip/api/service/SimplePlannerService.java
View file @
a428e436
...
...
@@ -30,7 +30,7 @@ import nl.uva.sne.drip.api.dao.PlanDao;
import
nl.uva.sne.drip.api.exception.NotFoundException
;
import
nl.uva.sne.drip.api.rpc.PlannerCaller
;
import
nl.uva.sne.drip.commons.types.Message
;
import
nl.uva.sne.drip.commons.types.Parameter
;
import
nl.uva.sne.drip.commons.types.
Message
Parameter
;
import
nl.uva.sne.drip.commons.types.Plan
;
import
nl.uva.sne.drip.commons.types.ToscaRepresentation
;
import
nl.uva.sne.drip.commons.utils.Converter
;
...
...
@@ -62,14 +62,14 @@ public class SimplePlannerService {
Plan
topLevel
;
try
(
PlannerCaller
planner
=
new
PlannerCaller
(
messageBrokerHost
))
{
Message
plannerReturnedMessage
=
planner
.
call
(
plannerInvokationMessage
);
List
<
Parameter
>
planFiles
=
plannerReturnedMessage
.
getParameters
();
List
<
Message
Parameter
>
planFiles
=
plannerReturnedMessage
.
getParameters
();
topLevel
=
new
Plan
();
Set
<
String
>
ids
=
topLevel
.
getLoweLevelPlanIDs
();
if
(
ids
==
null
)
{
ids
=
new
HashSet
<>();
}
Plan
lowerLevelPlan
=
null
;
for
(
Parameter
p
:
planFiles
)
{
for
(
Message
Parameter
p
:
planFiles
)
{
//Should have levels in attributes
Map
<
String
,
String
>
attributess
=
p
.
getAttributes
();
if
(
attributess
!=
null
)
{
...
...
@@ -108,7 +108,7 @@ public class SimplePlannerService {
Message
invokationMessage
=
new
Message
();
List
parameters
=
new
ArrayList
();
Parameter
fileArgument
=
new
Parameter
();
MessageParameter
fileArgument
=
new
Message
Parameter
();
String
charset
=
"UTF-8"
;
fileArgument
.
setValue
(
new
String
(
bytes
,
charset
));
...
...
@@ -116,7 +116,7 @@ public class SimplePlannerService {
fileArgument
.
setName
(
"input"
);
parameters
.
add
(
fileArgument
);
fileArgument
=
new
Parameter
();
fileArgument
=
new
Message
Parameter
();
bytes
=
Files
.
readAllBytes
(
Paths
.
get
(
System
.
getProperty
(
"user.home"
)
+
File
.
separator
+
"Downloads/DRIP/example_a.yml"
));
fileArgument
.
setValue
(
new
String
(
bytes
,
charset
));
fileArgument
.
setEncoding
(
charset
);
...
...
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