You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2018/01/08 14:55:48 UTC
[07/21] jclouds-labs git commit: Promoted Azure ARM to the main repo
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VaultApiMockTest.java
----------------------------------------------------------------------
diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VaultApiMockTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VaultApiMockTest.java
deleted file mode 100644
index 7459f48..0000000
--- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VaultApiMockTest.java
+++ /dev/null
@@ -1,1619 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache 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
- *
- * http://www.apache.org/licenses/LICENSE-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 org.jclouds.azurecompute.arm.features;
-
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import java.util.List;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.Arrays;
-import java.util.ArrayList;
-
-import org.jclouds.azurecompute.arm.domain.Certificate;
-import org.jclouds.azurecompute.arm.domain.Certificate.AdministrationDetails;
-import org.jclouds.azurecompute.arm.domain.Certificate.CertificateAttributes;
-import org.jclouds.azurecompute.arm.domain.Certificate.CertificateBundle;
-import org.jclouds.azurecompute.arm.domain.Certificate.CertificateIssuer;
-import org.jclouds.azurecompute.arm.domain.Certificate.CertificateOperation;
-import org.jclouds.azurecompute.arm.domain.Certificate.CertificatePolicy;
-import org.jclouds.azurecompute.arm.domain.Certificate.Contact;
-import org.jclouds.azurecompute.arm.domain.Certificate.Contacts;
-import org.jclouds.azurecompute.arm.domain.Certificate.DeletedCertificate;
-import org.jclouds.azurecompute.arm.domain.Certificate.DeletedCertificateBundle;
-import org.jclouds.azurecompute.arm.domain.Certificate.IssuerBundle;
-import org.jclouds.azurecompute.arm.domain.Certificate.IssuerCredentials;
-import org.jclouds.azurecompute.arm.domain.Certificate.IssuerParameters;
-import org.jclouds.azurecompute.arm.domain.Certificate.KeyProperties;
-import org.jclouds.azurecompute.arm.domain.Certificate.OrganizationDetails;
-import org.jclouds.azurecompute.arm.domain.Certificate.SecretProperties;
-import org.jclouds.azurecompute.arm.domain.Certificate.X509CertificateProperties;
-import org.jclouds.azurecompute.arm.domain.Key;
-import org.jclouds.azurecompute.arm.domain.Key.DeletedKeyBundle;
-import org.jclouds.azurecompute.arm.domain.Key.JsonWebKey;
-import org.jclouds.azurecompute.arm.domain.Key.KeyAttributes;
-import org.jclouds.azurecompute.arm.domain.Key.KeyBundle;
-import org.jclouds.azurecompute.arm.domain.Key.KeyOperationResult;
-import org.jclouds.azurecompute.arm.domain.SKU;
-import org.jclouds.azurecompute.arm.domain.Secret;
-import org.jclouds.azurecompute.arm.domain.Secret.DeletedSecretBundle;
-import org.jclouds.azurecompute.arm.domain.Secret.SecretAttributes;
-import org.jclouds.azurecompute.arm.domain.Secret.SecretBundle;
-import org.jclouds.azurecompute.arm.domain.Vault;
-import org.jclouds.azurecompute.arm.domain.Vault.DeletedVault;
-import org.jclouds.azurecompute.arm.domain.VaultProperties;
-import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.rest.ResourceNotFoundException;
-import org.testng.SkipException;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-
-@Test(groups = "unit", testName = "VaultApiMockTest", singleThreaded = true)
-public class VaultApiMockTest extends BaseAzureComputeApiMockTest {
- private final String subscriptionId = "SUBSCRIPTIONID";
- private final String resourceGroup = "myresourcegroup";
- private final String tenantId = "myTenantId";
- private final String identityObjId = "myIdentityObjectId";
- private final String vaultName = "kvvaultapimocktest";
- private final String apiVersion = "api-version=2016-10-01";
- private final String location = "westeurope";
- private URI vaultUri;
-
- private static String KEY_NAME = "myKey";
- private static String TEMP_KEY_NAME = "myTempKey";
- private static String IMPORT_KEY_NAME = "myImportKey";
- private static String RECOVERABLE_KEY_NAME = "myRecoverableKey";
- private static String SECRET_NAME = "mySecret";
- private static String RECOVERABLE_SECRET_NAME = "myRecoverableSecret";
- private static String CERTIFICATE_NAME = "myCertificate";
- private static String TEMP_CERTIFICATE_NAME = "myTempCertificate";
- private static String RECOVERABLE_CERTIFICATE_NAME = "myRecoverableCertificate";
- private static String IMPORTABLE_CERTIFICATE_NAME = "myImportableCertificate";
- private static String CERTIFICATE_ISSUER_NAME = "globalsign01";
- private String IMPORTABLE_CERTIFICATE_PEM = stringFromResource("/vaultimportablecert.txt");
- private String sampleSecret = stringFromResource("/vaultsamplesecret.txt");
- private String keyBackup = stringFromResource("/vaultkeybackup.txt");
- private String secretBackup = stringFromResource("/vaultsecretbackup.txt");
- private String[] mergeX5C = {
- stringFromResource("/vaultmergex5c-1.txt"),
- stringFromResource("/vaultmergex5c-2.txt"),
- stringFromResource("/vaultmergex5c-3.txt")
- };
- private static String cryptoText = "R29sZCUyNTIxJTJCR29sZCUyNTIxJTJCR2" +
- "9sZCUyQmZyb20lMkJ0aGUlMkJBbWVyaWNhbiUyQlJpdmVyJTI1MjE";
- private static String cryptoAlgorithm = "RSA-OAEP";
- private static String hashToSign = "FvabKT6qGwpml59iHUJ72DZ4XyJcJ8bgpgFA4_8JFmM";
- private static String signatureAlgorithm = "RS256";
- private static String contentEncryptionKey = "YxzoHR65aFwD2_IOiZ5rD08jMSALA1y7b_yYW0G3hyI";
- private static String keyDecryptData = "0_S8pyjjnGRlcbDa-Lt0jYjMXpXrf9Fat3elx-fSO" +
- "g3dj6mYgEEs6kt79OMD4MFmVyOt6umeWAfdDIkNVnqb5fgyWceveh9wN-37jc5CFgG2PF3XI" +
- "A6RII-HF2BkBcVa9KcAX3_di4KQE70PXgHf-dlz_RgLOJILeG50wzFeBFCLsjEEPp3itmoai" +
- "E6vfDidCRm5At8Vjka0G-N_afwkIijfQZLT0VaXvL39cIJE2QN3HJPZM8YPUlkFlYnY4GIRy" +
- "RWSBpK_KYuVufzUGtDi6Sh8pUa67ppa7DHVZlixlmnVqI3Oeg6XUvMqbFFqVSrcNbRQDwVGL" +
- "3cUtK-KB1PfKg";
- private static String keySignedData = "uO0r4P1cB-fKsDZ8cj5ahiNw8Tdsudt5zLCeEKOt29" +
- "LAlPDpeGx9Q1SOFNaR7JlRYVelxsohdzvydwX8ao6MLnqlpdEj0Xt5Aadp-kN84AXW238gab" +
- "S1AUyiWILCmdsBFeRU4wTRSxz2qGS_0ztHkaNln32P_9GJC72ZRlgZoVA4C_fowZolUoCWGj" +
- "4V7fAzcSoiNYipWP0HkFe3xmuz-cSQg3CCAs-MclHHfMeSagLJZZQ9bpl5LIr-Ik89bNtqEq" +
- "yP7Jb_fCgHajAx2lUFcRZhSIKuCfrLPMl6wzejQ2rQXX-ixEkDa73dYaPIrVW4IL3iC0Ufxn" +
- "fxYffHJ7QCRw";
- private static String keyWrappedData = "1jcTlu3KJNDBYydhaH9POWOo0tAPGkpsZVizCkHpC" +
- "3g_9Kg91Q3HKK-rfZynn5W5nVPM-SVFHA3JTankcXX8gx8GycwUh4pMoyil_DV35m2QjyuiT" +
- "ln83OJXw-nMvRXyKdVfF7nyRcs256kW7gthAOsYUVBrfFS7DFFxsXqLNREsA8j85IqIXIm8p" +
- "AB3C9uvl1I7SQhLvrwZZXXqjeCWMfseVJwWgsQFyyqH2P0f3-xnngV7cvik2k3Elrk3G_2Cu" +
- "JCozIIrANg9zG9Z8DrwSNNm9YooxWkSu0ZeDLOJ0bMdhcPGGm5OvKz3oZqX-39yv5klNlCRb" +
- "r0q7gqmI0x25w";
-
- @BeforeMethod
- public void start() throws IOException, URISyntaxException {
- super.start();
- vaultUri = server.getUrl("").toURI();
- }
-
- public void createVault() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultcreate.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- Vault vault = vaultApi.createOrUpdateVault(vaultName, location, VaultProperties.builder()
- .tenantId(this.tenantId)
- .sku(SKU.create(location, "standard", null, "A"))
- .accessPolicies(ImmutableList.of(VaultProperties.AccessPolicyEntry.create(null, this.identityObjId, this.tenantId,
- VaultProperties.Permissions.create(
- ImmutableList.of( // certificates
- "Get",
- "List",
- "Update",
- "Create",
- "Import",
- "Delete",
- "ManageContacts",
- "ManageIssuers",
- "GetIssuers",
- "ListIssuers",
- "SetIssuers",
- "DeleteIssuers",
- "Purge",
- "Recover"
- ),
- ImmutableList.of( // keys
- "Get",
- "List",
- "Update",
- "Create",
- "Import",
- "Delete",
- "Recover",
- "Backup",
- "Restore",
- "Purge",
- "Encrypt",
- "Decrypt",
- "Sign",
- "Verify",
- "WrapKey",
- "UnwrapKey"
- ),
- ImmutableList.of( // secrets
- "Get",
- "List",
- "Set",
- "Delete",
- "Recover",
- "Backup",
- "Restore",
- "Purge"
- ),
- ImmutableList.<String>of()
- ))))
- .build(),
- null);
-
- String path = String.format(
- "/subscriptions/%s/resourcegroups/%s/providers/Microsoft.KeyVault/vaults/%s?%s",
- subscriptionId, resourceGroup, vaultName, apiVersion
- );
- assertSent(server, "PUT", path, stringFromResource("/vaultcreaterequestbody.json"));
-
- assertNotNull(vault);
- assertNotNull(vault.properties().vaultUri());
- assertTrue(!vault.name().isEmpty());
- }
-
- public void listVaults() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultlist.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<Vault> vaults = vaultApi.listVaults();
-
- String path = String.format(
- "/subscriptions/%s/resourcegroups/%s/providers/Microsoft.KeyVault/vaults?%s",
- subscriptionId, resourceGroup, apiVersion
- );
- assertSent(server, "GET", path);
-
- assertNotNull(vaults);
- assertTrue(vaults.size() > 0);
- assertTrue(!vaults.get(0).name().isEmpty());
- }
-
- public void listVaultsReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<Vault> vaults = vaultApi.listVaults();
-
- String path = String.format(
- "/subscriptions/%s/resourcegroups/%s/providers/Microsoft.KeyVault/vaults?%s",
- subscriptionId, resourceGroup, apiVersion
- );
- assertSent(server, "GET", path);
-
- assertTrue(vaults.isEmpty());
- }
-
- public void getVault() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultget.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- Vault vault = vaultApi.getVault(vaultName);
-
- String path = String.format(
- "/subscriptions/%s/resourcegroups/%s/providers/Microsoft.KeyVault/vaults/%s?%s",
- subscriptionId, resourceGroup, vaultName, apiVersion
- );
- assertSent(server, "GET", path);
-
- assertNotNull(vault);
- assertTrue(!vault.name().isEmpty());
- }
-
- public void getVaultReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- Vault vault = vaultApi.getVault(vaultName);
-
- String path = String.format(
- "/subscriptions/%s/resourcegroups/%s/providers/Microsoft.KeyVault/vaults/%s?%s",
- subscriptionId, resourceGroup, vaultName, apiVersion
- );
- assertSent(server, "GET", path);
-
- assertNull(vault);
- }
-
- public void deleteVault() throws InterruptedException {
- server.enqueue(response200());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- boolean status = vaultApi.deleteVault(vaultName);
-
- String path = String.format(
- "/subscriptions/%s/resourcegroups/%s/providers/Microsoft.KeyVault/vaults/%s?%s",
- subscriptionId, resourceGroup, vaultName, apiVersion
- );
- assertSent(server, "DELETE", path);
-
- assertTrue(status);
- }
-
- public void deleteVaultReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- boolean status = vaultApi.deleteVault(vaultName);
-
- String path = String.format(
- "/subscriptions/%s/resourcegroups/%s/providers/Microsoft.KeyVault/vaults/%s?%s",
- subscriptionId, resourceGroup, vaultName, apiVersion
- );
- assertSent(server, "DELETE", path);
-
- assertFalse(status);
- }
-
- public void purgeDeletedVault() throws InterruptedException {
- server.enqueue(response200());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- boolean status = vaultApi.purgeVault(location, vaultName);
-
- String path = String.format(
- "/subscriptions/%s/providers/Microsoft.KeyVault/locations/%s/deletedVaults/%s/purge?%s",
- subscriptionId, location, vaultName, apiVersion
- );
- assertSent(server, "POST", path);
-
- assertTrue(status);
- }
-
- public void purgeDeletedVaultReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- boolean status = vaultApi.purgeVault(location, vaultName);
-
- String path = String.format(
- "/subscriptions/%s/providers/Microsoft.KeyVault/locations/%s/deletedVaults/%s/purge?%s",
- subscriptionId, location, vaultName, apiVersion
- );
- assertSent(server, "POST", path);
-
- assertFalse(status);
- }
-
- public void listDeletedVaults() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultlistdeleted.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<DeletedVault> vaults = vaultApi.listDeletedVaults();
-
- String path = String.format(
- "/subscriptions/%s/providers/Microsoft.KeyVault/deletedVaults?%s",
- subscriptionId, apiVersion
- );
- assertSent(server, "GET", path);
-
- assertNotNull(vaults);
- assertTrue(vaults.size() > 0);
- }
-
- public void listDeletedVaultsReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<DeletedVault> vaults = vaultApi.listDeletedVaults();
-
- String path = String.format(
- "/subscriptions/%s/providers/Microsoft.KeyVault/deletedVaults?%s",
- subscriptionId, apiVersion
- );
- assertSent(server, "GET", path);
-
- assertTrue(vaults.isEmpty());
- }
-
- public void getDeletedVault() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultgetdeleted.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- DeletedVault vault = vaultApi.getDeletedVault(location, vaultName);
-
- String path = String.format(
- "/subscriptions/%s/providers/Microsoft.KeyVault/locations/%s/deletedVaults/%s?%s",
- subscriptionId, location, vaultName, apiVersion
- );
- assertSent(server, "GET", path);
-
- assertNotNull(vault);
- assertTrue(!vault.name().isEmpty());
- assertTrue(!vault.properties().deletionDate().toString().isEmpty());
- }
-
- public void getDeletedVaultReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- DeletedVault vault = vaultApi.getDeletedVault(location, vaultName);
-
- String path = String.format(
- "/subscriptions/%s/providers/Microsoft.KeyVault/locations/%s/deletedVaults/%s?%s",
- subscriptionId, location, vaultName, apiVersion
- );
- assertSent(server, "GET", path);
-
- assertNull(vault);
- }
-
-
- // Key mock tests
- public void listKeys() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultlistkeys.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<Key> keys = vaultApi.listKeys(vaultUri);
-
- String path = String.format("/keys?%s", apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(keys);
- assertTrue(keys.size() > 0);
- }
-
- public void listKeysReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<Key> keys = vaultApi.listKeys(vaultUri);
-
- String path = String.format("/keys?%s", apiVersion);
- assertSent(server, "GET", path);
-
- assertTrue(keys.isEmpty());
- }
-
- public void createKey() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultcreatekey.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- KeyAttributes keyAttr = KeyAttributes.create(true, null, null, null, null, null);
- KeyBundle keyBundle = vaultApi.createKey(vaultUri,
- KEY_NAME,
- keyAttr,
- null,
- null,
- 2048,
- "RSA",
- null
- );
-
- String path = String.format("/keys/%s/create?%s", KEY_NAME, apiVersion);
- assertSent(server, "POST", path, stringFromResource("/vaultcreatekeyrequestbody.json"));
-
- assertNotNull(keyBundle);
- assertNotNull(keyBundle.attributes().created());
- }
-
- public void importKey() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultcreatekey.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- KeyAttributes keyAttr = KeyAttributes.create(true, null, null, null, null, null);
- List<String> keyOps = new ArrayList<String>();
- keyOps.add("encrypt");
- JsonWebKey keyInfo = JsonWebKey.create(
- null,
- "DjU54mYvHpICXHjc5-JiFqiH8NkUgOG8LL4kwt3DeBp9bP0-5hSJH8vmzwJkeGG9L79EWG4b_bfxgYdeNX7cFFagmW" +
- "PRFrlxbd64VRYFawZHRJt-2cbzMVI6DL8EK4bu5Ux5qTiV44Jw19hoD9nDzCTfPzSTSGrKD3iLPdnREYaIGDVxcjB" +
- "v3Tx6rrv3Z2lhHHKhEHb0RRjATcjAVKV9NZhMajJ4l9pqJ3A4IQrCBl95ux6Xm1oXP0i6aR78cjchsCpcMXdP3WMs" +
- "vHgTlsZT0RZLFHrvkiNHlPiil4G2_eHkwvT__CrcbO6SmI_zCtMmypuHJqcr-Xb7GPJoa64WoQ",
- "DB9nGuHplY_7Xv5a5UCs5YgxkWPtJFfbIZ1Zr-XHCCY09JIWReOGQG226OhjwixKtOK_OqmAKtMKM9OmKviJRHNbD" +
- "hbTxumN3u7cL8dftjXpSryiEQlPmWyW94MneI2WNIrvh4wruQuDt8EztgOiDFxwcnUgey8iend7WmZnE7E",
- "O-bSTUQ4N_UuQezgkF3TDrnBraO67leDGwRbfiE_U0ghQvqh5DA0QSPVzlWDZc9KUitvj8vxsR9o1PW9GS0an17GJ" +
- "EYuetLnkShKK3NWOhBBX6d1yP9rVdH6JhgIJEy_g0Suz7TAFiFc8i7JF8u4QJ05C8bZAMhOLotqftQeVOM",
- "AQAB",
- null,
- null,
- keyOps,
- null,
- "RSA",
- "33TqqLR3eeUmDtHS89qF3p4MP7Wfqt2Zjj3lZjLjjCGDvwr9cJNlNDiuKboODgUiT4ZdPWbOiMAfDcDzlOxA04DDnEF" +
- "GAf-kDQiNSe2ZtqC7bnIc8-KSG_qOGQIVaay4Ucr6ovDkykO5Hxn7OU7sJp9TP9H0JH8zMQA6YzijYH9LsupTerrY" +
- "3U6zyihVEDXXOv08vBHk50BMFJbE9iwFwnxCsU5-UZUZYw87Uu0n4LPFS9BT8tUIvAfnRXIEWCha3KbFWmdZQZlyr" +
- "Fw0buUEf0YN3_Q0auBkdbDR_ES2PbgKTJdkjc_rEeM0TxvOUf7HuUNOhrtAVEN1D5uuxE1WSw",
- "8K33pX90XX6PZGiv26wZm7tfvqlqWFT03nUMvOAytqdxhO2HysiPn4W58OaJd1tY4372Qpiv6enmUeI4MidCie-s-d0" +
- "_B6A0xfhU5EeeaDN0xDOOl8yN-kaaVj9b4HDR3c91OAwKpDJQIeJVZtxoijxl-SRx3u7Vs_7meeSpOfE",
- "7a5KnUs1pTo72A-JquJvIz4Eu794Yh3ftTk_Et-83aE_FVc6Nk-EhfnwYSNpVmM6UKdrAoy5gsCvZPxrq-eR9pEwU8M" +
- "5UOlki03vWY_nqDBpJSIqwPvGHUB16zvggsPQUyQBfnN3N8XlDi12n88ltvWwEhn1LQOwMUALEfka9_s",
- "InfGmkb2jNkPGuNiZ-mU0-ZrOgLza_fLL9ErZ35jUPhGFzdGxJNobklvsNoTd-E2GAU41YkJh24bncMLvJVYxHHA5iF" +
- "7FBWx1SvpEyKVhhnIcuXGD7N5PbNZzEdmr9C6I7cPVkWO-sUV7zfFukexIcANmsd_oBBGKRoYzP5Tti4",
- null,
- null
- );
- KeyBundle importedKey = vaultApi.importKey(vaultUri, IMPORT_KEY_NAME, false, keyAttr, keyInfo, null);
-
- String path = String.format("/keys/%s?%s", IMPORT_KEY_NAME, apiVersion);
- assertSent(server, "PUT", path, stringFromResource("/vaultimportkeyrequestbody.json"));
-
- assertNotNull(importedKey);
- assertNotNull(importedKey.attributes().created());
- }
-
- public void getKey() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultgetkey.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- KeyBundle key = vaultApi.getKey(vaultUri, KEY_NAME);
-
- String path = String.format("/keys/%s?%s", KEY_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(key);
- assertNotNull(key.attributes().created());
- }
-
- public void getKeyReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- KeyBundle key = vaultApi.getKey(vaultUri, KEY_NAME);
-
- String path = String.format("/keys/%s?%s", KEY_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNull(key);
- }
-
- public void deleteKey() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultdeletekey.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- DeletedKeyBundle key = vaultApi.deleteKey(vaultUri, KEY_NAME);
-
- String path = String.format("/keys/%s?%s", KEY_NAME, apiVersion);
- assertSent(server, "DELETE", path);
-
- assertNotNull(key);
- assertNotNull(key.attributes().created());
- }
-
- public void deleteKeyReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- DeletedKeyBundle key = vaultApi.deleteKey(vaultUri, KEY_NAME);
-
- String path = String.format("/keys/%s?%s", KEY_NAME, apiVersion);
- assertSent(server, "DELETE", path);
-
- assertNull(key);
- }
-
- public void getKeyVersions() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultgetkeyversions.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<Key> keys = vaultApi.getKeyVersions(vaultUri, KEY_NAME);
-
- String path = String.format("/keys/%s/versions?%s", KEY_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(keys);
- assertTrue(keys.size() > 0);
- assertNotNull(keys.get(0).attributes().created());
- }
-
- public void getKeyVersionsReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<Key> keys = vaultApi.getKeyVersions(vaultUri, KEY_NAME);
-
- String path = String.format("/keys/%s/versions?%s", KEY_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertTrue(keys.isEmpty());
- }
-
- public void updateKey() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultupdatekey.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- Map<String, String> tags = new HashMap<String, String>();
- tags.put("purpose", "testing");
- KeyBundle updatedKey = vaultApi.updateKey(vaultUri, KEY_NAME, null, null, null, tags);
-
- String path = String.format("/keys/%s?%s", KEY_NAME, apiVersion);
- assertSent(server, "PATCH", path, stringFromResource("/vaultupdatekeyrequestbody.json"));
-
- assertNotNull(updatedKey);
- assertNotNull(updatedKey.attributes().created());
- }
-
- public void updateKeyWithVersion() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultupdatekeywithversion.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- String keyVersion = "bd6566ec707e4ad89f4ab9577d9d0bef";
- Map<String, String> tags = new HashMap<String, String>();
- tags.put("purpose", "testing");
- KeyBundle updatedKey = vaultApi.updateKey(vaultUri, KEY_NAME, keyVersion, null, null, tags);
-
- String path = String.format("/keys/%s/%s?%s", KEY_NAME, keyVersion, apiVersion);
- assertSent(server, "PATCH", path, stringFromResource("/vaultupdatekeyrequestbody.json"));
-
- assertNotNull(updatedKey);
- assertNotNull(updatedKey.attributes().created());
- }
-
- public void backupKey() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultbackupkey.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- String keyBackup = vaultApi.backupKey(vaultUri, KEY_NAME);
-
- String path = String.format("/keys/%s/backup?%s", KEY_NAME, apiVersion);
- assertSent(server, "POST", path);
-
- assertNotNull(keyBackup);
- assertTrue(keyBackup.length() > 0);
- }
-
- public void restoreKey() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultrestorekey.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- KeyBundle restoredKey = vaultApi.restoreKey(vaultUri, keyBackup);
-
- String path = String.format("/keys/restore?%s", apiVersion);
- assertSent(server, "POST", path, stringFromResource("/vaultrestorekeyrequestbody.json"));
-
- assertNotNull(restoredKey);
- assertNotNull(restoredKey.attributes().created());
- }
-
- public void listDeletedKeys() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultlistdeletedkeys.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<DeletedKeyBundle> keys = vaultApi.listDeletedKeys(vaultUri);
-
- String path = String.format("/deletedkeys?%s", apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(keys);
- assertTrue(keys.size() > 0);
- }
-
- public void listDeletedKeysReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<DeletedKeyBundle> keys = vaultApi.listDeletedKeys(vaultUri);
-
- String path = String.format("/deletedkeys?%s", apiVersion);
- assertSent(server, "GET", path);
-
- assertTrue(keys.isEmpty());
- }
-
- public void getDeletedKey() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultgetdeletedkey.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- DeletedKeyBundle key = vaultApi.getDeletedKey(vaultUri, RECOVERABLE_KEY_NAME);
-
- String path = String.format("/deletedkeys/%s?%s", RECOVERABLE_KEY_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(key);
- assertTrue(!key.deletedDate().isEmpty());
- }
-
- public void getDeletedKeyReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- DeletedKeyBundle key = vaultApi.getDeletedKey(vaultUri, RECOVERABLE_KEY_NAME);
-
- String path = String.format("/deletedkeys/%s?%s", RECOVERABLE_KEY_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNull(key);
- }
-
- public void recoverDeletedKey() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultrecoverdeletedkey.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- KeyBundle key = vaultApi.recoverDeletedKey(vaultUri, RECOVERABLE_KEY_NAME);
-
- String path = String.format("/deletedkeys/%s/recover?%s", RECOVERABLE_KEY_NAME, apiVersion);
- assertSent(server, "POST", path);
-
- assertNotNull(key);
- assertNotNull(key.attributes().created());
- }
-
- public void purgeDeletedKey() throws InterruptedException {
- server.enqueue(response200());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- boolean status = vaultApi.purgeDeletedKey(vaultUri, RECOVERABLE_KEY_NAME);
-
- String path = String.format("/deletedkeys/%s?%s", RECOVERABLE_KEY_NAME, apiVersion);
- assertSent(server, "DELETE", path);
-
- assertTrue(status);
- }
-
- public void purgeDeletedKeyReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- boolean status = vaultApi.purgeDeletedKey(vaultUri, RECOVERABLE_KEY_NAME);
-
- String path = String.format("/deletedkeys/%s?%s", RECOVERABLE_KEY_NAME, apiVersion);
- assertSent(server, "DELETE", path);
-
- assertFalse(status);
- }
-
- public void encrypt() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultkeyencrypt.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- KeyOperationResult encryptResult = vaultApi.encrypt(vaultUri,
- KEY_NAME,
- null,
- cryptoAlgorithm,
- cryptoText
- );
-
- String path = String.format("/keys/%s/encrypt?%s", KEY_NAME, apiVersion);
- assertSent(server, "POST", path, stringFromResource("/vaultkeyencryptrequestbody.json"));
-
- assertNotNull(encryptResult);
- assertTrue(!encryptResult.value().isEmpty());
- }
-
- public void decrypt() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultkeydecrypt.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- KeyOperationResult decryptResult = vaultApi.decrypt(vaultUri,
- KEY_NAME,
- null,
- cryptoAlgorithm,
- keyDecryptData
- );
-
- String path = String.format("/keys/%s/decrypt?%s", KEY_NAME, apiVersion);
- assertSent(server, "POST", path, stringFromResource("/vaultkeydecryptrequestbody.json"));
-
- assertNotNull(decryptResult);
- assertTrue(!decryptResult.value().isEmpty());
- }
-
- public void sign() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultkeysign.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- KeyOperationResult signResult = vaultApi.sign(vaultUri,
- KEY_NAME,
- null,
- signatureAlgorithm,
- hashToSign
- );
-
- String path = String.format("/keys/%s/sign?%s", KEY_NAME, apiVersion);
- assertSent(server, "POST", path, stringFromResource("/vaultkeysignrequestbody.json"));
-
- assertNotNull(signResult);
- assertTrue(!signResult.value().isEmpty());
- }
-
- public void verify() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultkeyverify.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- boolean verifyResult = vaultApi.verify(vaultUri,
- KEY_NAME,
- null,
- signatureAlgorithm,
- hashToSign,
- keySignedData
- );
-
- String path = String.format("/keys/%s/verify?%s", KEY_NAME, apiVersion);
- assertSent(server, "POST", path, stringFromResource("/vaultkeyverifyrequestbody.json"));
-
- assertTrue(verifyResult);
- }
-
- public void wrap() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultkeywrap.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- KeyOperationResult wrapResult = vaultApi.wrap(vaultUri,
- KEY_NAME,
- null,
- cryptoAlgorithm,
- contentEncryptionKey
- );
-
- String path = String.format("/keys/%s/wrapkey?%s", KEY_NAME, apiVersion);
- assertSent(server, "POST", path, stringFromResource("/vaultkeywraprequestbody.json"));
-
- assertNotNull(wrapResult);
- assertTrue(!wrapResult.value().isEmpty());
- }
-
- public void unwrap() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultkeyunwrap.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- KeyOperationResult unwrapResult = vaultApi.unwrap(vaultUri,
- KEY_NAME,
- null,
- cryptoAlgorithm,
- keyWrappedData
- );
-
- String path = String.format("/keys/%s/unwrapkey?%s", KEY_NAME, apiVersion);
- assertSent(server, "POST", path, stringFromResource("/vaultkeyunwraprequestbody.json"));
-
- assertNotNull(unwrapResult);
- assertTrue(!unwrapResult.value().isEmpty());
- }
-
- // Secret mock tests
- public void listSecrets() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultlistsecrets.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<Secret> secrets = vaultApi.listSecrets(vaultUri);
-
- String path = String.format("/secrets?%s", apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(secrets);
- assertTrue(secrets.size() > 0);
- }
-
- public void listSecretsReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<Secret> secrets = vaultApi.listSecrets(vaultUri);
-
- String path = String.format("/secrets?%s", apiVersion);
- assertSent(server, "GET", path);
-
- assertTrue(secrets.isEmpty());
- }
-
- public void setSecret() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultsetsecret.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- SecretAttributes attributes = SecretAttributes.create(true, null, null, null, null, null);
- SecretBundle secretBundle = vaultApi.setSecret(vaultUri,
- SECRET_NAME,
- attributes,
- "testSecretKey",
- null,
- sampleSecret
- );
-
- String path = String.format("/secrets/%s?%s", SECRET_NAME, apiVersion);
- assertSent(server, "PUT", path, stringFromResource("/vaultsetsecretrequestbody.json"));
-
- assertNotNull(secretBundle);
- assertTrue(!secretBundle.id().isEmpty());
- }
-
- public void getSecret() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultgetsecret.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- SecretBundle secret = vaultApi.getSecret(vaultUri, SECRET_NAME, null);
-
- String path = String.format("/secrets/%s?%s", SECRET_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(secret);
- assertNotNull(secret.attributes().created());
- }
-
- public void getSecretReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- SecretBundle secret = vaultApi.getSecret(vaultUri, SECRET_NAME, null);
-
- String path = String.format("/secrets/%s?%s", SECRET_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNull(secret);
- }
-
- public void deleteSecret() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultdeletesecret.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- DeletedSecretBundle secret = vaultApi.deleteSecret(vaultUri, SECRET_NAME);
-
- String path = String.format("/secrets/%s?%s", SECRET_NAME, apiVersion);
- assertSent(server, "DELETE", path);
-
- assertNotNull(secret);
- assertNotNull(secret.attributes().created());
- }
-
- public void deleteSecretReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- DeletedSecretBundle secret = vaultApi.deleteSecret(vaultUri, SECRET_NAME);
-
- String path = String.format("/secrets/%s?%s", SECRET_NAME, apiVersion);
- assertSent(server, "DELETE", path);
-
- assertNull(secret);
- }
-
- public void getSecretVersions() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultgetsecretversions.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<Secret> secrets = vaultApi.getSecretVersions(vaultUri, SECRET_NAME);
-
- String path = String.format("/secrets/%s/versions?%s", SECRET_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(secrets);
- assertTrue(secrets.size() > 0);
- assertNotNull(secrets.get(0).attributes().created());
- }
-
- public void getSecretVersionsReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<Secret> secrets = vaultApi.getSecretVersions(vaultUri, SECRET_NAME);
-
- String path = String.format("/secrets/%s/versions?%s", SECRET_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertTrue(secrets.isEmpty());
- }
-
- public void updateSecret() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultupdatekey.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- Map<String, String> tags = new HashMap<String, String>();
- tags.put("purpose", "testing");
- SecretBundle updatedSecret = vaultApi.updateSecret(vaultUri, SECRET_NAME, null, null, null, tags);
-
- String path = String.format("/secrets/%s?%s", SECRET_NAME, apiVersion);
- assertSent(server, "PATCH", path, stringFromResource("/vaultupdatesecretrequestbody.json"));
-
- assertNotNull(updatedSecret);
- assertNotNull(updatedSecret.attributes().created());
- }
-
- public void updateSecretWithVersion() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultupdatesecretwithversion.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- String secretVersion = "b936ececbc674f3bb1367ae50d28ada0";
- Map<String, String> tags = new HashMap<String, String>();
- tags.put("purpose", "testing again");
- SecretBundle updatedSecret = vaultApi.updateSecret(vaultUri, SECRET_NAME, secretVersion, null, null, tags);
-
- String path = String.format("/secrets/%s/%s?%s", SECRET_NAME, secretVersion, apiVersion);
- assertSent(server, "PATCH", path, stringFromResource("/vaultupdatesecretwithversionrequestbody.json"));
-
- assertNotNull(updatedSecret);
- assertNotNull(updatedSecret.attributes().created());
- }
-
- public void backupSecret() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultbackupsecret.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- String secretBackup = vaultApi.backupSecret(vaultUri, SECRET_NAME);
-
- String path = String.format("/secrets/%s/backup?%s", SECRET_NAME, apiVersion);
- assertSent(server, "POST", path);
-
- assertNotNull(secretBackup);
- assertTrue(secretBackup.length() > 0);
- }
-
- public void restoreSecret() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultrestoresecret.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- SecretBundle restoredSecret = vaultApi.restoreSecret(vaultUri, secretBackup);
-
- String path = String.format("/secrets/restore?%s", apiVersion);
- assertSent(server, "POST", path, stringFromResource("/vaultrestoresecretrequestbody.json"));
-
- assertNotNull(restoredSecret);
- assertNotNull(restoredSecret.attributes().created());
- }
-
- public void listDeletedSecrets() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultlistdeletedsecrets.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<DeletedSecretBundle> secrets = vaultApi.listDeletedSecrets(vaultUri);
-
- String path = String.format("/deletedsecrets?%s", apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(secrets);
- assertTrue(secrets.size() > 0);
- }
-
- public void listDeletedSecretsReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<DeletedSecretBundle> secrets = vaultApi.listDeletedSecrets(vaultUri);
-
- String path = String.format("/deletedsecrets?%s", apiVersion);
- assertSent(server, "GET", path);
-
- assertTrue(secrets.isEmpty());
- }
-
- public void getDeletedSecret() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultgetdeletedsecret.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- DeletedSecretBundle secret = vaultApi.getDeletedSecret(vaultUri, RECOVERABLE_SECRET_NAME);
-
- String path = String.format("/deletedsecrets/%s?%s", RECOVERABLE_SECRET_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(secret);
- assertTrue(!secret.deletedDate().isEmpty());
- }
-
- public void getDeletedSecretReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- DeletedSecretBundle secret = vaultApi.getDeletedSecret(vaultUri, RECOVERABLE_SECRET_NAME);
-
- String path = String.format("/deletedsecrets/%s?%s", RECOVERABLE_SECRET_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNull(secret);
- }
-
- public void recoverDeletedSecret() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultrecoverdeletedsecret.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- SecretBundle secret = vaultApi.recoverDeletedSecret(vaultUri, RECOVERABLE_SECRET_NAME);
-
- String path = String.format("/deletedsecrets/%s/recover?%s", RECOVERABLE_SECRET_NAME, apiVersion);
- assertSent(server, "POST", path);
-
- assertNotNull(secret);
- assertNotNull(secret.attributes().created());
- }
-
- public void purgeDeletedSecret() throws InterruptedException {
- server.enqueue(response200());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- boolean status = vaultApi.purgeDeletedSecret(vaultUri, RECOVERABLE_SECRET_NAME);
-
- String path = String.format("/deletedsecrets/%s?%s", RECOVERABLE_SECRET_NAME, apiVersion);
- assertSent(server, "DELETE", path);
-
- assertTrue(status);
- }
-
- public void purgeDeletedSecretReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- boolean status = vaultApi.purgeDeletedSecret(vaultUri, RECOVERABLE_SECRET_NAME);
-
- String path = String.format("/deletedsecrets/%s?%s", RECOVERABLE_SECRET_NAME, apiVersion);
- assertSent(server, "DELETE", path);
-
- assertFalse(status);
- }
-
- public void createCertificate() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultcreatecertificate.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- CertificatePolicy policy = CertificatePolicy.create(null,
- CERTIFICATE_NAME,
- IssuerParameters.create(null, "Self"),
- KeyProperties.create(false, 2048, "RSA", false),
- null,
- null,
- X509CertificateProperties.create(null, null, null, "CN=mycertificate.foobar.com", 12)
- );
- CertificateOperation certOp = vaultApi.createCertificate(vaultUri,
- CERTIFICATE_NAME,
- null,
- policy,
- null
- );
-
- String path = String.format("/certificates/%s/create?%s", CERTIFICATE_NAME, apiVersion);
- assertSent(server, "POST", path, stringFromResource("/vaultcreatecertificaterequestbody.json"));
-
- assertNotNull(certOp);
- assertTrue(!certOp.id().isEmpty());
- }
-
- public void getCertificate() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultgetcertificate.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- CertificateBundle cert = vaultApi.getCertificate(vaultUri, CERTIFICATE_NAME, null);
-
- String path = String.format("/certificates/%s?%s", CERTIFICATE_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(cert);
- assertTrue(!cert.id().isEmpty());
- }
-
- public void getCertificateReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- CertificateBundle cert = vaultApi.getCertificate(vaultUri, CERTIFICATE_NAME, null);
-
- String path = String.format("/certificates/%s?%s", CERTIFICATE_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNull(cert);
- }
-
- public void deleteCertificate() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultdeletecertificate.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- DeletedCertificateBundle cert = vaultApi.deleteCertificate(vaultUri, CERTIFICATE_NAME);
-
- String path = String.format("/certificates/%s?%s", CERTIFICATE_NAME, apiVersion);
- assertSent(server, "DELETE", path);
-
- assertNotNull(cert);
- assertTrue(!cert.id().isEmpty());
- }
-
- public void deleteCertificateReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- DeletedCertificateBundle cert = vaultApi.deleteCertificate(vaultUri, CERTIFICATE_NAME);
-
- String path = String.format("/certificates/%s?%s", CERTIFICATE_NAME, apiVersion);
- assertSent(server, "DELETE", path);
-
- assertNull(cert);
- }
-
- public void listCertificates() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultlistcertificates.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<Certificate> certs = vaultApi.getCertificates(vaultUri);
-
- String path = String.format("/certificates?%s", apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(certs);
- assertTrue(certs.size() > 0);
- }
-
- public void listCertificatesReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<Certificate> certs = vaultApi.getCertificates(vaultUri);
-
- String path = String.format("/certificates?%s", apiVersion);
- assertSent(server, "GET", path);
-
- assertTrue(certs.isEmpty());
- }
-
- public void listDeletedCertificates() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultlistdeletedcertificates.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<DeletedCertificate> certs = vaultApi.getDeletedCertificates(vaultUri);
-
- String path = String.format("/deletedcertificates?%s", apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(certs);
- assertTrue(certs.size() > 0);
- }
-
- public void listDeletedCertificatesReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<DeletedCertificate> certs = vaultApi.getDeletedCertificates(vaultUri);
-
- String path = String.format("/deletedcertificates?%s", apiVersion);
- assertSent(server, "GET", path);
-
- assertTrue(certs.isEmpty());
- }
-
- public void getDeletedCertificate() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultgetdeletedcertificate.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- DeletedCertificateBundle cert = vaultApi.getDeletedCertificate(vaultUri, RECOVERABLE_CERTIFICATE_NAME);
-
- String path = String.format("/deletedcertificates/%s?%s", RECOVERABLE_CERTIFICATE_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(cert);
- assertTrue(!cert.id().isEmpty());
- }
-
- public void getDeletedCertificateReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- DeletedCertificateBundle cert = vaultApi.getDeletedCertificate(vaultUri, RECOVERABLE_CERTIFICATE_NAME);
-
- String path = String.format("/deletedcertificates/%s?%s", RECOVERABLE_CERTIFICATE_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNull(cert);
- }
-
- public void recoverDeletedCertificate() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultrecoverdeletedcertificate.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- CertificateBundle cert = vaultApi.recoverDeletedCertificate(vaultUri, RECOVERABLE_CERTIFICATE_NAME);
-
- String path = String.format("/deletedcertificates/%s/recover?%s", RECOVERABLE_CERTIFICATE_NAME, apiVersion);
- assertSent(server, "POST", path);
-
- assertNotNull(cert);
- assertTrue(!cert.id().isEmpty());
- }
-
- public void purgeDeletedCertificate() throws InterruptedException {
- server.enqueue(response200());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- boolean status = vaultApi.purgeDeletedCertificate(vaultUri, RECOVERABLE_CERTIFICATE_NAME);
-
- String path = String.format("/deletedcertificates/%s?%s", RECOVERABLE_CERTIFICATE_NAME, apiVersion);
- assertSent(server, "DELETE", path);
-
- assertTrue(status);
- }
-
- public void purgeDeletedCertificateReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- boolean status = vaultApi.purgeDeletedCertificate(vaultUri, RECOVERABLE_CERTIFICATE_NAME);
-
- String path = String.format("/deletedcertificates/%s?%s", RECOVERABLE_CERTIFICATE_NAME, apiVersion);
- assertSent(server, "DELETE", path);
-
- assertFalse(status);
- }
-
- public void listCertificateVersions() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultlistcertificateversions.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<Certificate> certs = vaultApi.getCertificateVersions(vaultUri, CERTIFICATE_NAME);
-
- String path = String.format("/certificates/%s/versions?%s", CERTIFICATE_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(certs);
- assertTrue(certs.size() > 0);
- }
-
- public void listCertificateVersionsReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<Certificate> certs = vaultApi.getCertificateVersions(vaultUri, CERTIFICATE_NAME);
-
- String path = String.format("/certificates/%s/versions?%s", CERTIFICATE_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertTrue(certs.isEmpty());
- }
-
- public void updateCertificate() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultupdatecertificate.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- Map<String, String> tags = new HashMap<String, String>();
- tags.put("selfsigned", "true");
- CertificatePolicy policy = CertificatePolicy.create(null,
- CERTIFICATE_NAME,
- IssuerParameters.create(null, "Self"),
- KeyProperties.create(false, 2048, "RSA", false),
- null,
- null,
- X509CertificateProperties.create(null, null, null, "CN=mycertificate.foobar.com", 12)
- );
- CertificateBundle certBundle = vaultApi.updateCertificate(
- vaultUri,
- CERTIFICATE_NAME,
- null,
- null,
- policy,
- tags
- );
-
- String path = String.format("/certificates/%s?%s", CERTIFICATE_NAME, apiVersion);
- assertSent(server, "PATCH", path, stringFromResource("/vaultupdatecertificaterequestbody.json"));
-
- assertNotNull(certBundle);
- assertTrue(!certBundle.id().isEmpty());
- }
-
- public void updateCertificateVersion() {
- // Update the specific version of a certificate
-
- /*
- * XXX -- update using version complains about needing policy (required input), yet
- * passing in the same policy results in the error:
- *
- * Policy cannot be updated with a specific version of a certificate
- *
- * Will uncomment/fix once this issue is resolved.
- *
- */
- throw new SkipException("azure bug - update using version complains about needing policy");
- }
-
- public void importCertificate() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultimportcertificate.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- String certPem = IMPORTABLE_CERTIFICATE_PEM;
- CertificateBundle certBundle = null;
- try {
- certBundle = vaultApi.importCertificate(
- vaultUri,
- RECOVERABLE_CERTIFICATE_NAME,
- null,
- CertificatePolicy.create(
- null,
- null,
- null,
- null,
- null,
- SecretProperties.create("application/x-pem-file"),
- null
- ),
- null,
- null,
- certPem);
- } catch (ResourceNotFoundException rnf) {
- assertNotNull(rnf);
- }
-
- String path = String.format("/certificates/%s/import?%s", RECOVERABLE_CERTIFICATE_NAME, apiVersion);
- assertSent(server, "POST", path, stringFromResource("/vaultimportcertificaterequestbody.json"));
-
- assertNotNull(certBundle);
- assertTrue(!certBundle.id().isEmpty());
- }
-
- public void mergeCertificate() throws InterruptedException {
- // Merging a certificate is for when a CSR is signed by an external CA
- server.enqueue(jsonResponse("/vaultmergecertificate.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- CertificateAttributes attributes = CertificateAttributes.create(null, true, null, null, null, null);
- CertificateBundle certBundle = vaultApi.mergeCertificate(
- vaultUri,
- CERTIFICATE_NAME,
- attributes,
- null,
- Arrays.asList(mergeX5C)
- );
-
- String path = String.format("/certificates/%s/pending/merge?%s", CERTIFICATE_NAME, apiVersion);
- assertSent(server, "POST", path, stringFromResource("/vaultmergecertificaterequestbody.json"));
-
- assertNotNull(certBundle);
- assertTrue(!certBundle.attributes().created().toString().isEmpty());
- }
-
- public void getCertificateOperation() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultgetcertificateoperation.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- CertificateOperation certOp = vaultApi.getCertificateOperation(vaultUri, CERTIFICATE_NAME);
-
- String path = String.format("/certificates/%s/pending?%s", CERTIFICATE_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(certOp);
- assertTrue(!certOp.id().isEmpty());
- }
-
- public void getCertificateOperationReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- CertificateOperation certOp = vaultApi.getCertificateOperation(vaultUri, CERTIFICATE_NAME);
-
- String path = String.format("/certificates/%s/pending?%s", CERTIFICATE_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNull(certOp);
- }
-
- public void updateCertificateOperation() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultupdatecertificateoperation.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- CertificateOperation certOp = vaultApi.updateCertificateOperation(vaultUri, CERTIFICATE_NAME, true);
-
- String path = String.format("/certificates/%s/pending?%s", CERTIFICATE_NAME, apiVersion);
- assertSent(server, "PATCH", path, stringFromResource("/vaultupdatecertificateoperationrequestbody.json"));
-
- assertNotNull(certOp);
- assertTrue(!certOp.id().isEmpty());
- }
-
- public void deleteCertificateOperation() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultdeletecertificateoperation.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- CertificateOperation certOp = vaultApi.deleteCertificateOperation(vaultUri, CERTIFICATE_NAME);
-
- String path = String.format("/certificates/%s/pending?%s", CERTIFICATE_NAME, apiVersion);
- assertSent(server, "DELETE", path);
-
- assertNotNull(certOp);
- assertTrue(!certOp.id().isEmpty());
- }
-
- public void deleteCertificateOperationReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- CertificateOperation certOp = vaultApi.deleteCertificateOperation(vaultUri, CERTIFICATE_NAME);
-
- String path = String.format("/certificates/%s/pending?%s", CERTIFICATE_NAME, apiVersion);
- assertSent(server, "DELETE", path);
-
- assertNull(certOp);
- }
-
- public void setCertificateIssuer() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultsetcertificateissuer.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- AdministrationDetails adminDetail = AdministrationDetails.create(
- "adminguy@certsforme.com",
- "Admin",
- "Guy",
- "867-5309"
- );
- List<AdministrationDetails> adminDetails = new ArrayList<AdministrationDetails>();
- adminDetails.add(adminDetail);
- OrganizationDetails orgDetails = OrganizationDetails.create(
- adminDetails,
- null
- );
- IssuerBundle issuer = null;
- try {
- issuer = vaultApi.setCertificateIssuer(
- vaultUri,
- CERTIFICATE_ISSUER_NAME,
- null,
- IssuerCredentials.create("imauser", "This1sMyPa55wurD!"),
- orgDetails,
- "GlobalSign"
- );
- } catch (ResourceNotFoundException rnf) {
- assertNotNull(rnf);
- }
-
- String path = String.format("/certificates/issuers/%s?%s", CERTIFICATE_ISSUER_NAME, apiVersion);
- assertSent(server, "PUT", path, stringFromResource("/vaultsetcertificateissuerrequestbody.json"));
-
- assertNotNull(issuer);
- assertTrue(!issuer.id().isEmpty());
- }
-
- public void listCertificateIssuers() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultlistcertificateissuers.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<CertificateIssuer> issuers = vaultApi.getCertificateIssuers(vaultUri);
-
- String path = String.format("/certificates/issuers?%s", apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(issuers);
- assertTrue(issuers.size() > 0);
- }
-
- public void listCertificateIssuersReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<CertificateIssuer> issuers = vaultApi.getCertificateIssuers(vaultUri);
-
- String path = String.format("/certificates/issuers?%s", apiVersion);
- assertSent(server, "GET", path);
-
- assertTrue(issuers.isEmpty());
- }
-
- public void getCertificateIssuer() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultgetcertificateissuer.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- IssuerBundle issuer = vaultApi.getCertificateIssuer(vaultUri, CERTIFICATE_ISSUER_NAME);
-
- String path = String.format("/certificates/issuers/%s?%s", CERTIFICATE_ISSUER_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(issuer);
- assertTrue(!issuer.id().isEmpty());
- }
-
- public void getCertificateIssuerReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- IssuerBundle issuer = vaultApi.getCertificateIssuer(vaultUri, CERTIFICATE_ISSUER_NAME);
-
- String path = String.format("/certificates/issuers/%s?%s", CERTIFICATE_ISSUER_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNull(issuer);
- }
-
- public void updateCertificateIssuer() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultupdatecertificateissuer.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- AdministrationDetails adminDetail = AdministrationDetails.create(
- "adminguy@certsforme.com",
- "Admin",
- "Guy",
- "867-5309"
- );
- List<AdministrationDetails> adminDetails = new ArrayList<AdministrationDetails>();
- adminDetails.add(adminDetail);
- OrganizationDetails orgDetails = OrganizationDetails.create(
- adminDetails,
- null
- );
- IssuerBundle issuer = vaultApi.updateCertificateIssuer(
- vaultUri,
- "globalsign01",
- null,
- IssuerCredentials.create("imauser", "CanHa5P455wuRd!"),
- orgDetails,
- "GlobalSign"
- );
-
- String path = String.format("/certificates/issuers/%s?%s", CERTIFICATE_ISSUER_NAME, apiVersion);
- assertSent(server, "PATCH", path, stringFromResource("/vaultupdatecertificateissuerrequestbody.json"));
-
- assertNotNull(issuer);
- assertTrue(!issuer.id().isEmpty());
- }
-
- public void deleteCertificateIssuer() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultdeletecertificateissuer.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- IssuerBundle issuer = vaultApi.deleteCertificateIssuer(vaultUri, CERTIFICATE_ISSUER_NAME);
-
- String path = String.format("/certificates/issuers/%s?%s", CERTIFICATE_ISSUER_NAME, apiVersion);
- assertSent(server, "DELETE", path);
-
- assertNotNull(issuer);
- assertTrue(!issuer.id().isEmpty());
- }
-
- public void deleteCertificateIssuerReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- IssuerBundle issuer = vaultApi.deleteCertificateIssuer(vaultUri, CERTIFICATE_ISSUER_NAME);
-
- String path = String.format("/certificates/issuers/%s?%s", CERTIFICATE_ISSUER_NAME, apiVersion);
- assertSent(server, "DELETE", path);
-
- assertNull(issuer);
- }
-
- public void getCertificateContacts() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultgetcertificatecontacts.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- Contacts contacts = vaultApi.getCertificateContacts(vaultUri);
-
- String path = String.format("/certificates/contacts?%s", apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(contacts);
- assertTrue(!contacts.id().isEmpty());
- assertTrue(contacts.contacts().size() > 0);
- }
-
- public void getCertificateContactsReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- IssuerBundle issuer = null;
- try {
- issuer = vaultApi.getCertificateIssuer(vaultUri, CERTIFICATE_ISSUER_NAME);
- } catch (ResourceNotFoundException rnf) {
- assertNotNull(rnf);
- }
-
- String path = String.format("/certificates/issuers/%s?%s", CERTIFICATE_ISSUER_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNull(issuer);
- }
-
- public void setCertificateContacts() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultsetcertificatecontacts.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- List<Contact> contactsIn = new ArrayList<Contact>();
- contactsIn.add(Contact.create("foo@bar.com", "Foo bar", "867-5309"));
- Contacts contacts = vaultApi.setCertificateContacts(vaultUri, contactsIn);
-
- String path = String.format("/certificates/contacts?%s", apiVersion);
- assertSent(server, "PUT", path, stringFromResource("/vaultsetcertificatecontactsrequestbody.json"));
-
- assertNotNull(contacts);
- assertTrue(!contacts.id().isEmpty());
- assertTrue(contacts.contacts().size() > 0);
- }
-
- public void deleteCertificateContacts() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultdeletecertificatecontacts.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- Contacts contacts = vaultApi.deleteCertificateContacts(vaultUri);
-
- String path = String.format("/certificates/contacts?%s", apiVersion);
- assertSent(server, "DELETE", path);
-
- assertNotNull(contacts);
- assertTrue(!contacts.id().isEmpty());
- assertTrue(contacts.contacts().size() > 0);
- }
-
- public void deleteCertificateContactsReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- Contacts contacts = vaultApi.deleteCertificateContacts(vaultUri);
-
- String path = String.format("/certificates/contacts?%s", apiVersion);
- assertSent(server, "DELETE", path);
-
- assertNull(contacts);
- }
-
- public void getCertificatePolicy() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultgetcertificatepolicy.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- CertificatePolicy policy = vaultApi.getCertificatePolicy(vaultUri, CERTIFICATE_NAME);
-
- String path = String.format("/certificates/%s/policy?%s", CERTIFICATE_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNotNull(policy);
- assertTrue(!policy.id().isEmpty());
- }
-
- public void getCertificatePolicyReturns404() throws InterruptedException {
- server.enqueue(response404());
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- CertificatePolicy policy = vaultApi.getCertificatePolicy(vaultUri, CERTIFICATE_NAME);
-
- String path = String.format("/certificates/%s/policy?%s", CERTIFICATE_NAME, apiVersion);
- assertSent(server, "GET", path);
-
- assertNull(policy);
- }
-
- public void updateCertificatePolicy() throws InterruptedException {
- server.enqueue(jsonResponse("/vaultupdatecertificatepolicy.json").setResponseCode(200));
- final VaultApi vaultApi = api.getVaultApi(resourceGroup);
- CertificatePolicy policy = vaultApi.updateCertificatePolicy(
- vaultUri,
- CERTIFICATE_NAME,
- null,
- null,
- KeyProperties.create(true, 3072, "RSA", false),
- null,
- null,
- null
- );
-
- String path = String.format("/certificates/%s/policy?%s", CERTIFICATE_NAME, apiVersion);
- assertSent(server, "PATCH", path, stringFromResource("/vaultupdatecertificatepolicyrequestbody.json"));
-
- assertNotNull(policy);
- assertTrue(!policy.id().isEmpty());
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiLiveTest.java
----------------------------------------------------------------------
diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiLiveTest.java
deleted file mode 100644
index 34b289e..0000000
--- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiLiveTest.java
+++ /dev/null
@@ -1,349 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache 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
- *
- * http://www.apache.org/licenses/LICENSE-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 org.jclouds.azurecompute.arm.features;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.jclouds.util.Predicates2.retry;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import org.jclouds.azurecompute.arm.domain.DataDisk;
-import org.jclouds.azurecompute.arm.domain.HardwareProfile;
-import org.jclouds.azurecompute.arm.domain.IdReference;
-import org.jclouds.azurecompute.arm.domain.ImageReference;
-import org.jclouds.azurecompute.arm.domain.IpConfiguration;
-import org.jclouds.azurecompute.arm.domain.IpConfigurationProperties;
-import org.jclouds.azurecompute.arm.domain.ManagedDiskParameters;
-import org.jclouds.azurecompute.arm.domain.NetworkInterfaceCard;
-import org.jclouds.azurecompute.arm.domain.NetworkInterfaceCardProperties;
-import org.jclouds.azurecompute.arm.domain.NetworkProfile;
-import org.jclouds.azurecompute.arm.domain.OSDisk;
-import org.jclouds.azurecompute.arm.domain.OSProfile;
-import org.jclouds.azurecompute.arm.domain.ResourceDefinition;
-import org.jclouds.azurecompute.arm.domain.Secrets;
-import org.jclouds.azurecompute.arm.domain.StorageAccountType;
-import org.jclouds.azurecompute.arm.domain.StorageProfile;
-import org.jclouds.azurecompute.arm.domain.StorageService;
-import org.jclouds.azurecompute.arm.domain.Subnet;
-import org.jclouds.azurecompute.arm.domain.VHD;
-import org.jclouds.azurecompute.arm.domain.VaultCertificate;
-import org.jclouds.azurecompute.arm.domain.VirtualMachine;
-import org.jclouds.azurecompute.arm.domain.VirtualMachineInstance;
-import org.jclouds.azurecompute.arm.domain.VirtualMachineInstance.PowerState;
-import org.jclouds.azurecompute.arm.domain.VirtualMachineProperties;
-import org.jclouds.azurecompute.arm.domain.NetworkProfile.NetworkInterface;
-import org.jclouds.azurecompute.arm.domain.NetworkProfile.NetworkInterface.NetworkInterfaceProperties;
-import org.jclouds.azurecompute.arm.domain.OSProfile.WindowsConfiguration.WinRM.Protocol;
-import org.jclouds.azurecompute.arm.domain.OSProfile.WindowsConfiguration.WinRM.ProtocolListener;
-import org.jclouds.azurecompute.arm.functions.ParseJobStatus;
-import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-import static org.testng.util.Strings.isNullOrEmpty;
-
-import com.beust.jcommander.internal.Lists;
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Iterables;
-
-@Test(groups = "live", testName = "VirtualMachineApiLiveTest")
-public class VirtualMachineApiLiveTest extends BaseAzureComputeApiLiveTest {
-
- private String subscriptionid;
- private String vmName;
- private String nicName;
- private String virtualNetworkName;
- private String subnetId;
-
- @BeforeClass
- @Override
- public void setup() {
- super.setup();
- subscriptionid = getSubscriptionId();
-
- createTestResourceGroup();
-
- virtualNetworkName = String.format("vn-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name"));
-
- // Subnets belong to a virtual network so that needs to be created first
- assertNotNull(createDefaultVirtualNetwork(resourceGroupName, virtualNetworkName, "10.2.0.0/16", LOCATION));
-
- //Subnet needs to be up & running before NIC can be created
- String subnetName = String.format("s-%s-%s", this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name"));
- Subnet subnet = createDefaultSubnet(resourceGroupName, subnetName, virtualNetworkName, "10.2.0.0/23");
- assertNotNull(subnet);
- assertNotNull(subnet.id());
- subnetId = subnet.id();
-
- NetworkInterfaceCard nic = createNetworkInterfaceCard(resourceGroupName, "jc-nic-" + RAND, LOCATION, "ipConfig-" + RAND);
- assertNotNull(nic);
- nicName = nic.name();
-
- vmName = String.format("%3.24s", System.getProperty("user.name") + RAND + this.getClass().getSimpleName()).toLowerCase().substring(0, 15);
- }
-
- @Test
- public void testCreate() {
- VirtualMachine vm = api().createOrUpdate(vmName, LOCATION, getProperties(nicName, null),
- Collections.<String, String> emptyMap(), null);
- assertTrue(!vm.name().isEmpty());
- waitUntilReady(vmName);
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testGet() {
- VirtualMachine vm = api().get(vmName);
- assertTrue(!vm.name().isEmpty());
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testGetInstanceView() {
- VirtualMachineInstance vmi = api().getInstanceDetails(vmName);
- assertTrue(!vmi.statuses().isEmpty());
- }
-
- @Test(dependsOnMethods = "testGet")
- public void testStart() {
- api().start(vmName);
- assertTrue(stateReached(vmName, PowerState.RUNNING), "start operation did not complete in the configured timeout");
- }
-
- @Test(dependsOnMethods = "testStart")
- public void testUpdate() {
- VirtualMachine vm = api().get(vmName);
- VirtualMachineProperties oldProperties = vm.properties();
- StorageProfile oldStorageProfile = oldProperties.storageProfile();
-
- DataDisk newDataDisk = DataDisk.builder()
- .name(vmName + "new-data-disk")
- .diskSizeGB("1")
- .lun(1)
- .createOption(DataDisk.DiskCreateOptionTypes.EMPTY)
- .build();
- List<DataDisk> oldDataDisks = oldStorageProfile.dataDisks();
- assertEquals(oldDataDisks.size(), 1);
-
- ImmutableList<DataDisk> newDataDisks = ImmutableList.<DataDisk> builder().addAll(oldDataDisks).add(newDataDisk).build();
- StorageProfile newStorageProfile = oldStorageProfile.toBuilder().dataDisks(newDataDisks).build();
- VirtualMachineProperties newProperties = oldProperties.toBuilder().storageProfile(newStorageProfile).build();
-
- VirtualMachine newVm = vm.toBuilder().properties(newProperties).build();
- vm = api().createOrUpdate(vmName, newVm.location(), newVm.properties(), newVm.tags(), newVm.plan());
-
- assertEquals(vm.properties().storageProfile().dataDisks().size(), oldDataDisks.size() + 1);
- }
-
- @Test(dependsOnMethods = "testUpdate")
- public void testStop() {
- api().stop(vmName);
- assertTrue(stateReached(vmName, PowerState.STOPPED), "stop operation did not complete in the configured timeout");
- }
-
- @Test(dependsOnMethods = "testStop")
- public void testRestart() {
- api().start(vmName);
- assertTrue(stateReached(vmName, PowerState.RUNNING), "start operation did not complete in the configured timeout");
- api().restart(vmName);
- assertTrue(stateReached(vmName, PowerState.RUNNING), "restart operation did not complete in the configured timeout");
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testList() {
- List<VirtualMachine> list = api().list();
- final VirtualMachine vm = api().get(vmName);
-
- boolean vmPresent = Iterables.any(list, new Predicate<VirtualMachine>() {
- public boolean apply(VirtualMachine input) {
- return input.name().equals(vm.name());
- }
- });
-
- assertTrue(vmPresent);
- }
-
- @Test(dependsOnMethods = "testRestart")
- public void testGeneralize() throws IllegalStateException {
- api().stop(vmName);
- assertTrue(stateReached(vmName, PowerState.STOPPED), "restart operation did not complete in the configured timeout");
- api().generalize(vmName);
- }
-
- @SuppressWarnings("unchecked")
- @Test
- public void testCapture() throws IllegalStateException {
- // Capture is only allowed for Blob based VMs, so let's create one VM for this test
- NetworkInterfaceCard nic = createNetworkInterfaceCard(resourceGroupName, "capture-nic-" + RAND, LOCATION, "ipConfig-" + RAND);
- StorageService storageService = createStorageService(resourceGroupName, "capture" + RAND, LOCATION);
- String blob = storageService.storageServiceProperties().primaryEndpoints().get("blob");
-
- String captureVmName = "capture-" + RAND;
- api().createOrUpdate(captureVmName, LOCATION, getProperties(nic.name(), blob),
- Collections.<String, String> emptyMap(), null);
- waitUntilReady(captureVmName);
-
- api().stop(captureVmName);
- assertTrue(stateReached(captureVmName, PowerState.STOPPED),
- "restart operation did not complete in the configured timeout");
- api().generalize(captureVmName);
-
- URI uri = api().capture(captureVmName, captureVmName, captureVmName);
- assertNotNull(uri);
-
- if (imageAvailablePredicate.apply(uri)) {
- List<ResourceDefinition> definitions = api.getJobApi().captureStatus(uri);
- if (definitions != null) {
- for (ResourceDefinition definition : definitions) {
- Map<String, String> properties = (Map<String, String>) definition.properties();
- Object storageObject = properties.get("storageProfile");
- Map<String, String> properties2 = (Map<String, String>) storageObject;
- Object osDiskObject = properties2.get("osDisk");
- Map<String, String> osProperties = (Map<String, String>) osDiskObject;
- assertNotNull(osProperties.get("name"));
- }
- }
- }
- }
-
- @Test(dependsOnMethods = "testGeneralize", alwaysRun = true)
- public void testDelete() throws Exception {
- URI uri = api().delete(vmName);
- assertResourceDeleted(uri);
- }
-
- private VirtualMachineApi api() {
- return api.getVirtualMachineApi(resourceGroupName);
- }
-
- private VirtualMachineProperties getProperties(String nic, String blob) {
-
- HardwareProfile hwProf = HardwareProfile.create("Standard_D1_v2");
- ImageReference imgRef = ImageReference.builder().publisher("MicrosoftWindowsServer")
- .offer("WindowsServer").sku("2008-R2-SP1").version("latest").build();
-
- DataDisk.Builder dataDisk = DataDisk.builder().name("data").diskSizeGB("100").lun(0).createOption(DataDisk.DiskCreateOptionTypes.EMPTY);
-
- OSDisk.Builder osDisk = OSDisk.builder()
- .name("os")
- .osType("Windows")
- .caching(DataDisk.CachingTypes.READ_WRITE.toString())
- .createOption("FromImage");
-
- if (blob == null) {
- osDisk.managedDiskParameters(ManagedDiskParameters.create(null, StorageAccountType.STANDARD_LRS.toString()));
- } else {
- osDisk.vhd(VHD.create(blob + "vhds/" + vmName + ".vhd"));
- dataDisk.vhd(VHD.create(blob + "vhds/" + vmName + "data.vhd"));
- }
-
- StorageProfile storageProfile = StorageProfile.create(imgRef, osDisk.build(), ImmutableList.of(dataDisk.build()));
-
- List<Secrets> secrets = null;
- OSProfile.WindowsConfiguration.WinRM winRm = null;
- if (!isNullOrEmpty(vaultResourceGroup) && !isNullOrEmpty(vaultName) && !isNullOrEmpty(vaultCertificateUrl)) {
- List<ProtocolListener> listeners = Lists.newArrayList();
-
- listeners.add(OSProfile.WindowsConfiguration.WinRM.ProtocolListener.create(Protocol.HTTPS, vaultCertificateUrl));
- listeners.add(OSProfile.WindowsConfiguration.WinRM.ProtocolListener.create(Protocol.HTTP, null));
-
- winRm = OSProfile.WindowsConfiguration.WinRM.create(listeners);
- VaultCertificate vaultCertificate = VaultCertificate.create(vaultCertificateUrl, vaultName);
- secrets = ImmutableList.of(Secrets.create(Secrets.SourceVault.create(String.format("%s/providers/Microsoft.KeyVault/vaults/%s",
- api.getResourceGroupApi().get(vaultResourceGroup).id(), vaultName)),
- ImmutableList.of(vaultCertificate)));
- }
- OSProfile.WindowsConfiguration windowsConfig = OSProfile.WindowsConfiguration.create(true, winRm, null, true);
- OSProfile osProfile = OSProfile.create(vmName, "azureuser", "RFe3&432dg", null, null, windowsConfig, secrets);
- NetworkInterface networkInterface =
- NetworkInterface.create("/subscriptions/" + subscriptionid +
- "/resourceGroups/" + resourceGroupName + "/providers/Microsoft.Network/networkInterfaces/"
- + nic, NetworkInterfaceProperties.create(true));
- List<NetworkInterface> networkInterfaces = new ArrayList<NetworkInterface>();
- networkInterfaces.add(networkInterface);
- NetworkProfile networkProfile = NetworkProfile.create(networkInterfaces);
- VirtualMachineProperties properties = VirtualMachineProperties.create(null,
- null, null, hwProf, storageProfile, osProfile, networkProfile, null, VirtualMachineProperties.ProvisioningState.CREATING);
- return properties;
- }
-
- private NetworkInterfaceCard createNetworkInterfaceCard(final String resourceGroupName, String networkInterfaceCardName, String locationName, String ipConfigurationName) {
- //Create properties object
- final NetworkInterfaceCardProperties networkInterfaceCardProperties = NetworkInterfaceCardProperties
- .builder()
- .ipConfigurations(
- Arrays.asList(IpConfiguration.create(ipConfigurationName, null, null, null, IpConfigurationProperties
- .create(null, null, "Dynamic", IdReference.create(subnetId), null, null, null)))).build();
-
- final Map<String, String> tags = ImmutableMap.of("jclouds", "livetest");
- return api.getNetworkInterfaceCardApi(resourceGroupName).createOrUpdate(networkInterfaceCardName, locationName, networkInterfaceCardProperties, tags);
- }
-
- private StorageService createStorageService(final String resourceGroupName, final String storageServiceName,
- final String location) {
- URI uri = api.getStorageAccountApi(resourceGroupName).create(storageServiceName, location,
- ImmutableMap.of("property_name", "property_value"),
- ImmutableMap.of("accountType", StorageService.AccountType.Standard_LRS.toString()));
- if (uri != null) {
- assertTrue(uri.toString().contains("api-version"));
-
- boolean jobDone = retry(new Predicate<URI>() {
- @Override
- public boolean apply(final URI uri) {
- return ParseJobStatus.JobStatus.DONE == api.getJobApi().jobStatus(uri);
- }
- }, 60 * 1 * 1000 /* 1 minute timeout */).apply(uri);
- assertTrue(jobDone, "create operation did not complete in the configured timeout");
- }
- return api.getStorageAccountApi(resourceGroupName).get(storageServiceName);
- }
-
- private boolean waitForState(String name, final PowerState state) {
- return api().getInstanceDetails(name).powerState().equals(state);
- }
-
- private void waitUntilReady(String vmName) {
- boolean ready = retry(new Predicate<String>() {
- @Override
- public boolean apply(String name) {
- return !api().get(name).properties().provisioningState().equals(VirtualMachineProperties.ProvisioningState.CREATING);
- }
- }, 60 * 20 * 1000).apply(vmName);
- assertTrue(ready, "createOrUpdate operation did not complete in the configured timeout");
-
- VirtualMachineProperties.ProvisioningState status = api().get(vmName).properties().provisioningState();
- // Cannot be creating anymore. Should be succeeded or running but not failed.
- assertThat(status).isNotEqualTo(VirtualMachineProperties.ProvisioningState.CREATING);
- assertThat(status).isNotEqualTo(VirtualMachineProperties.ProvisioningState.FAILED);
- }
-
- private boolean stateReached(String vmName, final PowerState state) {
- return retry(new Predicate<String>() {
- @Override
- public boolean apply(String name) {
- return waitForState(name, state);
- }
- }, 60 * 4 * 1000).apply(vmName);
- }
-}