You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2018/11/07 15:22:58 UTC
[airavata] branch develop updated: AIRAVATA-2725 Add admins to
GroupModel
This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata.git
The following commit(s) were added to refs/heads/develop by this push:
new e494aff AIRAVATA-2725 Add admins to GroupModel
e494aff is described below
commit e494aff4f559ff1d80bfe00d05ec98db53c59ea7
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Wed Nov 7 10:14:35 2018 -0500
AIRAVATA-2725 Add admins to GroupModel
---
.../resources/lib/airavata/model/group/ttypes.py | 26 ++-
.../apache/airavata/model/group/GroupModel.java | 182 +++++++++++++++++++--
.../handlers/GroupManagerServiceHandler.java | 5 +
.../group_manager_model.thrift | 3 +-
4 files changed, 198 insertions(+), 18 deletions(-)
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/group/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/group/ttypes.py
index f06cb0c..deccc9d 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/group/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/group/ttypes.py
@@ -70,6 +70,7 @@ class GroupModel(object):
- ownerId
- description
- members
+ - admins
"""
thrift_spec = (
@@ -79,14 +80,16 @@ class GroupModel(object):
(3, TType.STRING, 'ownerId', 'UTF8', None, ), # 3
(4, TType.STRING, 'description', 'UTF8', None, ), # 4
(5, TType.LIST, 'members', (TType.STRING, 'UTF8', False), None, ), # 5
+ (6, TType.LIST, 'admins', (TType.STRING, 'UTF8', False), None, ), # 6
)
- def __init__(self, id=None, name=None, ownerId=None, description=None, members=None,):
+ def __init__(self, id=None, name=None, ownerId=None, description=None, members=None, admins=None,):
self.id = id
self.name = name
self.ownerId = ownerId
self.description = description
self.members = members
+ self.admins = admins
def read(self, iprot):
if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -127,6 +130,16 @@ class GroupModel(object):
iprot.readListEnd()
else:
iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.LIST:
+ self.admins = []
+ (_etype9, _size6) = iprot.readListBegin()
+ for _i10 in range(_size6):
+ _elem11 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+ self.admins.append(_elem11)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
else:
iprot.skip(ftype)
iprot.readFieldEnd()
@@ -156,8 +169,15 @@ class GroupModel(object):
if self.members is not None:
oprot.writeFieldBegin('members', TType.LIST, 5)
oprot.writeListBegin(TType.STRING, len(self.members))
- for iter6 in self.members:
- oprot.writeString(iter6.encode('utf-8') if sys.version_info[0] == 2 else iter6)
+ for iter12 in self.members:
+ oprot.writeString(iter12.encode('utf-8') if sys.version_info[0] == 2 else iter12)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.admins is not None:
+ oprot.writeFieldBegin('admins', TType.LIST, 6)
+ oprot.writeListBegin(TType.STRING, len(self.admins))
+ for iter13 in self.admins:
+ oprot.writeString(iter13.encode('utf-8') if sys.version_info[0] == 2 else iter13)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java
index 369efa6..28fcd33 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java
@@ -33,6 +33,7 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
private static final org.apache.thrift.protocol.TField OWNER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("ownerId", org.apache.thrift.protocol.TType.STRING, (short)3);
private static final org.apache.thrift.protocol.TField DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("description", org.apache.thrift.protocol.TType.STRING, (short)4);
private static final org.apache.thrift.protocol.TField MEMBERS_FIELD_DESC = new org.apache.thrift.protocol.TField("members", org.apache.thrift.protocol.TType.LIST, (short)5);
+ private static final org.apache.thrift.protocol.TField ADMINS_FIELD_DESC = new org.apache.thrift.protocol.TField("admins", org.apache.thrift.protocol.TType.LIST, (short)6);
private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new GroupModelStandardSchemeFactory();
private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new GroupModelTupleSchemeFactory();
@@ -42,6 +43,7 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
private java.lang.String ownerId; // optional
private java.lang.String description; // optional
private java.util.List<java.lang.String> members; // optional
+ private java.util.List<java.lang.String> admins; // optional
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -49,7 +51,8 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
NAME((short)2, "name"),
OWNER_ID((short)3, "ownerId"),
DESCRIPTION((short)4, "description"),
- MEMBERS((short)5, "members");
+ MEMBERS((short)5, "members"),
+ ADMINS((short)6, "admins");
private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
@@ -74,6 +77,8 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
return DESCRIPTION;
case 5: // MEMBERS
return MEMBERS;
+ case 6: // ADMINS
+ return ADMINS;
default:
return null;
}
@@ -114,7 +119,7 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
}
// isset id assignments
- private static final _Fields optionals[] = {_Fields.ID,_Fields.NAME,_Fields.OWNER_ID,_Fields.DESCRIPTION,_Fields.MEMBERS};
+ private static final _Fields optionals[] = {_Fields.ID,_Fields.NAME,_Fields.OWNER_ID,_Fields.DESCRIPTION,_Fields.MEMBERS,_Fields.ADMINS};
public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
static {
java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -129,6 +134,9 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
tmpMap.put(_Fields.MEMBERS, new org.apache.thrift.meta_data.FieldMetaData("members", org.apache.thrift.TFieldRequirementType.OPTIONAL,
new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+ tmpMap.put(_Fields.ADMINS, new org.apache.thrift.meta_data.FieldMetaData("admins", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GroupModel.class, metaDataMap);
}
@@ -156,6 +164,10 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
java.util.List<java.lang.String> __this__members = new java.util.ArrayList<java.lang.String>(other.members);
this.members = __this__members;
}
+ if (other.isSetAdmins()) {
+ java.util.List<java.lang.String> __this__admins = new java.util.ArrayList<java.lang.String>(other.admins);
+ this.admins = __this__admins;
+ }
}
public GroupModel deepCopy() {
@@ -169,6 +181,7 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
this.ownerId = null;
this.description = null;
this.members = null;
+ this.admins = null;
}
public java.lang.String getId() {
@@ -301,6 +314,44 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
}
}
+ public int getAdminsSize() {
+ return (this.admins == null) ? 0 : this.admins.size();
+ }
+
+ public java.util.Iterator<java.lang.String> getAdminsIterator() {
+ return (this.admins == null) ? null : this.admins.iterator();
+ }
+
+ public void addToAdmins(java.lang.String elem) {
+ if (this.admins == null) {
+ this.admins = new java.util.ArrayList<java.lang.String>();
+ }
+ this.admins.add(elem);
+ }
+
+ public java.util.List<java.lang.String> getAdmins() {
+ return this.admins;
+ }
+
+ public void setAdmins(java.util.List<java.lang.String> admins) {
+ this.admins = admins;
+ }
+
+ public void unsetAdmins() {
+ this.admins = null;
+ }
+
+ /** Returns true if field admins is set (has been assigned a value) and false otherwise */
+ public boolean isSetAdmins() {
+ return this.admins != null;
+ }
+
+ public void setAdminsIsSet(boolean value) {
+ if (!value) {
+ this.admins = null;
+ }
+ }
+
public void setFieldValue(_Fields field, java.lang.Object value) {
switch (field) {
case ID:
@@ -343,6 +394,14 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
}
break;
+ case ADMINS:
+ if (value == null) {
+ unsetAdmins();
+ } else {
+ setAdmins((java.util.List<java.lang.String>)value);
+ }
+ break;
+
}
}
@@ -363,6 +422,9 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
case MEMBERS:
return getMembers();
+ case ADMINS:
+ return getAdmins();
+
}
throw new java.lang.IllegalStateException();
}
@@ -384,6 +446,8 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
return isSetDescription();
case MEMBERS:
return isSetMembers();
+ case ADMINS:
+ return isSetAdmins();
}
throw new java.lang.IllegalStateException();
}
@@ -448,6 +512,15 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
return false;
}
+ boolean this_present_admins = true && this.isSetAdmins();
+ boolean that_present_admins = true && that.isSetAdmins();
+ if (this_present_admins || that_present_admins) {
+ if (!(this_present_admins && that_present_admins))
+ return false;
+ if (!this.admins.equals(that.admins))
+ return false;
+ }
+
return true;
}
@@ -475,6 +548,10 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
if (isSetMembers())
hashCode = hashCode * 8191 + members.hashCode();
+ hashCode = hashCode * 8191 + ((isSetAdmins()) ? 131071 : 524287);
+ if (isSetAdmins())
+ hashCode = hashCode * 8191 + admins.hashCode();
+
return hashCode;
}
@@ -536,6 +613,16 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
return lastComparison;
}
}
+ lastComparison = java.lang.Boolean.valueOf(isSetAdmins()).compareTo(other.isSetAdmins());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetAdmins()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.admins, other.admins);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
return 0;
}
@@ -605,6 +692,16 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
}
first = false;
}
+ if (isSetAdmins()) {
+ if (!first) sb.append(", ");
+ sb.append("admins:");
+ if (this.admins == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.admins);
+ }
+ first = false;
+ }
sb.append(")");
return sb.toString();
}
@@ -698,6 +795,24 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
+ case 6: // ADMINS
+ if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+ {
+ org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
+ struct.admins = new java.util.ArrayList<java.lang.String>(_list3.size);
+ java.lang.String _elem4;
+ for (int _i5 = 0; _i5 < _list3.size; ++_i5)
+ {
+ _elem4 = iprot.readString();
+ struct.admins.add(_elem4);
+ }
+ iprot.readListEnd();
+ }
+ struct.setAdminsIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
default:
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
@@ -744,9 +859,23 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
oprot.writeFieldBegin(MEMBERS_FIELD_DESC);
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.members.size()));
- for (java.lang.String _iter3 : struct.members)
+ for (java.lang.String _iter6 : struct.members)
{
- oprot.writeString(_iter3);
+ oprot.writeString(_iter6);
+ }
+ oprot.writeListEnd();
+ }
+ oprot.writeFieldEnd();
+ }
+ }
+ if (struct.admins != null) {
+ if (struct.isSetAdmins()) {
+ oprot.writeFieldBegin(ADMINS_FIELD_DESC);
+ {
+ oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.admins.size()));
+ for (java.lang.String _iter7 : struct.admins)
+ {
+ oprot.writeString(_iter7);
}
oprot.writeListEnd();
}
@@ -786,7 +915,10 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
if (struct.isSetMembers()) {
optionals.set(4);
}
- oprot.writeBitSet(optionals, 5);
+ if (struct.isSetAdmins()) {
+ optionals.set(5);
+ }
+ oprot.writeBitSet(optionals, 6);
if (struct.isSetId()) {
oprot.writeString(struct.id);
}
@@ -802,9 +934,18 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
if (struct.isSetMembers()) {
{
oprot.writeI32(struct.members.size());
- for (java.lang.String _iter4 : struct.members)
+ for (java.lang.String _iter8 : struct.members)
+ {
+ oprot.writeString(_iter8);
+ }
+ }
+ }
+ if (struct.isSetAdmins()) {
+ {
+ oprot.writeI32(struct.admins.size());
+ for (java.lang.String _iter9 : struct.admins)
{
- oprot.writeString(_iter4);
+ oprot.writeString(_iter9);
}
}
}
@@ -813,7 +954,7 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
@Override
public void read(org.apache.thrift.protocol.TProtocol prot, GroupModel struct) throws org.apache.thrift.TException {
org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
- java.util.BitSet incoming = iprot.readBitSet(5);
+ java.util.BitSet incoming = iprot.readBitSet(6);
if (incoming.get(0)) {
struct.id = iprot.readString();
struct.setIdIsSet(true);
@@ -832,17 +973,30 @@ public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupMode
}
if (incoming.get(4)) {
{
- org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
- struct.members = new java.util.ArrayList<java.lang.String>(_list5.size);
- java.lang.String _elem6;
- for (int _i7 = 0; _i7 < _list5.size; ++_i7)
+ org.apache.thrift.protocol.TList _list10 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+ struct.members = new java.util.ArrayList<java.lang.String>(_list10.size);
+ java.lang.String _elem11;
+ for (int _i12 = 0; _i12 < _list10.size; ++_i12)
{
- _elem6 = iprot.readString();
- struct.members.add(_elem6);
+ _elem11 = iprot.readString();
+ struct.members.add(_elem11);
}
}
struct.setMembersIsSet(true);
}
+ if (incoming.get(5)) {
+ {
+ org.apache.thrift.protocol.TList _list13 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+ struct.admins = new java.util.ArrayList<java.lang.String>(_list13.size);
+ java.lang.String _elem14;
+ for (int _i15 = 0; _i15 < _list13.size; ++_i15)
+ {
+ _elem14 = iprot.readString();
+ struct.admins.add(_elem14);
+ }
+ }
+ struct.setAdminsIsSet(true);
+ }
}
}
diff --git a/airavata-services/profile-service/profile-service-server/src/main/java/org/apache/airavata/service/profile/handlers/GroupManagerServiceHandler.java b/airavata-services/profile-service/profile-service-server/src/main/java/org/apache/airavata/service/profile/handlers/GroupManagerServiceHandler.java
index 2f73f1a..2d8a61a 100644
--- a/airavata-services/profile-service/profile-service-server/src/main/java/org/apache/airavata/service/profile/handlers/GroupManagerServiceHandler.java
+++ b/airavata-services/profile-service/profile-service-server/src/main/java/org/apache/airavata/service/profile/handlers/GroupManagerServiceHandler.java
@@ -22,6 +22,7 @@ import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
+import java.util.stream.Collectors;
public class GroupManagerServiceHandler implements GroupManagerService.Iface {
@@ -353,6 +354,10 @@ public class GroupManagerServiceHandler implements GroupManagerService.Iface {
groupModel.setName(userGroup.getName());
groupModel.setDescription(userGroup.getDescription());
groupModel.setOwnerId(userGroup.getOwnerId());
+ final List<String> admins = userGroup.getGroupAdmins().stream()
+ .map(groupAdmin -> groupAdmin.getAdminId())
+ .collect(Collectors.toList());
+ groupModel.setAdmins(admins);
sharingClient.getGroupMembersOfTypeUser(userGroup.getDomainId(), userGroup.getGroupId(), 0, -1).stream().forEach(user->
groupModel.addToMembers(user.getUserId())
diff --git a/thrift-interface-descriptions/data-models/user-tenant-group-models/group_manager_model.thrift b/thrift-interface-descriptions/data-models/user-tenant-group-models/group_manager_model.thrift
index f7401b8..98b3cc1 100644
--- a/thrift-interface-descriptions/data-models/user-tenant-group-models/group_manager_model.thrift
+++ b/thrift-interface-descriptions/data-models/user-tenant-group-models/group_manager_model.thrift
@@ -47,5 +47,6 @@ struct GroupModel{
2: optional string name,
3: optional string ownerId,
4: optional string description,
- 5: optional list<string> members
+ 5: optional list<string> members,
+ 6: optional list<string> admins,
}
\ No newline at end of file