retrieve all records when listing authority, and filter the user ones
[sface.git] / sface / screens / userscreen.py
index 1f647a1..db0d3e7 100644 (file)
@@ -127,7 +127,6 @@ class UserView(QTableView):
         model = current.model()
         node_index = model.index(current.row(), 0, current.parent())
         node_data = node_index.data().toString()
         model = current.model()
         node_index = model.index(current.row(), 0, current.parent())
         node_data = node_index.data().toString()
-        self.emit(SIGNAL('hostnameClicked(QString)'), node_data)
 
     def hideUnusableColumns(self):
         self.hideColumn(SERVER_MEMBERSHIP_STATUS_COLUMN)
 
     def hideUnusableColumns(self):
         self.hideColumn(SERVER_MEMBERSHIP_STATUS_COLUMN)
@@ -159,10 +158,12 @@ class UserModel(QStandardItemModel):
         while (os.path.exists(config.getAuthorityListFile(i))):
             rec = self.readUserRecord(i)
             if rec:
         while (os.path.exists(config.getAuthorityListFile(i))):
             rec = self.readUserRecord(i)
             if rec:
-                name = str(rec.get_name())
-                if not name in added_persons:
-                    slice_persons.append({"name": name, "role": "", "member": user_status["out"]})
-                    added_persons.append(name)
+                type = str(rec.get_type())
+                if (type == "user"):
+                    name = str(rec.get_name())
+                    if not name in added_persons:
+                        slice_persons.append({"name": name, "role": "", "member": user_status["out"]})
+                        added_persons.append(name)
             i=i+1
 
         rootItem = self.invisibleRootItem()
             i=i+1
 
         rootItem = self.invisibleRootItem()
@@ -272,17 +273,35 @@ class UsersWidget(QWidget):
         self.updateView()
 
     def submitFinished(self):
         self.updateView()
 
     def submitFinished(self):
-        self.setStatus("<font color='green'>Slice data submitted.</font>")
-        QTimer.singleShot(1000, self.refresh)
+        self.disconnect(self.process, SIGNAL('finished()'), self.submitFinished)
+
+        faultString = self.process.getFaultString()
+        if not faultString:
+            self.setStatus("<font color='green'>Slice user data submitted.</font>")
+            QTimer.singleShot(1000, self.refresh)
+        else:
+            self.setStatus("<font color='red'>Slice user submit failed: %s</font>" % (faultString))
 
     def getSliceRecordFinished(self):
 
     def getSliceRecordFinished(self):
-        self.setStatus("<font color='green'>Authority data refreshed.</font>", timeout=5000)
-        self.refreshAuthority()
+        self.disconnect(self.process, SIGNAL('finished()'), self.getSliceRecordFinished)
+
+        faultString = self.process.getFaultString()
+        if not faultString:
+            self.setStatus("<font color='green'>Slice record refreshed.</font>")
+            self.refreshAuthority()
+        else:
+            self.setStatus("<font color='red'>Slice rec refresh error: %s</font>" % (faultString))
 
     def getAuthorityRecordFinished(self):
 
     def getAuthorityRecordFinished(self):
-        self.setStatus("<font color='green'>Slice data refreshed.</font>", timeout=5000)
-        self.updateView()
-        #self.parent().signalAll("usersUpdated")
+        self.disconnect(self.process, SIGNAL('finished()'), self.getAuthorityRecordFinished)
+
+        faultString = self.process.getFaultString()
+        if not faultString:
+            self.setStatus("<font color='green'>User data refreshed.</font>")
+            self.updateView()
+            #self.parent().signalAll("usersUpdated")
+        else:
+            self.setStatus("<font color='red'>Authority rec refresh error: %s</font>" % (faultString))
 
     def readSliceRecord(self):
         rec_file = config.getSliceRecordFile()
 
     def readSliceRecord(self):
         rec_file = config.getSliceRecordFile()
@@ -325,7 +344,6 @@ class UsersWidget(QWidget):
         rec_file = config.getSliceRecordFile()
         file(rec_file, "w").write(rec.save_to_string())
 
         rec_file = config.getSliceRecordFile()
         file(rec_file, "w").write(rec.save_to_string())
 
-        self.disconnect(self.process, SIGNAL('finished()'), self.getAuthorityRecordFinished)
         self.connect(self.process, SIGNAL('finished()'), self.submitFinished)
 
         self.process.updateRecord(rec_file)
         self.connect(self.process, SIGNAL('finished()'), self.submitFinished)
 
         self.process.updateRecord(rec_file)
@@ -340,17 +358,15 @@ class UsersWidget(QWidget):
             self.setStatus("<font color='red'>There is already a process running. Please wait.</font>")
             return
 
             self.setStatus("<font color='red'>There is already a process running. Please wait.</font>")
             return
 
-        self.disconnect(self.process, SIGNAL('finished()'), self.submitFinished)
         self.connect(self.process, SIGNAL('finished()'), self.getSliceRecordFinished)
 
         self.process.getSliceRecord()
         self.setStatus("Refreshing slice record. This will take some time...")
 
     def refreshAuthority(self):
         self.connect(self.process, SIGNAL('finished()'), self.getSliceRecordFinished)
 
         self.process.getSliceRecord()
         self.setStatus("Refreshing slice record. This will take some time...")
 
     def refreshAuthority(self):
-        self.disconnect(self.process, SIGNAL('finished()'), self.getSliceRecordFinished)
         self.connect(self.process, SIGNAL('finished()'), self.getAuthorityRecordFinished)
 
         self.connect(self.process, SIGNAL('finished()'), self.getAuthorityRecordFinished)
 
-        self.process.listRecords(config.getAuthority(), "user", config.getAuthorityListFile())
+        self.process.listRecords(config.getAuthority(), None, config.getAuthorityListFile())
         self.setStatus("Refreshing user records. This will take some time...")
 
     def updateView(self):
         self.setStatus("Refreshing user records. This will take some time...")
 
     def updateView(self):