Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -662,9 +662,9 @@ private CheckedPath checkId(final long id, final Ice.Current curr)
private void assertFindDir(final CheckedPath checked, final Ice.Current curr)
throws omero.ServerError {
if (null == repositoryDao.findRepoFile(repoUuid, checked, null, curr)) {
omero.ResourceError re = new omero.ResourceError(null, null,
"Directory exists but is not registered: " + checked);
IceMapper.fillServerError(re, new RuntimeException());
omero.ResourceError re = new omero.ResourceError();
IceMapper.fillServerError(re, new RuntimeException(
"Directory exists but is not registered: " + checked));
throw re;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,9 @@ private void _treeList(RMap rv, String repoUuid, CheckedPath checked,
rv.put(name, subRv);
subVal.put("id", omero.rtypes.rlong(id));
subVal.put("mimetype", omero.rtypes.rstring(mime));
subVal.put("size", omero.rtypes.rlong(size));
if (size != null) {
subVal.put("size", omero.rtypes.rlong(size));
}

if (file.getMimetype() != null && // FIXME: should be set!
PublicRepositoryI.DIRECTORY_MIMETYPE.equals(file.getMimetype())) {
Expand Down
14 changes: 7 additions & 7 deletions components/blitz/src/pojos/FilesetData.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
//Application-internal dependencies
import omero.model.Fileset;
import omero.model.FilesetEntry;
import omero.model.FilesetImageLink;
import omero.model.Image;
import omero.model.OriginalFile;

/**
Expand Down Expand Up @@ -84,21 +84,21 @@ public List<String> getAbsolutePaths()
}
return paths;
}

/**
* Returns the collection of images related to the file set.
*
*
* @return See above.
*/
public List<Long> getImageIds()
{
List<Long> ids = new ArrayList<Long>();
Fileset fs = (Fileset) asIObject();
List<FilesetImageLink> links = fs.copyImageLinks();
if (links == null || links.size() == 0) return ids;
Iterator<FilesetImageLink> i = links.iterator();
List<Image> images = fs.copyImages();
if (images == null || images.size() == 0) return ids;
Iterator<Image> i = images.iterator();
while (i.hasNext()) {
ids.add(i.next().getChild().getId().getValue());
ids.add(i.next().getId().getValue());
}
return ids;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -422,8 +422,7 @@ private String createFileSetQuery()
{
StringBuffer buffer = new StringBuffer();
buffer.append("select fs from Fileset as fs ");
buffer.append("left outer join fetch fs.imageLinks as fil ");
buffer.append("join fetch fil.child as image ");
buffer.append("join fetch fs.images as image ");
buffer.append("left outer join fetch fs.usedFiles as usedFile ");
buffer.append("join fetch usedFile.originalFile ");
buffer.append("where image.id in (:imageIds)");
Expand Down
2 changes: 1 addition & 1 deletion components/model/resources/mappings/acquisition.ome.xml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
<zeromany name="rois" type="ome.model.roi.Roi" inverse="image"/>
<!-- Containers -->
<parent name="datasetLinks" type="ome.model.containers.DatasetImageLink" target="ome.model.containers.Dataset"/>
<parent name="filesetLinks" type="ome.model.fs.FilesetImageLink" target="ome.model.fs.Fileset"/>
<optional name="fileset" type="ome.model.fs.Fileset"/>
</properties>
</type>
<type id="ome.model.acquisition.ObjectiveSettings">
Expand Down
16 changes: 1 addition & 15 deletions components/model/resources/mappings/fs.ome.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,25 +42,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
<to_child type="ome.model.jobs.Job"/>
</properties>
</link>
<link id="ome.model.fs.FilesetImageLink">
<properties>
<from_parent type="ome.model.fs.Fileset"/>
<to_child type="ome.model.core.Image"/>
</properties>
</link>
<link id="ome.model.fs.FilesetPlateLink">
<properties>
<from_parent type="ome.model.fs.Fileset"/>
<to_child type="ome.model.screen.Plate"/>
</properties>
</link>
<type id="ome.model.fs.Fileset" annotated="true">
<properties>
<onemany name="usedFiles" type="ome.model.fs.FilesetEntry" inverse="fileset" ordered="true"/>
<onemany name="images" type="ome.model.core.Image" inverse="fileset"/>
<child name="jobLinks" type="ome.model.fs.FilesetJobLink" target="ome.model.jobs.Job" ordered="true"/>
<!-- TODO: Perhaps use annotation links? -->
<child name="imageLinks" type="ome.model.fs.FilesetImageLink" target="ome.model.core.Image"/>
<child name="plateLinks" type="ome.model.fs.FilesetPlateLink" target="ome.model.screen.Plate"/>"
</properties>
</type>
</types>
1 change: 0 additions & 1 deletion components/model/resources/mappings/screen.ome.xml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@
<optional name="status" type="string"/>
<optional name="externalIdentifier" type="string"/>
<parent name="screenLinks" type="ome.model.screen.ScreenPlateLink" target="ome.model.screen.Screen"/>
<parent name="filesetLinks" type="ome.model.fs.FilesetPlateLink" target="ome.model.fs.Fileset"/>
<zeromany name="wells" type="ome.model.screen.Well" inverse="plate"/>
<zeromany name="plateAcquisitions" type="ome.model.screen.PlateAcquisition" inverse="plate"/>
</properties>
Expand Down
26 changes: 4 additions & 22 deletions components/server/resources/ome/services/spec.xml
Original file line number Diff line number Diff line change
Expand Up @@ -208,9 +208,8 @@
<constructor-arg>
<list>
<value>/Image/DatasetImageLink;FORCE</value>
<value>/Image/FilesetImageLink;HARD</value>
<value>/Image+Only</value>
<value>/Fileset;HARD;/Image/FilesetImageLink</value>
<value>/Fileset;HARD;/Image</value>
</list>
</constructor-arg>
</bean>
Expand All @@ -227,9 +226,7 @@
<constructor-arg>
<list>
<value>/Image/DatasetImageLink;FORCE</value>
<value>/Image/FilesetImageLink;HARD</value>
<value>/Image+Only</value>
<!-- Missing /Fileset here -->
</list>
</constructor-arg>
</bean>
Expand All @@ -243,7 +240,6 @@
<constructor-arg>
<list>
<value>/Image/DatasetImageLink;FORCE</value>
<value>/Image/FilesetImageLink;HARD</value>
<value>/Image+Only</value>
<!-- Missing /Fileset here -->
</list>
Expand Down Expand Up @@ -336,20 +332,8 @@
<constructor-arg>
<list>
<value>/Plate/ScreenPlateLink;FORCE</value>
<value>/Plate/FilesetPlateLink;HARD</value>
<value>/Plate+Only</value>
<value>/Fileset;HARD;/Plate/FilesetPlateLink</value>
</list>
</constructor-arg>
</bean>

<bean parent="delSpec" name="/Plate+FS">
<constructor-arg>
<list>
<value>/Plate/ScreenPlateLink;FORCE</value>
<value>/Plate/FilesetPlateLink;HARD</value>
<value>/Plate+Only</value>
<!-- No fileset here. See /Image+FS for an explanation -->
<!-- Accessing fileset? -->
</list>
</constructor-arg>
</bean>
Expand Down Expand Up @@ -424,10 +408,8 @@
<bean parent="delSpec" name="/Fileset">
<constructor-arg>
<list>
<value>/Fileset/FilesetImageLink</value>
<value>/Image+FS;HARD;/Fileset/FilesetImageLink</value>
<value>/Fileset/FilesetPlateLink</value>
<value>/Plate+FS;HARD;/Fileset/FilesetPlateLink</value>
<value>/Image+FS;HARD;/Fileset</value>
<!-- How to delete Plate -->
<value>/Fileset/FilesetEntry</value>
<value>/OriginalFile+Only;HARD;/Fileset/FilesetEntry</value><!-- and hope it's not double linked -->
<value>/Fileset/FilesetJobLink</value>
Expand Down
9 changes: 1 addition & 8 deletions components/server/src/ome/formats/OMEROMetadataStore.java
Original file line number Diff line number Diff line change
Expand Up @@ -1710,17 +1710,10 @@ private void checkAndCollapseGraph()
private void linkFileset(FilesetJobLink link)
{
final Fileset fs = link.parent().proxy(); // Unloaded
for (Plate plate : plateList.values())
{
plate.linkFileset(fs);
}

for (Image image : imageList.values())
{
if (image.sizeOfWellSamples() < 1)
{
image.linkFileset(fs.proxy());
}
image.setFileset(fs.proxy());
}
}

Expand Down
14 changes: 6 additions & 8 deletions components/tools/OmeroPy/src/omero/gateway/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3264,15 +3264,14 @@ def deleteObjects(self, graph_spec, obj_ids, deleteAnns=False,
if len(imgsWithFs) > 0:
params = omero.sys.Parameters()
params.map = {'imageIds': wrap(imgsWithFs)}
query = "select fs from Fileset as fs "\
"left outer join fetch fs.imageLinks as fil "\
"join fetch fil.child as image " \
query = "select fs from Fileset fs "\
"left outer join fetch fs.images as image "\
"where image.id in (:imageIds)"
queryService = self.getQueryService()
filesets = queryService.findAllByQuery(query, params, self.SERVICE_OPTS)
for fs in filesets:
for fsImgLink in fs.copyImageLinks():
imgsToDelete.append(fsImgLink.child.id.val)
for fsImg in fs.copyImages():
imgsToDelete.append(fsImg.id.val)
break
obj_ids = imgsToDelete

Expand Down Expand Up @@ -7415,7 +7414,7 @@ def countFilesetFiles (self):
params = omero.sys.Parameters()
params.map = {'imageId': rlong(self.getId())}
query = "select count(fse.id) from FilesetEntry as fse join fse.fileset as fs "\
"left outer join fs.imageLinks as imageLink where imageLink.child.id=:imageId"
"left outer join fs.images as image where image.id=:imageId"
queryService = self._conn.getQueryService()
fscount = queryService.projection(query, params, self._conn.SERVICE_OPTS)
self._filesetFileCount = fscount[0][0]._val
Expand Down Expand Up @@ -7449,8 +7448,7 @@ def getImportedImageFiles (self):
params = omero.sys.Parameters()
params.map = {'imageId': rlong(self.getId())}
query = "select fs from Fileset as fs "\
"left outer join fetch fs.imageLinks as fil "\
"join fetch fil.child as image " \
"left outer join fetch fs.images as image "\
"left outer join fetch fs.usedFiles as usedFile " \
"join fetch usedFile.originalFile where image.id=:imageId"
queryService = self._conn.getQueryService()
Expand Down
38 changes: 34 additions & 4 deletions components/tools/OmeroPy/test/integration/repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -337,8 +337,7 @@ def testDirPrivateGroup(self):
self.assertWrite(f1.repo, filename, ofile)

self.assertNoRead(f2.repo, filename, ofile)
self.assertRaises(omero.SecurityViolation,
f2.repo.listFiles, dirname)
self.assertEquals(0, len(f2.repo.listFiles(dirname)))

def testDirReadOnlyGroup(self):
f1, f2 = self.setup2RepoUsers("rwr---")
Expand Down Expand Up @@ -662,8 +661,8 @@ def testRecursiveDeleteMethodAvailable(self):
# to delete more. Muahahaha...
def testDoubleDot(self):
naughty = self.unique_dir + "/" + ".." + ".." + ".."
handle = self.mrepo.deletePaths([naughty], True, True)
self.waitOnCmd(self.client, handle, passes=True)
self.assertRaises(omero.ValidationException,
self.mrepo.deletePaths, [naughty], True, True)


class TestDeleteLog(AbstractRepoTest):
Expand Down Expand Up @@ -746,5 +745,36 @@ def testUserDirShouldBeGloballyWriteable(self):
mrepo.makeDir(bDir, True)
self.createFile(mrepo, bFile)


class TestFilesetQueries(AbstractRepoTest):

def project(self, *args, **kwargs):
self.client.sf.getQueryService().projection(*args, **kwargs)

def testDeleteQuery(self):
query = "select fs from Fileset fs "\
"left outer join fetch fs.images as image "\
"where image.id in (:imageIds)"
params = omero.sys.Parameters()
params.map = {'imageIds': omero.rtypes.wrap([omero.rtypes.rlong(-1)])}
self.project(query, params)

def testCountFilesetFiles(self):
params = omero.sys.Parameters()
params.map = {'imageId': omero.rtypes.rlong(-1)}
query = "select count(fse.id) from FilesetEntry as fse join fse.fileset as fs "\
"left outer join fs.images as image where image.id=:imageId"
self.project(query, params)

def testImportedImageFiles(self):
params = omero.sys.Parameters()
params.map = {'imageId': omero.rtypes.rlong(-1)}
query = "select fs from Fileset as fs "\
"left outer join fetch fs.images as image "\
"left outer join fetch fs.usedFiles as usedFile " \
"join fetch usedFile.originalFile where image.id=:imageId"
self.project(query, params)


if __name__ == '__main__':
unittest.main()
2 changes: 1 addition & 1 deletion etc/omero.properties
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ omero.data.cron=* * 0 * * ?

omero.db.authority=export.openmicroscopy.org
omero.db.version=OMERO5.0DEV
omero.db.patch=1
omero.db.patch=3
omero.db.host=localhost
omero.db.name=omero
omero.db.user=omero
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1396,4 +1396,3 @@ insert into renderingmodel (id,permissions,value)
insert into renderingmodel (id,permissions,value)
select ome_nextval('seq_renderingmodel'),-35,'greyscale' from renderingmodel where not exists(
select 1 from renderingmodel where value = 'greyscale') limit 1;

Original file line number Diff line number Diff line change
Expand Up @@ -379,18 +379,10 @@
CREATE INDEX i_filesetentry_group ON filesetentry(group_id);
CREATE INDEX i_FilesetEntry_fileset ON filesetentry(fileset);
CREATE INDEX i_FilesetEntry_originalFile ON filesetentry(originalFile);
CREATE INDEX i_filesetimagelink_owner ON filesetimagelink(owner_id);
CREATE INDEX i_filesetimagelink_group ON filesetimagelink(group_id);
CREATE INDEX i_FilesetImageLink_parent ON filesetimagelink(parent);
CREATE INDEX i_FilesetImageLink_child ON filesetimagelink(child);
CREATE INDEX i_filesetjoblink_owner ON filesetjoblink(owner_id);
CREATE INDEX i_filesetjoblink_group ON filesetjoblink(group_id);
CREATE INDEX i_FilesetJobLink_parent ON filesetjoblink(parent);
CREATE INDEX i_FilesetJobLink_child ON filesetjoblink(child);
CREATE INDEX i_filesetplatelink_owner ON filesetplatelink(owner_id);
CREATE INDEX i_filesetplatelink_group ON filesetplatelink(group_id);
CREATE INDEX i_FilesetPlateLink_parent ON filesetplatelink(parent);
CREATE INDEX i_FilesetPlateLink_child ON filesetplatelink(child);
CREATE INDEX i_filesetversioninfo_owner ON filesetversioninfo(owner_id);
CREATE INDEX i_filesetversioninfo_group ON filesetversioninfo(group_id);
CREATE INDEX i_filter_owner ON filter(owner_id);
Expand Down Expand Up @@ -420,6 +412,7 @@
CREATE INDEX i_Image_instrument ON image(instrument);
CREATE INDEX i_Image_stageLabel ON image(stageLabel);
CREATE INDEX i_Image_experiment ON image(experiment);
CREATE INDEX i_Image_fileset ON image(fileset);
CREATE INDEX i_imageannotationlink_owner ON imageannotationlink(owner_id);
CREATE INDEX i_imageannotationlink_group ON imageannotationlink(group_id);
CREATE INDEX i_ImageAnnotationLink_parent ON imageannotationlink(parent);
Expand Down Expand Up @@ -775,9 +768,7 @@ CREATE SEQUENCE seq_filamenttype; INSERT INTO _lock_ids (name, id) SELECT 'seq_f
CREATE SEQUENCE seq_fileset; INSERT INTO _lock_ids (name, id) SELECT 'seq_fileset', nextval('_lock_seq');
CREATE SEQUENCE seq_filesetannotationlink; INSERT INTO _lock_ids (name, id) SELECT 'seq_filesetannotationlink', nextval('_lock_seq');
CREATE SEQUENCE seq_filesetentry; INSERT INTO _lock_ids (name, id) SELECT 'seq_filesetentry', nextval('_lock_seq');
CREATE SEQUENCE seq_filesetimagelink; INSERT INTO _lock_ids (name, id) SELECT 'seq_filesetimagelink', nextval('_lock_seq');
CREATE SEQUENCE seq_filesetjoblink; INSERT INTO _lock_ids (name, id) SELECT 'seq_filesetjoblink', nextval('_lock_seq');
CREATE SEQUENCE seq_filesetplatelink; INSERT INTO _lock_ids (name, id) SELECT 'seq_filesetplatelink', nextval('_lock_seq');
CREATE SEQUENCE seq_filesetversioninfo; INSERT INTO _lock_ids (name, id) SELECT 'seq_filesetversioninfo', nextval('_lock_seq');
CREATE SEQUENCE seq_filter; INSERT INTO _lock_ids (name, id) SELECT 'seq_filter', nextval('_lock_seq');
CREATE SEQUENCE seq_filterset; INSERT INTO _lock_ids (name, id) SELECT 'seq_filterset', nextval('_lock_seq');
Expand Down Expand Up @@ -1256,7 +1247,7 @@ alter table dbpatch alter message set default 'Updating';
-- running so that if anything goes wrong, we'll have some record.
--
insert into dbpatch (currentVersion, currentPatch, previousVersion, previousPatch, message)
values ('OMERO5.0DEV', 1, 'OMERO5.0DEV', 0, 'Initializing');
values ('OMERO5.0DEV', 3, 'OMERO5.0DEV', 0, 'Initializing');

--
-- Here we will create the root account and the necessary groups
Expand Down Expand Up @@ -2139,9 +2130,8 @@ after delete on originalfile
-- Here we have finished initializing this database.
update dbpatch set message = 'Database ready.', finished = clock_timestamp()
where currentVersion = 'OMERO5.0DEV' and
currentPatch = 1 and
currentPatch = 3 and
previousVersion = 'OMERO5.0DEV' and
previousPatch = 0;

COMMIT;

Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,3 @@
--
--
BEGIN;

Loading