Package com.splunk.shuttl.server.distributed

Source Code of com.splunk.shuttl.server.distributed.RequestOnSearchPeer

// Copyright (C) 2011 Splunk Inc.
//
// Splunk Inc. licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License.  You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.splunk.shuttl.server.distributed;

import com.amazonaws.util.json.JSONObject;
import com.splunk.DistributedPeer;
import com.splunk.Service;
import com.splunk.shuttl.archiver.clustering.ShuttlPortEndpoint;
import com.splunk.shuttl.archiver.http.JsonRestEndpointCaller;
import com.splunk.shuttl.archiver.thaw.SplunkConfiguration;

public class RequestOnSearchPeer {

  private final ShuttlEndpointRequestProvider requestProvider;
  private final SplunkConfiguration splunkConf;

  public RequestOnSearchPeer(ShuttlEndpointRequestProvider requestProvider,
      SplunkConfiguration splunkConfiguration) {
    this.requestProvider = requestProvider;
    this.splunkConf = splunkConfiguration;
  }

  public JSONObject executeRequest(DistributedPeer dp) {
    Service dpService = getDistributedPeerService(dp);
    int shuttlPort = ShuttlPortEndpoint.create(dpService).getShuttlPort();
    return JsonRestEndpointCaller.create().getJson(
        requestProvider.createRequest(dpService.getHost(), shuttlPort));
  }

  private Service getDistributedPeerService(DistributedPeer dp) {
    Service dpService = createService(dp);
    authenticateService(dpService);
    return dpService;
  }

  private Service createService(DistributedPeer dp) {
    String nameThatIsThePeersIpAndPortPair = dp.getName();
    String[] hostPortPair = nameThatIsThePeersIpAndPortPair.split(":");
    return new Service(hostPortPair[0], Integer.parseInt(hostPortPair[1]));
  }

  private void authenticateService(Service dpService) {
    dpService.login(splunkConf.getUsername(), splunkConf.getPassword());
  }

}
TOP

Related Classes of com.splunk.shuttl.server.distributed.RequestOnSearchPeer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.