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