Merge "add get_flow_details and get_atom_details to all backends"
This commit is contained in:
		@@ -403,3 +403,9 @@ class Connection(base.Connection):
 | 
			
		||||
    def get_logbook(self, book_uuid):
 | 
			
		||||
        return self._run_with_process_lock("book",
 | 
			
		||||
                                           self._get_logbook, book_uuid)
 | 
			
		||||
 | 
			
		||||
    def get_flow_details(self, fd_uuid):
 | 
			
		||||
        return self._get_flow_details(fd_uuid)
 | 
			
		||||
 | 
			
		||||
    def get_atom_details(self, ad_uuid):
 | 
			
		||||
        return self._get_atom_details(ad_uuid)
 | 
			
		||||
 
 | 
			
		||||
@@ -234,3 +234,17 @@ class Connection(base.Connection):
 | 
			
		||||
                yield book
 | 
			
		||||
            except KeyError:
 | 
			
		||||
                pass
 | 
			
		||||
 | 
			
		||||
    def get_flow_details(self, fd_uuid):
 | 
			
		||||
        try:
 | 
			
		||||
            with self._lock.read_lock():
 | 
			
		||||
                return self._memory.flow_details[fd_uuid]
 | 
			
		||||
        except KeyError:
 | 
			
		||||
            raise exc.NotFound("No flow details found '%s'" % fd_uuid)
 | 
			
		||||
 | 
			
		||||
    def get_atom_details(self, ad_uuid):
 | 
			
		||||
        try:
 | 
			
		||||
            with self._lock.read_lock():
 | 
			
		||||
                return self._memory.atom_details[ad_uuid]
 | 
			
		||||
        except KeyError:
 | 
			
		||||
            raise exc.NotFound("No atom details found '%s'" % ad_uuid)
 | 
			
		||||
 
 | 
			
		||||
@@ -558,5 +558,35 @@ class Connection(base.Connection):
 | 
			
		||||
        for book in gathered:
 | 
			
		||||
            yield book
 | 
			
		||||
 | 
			
		||||
    def get_flow_details(self, fd_uuid):
 | 
			
		||||
        try:
 | 
			
		||||
            flowdetails = self._tables.flowdetails
 | 
			
		||||
            with self._engine.begin() as conn:
 | 
			
		||||
                q = (sql.select([flowdetails]).
 | 
			
		||||
                     where(flowdetails.c.uuid == fd_uuid))
 | 
			
		||||
                row = conn.execute(q).first()
 | 
			
		||||
                if not row:
 | 
			
		||||
                    raise exc.NotFound("No flow details found with uuid"
 | 
			
		||||
                                       " '%s'" % fd_uuid)
 | 
			
		||||
                return self._converter.convert_flow_detail(row)
 | 
			
		||||
        except sa_exc.SQLAlchemyError as e:
 | 
			
		||||
            raise exc.StorageFailure("Failed getting flow details with"
 | 
			
		||||
                                     " uuid '%s'" % fd_uuid, e)
 | 
			
		||||
 | 
			
		||||
    def get_atom_details(self, ad_uuid):
 | 
			
		||||
        try:
 | 
			
		||||
            atomdetails = self._tables.atomdetails
 | 
			
		||||
            with self._engine.begin() as conn:
 | 
			
		||||
                q = (sql.select([atomdetails]).
 | 
			
		||||
                     where(atomdetails.c.uuid == ad_uuid))
 | 
			
		||||
                row = conn.execute(q).first()
 | 
			
		||||
                if not row:
 | 
			
		||||
                    raise exc.NotFound("No atom details found with uuid"
 | 
			
		||||
                                       " '%s'" % ad_uuid)
 | 
			
		||||
                return self._converter.convert_atom_detail(row)
 | 
			
		||||
        except sa_exc.SQLAlchemyError as e:
 | 
			
		||||
            raise exc.StorageFailure("Failed getting atom details with"
 | 
			
		||||
                                     " uuid '%s'" % ad_uuid, e)
 | 
			
		||||
 | 
			
		||||
    def close(self):
 | 
			
		||||
        pass
 | 
			
		||||
 
 | 
			
		||||
@@ -118,6 +118,16 @@ class Connection(object):
 | 
			
		||||
        """Return an iterable of logbook objects."""
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
    @abc.abstractmethod
 | 
			
		||||
    def get_flow_details(self, fd_uuid):
 | 
			
		||||
        """Fetches a flowdetails object matching the given uuid."""
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
    @abc.abstractmethod
 | 
			
		||||
    def get_atom_details(self, ad_uuid):
 | 
			
		||||
        """Fetches a atomdetails object matching the given uuid."""
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _format_atom(atom_detail):
 | 
			
		||||
    return {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user