'Assures that `host` is connected to the Array.
It first registers initiators to `storage_group` then add `volume` to
`storage_group`.
:param storage_group: object of storops storage group to which the
host access is registered.
:param host: `common.Host` object with initiator information.
:param volume: `common.Volume` object with volume information.
:param is_new_sg: flag indicating whether the `storage_group` is newly
created or not.'

def assure_host_access(self, storage_group, host, volume, is_new_sg):

    if (not self.config.initiator_auto_registration):
        if is_new_sg:
            storage_group.connect_host(host.name)
    else:
        self.auto_register_initiator(storage_group, host)
    return self.client.add_lun_to_sg(storage_group, self.client.get_lun(lun_id=volume.vnx_lun_id), self.max_retries)
