use of org.platformlayer.core.model.Tag in project platformlayer by platformlayer.
the class PlatformlayerBackedPool method release.
@Override
public void release(PlatformLayerKey owner, T item) throws OpsException {
for (int i = 0; i < 10; i++) {
ItemBase resource = platformLayer.getItem(resourceKey);
List<Assignment> assignments = findAssignments(resource);
String key = adapter.toKey(item);
Assignment assigned = Assignment.find(assignments, key, subkey);
if (assigned == null) {
throw new OpsException("Resource not assigned");
}
if (!assigned.item.equals(owner.getUrl())) {
throw new OpsException("Resource not held");
}
Tag assignmentTag = assigned.asTag();
TagChanges tagChanges = new TagChanges();
tagChanges.removeTags.add(assignmentTag);
if (null != platformLayer.changeTags(resourceKey, tagChanges, resource.getVersion())) {
return;
}
if (!TimeSpan.ONE_SECOND.doSafeSleep()) {
break;
}
}
// List<PlatformLayerKey> assignedTo = Tag.POOL_ASSIGNMENT.build(t) Tag.ASSIGNED_TO.find(item);
// if (!assignedTo.contains(holder)) {
// throw new OpsException("Resource not owned");
// }
//
// platformLayer.deleteItem(item.getKey());
}
use of org.platformlayer.core.model.Tag in project platformlayer by platformlayer.
the class NginxBackendFirewall method buildItemTemplate.
@Override
protected ItemBase buildItemTemplate() {
NginxService nginxService = OpsContext.get().getInstance(NginxService.class);
NginxBackend nginxBackend = OpsContext.get().getInstance(NginxBackend.class);
NetworkConnection networkConnection = new NetworkConnection();
networkConnection.setDestItem(nginxBackend.backend);
networkConnection.setSourceItem(nginxService.getKey());
networkConnection.setPort(port);
networkConnection.setProtocol(protocol.toString());
Tag parentTag = Tag.buildParentTag(nginxBackend.getKey());
networkConnection.getTags().add(parentTag);
Tag uniqueTag = UniqueTag.build(nginxService, nginxBackend);
networkConnection.getTags().add(uniqueTag);
String id = nginxBackend.getId();
if (Strings.isNullOrEmpty(id)) {
id = "nginx";
}
networkConnection.key = PlatformLayerKey.fromId(id);
return networkConnection;
}
use of org.platformlayer.core.model.Tag in project platformlayer by platformlayer.
the class NginxFrontendDns method buildItemTemplate.
@Override
protected DnsRecord buildItemTemplate() throws OpsException {
// TODO: Idempotency etc
// Machine machine = OpsContext.get().getInstance(Machine.class);
NginxService nginxService = OpsContext.get().getInstance(NginxService.class);
NginxFrontend nginxFrontend = OpsContext.get().getInstance(NginxFrontend.class);
Machine machine = instanceHelpers.getMachine(nginxService);
String address = machine.getNetworkPoint().getBestAddress(NetworkPoint.forPublicInternet());
DnsRecord record = new DnsRecord();
record.setDnsName(nginxFrontend.hostname);
record.getAddress().add(address);
Tag parentTag = Tag.buildParentTag(nginxFrontend.getKey());
record.getTags().add(parentTag);
Tag uniqueTag = UniqueTag.build(nginxService, nginxFrontend);
record.getTags().add(uniqueTag);
record.key = PlatformLayerKey.fromId(nginxFrontend.hostname);
return record;
}
use of org.platformlayer.core.model.Tag in project platformlayer by platformlayer.
the class UntypedItemFormatter method tagsToString.
private String tagsToString(PlatformLayerCliContext context, Tags tags) {
if (tags == null) {
return "";
}
List<Tag> tagList = tags.getTags();
if (tagList == null) {
return "";
}
StringBuilder sb = new StringBuilder();
for (Tag tag : tagList) {
if (sb.length() != 0) {
sb.append(", ");
}
String value = tag.getValue();
value = Utils.reformatText(context, value);
sb.append(tag.getKey() + "=" + value);
}
return sb.toString();
}
use of org.platformlayer.core.model.Tag in project platformlayer by platformlayer.
the class PutItem method runCommand.
@Override
public Object runCommand() throws PlatformLayerClientException, JSONException {
PlatformLayerClient client = getPlatformLayerClient();
if (json == null) {
InputStream stream = new NoCloseInputStream(System.in);
byte[] data;
try {
data = ByteStreams.toByteArray(stream);
json = new String(data, Charsets.UTF_8);
} catch (IOException e) {
throw new CliException("Error reading stdin", e);
}
}
JSONObject jsonObject = new JSONObject(json);
PlatformLayerKey parentKey = null;
if (parent != null || !tags.isEmpty()) {
JSONObject tagsObject = null;
if (jsonObject.has("tags")) {
tagsObject = jsonObject.getJSONObject("tags");
} else {
tagsObject = new JSONObject();
jsonObject.put("tags", tagsObject);
}
JSONArray tagsArray;
if (tagsObject.has("tags")) {
tagsArray = tagsObject.getJSONArray("tags");
} else {
tagsArray = new JSONArray();
tagsObject.put("tags", tagsArray);
}
if (parent != null) {
parentKey = parent.resolve(getContext());
Tag parentTag = Tag.buildParentTag(parentKey);
JSONObject jsonTag = new JSONObject();
jsonTag.put("key", parentTag.getKey());
jsonTag.put("value", parentTag.getValue());
tagsArray.put(jsonTag);
}
for (String tag : tags) {
int equalsIndex = tag.indexOf('=');
if (equalsIndex == -1) {
throw new CliException("Expected tagname=tagvalue");
}
String tagName = tag.substring(0, equalsIndex);
String tagValue = tag.substring(equalsIndex + 1);
JSONObject jsonTag = new JSONObject();
jsonTag.put("key", tagName);
jsonTag.put("value", tagValue);
tagsArray.put(jsonTag);
}
}
PlatformLayerKey key = path.resolve(getContext());
boolean wrap = false;
String data;
if (wrap) {
JSONObject wrapped = new JSONObject();
wrapped.put(key.getItemType().getKey(), jsonObject);
data = wrapped.toString();
} else {
data = jsonObject.toString();
}
UntypedItem retval = client.putItem(key, data, Format.JSON);
return retval;
}
Aggregations