<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_storage_controller_by_name(self, name):
 """Returns a storage controller with the given name. in name of type str return storage_controller of type :class:`IStorageController` raises :class:`VBoxErrorObjectNotFound` A storage controller with given name doesn't exist. """

        if not isinstance(name, basestring):
            raise TypeError("name can only be an instance of type basestring")
        storage_controller = self._call("getStorageControllerByName",
                     in_p=[name])
        storage_controller = IStorageController(storage_controller)
        return storage_controller