Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 11 additions & 12 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>3.40</version>
<version>3.55</version>
</parent>


Expand All @@ -23,8 +23,8 @@
<findbugs.excludeFilterFile>exclude-findbugs.xml</findbugs.excludeFilterFile>
<maven.javadoc.skip>true</maven.javadoc.skip>
<azure-commons.version>1.0.4</azure-commons.version>
<configuration-as-code.version>1.10</configuration-as-code.version>
<jackson.version>2.10.0</jackson.version>
<configuration-as-code.version>1.35</configuration-as-code.version>
<jackson.version>2.10.2</jackson.version>
</properties>

<licenses>
Expand Down Expand Up @@ -93,7 +93,7 @@
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>credentials</artifactId>
<version>2.1.16</version>
<version>2.2.0</version>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The credentials configurator moved to the credentials plugin from the support plugin in this version

</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
Expand Down Expand Up @@ -124,6 +124,12 @@
<artifactId>junit</artifactId>
<scope>test</scope>
<version>4.12</version>
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
Expand All @@ -150,15 +156,8 @@
</dependency>
<dependency>
<groupId>io.jenkins.configuration-as-code</groupId>
<artifactId>configuration-as-code-support</artifactId>
<version>${configuration-as-code.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.jenkins</groupId>
<artifactId>configuration-as-code</artifactId>
<artifactId>test-harness</artifactId>
<version>${configuration-as-code.version}</version>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.cloudbees.plugins.credentials.CredentialsScope;
import com.cloudbees.plugins.credentials.SystemCredentialsProvider;
import com.cloudbees.plugins.credentials.casc.CredentialsRootConfigurator;
import com.microsoftopentechnologies.windowsazurestorage.helper.AzureStorageAccount;
import hudson.ExtensionList;
import io.jenkins.plugins.casc.ConfigurationContext;
Expand All @@ -10,7 +11,6 @@
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
import io.jenkins.plugins.casc.model.CNode;
import io.jenkins.plugins.casc.model.Mapping;
import io.jenkins.plugins.casc.support.credentials.CredentialsRootConfigurator;
import org.junit.Rule;
import org.junit.Test;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,80 +5,29 @@
import com.cloudbees.plugins.credentials.domains.Domain;
import hudson.model.Item;
import hudson.security.ACL;
import jenkins.model.Jenkins;
import org.apache.commons.io.FileUtils;
import org.junit.Before;
import org.junit.ClassRule;
import java.util.Collections;
import java.util.List;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.jvnet.hudson.test.JenkinsRule;

import java.io.File;
import java.util.Collections;
import java.util.List;
import org.jvnet.hudson.test.recipes.LocalData;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

public class CredentialRenameTest {
public static File input = new File("src/test/resources/com/microsoftopentechnologies/helper/correctFormatOldConfig.xml");
private Jenkins jenkinsInstance;
private static final String correctConfigContent =
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

on new credentials it seems like the credential.xml was cached in memory and credentials weren't being loaded by just overwriting it on the file system

"<?xml version='1.0' encoding='UTF-8'?>\n" +
"<com.cloudbees.plugins.credentials.SystemCredentialsProvider plugin=\"[email protected]\">\n" +
" <domainCredentialsMap class=\"hudson.util.CopyOnWriteMap$Hash\">\n" +
" <entry>\n" +
" <com.cloudbees.plugins.credentials.domains.Domain>\n" +
" <specifications/>\n" +
" </com.cloudbees.plugins.credentials.domains.Domain>\n" +
" <java.util.concurrent.CopyOnWriteArrayList>\n" +
" <com.microsoftopentechnologies.windowsazurestorage.helper.AzureCredentials plugin=\"[email protected]\">\n" +
" <scope>GLOBAL</scope>\n" +
" <id>jieshestorage</id>\n" +
" <description></description>\n" +
" <storageData>\n" +
" <storageAccountName>name</storageAccountName>\n" +
" <storageAccountKey>key</storageAccountKey>\n" +
" <blobEndpointURL>https://blob.core.windows.net/</blobEndpointURL>\n" +
" </storageData>\n" +
" </com.microsoftopentechnologies.windowsazurestorage.helper.AzureCredentials>\n" +
" </java.util.concurrent.CopyOnWriteArrayList>\n" +
" </entry>\n" +
" </domainCredentialsMap>\n" +
"</com.cloudbees.plugins.credentials.SystemCredentialsProvider>";

private static final String wrongConfigContent = "<?xml version='1.0' encoding='UTF-8'?>\n" +
"<com.microsoftopentechnologies.windowsazurestorage.AzureStoragePublisher_-WAStorageDescriptor plugin='[email protected]'>\n" +
"<storageAccounts>\n" +
"<storageAccName>abcdef</storageAccName>\n" +
"<storageAccountKey>12345</storageAccountKey>\n" +
"<blobEndPointURL>https://blob.core.windows.net/</blobEndPointURL>\n" +
"</storageAccounts>\n" +
"</com.microsoftopentechnologies.windowsazurestorage.AzureStoragePublisher_-WAStorageDescriptor>";

@Rule
public TemporaryFolder testFolder = new TemporaryFolder();
@ClassRule
public static JenkinsRule j = new JenkinsRule();

@Before
public void setUp() {
jenkinsInstance = Jenkins.getInstance();
}
public JenkinsRule j = new JenkinsRule();

@Test
@LocalData
public void testRenameStorageConfig() throws Exception {
String storageAccount = "name";
String storageAccountKey = "key";
String storageBlobURL = "https://blob.core.windows.net/";
File configFile = testFolder.newFile("credentials.xml");
FileUtils.writeStringToFile(configFile, correctConfigContent);
FileUtils.copyFileToDirectory(configFile, jenkinsInstance.root);

CredentialRename.renameStorageConfig();
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is called on startup, no need to call it again


CredentialsStore s = CredentialsProvider.lookupStores(jenkinsInstance).iterator().next();
CredentialsStore s = CredentialsProvider.lookupStores(j.jenkins).iterator().next();

assertEquals(1, s.getCredentials(Domain.global()).size());

Expand All @@ -96,6 +45,5 @@ public void testRenameStorageConfig() throws Exception {
assertEquals(u.getStorageAccountName(), storageCred.getStorageAccountName());
assertEquals(u.getEndpointURL(), storageCred.getBlobEndpointURL());
assertEquals(u.getSecureKey().getPlainText(), storageCred.getPlainStorageKey());

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version='1.0' encoding='UTF-8'?>
<com.cloudbees.plugins.credentials.SystemCredentialsProvider plugin="[email protected]">
<domainCredentialsMap class="hudson.util.CopyOnWriteMap$Hash">
<entry>
<com.cloudbees.plugins.credentials.domains.Domain>
<specifications/>
</com.cloudbees.plugins.credentials.domains.Domain>
<java.util.concurrent.CopyOnWriteArrayList>
<com.microsoftopentechnologies.windowsazurestorage.helper.AzureCredentials
plugin="[email protected]">
<scope>GLOBAL</scope>
<id>jieshestorage</id>
<description></description>
<storageData>
<storageAccountName>name</storageAccountName>
<storageAccountKey>key</storageAccountKey>
<blobEndpointURL>https://blob.core.windows.net/</blobEndpointURL>
</storageData>
</com.microsoftopentechnologies.windowsazurestorage.helper.AzureCredentials>
</java.util.concurrent.CopyOnWriteArrayList>
</entry>
</domainCredentialsMap>
</com.cloudbees.plugins.credentials.SystemCredentialsProvider>