core: drop ConnectSingleAsyncOperation

This patch drops the ConnectSingleAsyncOperation and it's factory with
the simple use of callables.
The ConnectSingleAsyncOperation is more complicated, harder to maintain
and limited than the simple use of callables (for example, results can't
be returned from it at the moment).

There's currently no need for that infrastructure, we can execute the
needed operations from a helper or a helper method.

Change-Id: I825d80da10ef3d22de7cd68a68d854374e6c136c
Signed-off-by: Liron Aravot <laravot@redhat.com>
core: renaming connectAllHostsToPool

connectAllHostsToPool actually connects the hosts to the related domain
storage server, therefore in this patch its name was changed to
connectHostsInUpToDomainStorageServer.

Change-Id: I15b3cfc6f4a08350b16f252df2587bd2c7737ebe
Signed-off-by: Liron Aravot <laravot@redhat.com>
core: SyncLunsInfo - avoidable executions/db deadlock

Currently SyncLunsInfoForBlockStorageDomainCommand is being executed
when connecting to a domain storage server. This command is resposible
to check if any of the luns of the domain were changed and in case it
did, update the DB accordingly.

When a storage domain is being activated all of it's hosts are being
connected simoltenously to the domain, which leads that
SyncLunsInfoForBlockStorageDomainCommand is executed multiple times
(once for each host) which is unneeded as it's exactly the same as
having response from one host (even if the responses of the hosts are
different, we can't decide which response is correct).

When being executed simoltenously, possibly concurrent updates from the
different threads can be made - as the order of the updates isn't
garuanteed, there's a chance for a deadlock.

This patch solves it by executes the operation for only one hosts at a
time, only in case of failure (which should be rare) the engine will
attempt to sync the luns through a different host.

Change-Id: I725964aa51ac38bf16d83cc498c5298720031632
Signed-off-by: Liron Aravot <laravot@redhat.com>