package io.cattle.platform.sample.data;
import static io.cattle.platform.core.model.tables.ConfigItemStatusTable.*;
import static io.cattle.platform.core.model.tables.ConfigItemTable.*;
import static io.cattle.platform.core.model.tables.StackTable.*;
import io.cattle.platform.core.model.Account;
import io.cattle.platform.core.model.ConfigItem;
import io.cattle.platform.core.model.ConfigItemStatus;
import io.cattle.platform.core.model.Stack;
import io.github.ibuildthecloud.gdapi.condition.Condition;
import io.github.ibuildthecloud.gdapi.condition.ConditionType;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SampleDataStartupV6 extends AbstractSampleData {
private static final String CONFIG_NAME = "stack-reconcile";
@Override
protected String getName() {
return "sampleDataVersion6";
}
@Override
protected void populatedData(Account system, List<Object> toCreate) {
List<Stack> stacks = objectManager
.find(Stack.class, STACK.REMOVED, new Condition(ConditionType.NULL));
createConfigItem();
createConfigItemStatus(stacks);
}
protected void createConfigItemStatus(List<Stack> stacks) {
for (Stack stack : stacks) {
ConfigItemStatus existing = objectManager.findAny(ConfigItemStatus.class, CONFIG_ITEM_STATUS.NAME,
CONFIG_NAME, CONFIG_ITEM_STATUS.RESOURCE_ID, stack.getId(), CONFIG_ITEM_STATUS.STACK_ID,
stack.getId(), CONFIG_ITEM_STATUS.RESOURCE_TYPE, "environment_id");
if (existing == null) {
try {
Map<String, Object> props = new HashMap<>();
props.put("name", CONFIG_NAME);
props.put("requestedVersion", 1);
props.put("appliedVersion", 0);
props.put("sourceVersion", "");
props.put("resourceId", stack.getId());
props.put("environmentId", stack.getId());
props.put("resourceType", "environment_id");
objectManager.create(ConfigItemStatus.class, props);
} catch (Exception ex) {
}
}
}
}
protected void createConfigItem() {
ConfigItem item = objectManager.findAny(ConfigItem.class, CONFIG_ITEM.NAME,
CONFIG_NAME);
if (item == null) {
Map<String, Object> props = new HashMap<>();
props.put("name", CONFIG_NAME);
props.put("sourceVersion", "");
objectManager.create(ConfigItem.class, props);
}
}
}