Changeset 772
- Timestamp:
- 03/15/07 20:27:44 (2 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/filepaths-20070306/server/lib/MogileFS/Plugin/FilePaths.pm
r762 r772 13 13 14 14 use MogileFS::Worker::Query; 15 use MogileFS::Plugin::MetaData; 15 16 16 17 # called when this plugin is loaded, this sub must return a true value in order for … … 46 47 my $args = shift; 47 48 return 1 unless _check_dmid($args->{dmid}); 49 48 50 49 51 # the key is the path, so we need to move that into the logical_path argument … … 177 179 unless defined $nodeid; 178 180 181 if (get_file_mapping($nodeid)) { 182 return $self->err_line('not_a_directory', 'Path provided is not a directory'); 183 } 184 179 185 # get files in path, return as an array 180 186 my %res; … … 183 189 my $dbh = Mgd::get_dbh(); 184 190 185 foreach my $node (@nodes) { 186 my ($nodename, $fid) = @$node; 187 if ($fid) { # thjs object is a file 191 my $node_count = $res{'files'} = scalar @nodes; 192 193 for(my $i = 0; $i < $node_count; $i++) { 194 my ($nodename, $fid) = @{$nodes[$i]}; 195 my $prefix = "file$i"; 196 $res{$prefix} = $nodename; 197 198 if ($fid) { # This file is a regular file 199 $res{"$prefix.type"} = "F"; 188 200 my $length = $dbh->selectrow_array("SELECT length FROM file WHERE fid=?", undef, $fid); 189 $res{$nodename} = "F:$length"; 190 } else { # This is a directory 191 $res{$nodename} = "D"; 201 $res{"$prefix.size"} = $length if defined($length); 202 my $metadata = MogileFS::Plugin::MetaData::get_metadata($fid); 203 $res{"$prefix.mtime"} = $metadata->{mtime} if $metadata->{mtime}; 204 } else { # This file is a directory 205 $res{"$prefix.type"} = "D"; 192 206 } 193 207 }
