/*
* Copyright 2013 Cloud4SOA, www.cloud4soa.eu
*
* 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.
*/
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package eu.cloud4soa.soa.utils;
import eu.cloud4soa.api.soa.AnnouncementModule;
import eu.cloud4soa.api.soa.UserManagementAndSecurityModule;
import eu.cloud4soa.api.util.exception.soa.SOAException;
import java.io.IOException;
import java.io.InputStream;
import javax.ws.rs.core.Response;
import org.apache.cxf.helpers.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
/**
*
* @author vins
*/
public class SemanticPaaSInitializer {
final Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private UserManagementAndSecurityModule userManagementAndSecurityModule;
@Autowired
private AnnouncementModule announcementModule;
public void initialize() throws SOAException {
try {
String paasFileName = "AppEngine.ttl";
String paasUserTurtleProfile = loadPaaSUserTurtleProfile(paasFileName);
String paaSUserUriId = storePaaSUserTurtleProfile(paasUserTurtleProfile, "appengine", "appengine");
String paasOfferingTurtleProfile = loadPaaSOfferingTurtleProfile(paasFileName);
String storePaaSUserInstance = storePaaSOfferingTurtleProfile(paaSUserUriId, paasOfferingTurtleProfile);
} catch (IOException ex) {
logger.error("Error during the creation of the AppEngine profile", ex);
}
try {
String paasFileName = "AppHarbor.ttl";
String paasUserTurtleProfile = loadPaaSUserTurtleProfile(paasFileName);
String paaSUserUriId = storePaaSUserTurtleProfile(paasUserTurtleProfile, "appharbor", "appharbor");
String paasOfferingTurtleProfile = loadPaaSOfferingTurtleProfile(paasFileName);
String storePaaSUserInstance = storePaaSOfferingTurtleProfile(paaSUserUriId, paasOfferingTurtleProfile);
} catch (IOException ex) {
logger.error("Error during the creation of the AppHarbor profile", ex);
}
try {
String paasFileName = "Azure.ttl";
String paasUserTurtleProfile = loadPaaSUserTurtleProfile(paasFileName);
String paaSUserUriId = storePaaSUserTurtleProfile(paasUserTurtleProfile, "azure", "azure");
String paasOfferingTurtleProfile = loadPaaSOfferingTurtleProfile(paasFileName);
String storePaaSUserInstance = storePaaSOfferingTurtleProfile(paaSUserUriId, paasOfferingTurtleProfile);
} catch (IOException ex) {
logger.error("Error during the creation of the Azure profile", ex);
}
try {
String paasFileName = "Beanstalk.ttl";
String paasUserTurtleProfile = loadPaaSUserTurtleProfile(paasFileName);
String paaSUserUriId = storePaaSUserTurtleProfile(paasUserTurtleProfile, "beanstalk", "beanstalk");
String paasOfferingTurtleProfile = loadPaaSOfferingTurtleProfile(paasFileName);
String storePaaSUserInstance = storePaaSOfferingTurtleProfile(paaSUserUriId, paasOfferingTurtleProfile);
} catch (IOException ex) {
logger.error("Error during the creation of the Beanstalk profile", ex);
}
try {
String paasFileName = "CloudBees.ttl";
String paasUserTurtleProfile = loadPaaSUserTurtleProfile(paasFileName);
String paaSUserUriId = storePaaSUserTurtleProfile(paasUserTurtleProfile, "cloudbees", "cloudbees");
String paasOfferingTurtleProfile = loadPaaSOfferingTurtleProfile(paasFileName);
String storePaaSUserInstance = storePaaSOfferingTurtleProfile(paaSUserUriId, paasOfferingTurtleProfile);
} catch (IOException ex) {
logger.error("Error during the creation of the CloudBees profile", ex);
}
try {
String paasFileName = "CloudControl.ttl";
String paasUserTurtleProfile = loadPaaSUserTurtleProfile(paasFileName);
String paaSUserUriId = storePaaSUserTurtleProfile(paasUserTurtleProfile, "cloudcontrol", "cloudcontrol");
String paasOfferingTurtleProfile = loadPaaSOfferingTurtleProfile(paasFileName);
String storePaaSUserInstance = storePaaSOfferingTurtleProfile(paaSUserUriId, paasOfferingTurtleProfile);
} catch (IOException ex) {
logger.error("Error during the creation of the CloudControl profile", ex);
}
try {
String paasFileName = "CloudFoundry.ttl";
String paasUserTurtleProfile = loadPaaSUserTurtleProfile(paasFileName);
String paaSUserUriId = storePaaSUserTurtleProfile(paasUserTurtleProfile, "cloudfoundry", "cloudcontrol");
String paasOfferingTurtleProfile = loadPaaSOfferingTurtleProfile(paasFileName);
String storePaaSUserInstance = storePaaSOfferingTurtleProfile(paaSUserUriId, paasOfferingTurtleProfile);
} catch (IOException ex) {
logger.error("Error during the creation of the CloudFoundry profile", ex);
}
try {
String paasFileName = "Cumulogic.ttl";
String paasUserTurtleProfile = loadPaaSUserTurtleProfile(paasFileName);
String paaSUserUriId = storePaaSUserTurtleProfile(paasUserTurtleProfile, "cumulogic", "cumulogic");
String paasOfferingTurtleProfile = loadPaaSOfferingTurtleProfile(paasFileName);
String storePaaSUserInstance = storePaaSOfferingTurtleProfile(paaSUserUriId, paasOfferingTurtleProfile);
} catch (IOException ex) {
logger.error("Error during the creation of the Cumulogic profile", ex);
}
try {
String paasFileName = "EngineYard.ttl";
String paasUserTurtleProfile = loadPaaSUserTurtleProfile(paasFileName);
String paaSUserUriId = storePaaSUserTurtleProfile(paasUserTurtleProfile, "engineyard", "engineyard");
String paasOfferingTurtleProfile = loadPaaSOfferingTurtleProfile(paasFileName);
String storePaaSUserInstance = storePaaSOfferingTurtleProfile(paaSUserUriId, paasOfferingTurtleProfile);
} catch (IOException ex) {
logger.error("Error during the creation of the EngineYard profile", ex);
}
try {
String paasFileName = "Heroku.ttl";
String paasUserTurtleProfile = loadPaaSUserTurtleProfile(paasFileName);
String paaSUserUriId = storePaaSUserTurtleProfile(paasUserTurtleProfile, "heroku", "heroku");
String paasOfferingTurtleProfile = loadPaaSOfferingTurtleProfile(paasFileName);
String storePaaSUserInstance = storePaaSOfferingTurtleProfile(paaSUserUriId, paasOfferingTurtleProfile);
} catch (IOException ex) {
logger.error("Error during the creation of the Heroku profile", ex);
}
try {
String paasFileName = "MuleiON.ttl";
String paasUserTurtleProfile = loadPaaSUserTurtleProfile(paasFileName);
String paaSUserUriId = storePaaSUserTurtleProfile(paasUserTurtleProfile, "muleion", "muleion");
String paasOfferingTurtleProfile = loadPaaSOfferingTurtleProfile(paasFileName);
String storePaaSUserInstance = storePaaSOfferingTurtleProfile(paaSUserUriId, paasOfferingTurtleProfile);
} catch (IOException ex) {
logger.error("Error during the creation of the MuleiON profile", ex);
}
try {
String paasFileName = "OpenShift.ttl";
String paasUserTurtleProfile = loadPaaSUserTurtleProfile(paasFileName);
String paaSUserUriId = storePaaSUserTurtleProfile(paasUserTurtleProfile, "openshift", "openshift");
String paasOfferingTurtleProfile = loadPaaSOfferingTurtleProfile(paasFileName);
String storePaaSUserInstance = storePaaSOfferingTurtleProfile(paaSUserUriId, paasOfferingTurtleProfile);
} catch (IOException ex) {
logger.error("Error during the creation of the OpenShift profile", ex);
}
try {
String paasFileName = "MyPaaS.ttl";
String paasUserTurtleProfile = loadPaaSUserTurtleProfile(paasFileName);
String paaSUserUriId = storePaaSUserTurtleProfile(paasUserTurtleProfile, "mypaas", "mypaas");
String paasOfferingTurtleProfile = loadPaaSOfferingTurtleProfile(paasFileName);
String storePaaSUserInstance = storePaaSOfferingTurtleProfile(paaSUserUriId, paasOfferingTurtleProfile);
} catch (IOException ex) {
logger.error("Error during the creation of the OpenShift profile", ex);
}
}
private String loadPaaSUserTurtleProfile(String fileName) throws IOException {
String paasUserDir = "paasUsers";
String paasUserTurtleProfile = loadTurtleFileIntoString(paasUserDir, fileName);
return paasUserTurtleProfile;
}
private String storePaaSUserTurtleProfile(String paasUserTurtleProfile, String username, String password) throws SOAException {
Response response = userManagementAndSecurityModule.storeTurtleUserProfile(paasUserTurtleProfile, username, password);
String userInstanceUriId = null;
if(Response.Status.fromStatusCode(response.getStatus())==Response.Status.CREATED){
userInstanceUriId = ((String)response.getEntity());
logger.info("Response Status CREATED - userInstanceUriId: " + userInstanceUriId);
}
return userInstanceUriId;
}
private String loadPaaSOfferingTurtleProfile(String fileName) throws IOException {
String paasUserDir = "paasProfiles";
return loadTurtleFileIntoString(paasUserDir, fileName);
}
private String loadTurtleFileIntoString(String dir, String fileName) throws IOException {
InputStream is = this.getClass().getClassLoader().getResourceAsStream( dir + "/" + fileName );
String paasOfferingTurtleProfile = IOUtils.toString(is);
return paasOfferingTurtleProfile;
}
private String storePaaSOfferingTurtleProfile(String paaSUserUriId, String paasUserTurtleProfile) throws SOAException {
Response response = announcementModule.storeTurtlePaaSProfile(paasUserTurtleProfile, paaSUserUriId);
String paasInstanceUriId = null;
if(Response.Status.fromStatusCode(response.getStatus())==Response.Status.CREATED){
paasInstanceUriId = (String)response.getEntity();
logger.info("paasInstanceUriId: "+paasInstanceUriId);
}
return paasInstanceUriId;
}
}