/**
* Tencent is pleased to support the open source community by making MSEC available.
*
* Copyright (C) 2016 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the GNU General Public 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
*
* https://opensource.org/licenses/GPL-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 beans.service;
import beans.request.IPPortPair;
import beans.request.ReleasePlan;
import beans.response.QueryReleasePlanDetailResponse;
import ngse.org.DBUtil;
import ngse.org.JsonRPCHandler;
import org.codehaus.jackson.map.ObjectMapper;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* Created by Administrator on 2016/2/2.
* 查询某个发布计划的详细信息
*/
public class QueryReleasePlanDetail extends JsonRPCHandler {
public QueryReleasePlanDetailResponse exec(ReleasePlan request)
{
QueryReleasePlanDetailResponse resp = new QueryReleasePlanDetailResponse();
String result = checkIdentity();
if (!result.equals("success"))
{
resp.setStatus(99);
resp.setMessage(result);
return resp;
}
DBUtil util = new DBUtil();
if (util.getConnection() == null)
{
resp.setStatus(100);
resp.setMessage("db connect failed!");
return resp;
}
List<ReleasePlan> planList ;
try {
String sql = "select plan_id, first_level_service_name,second_level_service_name,"+
"config_tag,idl_tag, sharedobject_tag, status,memo,backend_task_status "+
"from t_release_plan where plan_id=?";
List<Object> params = new ArrayList<Object>();
params.add(request.getPlan_id());
planList = util.findMoreRefResult(sql, params, ReleasePlan.class);
if (planList.size() != 1)
{
resp.setStatus(100);
resp.setMessage("Plan does NOT exist.");
return resp;
}
resp.setDetail(planList.get(0));
ReleasePlan detail = resp.getDetail();
sql = "select dest_ip_list from t_release_plan where plan_id=?";
params = new ArrayList<Object>();
params.add(request.getPlan_id());
Map<String, Object> res = util.findSimpleResult(sql,params);
if (res.get("dest_ip_list") == null )
{
resp.setStatus(100);
resp.setMessage("query dest ip list failed.");
return resp;
}
String dest_ip_list = (String)(res.get("dest_ip_list"));
ObjectMapper objectMapper = new ObjectMapper();
Object o = objectMapper.readValue(dest_ip_list, new ArrayList<IPPortPair>().getClass());
detail.setDest_ip_list((ArrayList<IPPortPair>)o);
}
catch (Exception e)
{
resp.setStatus(100);
resp.setMessage("db query exception!");
e.printStackTrace();
return resp;
}
finally {
util.releaseConn();
}
resp.setMessage("success");
resp.setStatus(0);
return resp;
}
}