anchor.diff:  
   get_steps(obtain_webcert, #{hosts := Hosts}) ->
       [
  -        #step{hosts = Hosts, function = check_oz_connection,
  -            attempts = onepanel_env:get(connect_to_onezone_attempts)},
           #step{hosts = Hosts, function = obtain_webcert, selection = any},
           #step{hosts = Hosts, function = clear_pem_cache, selection = any},
           #step{hosts = Hosts, function = async_restart_listeners, selection = any}
  
positive.code:         #step{hosts = Hosts, function = check_oz_availability,
              attempts = onepanel_env:get(connect_to_onezone_attempts)},
          #step{hosts = Hosts, function = register, selection = any},
          #steps{action = set_cluster_ips}
  
      ];
  
negative.code: %% Notify onezone about IPs change.
  %% @end
  %%--------------------------------------------------------------------
  -spec update_provider_ips(service:ctx()) -> ok.
  update_provider_ips(#{node := Node} = Ctx) ->
      case is_registered(Ctx) of
          true ->
              % no check of results - if the provider is not connected to onezone
              % the IPs will be sent automatically after connection is acquired
              rpc:call(Node, provider_logic, update_subdomain_delegation_ips, []);
          false -> ok
      end;
  update_provider_ips(Ctx) ->
      [Node | _] = service_op_worker:get_nodes(),
      update_provider_ips(Ctx#{node => Node}).
  
  
  %%--------------------------------------------------------------------
  