Skip to content

Commit

Permalink
Merged with master
Browse files Browse the repository at this point in the history
  • Loading branch information
djalova committed May 12, 2016
1 parent c738ca5 commit 0c50eb7
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 32 deletions.
2 changes: 1 addition & 1 deletion src/main/java/com/ibm/stocator/fs/ObjectStoreVisitor.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
public class ObjectStoreVisitor {
public static IStoreClient getStoreClient(String nameSpace,
URI fsuri, Configuration conf) throws IOException {
if (nameSpace.equals(Constants.SWIFT)) {
if (nameSpace.equals(Constants.SWIFT2D)) {
IStoreClient storeClient = new SwiftAPIClient(fsuri, conf);
return storeClient;
}
Expand Down
18 changes: 15 additions & 3 deletions src/main/java/com/ibm/stocator/fs/common/Constants.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,27 @@ public class Constants {
/*
* Swift name space identifier
*/
public static final String SWIFT = "swift2d";
public static final String SWIFT = "swift";
/*
* Swift configuration prefix in the core-site.xml
* Swift2d configuration prefix in the core-site.xml
*/
public static final String FS_SWIFT = "fs." + SWIFT;
/*
* Swift configuration key in the core-site.xml
* Swift2d configuration key in the core-site.xml
*/
public static final String SWIFT_SERVICE_PREFIX = FS_SWIFT + ".service.";
/*
* Swift2d name space identifier
*/
public static final String SWIFT2D = "swift2d";
/*
* Swift2d configuration prefix in the core-site.xml
*/
public static final String FS_SWIFT2D = "fs." + SWIFT2D;
/*
* Swift2d configuration key in the core-site.xml
*/
public static final String SWIFT2D_SERVICE_PREFIX = FS_SWIFT2D + ".service.";
/*
* Hadoop identification for the temporary directory
*/
Expand Down
20 changes: 17 additions & 3 deletions src/main/java/com/ibm/stocator/fs/common/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,22 @@

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.mapreduce.TaskAttemptID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.ibm.stocator.fs.swift.SwiftAPIClient;

import static com.ibm.stocator.fs.common.Constants.HADOOP_ATTEMPT;

public class Utils {

public static final String BAD_HOST = " hostname '%s' must be in the form container.service";

/*
* Logger
*/
private static final Logger LOG = LoggerFactory.getLogger(SwiftAPIClient.class);

/**
* IOException if the host name is not comply with container.service
*
Expand Down Expand Up @@ -142,17 +151,22 @@ public static String getOption(Properties props, String key) throws IOException
*
* @param conf source configuration
* @param prefix configuration key prefix
* @param alternativePrefix alternative prefix
* @param key key in the configuration file
* @param props destination property set
* @param propsKey key in the property set
* @param required if the key is mandatory
* @throws IOException if there was no match for the key
*/

public static void updateProperty(Configuration conf, String prefix, String key,
Properties props, String propsKey, boolean required)
throws IOException {
public static void updateProperty(Configuration conf, String prefix, String alternativePrefix,
String key, Properties props, String propsKey, boolean required) throws IOException {
String val = conf.get(prefix + key);
if (val == null) {
// try alternative key
val = conf.get(alternativePrefix + key);
LOG.trace("Trying alternative key {}{}", alternativePrefix, key);
}
if (required && val == null) {
throw new IOException("Missing mandatory configuration: " + key);
}
Expand Down
30 changes: 18 additions & 12 deletions src/main/java/com/ibm/stocator/fs/swift/ConfigurationHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

import org.apache.hadoop.conf.Configuration;

import static com.ibm.stocator.fs.common.Constants.SWIFT2D_SERVICE_PREFIX;
import static com.ibm.stocator.fs.common.Constants.SWIFT_SERVICE_PREFIX;
import static com.ibm.stocator.fs.swift.SwiftConstants.KEYSTONE_V3_AUTH;
import static com.ibm.stocator.fs.swift.SwiftConstants.SWIFT_CONTAINER_PROPERTY;
Expand Down Expand Up @@ -74,25 +75,30 @@ public static Properties initialize(URI uri, Configuration conf) throws IOExcept
String container = Utils.getContainerName(host);
String service = Utils.getServiceName(host);
String prefix = SWIFT_SERVICE_PREFIX + service;
String prefix2D = SWIFT2D_SERVICE_PREFIX + service;
props.setProperty(SWIFT_CONTAINER_PROPERTY, container);
Utils.updateProperty(conf, prefix, AUTH_URL, props, SWIFT_AUTH_PROPERTY, true);
Utils.updateProperty(conf, prefix, USERNAME, props, SWIFT_USERNAME_PROPERTY, true);
Utils.updateProperty(conf, prefix, PASSWORD, props, SWIFT_PASSWORD_PROPERTY, true);
Utils.updateProperty(conf, prefix, TENANT, props, SWIFT_TENANT_PROPERTY, true);
Utils.updateProperty(conf, prefix, AUTH_METHOD, props, SWIFT_AUTH_METHOD_PROPERTY, false);
Utils.updateProperty(conf, prefix, BLOCK_SIZE, props, SWIFT_BLOCK_SIZE_PROPERTY, false);
Utils.updateProperty(conf, prefix, OBJECT_SIZE, props, SWIFT_OBJECT_SIZE_PROPERTY, false);
Utils.updateProperty(conf, prefix, FMODE_DELETE_TEMP_DATA, props,
FMODE_AUTOMATIC_DELETE_PROPERTY, false);
Utils.updateProperty(conf, prefix, PUBLIC, props, SWIFT_PUBLIC_PROPERTY, false);

Utils.updateProperty(conf, prefix2D, prefix, AUTH_URL, props, SWIFT_AUTH_PROPERTY, true);
Utils.updateProperty(conf, prefix2D, prefix, USERNAME, props, SWIFT_USERNAME_PROPERTY, true);
Utils.updateProperty(conf, prefix2D, prefix, PASSWORD, props, SWIFT_PASSWORD_PROPERTY, true);
Utils.updateProperty(conf, prefix2D, prefix, TENANT, props, SWIFT_TENANT_PROPERTY, true);
Utils.updateProperty(conf, prefix2D, prefix, AUTH_METHOD, props, SWIFT_AUTH_METHOD_PROPERTY,
false);
Utils.updateProperty(conf, prefix2D, prefix, BLOCK_SIZE, props, SWIFT_BLOCK_SIZE_PROPERTY,
false);
Utils.updateProperty(conf, prefix2D, prefix, OBJECT_SIZE, props, SWIFT_OBJECT_SIZE_PROPERTY,
false);
Utils.updateProperty(conf, prefix2D, prefix, FMODE_DELETE_TEMP_DATA, props,
FMODE_AUTOMATIC_DELETE_PROPERTY, false);
Utils.updateProperty(conf, prefix2D, prefix, PUBLIC, props, SWIFT_PUBLIC_PROPERTY, false);
String authMethod = props.getProperty(SWIFT_AUTH_METHOD_PROPERTY, KEYSTONE_V3_AUTH);
props.setProperty(SWIFT_AUTH_METHOD_PROPERTY, authMethod);
if (authMethod.equals(KEYSTONE_V3_AUTH)) {
Utils.updateProperty(conf, prefix, REGION, props, SWIFT_REGION_PROPERTY, false);
Utils.updateProperty(conf, prefix2D, prefix, REGION, props, SWIFT_REGION_PROPERTY, false);
props.setProperty(SWIFT_PROJECT_ID_PROPERTY, props.getProperty(SWIFT_TENANT_PROPERTY));
props.setProperty(SWIFT_USER_ID_PROPERTY, props.getProperty(SWIFT_USERNAME_PROPERTY));
} else {
Utils.updateProperty(conf, prefix, REGION, props, SWIFT_REGION_PROPERTY, false);
Utils.updateProperty(conf, prefix2D, prefix, REGION, props, SWIFT_REGION_PROPERTY, false);
}
}
return props;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ public SwiftAPIClient(URI filesystemURI, Configuration conf) throws IOException

@Override
public String getScheme() {
return Constants.SWIFT;
return Constants.SWIFT2D;
}

@Override
Expand Down
24 changes: 12 additions & 12 deletions src/main/java/com/ibm/stocator/fs/swift/SwiftConstants.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,45 +23,45 @@
* Constants used in the Swift REST protocol.
*/
public class SwiftConstants {
public static final String SWIFT_CONTAINER_PROPERTY = Constants.FS_SWIFT + ".CONTAINER-NAME";
public static final String SWIFT_CONTAINER_PROPERTY = Constants.FS_SWIFT2D + ".CONTAINER-NAME";
public static final String KEYSTONE_V3_AUTH = "keystoneV3";
public static final String PUBLIC_ACCESS = "publicAccess";

public static final String PUBLIC = ".public";
public static final String SWIFT_PUBLIC_PROPERTY = Constants.FS_SWIFT + PUBLIC;
public static final String SWIFT_PUBLIC_PROPERTY = Constants.FS_SWIFT2D + PUBLIC;

public static final String AUTH_URL = ".auth.url";
public static final String SWIFT_AUTH_PROPERTY = Constants.FS_SWIFT + AUTH_URL;
public static final String SWIFT_AUTH_PROPERTY = Constants.FS_SWIFT2D + AUTH_URL;

public static final String TENANT = ".tenant";
public static final String SWIFT_TENANT_PROPERTY = Constants.FS_SWIFT + TENANT;
public static final String SWIFT_TENANT_PROPERTY = Constants.FS_SWIFT2D + TENANT;

public static final String USERNAME = ".username";
public static final String SWIFT_USERNAME_PROPERTY = Constants.FS_SWIFT + USERNAME;
public static final String SWIFT_USERNAME_PROPERTY = Constants.FS_SWIFT2D + USERNAME;

public static final String PASSWORD = ".password";
public static final String SWIFT_PASSWORD_PROPERTY = Constants.FS_SWIFT + PASSWORD;
public static final String SWIFT_PASSWORD_PROPERTY = Constants.FS_SWIFT2D + PASSWORD;

public static final String REGION = ".region";
public static final String SWIFT_REGION_PROPERTY = Constants.FS_SWIFT + REGION;
public static final String SWIFT_REGION_PROPERTY = Constants.FS_SWIFT2D + REGION;

public static final String USER_ID = ".userid";
public static final String SWIFT_USER_ID_PROPERTY = Constants.FS_SWIFT + USER_ID;
public static final String SWIFT_USER_ID_PROPERTY = Constants.FS_SWIFT2D + USER_ID;

public static final String PROJECT_ID = ".projectid";
public static final String SWIFT_PROJECT_ID_PROPERTY = Constants.FS_SWIFT + PROJECT_ID;
public static final String SWIFT_PROJECT_ID_PROPERTY = Constants.FS_SWIFT2D + PROJECT_ID;

public static final String AUTH_METHOD = ".auth.method";
public static final String SWIFT_AUTH_METHOD_PROPERTY = Constants.FS_SWIFT + AUTH_METHOD;
public static final String SWIFT_AUTH_METHOD_PROPERTY = Constants.FS_SWIFT2D + AUTH_METHOD;

public static final String BLOCK_SIZE = ".block.size";
public static final String SWIFT_BLOCK_SIZE_PROPERTY = Constants.FS_SWIFT + BLOCK_SIZE;
public static final String SWIFT_BLOCK_SIZE_PROPERTY = Constants.FS_SWIFT2D + BLOCK_SIZE;

public static final String OBJECT_SIZE = ".object.size";
public static final String SWIFT_OBJECT_SIZE_PROPERTY = Constants.FS_SWIFT + OBJECT_SIZE;

public static final String FMODE_DELETE_TEMP_DATA = ".failure.mode.delete";
public static final String FMODE_AUTOMATIC_DELETE_PROPERTY = Constants.FS_SWIFT
public static final String FMODE_AUTOMATIC_DELETE_PROPERTY = Constants.FS_SWIFT2D
+ FMODE_DELETE_TEMP_DATA;

}

0 comments on commit 0c50eb7

Please sign in to comment.