import user.jobengine.db.Store;\r
import user.jobengine.server.steps.shared.EscortFiles;\r
import user.mediacube.metadata.interfaces.IMetadata;\r
+import user.mediacube.metadata.interfaces.IMetadataListOptions;\r
import user.mediacube.metadata.interfaces.IMetadataProvider;\r
import user.mediacube.metadata.interfaces.IMetadataProviderFactory;\r
import user.mediacube.metadata.interfaces.MetadataProviderType;\r
\r
long size = mediaFSFile.length();\r
Date lastModifiedDate = new Date(attr.lastModifiedTime().toMillis());\r
- Date lastAccesDate = new Date(attr.lastAccessTime().toMillis());\r
+ //Date lastAccesDate = new Date(attr.lastAccessTime().toMillis());\r
Date createDate = new Date(attr.creationTime().toMillis());\r
boolean catchedExists = EscortFiles.isMediaCatched(mediaPath);\r
boolean noMDExists = nomdFile.toFile().exists();\r
//boolean mediaInfoAvailable = canReadMediaInfo(mediaPath);\r
boolean mcArchived = mediaFile != null;\r
boolean metadataEquals = false;\r
+ boolean tsmArchived = false;\r
Date mcArchivedDate = null;\r
+ long tsmSize = 0;\r
+ Date tsmBackupDate = null;\r
+\r
if (mcArchived) {\r
+ //metadata\r
Media media = getManager().getMedia(mediaFile.getMediaId());\r
mcArchivedDate = media.getCreated();\r
Item item = getManager().getItem(media.getItemId());\r
metadataEquals = checkArchiveItem(archiveItem, item, media);\r
- }\r
\r
- RemoteFile tsmFile = getTSMFile(mediaFile.getRelativePath());\r
- boolean tsmArchived = tsmFile != null;\r
- long tsmSize = 0;\r
- if (tsmArchived) {\r
- tsmSize = tsmFile.getSize();\r
+ //tsm\r
+ String tsmFileName = mediaFile.getRelativePath();\r
+ RemoteFile tsmFile = getTSMFile(tsmFileName);\r
+ tsmArchived = tsmFile != null;\r
+ if (tsmArchived) {\r
+ tsmSize = tsmFile.getSize();\r
+ tsmBackupDate = getTSMBackupDate(tsmFileName);\r
+ }\r
}\r
\r
boolean canDelete = !noMDExists && catchedExists && killdateExists && mcArchived && tsmArchived;\r
logger.info(getSessionMarker(), "{};{};{};{};{};{};{};{};{};{};{};{};{};", df.format(now), YN(canDelete),\r
fileName, mediaPath.getParent(), size, df.format(createDate), df.format(lastModifiedDate),\r
YN(catchedExists), YN(killdateExists), YN(mcArchived), df.format(mcArchivedDate), YN(tsmArchived),\r
- "Archiválva (TSM)", tsmSize, YN(metadataEquals));\r
+ df.format(tsmBackupDate), tsmSize, YN(metadataEquals));\r
\r
return true;\r
}\r
\r
+ private Date getTSMBackupDate(String tsmFileName) throws Exception {\r
+ Date result = null;\r
+ IMetadataProviderFactory factory = getService(IMetadataProviderFactory.class);\r
+ if (factory == null)\r
+ return null;\r
+ IMetadataProvider provider = factory.getProvider(MetadataProviderType.TSM);\r
+ if (provider == null)\r
+ return null;\r
+\r
+ IMetadataListOptions opt = provider.createOptions(new BasicDBObject("fileName", tsmFileName));\r
+\r
+ List<IMetadata> tsmContents = provider.list(opt);\r
+ if (tsmContents != null && tsmContents.size() > 0) {\r
+\r
+ for (IMetadata md : tsmContents) {\r
+ Date backupDate = md.asJSON().getDate("backupDate");\r
+ if (result == null)\r
+ result = backupDate;\r
+ else {\r
+ if (backupDate.after(result))\r
+ result = backupDate;\r
+ }\r
+ }\r
+ }\r
+ return result;\r
+ }\r
+\r
private char YN(boolean value) {\r
return value ? 'Y' : 'N';\r
}\r
List<IMetadata> list(BasicDBObject options) throws Exception;\r
\r
List<IMetadata> list(IMetadataListOptions options) throws Exception;\r
+\r
+ IMetadataListOptions createOptions(BasicDBObject options);\r
}\r
Bundle-Version: 1.0.0
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: user.mediacube.metadata,
- user.mediacube.metadata.hsm
+ user.mediacube.metadata.hsm,
+ user.mediacube.metadata.planair,
+ user.mediacube.metadata.tsm
Service-Component: OSGI-INF/component.xml
DynamicImport-Package: *
Require-Bundle: org.mybatis.mybatis;bundle-version="3.5.2",
Import-Package: com.ibm.nosql.bson,
com.ibm.nosql.json.api,
org.apache.logging.log4j;version="2.8.2",
+ org.apache.logging.log4j.core;version="2.8.2",
+ org.hamcrest,
org.junit,
user.mediacube.metadata.interfaces
Bundle-ClassPath: .
\r
abstract protected DataSource createDataSource();\r
\r
- abstract protected IMetadataListOptions createOptions(BasicDBObject options);\r
+ @Override\r
+ abstract public IMetadataListOptions createOptions(BasicDBObject options);\r
\r
abstract protected String getDriverClassName();\r
\r
}\r
\r
@Override\r
- protected IMetadataListOptions createOptions(BasicDBObject options) {\r
+ public IMetadataListOptions createOptions(BasicDBObject options) {\r
HSMListOptions result = new HSMListOptions();\r
if (options.containsKey("volumeName"))\r
result.setVolumeName(options.getString("volumeName"));\r
}\r
\r
@Override\r
- protected IMetadataListOptions createOptions(BasicDBObject options) {\r
+ public IMetadataListOptions createOptions(BasicDBObject options) {\r
PlanAirMetadataListOptions result = new PlanAirMetadataListOptions();\r
// if (options.containsKey("volumeName"))\r
// result.setVolumeName(options.getString("volumeName"));\r
import org.apache.ibatis.annotations.Results;\r
import org.apache.ibatis.annotations.SelectProvider;\r
\r
-import user.mediacube.metadata.hsm.HSMSqlProvider;\r
-\r
public interface ITSMMaterialMapper {\r
\r
- @SelectProvider(type = HSMSqlProvider.class, method = "selectContents")\r
- @Results(value = { @Result(property = "fileName", column = "FILE_NAME"),\r
+ @SelectProvider(type = TSMSqlProvider.class, method = "selectContents")\r
+ @Results(value = { @Result(property = "fileName", column = "LL_NAME"),\r
@Result(property = "backupDate", column = "INSDATE") })\r
public List<TSMContent> getContents(String fileName);\r
}\r
return fileName;\r
}\r
\r
- public void setFileName(String fileName) {\r
- this.fileName = fileName;\r
+ public void setFileName(byte[] fileName) {\r
+ this.fileName = new String(fileName);\r
}\r
\r
@Override\r
\r
import user.mediacube.metadata.MetadataProviderFactory;\r
import user.mediacube.metadata.MyBatisMetadataProvider;\r
-import user.mediacube.metadata.hsm.IHSMMaterialMapper;\r
import user.mediacube.metadata.interfaces.IMetadata;\r
import user.mediacube.metadata.interfaces.IMetadataListOptions;\r
\r
}\r
\r
@Override\r
- protected IMetadataListOptions createOptions(BasicDBObject options) {\r
+ public IMetadataListOptions createOptions(BasicDBObject options) {\r
TSMListOptions result = new TSMListOptions();\r
if (options.containsKey("fileName"))\r
result.setFileName(options.getString("fileName"));\r
\r
@Override\r
protected void registerMappers(Configuration configuration) {\r
- configuration.addMapper(IHSMMaterialMapper.class);\r
+ configuration.addMapper(ITSMMaterialMapper.class);\r
}\r
\r
}\r
SQL sql = new SQL();\r
sql.SELECT("LL_NAME", "INSDATE");\r
sql.FROM("TSMDB1.BACKUP_OBJECTS");\r
- sql.WHERE("LL_NAME = ${fileName}");\r
+ sql.WHERE("LL_NAME = '${fileName}'");\r
return sql.toString();\r
}\r
}\r
-package user.mediabube.metadata;
+package user.mediacube.metadata;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
-package user.mediabube.metadata;
+package user.mediacube.metadata;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
-package user.mediabube.metadata;
+package user.mediacube.metadata;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.util.List;
+import org.junit.BeforeClass;
import org.junit.Test;
-import user.mediacube.metadata.MetadataProviderFactory;
+import com.ibm.nosql.json.api.BasicDBObject;
+
+import user.commons.configuration.SystemConfiguration;
import user.mediacube.metadata.interfaces.IMetadata;
+import user.mediacube.metadata.interfaces.IMetadataListOptions;
import user.mediacube.metadata.interfaces.IMetadataProvider;
-import user.mediacube.metadata.interfaces.IMetadataProviderFactory;
import user.mediacube.metadata.interfaces.MetadataProviderType;
-import user.mediacube.metadata.tsm.TSMListOptions;
public class TSMMetadataTest {
- private IMetadataProviderFactory factory = new MetadataProviderFactory();
+ private static MetadataProviderFactory factory;
+
+ @BeforeClass
+ static public void setUpConnection() throws Exception {
+ factory = new MetadataProviderFactory();
+ factory.bindSystemConfiguration(SystemConfiguration.getInstance());
+ }
@Test
public void testFactoryConnection() throws Exception {
@Test
public void testListByFileName() throws Exception {
- TSMListOptions opt = new TSMListOptions();
- opt.setFileName("");
// Fixture
IMetadataProvider sut = factory.getProvider(MetadataProviderType.TSM);
+ IMetadataListOptions opt = sut.createOptions(new BasicDBObject("fileName", "pQZpWofl-TEST-210809-B.mxf"));
// Exercise
List<IMetadata> result = sut.list(opt);
assertNotNull(result);
assertTrue(result.size() > 0);
System.out.println(result.get(0).getTitle());
+ System.out.println(result.get(0).asJSON().getDate("backupDate"));
}
}