moving data movement structs to common thrift file
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/1f033785 Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/1f033785 Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/1f033785 Branch: refs/heads/master Commit: 1f0337851990253fca055e1c1d8be7cd1a93b7ff Parents: 77a7e77 Author: Chathuri Wimalasena <[email protected]> Authored: Mon Nov 23 14:21:52 2015 -0500 Committer: scnakandala <[email protected]> Committed: Tue Dec 15 21:08:33 2015 -0500 ---------------------------------------------------------------------- .../appcatalog/computeresource/DMType.java | 62 -------- .../airavata-api/data_movement_models.thrift | 154 +++++++++++++++++++ 2 files changed, 154 insertions(+), 62 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/1f033785/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DMType.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DMType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DMType.java deleted file mode 100644 index 4cb727e..0000000 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DMType.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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. - */ - -/** - * Autogenerated by Thrift Compiler (0.9.2) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package org.apache.airavata.model.appcatalog.computeresource; - - -import java.util.Map; -import java.util.HashMap; -import org.apache.thrift.TEnum; - -public enum DMType implements org.apache.thrift.TEnum { - COMPUTE_RESOURCE(0), - STORAGE_RESOURCE(1); - - private final int value; - - private DMType(int value) { - this.value = value; - } - - /** - * Get the integer value of this enum value, as defined in the Thrift IDL. - */ - public int getValue() { - return value; - } - - /** - * Find a the enum type by its integer value, as defined in the Thrift IDL. - * @return null if the value is not found. - */ - public static DMType findByValue(int value) { - switch (value) { - case 0: - return COMPUTE_RESOURCE; - case 1: - return STORAGE_RESOURCE; - default: - return null; - } - } -} http://git-wip-us.apache.org/repos/asf/airavata/blob/1f033785/thrift-interface-descriptions/airavata-api/data_movement_models.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/data_movement_models.thrift b/thrift-interface-descriptions/airavata-api/data_movement_models.thrift new file mode 100644 index 0000000..677d790 --- /dev/null +++ b/thrift-interface-descriptions/airavata-api/data_movement_models.thrift @@ -0,0 +1,154 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + * + */ + +include "airavata_commons.thrift" + +namespace java org.apache.airavata.model.data.movement +namespace php Airavata.Model.Data.Movement +namespace cpp apache.airavata.model.data.movement +namespace py apache.airavata.model.data.movement + +enum DMType { + COMPUTE_RESOURCE, + STORAGE_RESOURCE +} + +/** + * Enumeration of security authentication and authorization mechanisms supported by Airavata. This enumeration just + * describes the supported mechanism. The corresponding security credentials are registered with Airavata Credential + * store. + * + * USERNAME_PASSWORD: + * A User Name. + * + * SSH_KEYS: + * SSH Keys + * + * FIXME: Change GSI to a more precise generic security protocol - X509 + * +*/ +enum SecurityProtocol { + USERNAME_PASSWORD, + SSH_KEYS, + GSI, + KERBEROS, + OAUTH, + LOCAL +} + + +/** + * Enumeration of data movement supported by Airavata + * + * SCP: + * Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine. + * + * SFTP: + * The Simple Linux Utility for Resource Management is a open source workload manager. + * + * GridFTP: + * Globus File Transfer Protocol + * + * UNICORE_STORAGE_SERVICE: + * Storage Service Provided by Unicore + * +*/ +enum DataMovementProtocol { + LOCAL, + SCP, + SFTP, + GridFTP, + UNICORE_STORAGE_SERVICE +} + +/** + * Data Movement through Secured Copy + * + * alternativeSCPHostName: + * If the login to scp is different than the hostname itself, specify it here + * + * sshPort: + * If a non-default port needs to used, specify it. +*/ +struct SCPDataMovement { + 1: required string dataMovementInterfaceId = airavata_commons.DEFAULT_ID, + 2: required SecurityProtocol securityProtocol, + 3: optional string alternativeSCPHostName, + 4: optional i32 sshPort = 22 +} + +/** + * Data Movement through GridFTP + * + * alternativeSCPHostName: + * If the login to scp is different than the hostname itself, specify it here + * + * sshPort: + * If a non-default port needs to used, specify it. +*/ +struct GridFTPDataMovement { + 1: required string dataMovementInterfaceId = airavata_commons.DEFAULT_ID, + 2: required SecurityProtocol securityProtocol, + 3: required list<string> gridFTPEndPoints +} + +/** + * Data Movement through UnicoreStorage + * + * unicoreEndPointURL: + * unicoreGateway End Point. The provider will query this service to fetch required service end points. +*/ +struct UnicoreDataMovement { + 1: required string dataMovementInterfaceId = airavata_commons.DEFAULT_ID, + 2: required SecurityProtocol securityProtocol, + 3: required string unicoreEndPointURL +} + +/** + * LOCAL + * + * alternativeSCPHostName: + * If the login to scp is different than the hostname itself, specify it here + * + * sshPort: + * If a non-defualt port needs to used, specify it. +*/ +struct LOCALDataMovement { + 1: required string dataMovementInterfaceId = airavata_commons.DEFAULT_ID, +} + +/** + * Data Movement Interfaces + * + * dataMovementInterfaceId: The Data Movement Interface has to be previously registered and referenced here. + * + * priorityOrder: + * For resources with multiple interfaces, the priority order should be selected. + * Lower the numerical number, higher the priority + * +*/ +struct DataMovementInterface { + 1: required string dataMovementInterfaceId, + 2: required DataMovementProtocol dataMovementProtocol, + 3: required i32 priorityOrder = 0, +} + + +
