@classmethod
def get_all_drives(cls, session, server_key, controller):
    """Get both virtual & physical drives for a particular server/raid controller
        Args:
            session:  database session
            server_key(int): key of the server controller belongs to
            controller(int): controller num
        Returns:
            dict: containing list of virtual & physical drives
        """
    query = []
    query.append(
        'MATCH (:Asset {{ key: {} }})-[:HAS_CONTROLLER]->(ctrl:Controller {{ controllerNum: {} }})'
        .format(server_key, controller))
    query.append('MATCH (ctrl)-[:HAS_PHYSICAL_DRIVE]->(pd:PhysicalDrive)')
    query.append('RETURN collect(pd) as pd')
    results = session.run('\n'.join(query))
    record = results.single()
    return {'vd': cls.get_virtual_drive_details(session, server_key,
        controller), 'pd': list(map(dict, list(record.get('pd'))))}
