Changeset 475

Show
Ignore:
Timestamp:
05/21/08 09:59:49 (8 months ago)
Author:
jmowery
Message:

update to storage after some initial testing
all storage specific functions other than export and locking tested

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/trunk-pmd-intproto/server/storage.py

    r474 r475  
    343343                now = int(time.time()) 
    344344                layer_latest = 0 
     345                for d in self.list_controlled_dirs(): #consider initial time for controlled dirs for latest 
     346                        if self.entries[d].initial > layer_latest: 
     347                                layer_latest = self.entries[d].initial 
    345348                for name in self.list_controlled_files(): #update all latest fields 
    346349                        file_latest = self.storage.find_recent(name, now) 
     
    487490                        _l.checkin() 
    488491                        _l.update() 
     492                self.update() 
    489493 
    490494        #functions to add and remove files and directories 
     
    592596                self.storage = StorageData() 
    593597                self.storage.path = self.name 
    594                 self.storage.root = find_control_root(self.storage.path) 
    595                 self.name = self.name[len(os.path.dirname(self.storage.root)) + 1:] #shorten name removing directories above root 
    596598                self.storage.storage_dir = os.path.join(self.storage.path, '.__storage__') 
    597599                os.mkdir(self.storage.storage_dir) 
    598600                self.storage.nodes_dir = os.path.join(self.storage.path, '.__nodes__') 
    599601                os.mkdir(self.storage.nodes_dir) 
    600                 self.storage.logs_dir = os.path.join(self.storage.root, '.__logs__') 
    601                 if not os.path.exists(self.storage.logs_dir): 
    602                         os.mkdir(self.storage.logs_dir) 
    603602                self.storage.status_path = os.path.join(self.storage.path, '.__status__') 
    604603                if not self.storage.config.has_section('general'): 
     
    610609                self.entries['.'] = self.storage.add_dir('.') 
    611610                self.storage.write() 
     611                self.storage.root = find_control_root(self.storage.path) 
     612                self.storage.logs_dir = os.path.join(self.storage.root, '.__logs__') 
     613                if not os.path.exists(self.storage.logs_dir): 
     614                        os.mkdir(self.storage.logs_dir) 
     615                self.name = self.name[len(os.path.dirname(self.storage.root)) + 1:] #shorten name removing directories above root 
     616                self.modified = True 
    612617                if is_controlled(os.path.join(self.storage.path, '..')): 
    613618                        _l = Layer(os.path.join(self.storage.path, '..')) 
    614619                        _l.add(os.path.basename(self.storage.path)) 
    615620                        _l.update() 
     621                self.update() 
    616622 
    617623        def clean(self, names, recursive=False): 
     
    747753                                                continue 
    748754                                        stats.append(self.status_prefix(entry) + entry + self.version_suffix(entry)) 
     755                                for d in self.list_controlled_dirs(): 
     756                                        _l = Layer(os.path.join(self.storage.path, d)) 
     757                                        stats += _l.status('.', recursive) 
     758                                        _l.update() 
    749759                        return stats 
    750760                e = self.get_entry(names)