<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _get_drive_type_and_speed(self):
 """Gets the disk drive type. :returns: A dictionary with the following keys: - has_rotational: True/False. It is True if atleast one rotational disk is attached. - has_ssd: True/False. It is True if at least one SSD disk is attached. - drive_rotational_<speed>_rpm: These are set to true as per the speed of the rotational disks. :raises: IloCommandNotSupportedError if the PhysicalDrives resource doesn't exist. :raises: IloError, on an error from iLO. """

        disk_details = self._get_physical_drive_resource()
        drive_hdd = False
        drive_ssd = False
        drive_details = {}
        speed_const_list = [4800, 5400, 7200, 10000, 15000]
        if disk_details:
            for item in disk_details:
                value = item['MediaType']
                if value == "HDD":
                    drive_hdd = True
                    speed = item['RotationalSpeedRpm']
                    if speed in speed_const_list:
                        var = 'rotational_drive_' + str(speed) + '_rpm'
                        drive_details.update({var: 'true'})
                # Note: RIS returns value as 'SDD' for SSD drives.
                else:
                    drive_ssd = True
        if drive_hdd:
            drive_details.update({'has_rotational': 'true'})
        if drive_ssd:
            drive_details.update({'has_ssd': 'true'})
        return drive_details if len(drive_details.keys()) > 0 else None