@Test public void testDeletePattern() throws Exception { // Search for :"name:chefutil-*"; String search = "name%3A" + name1.substring(0, 9) + "*"; search = "name%3A" + "rds-default*"; final List<String> nodes = ChefUtil.searchNodes(search); // final JsonNode jsonNodes = JsonUtil.load(nodes); for (String node : nodes) { JsonNode json = JsonUtil.load(node); ChefUtil.deleteNode(json.get("name").getTextValue()); logger.debug("Deleted: " + json.get("name").getTextValue()); } search = "name%3A" + name1.substring(0, 9) + "*"; search = "name%3A" + "rds-*"; final List<String> clients = ChefUtil.searchClients(search); // final JsonNode jsonNodes = JsonUtil.load(nodes); for (String client : clients) { JsonNode json = JsonUtil.load(client); ChefUtil.deleteClient(json.get("name").getTextValue()); logger.debug("Deleted: " + json.get("name").getTextValue()); } }
@Test public void testClient() throws Exception { String json = ChefUtil.createClient(name1); assertThat("Create returns private key.", json, containsString("BEGIN")); assertThat("Create returns private key.", json, containsString("END")); json = ChefUtil.getClient(name1); assertThat("Client is created.", json, containsString("\"name\":\"" + name1)); json = ChefUtil.putClientAsAdmin(name1); assertThat("Client can be made admin.", json, containsString("\"admin\":true")); json = ChefUtil.getClient(name1); assertThat("Client is admin.", json, containsString("\"admin\":true")); }
@Test public void testNode() throws Exception { String jsonText = ChefUtil.createNode(name1); ChefUtil.putNodeAttribute(name1, "__TRANSCEND_TEST__", name1); logger.debug(jsonText); assertThat("Node is created.", jsonText, containsString(name1)); jsonText = ChefUtil.getNode(name1); logger.debug(jsonText); JsonNode json = JsonUtil.load(jsonText); // logger.debug(JsonUtil.toJsonPrettyPrintString(json)); assertThat("Node name is correct.", json.get("name").getTextValue(), is(name1)); }
@Test public void testDatabagAllInOne() throws Exception { final String bagContent = "{\"One\":\"one\", " + "\"Two\":\"two\"}"; ChefUtil.createDatabagItem(bag1, "item1", bagContent); ChefUtil.createDatabagItem(bag1, "item2", bagContent); String json = ChefUtil.getDatabagItem(bag1, "item1"); assertThat("Databag is created, item set.", json, containsString("Two")); ChefUtil.deleteDatabagItem(bag1, "item1"); ChefUtil.deleteDatabag(bag1); }
@Test(expected = ChefUtil.InvalidChefRequest.class) public void testClientBadArgs() throws Exception { String oldClientId = chefUtil.getChefClientId(); try { chefUtil.setChefClientId("some-bad-garbage-id"); String json = ChefUtil.createClient(name2); logger.debug("Got response:" + json); json = ChefUtil.getClient(name2); logger.debug("Got response:" + json); } finally { chefUtil.setChefClientId(oldClientId); } }
@AfterClass public static void cleanupCreated() throws Exception { try { ChefUtil.deleteClient(name1); } catch (Exception e) { // ignore. } try { ChefUtil.deleteDatabag(bag1); } catch (Exception e) { // ignore. } try { ChefUtil.deleteNode(name1); } catch (Exception e) { // ignore. } }
@Test public void testSearchNode() throws Exception { try { ChefUtil.createNode(name1); ChefUtil.putNodeAttribute(name1, "__TRANSCEND_TEST__", name1); } catch (Exception e) { // ignore failure; may have already been created. } // Search for :"name:chefutil-*"; String search = "name%3A" + name1.substring(0, 9) + "*"; final List<String> nodes = ChefUtil.searchNodes(search); // final JsonNode jsonNodes = JsonUtil.load(nodes); for (String node : nodes) { JsonNode json = JsonUtil.load(node); logger.debug(JsonUtil.toJsonPrettyPrintString(json)); } }
@Test public void testNodeUpdateRunlist() throws Exception { try { ChefUtil.createNode(name1); ChefUtil.putNodeAttribute(name1, "__TRANSCEND_TEST__", name1); } catch (Exception e) { // ignore failure; may have already been created. } String jsonText = ChefUtil.putNodeRunlist(name1, "role[transcend_defaultrole]"); logger.debug(jsonText); jsonText = ChefUtil.getNode(name1); JsonNode json = JsonUtil.load(jsonText); logger.debug(JsonUtil.toJsonPrettyPrintString(json)); assertThat("Node name is correct.", json.get("name").getTextValue(), is(name1)); assertThat( "Node attributes are intact.", json.get("normal").toString(), containsString("__TRANSCEND_TEST__")); }
@Test public void testDatabag() throws Exception { String json = ChefUtil.createDatabag(bag1); assertThat("Databag is created.", json, containsString(bag1)); json = ChefUtil.createDatabagItem(bag1, "item1"); assertThat("Databag item is created.", json, containsString("\"id\":\"item1\"")); final String databag = ChefUtil.getDatabag(bag1); logger.debug("Got databag:" + databag); // final JsonNode json = JsonUtil.load(databag); ChefUtil.putDatabagItem(bag1, "item1", "{\"id\":\"item1\",\"f\":\"fff\"}"); json = ChefUtil.getDatabagItem(bag1, "item1"); assertThat("Databag item put ok.", json, containsString("\"f\":\"fff\"")); ChefUtil.deleteDatabagItem(bag1, "item1"); ChefUtil.deleteDatabag(bag1); }
@Test public void testBasicGet() throws Exception { final String json = ChefUtil.executeJson("GET", "/clients", ""); assertNotNull("client response is valid", json); }