anchor.diff:      method_should_return_unauthorized_error/1,
       method_should_return_forbidden_error/1,
       get_should_return_provider_details/1,
  +    get_should_return_cluster_ips/1,
       put_should_register_provider/1,
       patch_should_modify_provider_details/1,
  +    patch_should_modify_provider_ips/1,
       delete_should_unregister_provider/1,
       get_should_return_supported_spaces/1,
       put_should_create_or_support_space/1,
  
positive.code:             )
          ),
          onepanel_test_rest:assert_body(JsonBody, ?PROVIDER_DETAILS_JSON)
      end).
  
  
  
negative.code:         }}, ?TIMEOUT)
      end).
  
  patch_should_modify_provider_ips(Config) ->
      % There is one node in test environment
      [Node] = ?config(oneprovider_nodes, Config),
      Host = onepanel_cluster:node_to_host(Node),
      NewIP = <<"1.2.3.4">>,
      ?run(Config, fun(Host) ->
          ?assertMatch({ok, 204, _, _}, onepanel_test_rest:auth_request(
              Host, <<"/provider/cluster_ips">>, patch,
              {?ADMIN_USER_NAME, ?ADMIN_USER_PASSWORD}, [
                  {hosts, [
                      {Host, NewIP}
                  ]}
              ]
          )),
          ?assertReceivedMatch({service, oneprovider, set_cluster_ips, #{
              cluster_ips := #{
                  Host := NewIP
              }
          }}, ?TIMEOUT)
      end).
  
  delete_should_unregister_provider(Config) ->
      ?run(Config, fun(Host) ->
  