Author: solomax
Date: Tue Jul 3 05:48:41 2012
New Revision: 1356575
URL: http://svn.apache.org/viewvc?rev=1356575&view=rev
Log:
OPENMEETINGS-111 file report is improved
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/OmFileHelper.java
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java?rev=1356575&r1=1356574&r2=1356575&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java
Tue Jul 3 05:48:41 2012
@@ -46,9 +46,11 @@ import org.apache.commons.cli.Parser;
import org.apache.commons.cli.PosixParser;
import org.apache.commons.transaction.util.FileHelper;
import org.apache.openjpa.jdbc.meta.MappingTool;
+import org.openmeetings.app.data.user.dao.UsersDaoImpl;
import org.openmeetings.app.documents.InstallationDocumentHandler;
import org.openmeetings.app.installation.ImportInitvalues;
import org.openmeetings.app.installation.InstallationConfig;
+import org.openmeetings.app.persistence.beans.user.Users;
import org.openmeetings.servlet.outputhandler.BackupExport;
import org.openmeetings.servlet.outputhandler.BackupImportController;
import org.openmeetings.utils.ImportHelper;
@@ -408,33 +410,66 @@ public class Admin {
break;
case files:
try {
- System.out.println("Temporary upload
files allocates: " +
OmFileHelper.getHumanSize(OmFileHelper.getUploadTempDir()));
- System.out.println("Upload allocates: "
+ OmFileHelper.getHumanSize(OmFileHelper.getUploadDir()));
- System.out.println("Recordings
allocates: " + OmFileHelper.getHumanSize(OmFileHelper.getStreamsDir()));
- /*
- omHome
-
- ClassPathXmlApplicationContext ctx =
getApplicationContext(ctxName);
- //user pictures
-
//dist/red5/webapps/openmeetings/upload/profiles/profile_<id> (check if ends
with filename)
- UsersDaoImpl udao =
ctx.getBean(UsersDaoImpl.class);
- for (Users u :
udao.getAllUsersDeleted()) {
- System.out.println("id == " +
u.getUser_id() + "; deleted ? " + u.getDeleted() + "; uri -> " +
u.getPictureuri());
+ StringBuilder report = new
StringBuilder();
+ report.append("Temporary files
allocates:
").append(OmFileHelper.getHumanSize(OmFileHelper.getUploadTempDir())).append("\n");
+ { //UPLOAD
+ long sectionSize =
OmFileHelper.getSize(OmFileHelper.getUploadDir());
+ report.append("Upload totally
allocates: ").append(OmFileHelper.getHumanSize(sectionSize)).append("\n");
+ File profiles =
OmFileHelper.getUploadProfilesDir();
+ long invalid = 0;
+ long deleted = 0;
+ ClassPathXmlApplicationContext
ctx = getApplicationContext(ctxName);
+ UsersDaoImpl udao =
ctx.getBean(UsersDaoImpl.class);
+ for (File profile :
profiles.listFiles()) {
+ long pSize =
OmFileHelper.getSize(profile);
+ long userId =
getUserIdByProfile(profile.getName());
+ Users u =
udao.getUser(userId);
+ if (profile.isFile() ||
userId < 0 || u == null) {
+ invalid +=
pSize;
+ } else if
("true".equals(u.getDeleted())) {
+ deleted +=
pSize;
+ }
+ }
+ long missing = 0;
+ for (Users u :
udao.getAllUsersDeleted()) {
+ if
(!"true".equals(u.getDeleted()) && !new
File(OmFileHelper.getUploadProfilesUserDir(u.getUser_id()),
u.getPictureuri()).exists()) {
+ missing++;
+ }
+ }
+ long size =
OmFileHelper.getSize(profiles);
+ long restSize = sectionSize -
size;
+ report.append("\t\tprofiles:
").append(OmFileHelper.getHumanSize(size)).append("\n");
+ report.append("\t\t\tinvalid:
").append(OmFileHelper.getHumanSize(invalid)).append("\n");
+ report.append("\t\t\tdeleted:
").append(OmFileHelper.getHumanSize(deleted)).append("\n");
+ report.append("\t\t\tmissing
count: ").append(missing).append("\n");
+ size =
OmFileHelper.getSize(OmFileHelper.getUploadImportDir());
+ restSize -= size;
+ report.append("\t\timport:
").append(OmFileHelper.getHumanSize(size)).append("\n");
+ size =
OmFileHelper.getSize(OmFileHelper.getUploadBackupDir());
+ restSize -= size;
+ report.append("\t\tbackup:
").append(OmFileHelper.getHumanSize(size)).append("\n");
+ size =
OmFileHelper.getSize(OmFileHelper.getUploadFilesDir());
+ restSize -= size;
+ report.append("\t\tfiles:
").append(OmFileHelper.getHumanSize(size)).append("\n");
+ //public/private files
+ //Object: fileexploreritem
(filehash == document file/folder)
+ report.append("\t\trest:
").append(OmFileHelper.getHumanSize(restSize)).append("\n");
+ }
+ { //STREAMS
+ long sectionSize =
OmFileHelper.getSize(OmFileHelper.getStreamsDir());
+ report.append("Recordings
allocates: ").append(OmFileHelper.getHumanSize(sectionSize)).append("\n");
+ long size =
OmFileHelper.getSize(OmFileHelper.getStreamsHibernateDir());
+ long restSize = sectionSize -
size;
+ report.append("\t\tfinal:
").append(OmFileHelper.getHumanSize(size)).append("\n");
+ report.append("\t\trest:
").append(OmFileHelper.getHumanSize(restSize)).append("\n");
+
+ //public/private recordings
+ //Object: flvrecording_metadata
== possibly incomplete
+ //Object: flvrecording == final
+
//webapps/openmeetings/streams/<room_id>/rec_<id>*
-->temporary files
+
//webapps/openmeetings/streams/hibernate/flvRecording_<id>* -->files
}
-
- */
- //Upload backup ???
-
- //Upload import ???
-
- //public/private files
- //Object: fileexploreritem (filehash ==
document file/folder)
- //webapps/openmeetings/upload/files
(check if ends with filename)
-
- //public/private recordings
- //Object: flvrecording
-
//webapps/openmeetings/streams/<room_id>/rec_<id>*
-->temporary files
-
//webapps/openmeetings/streams/hibernate/flvRecording_<id>* -->files
+ System.out.println(report);
} catch (Exception e) {
handleError("Files failed", e);
}
@@ -449,6 +484,18 @@ public class Admin {
System.exit(0);
}
+ private long getUserIdByProfile(String name) {
+ long result = -1;
+ if (name.startsWith(OmFileHelper.profilesPrefix)) {
+ try {
+ result =
Long.parseLong(name.substring(OmFileHelper.profilesPrefix.length()));
+ } catch (Exception e) {
+ //noop
+ }
+ }
+ return result;
+ }
+
private class AdminUserDetails {
String login = null;
String email = null;
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/OmFileHelper.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/OmFileHelper.java?rev=1356575&r1=1356574&r2=1356575&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/OmFileHelper.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/OmFileHelper.java
Tue Jul 3 05:48:41 2012
@@ -212,8 +212,10 @@ public class OmFileHelper {
}
public static String getHumanSize(File dir) {
- long size = getSize(dir);
+ return getHumanSize(getSize(dir));
+ }
+ public static String getHumanSize(long size) {
if(size <= 0) return "0";
final String[] units = new String[] { "B", "KB", "MB", "GB",
"TB" };
int digitGroups = (int) (Math.log10(size)/Math.log10(1024));