天翼云容器集群同步
parent
c2ba1a27fd
commit
dc0c56f1cb
|
@ -0,0 +1,13 @@
|
|||
package com.bocloud.ctstack.plugin.domain.model;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ContarinerClusterModel {
|
||||
|
||||
private String name;
|
||||
}
|
|
@ -34,6 +34,7 @@ public class TianyiSyncModel {
|
|||
private List<HostModel> hostModels;
|
||||
private ResourcePoolModel resourcePoolModel;
|
||||
private List<RdsModel> rdsModels;
|
||||
private List<ContarinerClusterModel> contarinerClusterModels;
|
||||
/**
|
||||
* @param serverModels
|
||||
* @param imageModels
|
||||
|
|
|
@ -9,6 +9,7 @@ import com.bocloud.ctstack.plugin.domain.model.database.RdsModel;
|
|||
import com.bocloud.ctstack.plugin.provider.TianyiProvider;
|
||||
import com.bocloud.ctstack.plugin.provider.compute.TianyiImageProvider;
|
||||
import com.bocloud.ctstack.plugin.provider.compute.TianyiServerProvider;
|
||||
import com.bocloud.ctstack.plugin.provider.container.TianYiContainerClusterProvider;
|
||||
import com.bocloud.ctstack.plugin.provider.database.TianyiRdsProvider;
|
||||
import com.bocloud.ctstack.plugin.provider.network.TianyiFloatingIpProvider;
|
||||
import com.bocloud.ctstack.plugin.provider.network.TianyiSecurityGroupProvider;
|
||||
|
@ -254,6 +255,8 @@ public class TianyiLocationProvider extends TianyiProvider {
|
|||
List<FlavorModel> flavorModels = (List<FlavorModel>) flavorList.getData();
|
||||
syncModel.setFlavorModels(flavorModels);
|
||||
}
|
||||
|
||||
|
||||
// 同步安全组
|
||||
log.info("获取安全组信息...");
|
||||
TianyiSecurityGroupProvider tianyiSecurityGroupProvider = new TianyiSecurityGroupProvider(this.getButler());
|
||||
|
@ -280,6 +283,16 @@ public class TianyiLocationProvider extends TianyiProvider {
|
|||
syncModel.setImageModels((List<ImageModel>) imageList.getData());
|
||||
}
|
||||
|
||||
|
||||
// 同步镜像
|
||||
log.info("获取容器信息...");
|
||||
TianYiContainerClusterProvider tianYiContainerClusterProvider = new TianYiContainerClusterProvider(this.getButler());
|
||||
GeneralResult containerClusterList = tianYiContainerClusterProvider.list();
|
||||
log.info("同步容器结果:{}",containerClusterList.isSuccess());
|
||||
if (containerClusterList.isSuccess()) {
|
||||
syncModel.setContarinerClusterModels((List<ContarinerClusterModel>) containerClusterList.getData());
|
||||
}
|
||||
|
||||
// 同步云硬盘
|
||||
log.info("获取云硬盘信息...");
|
||||
TianyiVolumeProvider tianyiVolumeProvider = new TianyiVolumeProvider(this.getButler());
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
package com.bocloud.ctstack.plugin.provider.container;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.bocloud.cmp.domain.Butler;
|
||||
import com.bocloud.ctstack.plugin.domain.model.ContarinerClusterModel;
|
||||
import com.bocloud.ctstack.plugin.provider.TianyiProvider;
|
||||
import com.bocloud.ctstack.plugin.provider.tianyiconvertor.BeanConvertor;
|
||||
import com.bocloud.ctstack.plugin.provider.tianyiconvertor.ContainerClusterConvertor;
|
||||
import com.megatron.common.model.GeneralResult;
|
||||
import com.megatron.common.model.Result;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
public class TianYiContainerClusterProvider extends TianyiProvider {
|
||||
|
||||
|
||||
BeanConvertor<ContarinerClusterModel, JSONObject> containerClusterConvertor = new ContainerClusterConvertor();
|
||||
|
||||
Butler butler = null;
|
||||
|
||||
/**
|
||||
* 构造方法,所有的云平台驱动都必须要实现或重写该构造方法
|
||||
*
|
||||
* @param butler 云平台认证信息
|
||||
*/
|
||||
public TianYiContainerClusterProvider(Butler butler) {
|
||||
super(butler);
|
||||
this.butler = butler;
|
||||
}
|
||||
|
||||
|
||||
public GeneralResult list() {
|
||||
try {
|
||||
String url = "/v1.1/ccse/clusters/page";
|
||||
Map<String, Object> header = new HashMap<>();
|
||||
header.put("regionId", this.getRegionId());
|
||||
Result result = doGet(url, header);
|
||||
log.info("result:{}", JSON.toJSONString(result));
|
||||
JSONObject checkedResult = checkResult(result, "查询容器集群列表");
|
||||
log.info("checkedResult:{}", JSON.toJSONString(checkedResult));
|
||||
List<JSONObject> records = JSONObject.parseObject(checkedResult.getString("records"), List.class);
|
||||
return new GeneralResult(true, containerClusterConvertor.convertList(records), "查询成功");
|
||||
} catch (Exception e) {
|
||||
log.error("查询容器集群列表失败 : " + e);
|
||||
return new GeneralResult(false, "查询容器集群列表失败", e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.bocloud.ctstack.plugin.provider.tianyiconvertor;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.bocloud.ctstack.plugin.domain.model.ContarinerClusterModel;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ContainerClusterConvertor implements BeanConvertor<ContarinerClusterModel, JSONObject> {
|
||||
|
||||
|
||||
@Override
|
||||
public List<ContarinerClusterModel> convertList(List<? extends JSONObject> list) {
|
||||
List<ContarinerClusterModel> contarinerClusterModels = new ArrayList<>();
|
||||
for (JSONObject object : list) {
|
||||
contarinerClusterModels.add(convertModel(object));
|
||||
}
|
||||
return contarinerClusterModels;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ContarinerClusterModel convertModel(JSONObject jsonObject) {
|
||||
if (null == jsonObject) return null;
|
||||
if (jsonObject.isEmpty()) return null;
|
||||
ContarinerClusterModel contarinerClusterModel = new ContarinerClusterModel();
|
||||
|
||||
contarinerClusterModel.setName(jsonObject.getString("clusterName"));
|
||||
|
||||
return contarinerClusterModel;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue