| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 | <?php/** * Copyright 2019 Huawei Technologies Co.,Ltd. * Licensed 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. * */namespace Obs;use GuzzleHttp\Psr7\Request;use GuzzleHttp\Psr7\Response;use Obs\Log\ObsLog;class ObsException extends \RuntimeException{	const CLIENT = 'client';		const SERVER = 'server';	    private $response;    private $request;    private $requestId;    private $exceptionType;            private $exceptionCode;        private $exceptionMessage;        private $hostId;	    public function __construct ($message = null, $code = null, $previous = null)     {    	parent::__construct($message, $code, $previous);    }        public function setExceptionCode($exceptionCode)    {        $this->exceptionCode = $exceptionCode;    }    public function getExceptionCode()    {        return $this->exceptionCode;    }        public function setExceptionMessage($exceptionMessage)    {        $this->exceptionMessage = $exceptionMessage;    }        public function getExceptionMessage()    {    	return $this->exceptionMessage ? $this->exceptionMessage : $this->message;    }    public function setExceptionType($exceptionType)    {        $this->exceptionType = $exceptionType;    }    public function getExceptionType()    {        return $this->exceptionType;    }    public function setRequestId($requestId)    {        $this->requestId = $requestId;    }    public function getRequestId()    {        return $this->requestId;    }    public function setResponse(Response $response)    {        $this->response = $response;    }    public function getResponse()    {        return $this->response;    }    public function setRequest(Request $request)    {        $this->request = $request;    }    public function getRequest()    {        return $this->request;    }    public function getStatusCode()    {        return $this->response ? $this->response->getStatusCode() : -1;    }        public function setHostId($hostId){    	$this->hostId = $hostId;    }        public function getHostId(){    	return $this->hostId;    }    public function __toString()    {        $message = get_class($this) . ': '            . 'OBS Error Code: ' . $this->getExceptionCode() . ', '            . 'Status Code: ' . $this->getStatusCode() . ', '            . 'OBS Error Type: ' . $this->getExceptionType() . ', '            . 'OBS Error Message: ' . ($this->getExceptionMessage() ? $this->getExceptionMessage():$this->getMessage());        // Add the User-Agent if available        if ($this->request) {            $message .= ', ' . 'User-Agent: ' . $this->request->getHeaderLine('User-Agent');        }        $message .= "\n";                ObsLog::commonLog(INFO, "http request:status:%d, %s",$this->getStatusCode(),"code:".$this->getExceptionCode().", message:".$this->getMessage());        return $message;    }    }
 |