コード例 #1
0
 /**
  * Test wrapper around wp_remote_request
  */
 public function testEPRemoteRequest()
 {
     global $ep_backup_host;
     $ep_backup_host = false;
     define('EP_FORCE_HOST_REFRESH', true);
     //Test with EP_HOST constant
     $request_1 = false;
     $request = ep_remote_request('', array());
     if (!is_wp_error($request)) {
         if (isset($request['response']['code']) && 200 === $request['response']['code']) {
             $request_1 = true;
         }
     }
     //Test with only backups
     define('EP_HOST_USE_ONLY_BACKUPS', true);
     $request_2 = false;
     $ep_backup_host = array('http://127.0.0.1:9200');
     $request = ep_remote_request('', array());
     if (!is_wp_error($request)) {
         if (isset($request['response']['code']) && 200 === $request['response']['code']) {
             $request_2 = true;
         }
     }
     $request_3 = false;
     $ep_backup_host = array('bad host 1', 'bad host 2');
     $request = ep_remote_request('', array());
     if (is_wp_error($request)) {
         $request_3 = $request;
     }
     $request_4 = false;
     $ep_backup_host = array('http://127.0.0.1:9200', 'bad host 2');
     $request = ep_remote_request('', array());
     if (!is_wp_error($request)) {
         if (isset($request['response']['code']) && 200 === $request['response']['code']) {
             $request_4 = true;
         }
     }
     $request_5 = false;
     $ep_backup_host = array('bad host 1', 'http://127.0.0.1:9200');
     $request = ep_remote_request('', array());
     if (!is_wp_error($request)) {
         if (isset($request['response']['code']) && 200 === $request['response']['code']) {
             $request_5 = true;
         }
     }
     $this->assertTrue($request_1);
     $this->assertTrue($request_2);
     $this->assertWPError($request_3);
     $this->assertTrue($request_4);
     $this->assertTrue($request_5);
 }
コード例 #2
0
 /**
  * Decode the bulk index response
  *
  * @since 0.9.2
  * @param $body
  * @return array|object|WP_Error
  */
 public function bulk_index_posts($body)
 {
     // create the url with index name and type so that we don't have to repeat it over and over in the request (thereby reducing the request size)
     $path = trailingslashit(ep_get_index_name()) . 'post/_bulk';
     $request_args = array('method' => 'POST', 'body' => $body, 'timeout' => 30);
     $request = ep_remote_request($path, apply_filters('ep_bulk_index_posts_request_args', $request_args, $body));
     if (is_wp_error($request)) {
         return $request;
     }
     $response = wp_remote_retrieve_response_code($request);
     if (200 !== $response) {
         return new WP_Error($response, wp_remote_retrieve_response_message($request), $request);
     }
     return json_decode(wp_remote_retrieve_body($request), true);
 }
コード例 #3
0
ファイル: class-ep-api.php プロジェクト: 10up/elasticpress
 /**
  * Retrieves search stats from Elasticsearch.
  *
  * Retrieves various search statistics from the ES server.
  *
  * @since 1.9
  *
  * @param int $blog_id Id of blog to get stats.
  *
  * @return array Contains the status message or the returned statistics.
  */
 public function get_search_status($blog_id = null)
 {
     if (is_wp_error(ep_get_host())) {
         return array('status' => false, 'msg' => esc_html__('Elasticsearch Host is not available.', 'elasticpress'));
     } else {
         if (is_multisite() && null === $blog_id) {
             $path = ep_get_network_alias() . '/_stats/search/';
         } else {
             $path = ep_get_index_name($blog_id) . '/_stats/search/';
         }
         $request = ep_remote_request($path, array('method' => 'GET'));
     }
     if (!is_wp_error($request)) {
         $stats = json_decode(wp_remote_retrieve_body($request));
         if (isset($stats->_all)) {
             return $stats->_all->primaries->search;
         }
         return false;
     }
     return array('status' => false, 'msg' => $request->get_error_message());
 }