コード例 #1
0
    def post_build(self, site_build):
        if site_build is not None and isinstance(site_build, SiteBuild):
            my_lock = self.builds_lock.acquire(block=True, timeout=10)
            if my_lock:
                exists = [
                    b for b in self.builds if b.build_id == site_build.build_id
                ]

                if len(exists) > 0:
                    self.builds_lock.release()
                    raise DesignError("Already a site build with ID %s" %
                                      (str(site_build.build_id)))
                self.builds.append(deepcopy(site_build))
                self.builds_lock.release()
                return True
            raise StateError("Could not acquire lock")
        else:
            raise DesignError("Design change must be a SiteDesign instance")
コード例 #2
0
 def put_design(self, site_design):
     if site_design is not None:
         my_lock = self.designs_lock.acquire(blocking=True, timeout=10)
         if my_lock:
             design_id = site_design.id
             if design_id not in self.designs.keys():
                 self.designs_lock.release()
                 raise StateError("Design ID %s does not exist" % design_id)
             else:
                 self.designs[design_id] = site_design.obj_to_primitive()
                 self.designs_lock.release()
                 return True
         raise StateError("Could not acquire lock")
     else:
         raise DesignError("Design base must be a SiteDesign instance")
コード例 #3
0
 def put_build(self, site_build):
     if site_build is not None and isinstance(site_build, SiteBuild):
         my_lock = self.builds_lock.acquire(block=True, timeout=10)
         if my_lock:
             buildid = site_build.buildid
             for b in self.builds:
                 if b.buildid == buildid:
                     b.merge_updates(site_build)
                     self.builds_lock.release()
                     return True
             self.builds_lock.release()
             return False
         raise StateError("Could not acquire lock")
     else:
         raise DesignError("Design change must be a SiteDesign instance")
コード例 #4
0
    def get_design(self, design_id):
        if design_id not in self.designs.keys():

            raise DesignError("Design ID %s not found" % (design_id))

        return objects.SiteDesign.obj_from_primitive(self.designs[design_id])