You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by sv...@apache.org on 2017/07/27 17:55:52 UTC

jclouds git commit: Move Passwords implementation to jclouds-core to be reused by providers

Repository: jclouds
Updated Branches:
  refs/heads/master 78104938e -> 7e496723a


Move Passwords implementation to jclouds-core to be reused by providers


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/7e496723
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/7e496723
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/7e496723

Branch: refs/heads/master
Commit: 7e496723abfcecb988f316324a85236904207d53
Parents: 7810493
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Fri Jul 21 09:27:02 2017 +0300
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Thu Jul 27 20:54:31 2017 +0300

----------------------------------------------------------------------
 .../main/java/org/jclouds/util/Passwords.java   | 64 ++++++++++++++++++++
 .../java/org/jclouds/util/PasswordsTest.java    | 55 +++++++++++++++++
 .../ProfitBricksComputeServiceAdapter.java      |  2 +-
 .../jclouds/profitbricks/util/Passwords.java    | 64 --------------------
 .../profitbricks/util/Preconditions.java        |  2 +-
 .../profitbricks/util/PasswordsTest.java        | 53 ----------------
 6 files changed, 121 insertions(+), 119 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/7e496723/core/src/main/java/org/jclouds/util/Passwords.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/util/Passwords.java b/core/src/main/java/org/jclouds/util/Passwords.java
new file mode 100644
index 0000000..e1d3b46
--- /dev/null
+++ b/core/src/main/java/org/jclouds/util/Passwords.java
@@ -0,0 +1,64 @@
+/*
+ * 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.util;
+
+import java.util.Random;
+import java.util.regex.Pattern;
+
+import com.google.common.collect.ImmutableSet;
+
+public class Passwords {
+
+   private static final Random random = new Random();
+
+   private static final int MIN_CHAR = 8;
+   private static final int MAX_CHAR = 50;
+   private static final String PASSWORD_FORMAT = String.format(
+           "[a-zA-Z0-9][^iIloOwWyYzZ10]{%d,%d}", MIN_CHAR - 1, MAX_CHAR);
+   private static final Pattern PASSWORD_PATTERN = Pattern.compile(PASSWORD_FORMAT);
+
+   private static final ImmutableSet<Character> INVALID_CHARS = ImmutableSet.<Character>of(
+           'i', 'I', 'l', 'o', 'O', 'w', 'W', 'y', 'Y', 'z', 'Z', '1', '0');
+
+   public static boolean isValidPassword(String password) {
+      return PASSWORD_PATTERN.matcher(password).matches();
+   }
+
+   public static String generate() {
+      int count = random.nextInt(MAX_CHAR - MIN_CHAR) + MIN_CHAR;
+
+      final char[] buffer = new char[count];
+
+      final int start = 'A';
+      final int end = 'z';
+      final int gap = end - start + 1;
+
+      while (count-- != 0) {
+         char ch = (char) (random.nextInt(gap) + start);
+         if ((isBetween(ch, start, 'Z') || isBetween(ch, 'a', end))
+                 && !INVALID_CHARS.contains(ch))
+            buffer[count] = ch;
+         else
+            count++;
+      }
+      return new String(buffer);
+   }
+
+   private static boolean isBetween(char ch, int start, int end) {
+      return ch >= start && ch <= end;
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/7e496723/core/src/test/java/org/jclouds/util/PasswordsTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/util/PasswordsTest.java b/core/src/test/java/org/jclouds/util/PasswordsTest.java
new file mode 100644
index 0000000..200bed9
--- /dev/null
+++ b/core/src/test/java/org/jclouds/util/PasswordsTest.java
@@ -0,0 +1,55 @@
+/*
+ * 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.util;
+
+import com.google.common.collect.ImmutableList;
+import org.testng.annotations.Test;
+
+import java.util.List;
+
+import static org.jclouds.util.Passwords.isValidPassword;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+@Test(groups = "unit", testName = "PasswordsTest")
+public class PasswordsTest {
+
+   private final List<String> validPasswords = ImmutableList.of(
+           "fKVasTnNm", "84625894", "QQQQQQQQ", "qqqqqqqq", "asdfghjk"
+   );
+   private final List<String> invalidPasswords = ImmutableList.of(
+           "", "apachejclouds", "s0merand0mpassw0rd"
+   );
+
+   @Test
+   public void testPasswordValidation() {
+      for (String pwd : validPasswords)
+         assertTrue(isValidPassword(pwd), "Should've been valid: " + pwd);
+
+      for (String pwd : invalidPasswords)
+         assertFalse(isValidPassword(pwd), "Should've been invalid: " + pwd);
+   }
+
+   @Test
+   public void testGeneratorGeneratesValidPassword() {
+      final int times = 50;
+      for (int i = 0; i < times; i++) {
+         String pwd = Passwords.generate();
+         assertTrue(isValidPassword(pwd), "Failed with: " + pwd);
+      }
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/7e496723/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/ProfitBricksComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/ProfitBricksComputeServiceAdapter.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/ProfitBricksComputeServiceAdapter.java
index 766b360..c6fd08b 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/ProfitBricksComputeServiceAdapter.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/ProfitBricksComputeServiceAdapter.java
@@ -59,7 +59,6 @@ import org.jclouds.profitbricks.domain.Server;
 import org.jclouds.profitbricks.domain.Snapshot;
 import org.jclouds.profitbricks.domain.Storage;
 import org.jclouds.profitbricks.features.ServerApi;
-import org.jclouds.profitbricks.util.Passwords;
 import org.jclouds.rest.ResourceNotFoundException;
 
 import com.google.common.base.Function;
@@ -72,6 +71,7 @@ import com.google.common.collect.Lists;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.ListeningExecutorService;
 import com.google.inject.Inject;
+import org.jclouds.util.Passwords;
 
 @Singleton
 public class ProfitBricksComputeServiceAdapter implements ComputeServiceAdapter<Server, Hardware, Provisionable, Location> {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/7e496723/providers/profitbricks/src/main/java/org/jclouds/profitbricks/util/Passwords.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/util/Passwords.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/util/Passwords.java
deleted file mode 100644
index 338f064..0000000
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/util/Passwords.java
+++ /dev/null
@@ -1,64 +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.profitbricks.util;
-
-import java.util.Random;
-import java.util.regex.Pattern;
-
-import com.google.common.collect.ImmutableSet;
-
-public class Passwords {
-
-   private static final Random random = new Random();
-
-   private static final int MIN_CHAR = 8;
-   private static final int MAX_CHAR = 50;
-   private static final String PASSWORD_FORMAT = String.format(
-           "[a-zA-Z0-9][^iIloOwWyYzZ10]{%d,%d}", MIN_CHAR - 1, MAX_CHAR);
-   private static final Pattern PASSWORD_PATTERN = Pattern.compile(PASSWORD_FORMAT);
-
-   private static final ImmutableSet<Character> INVALID_CHARS = ImmutableSet.<Character>of(
-           'i', 'I', 'l', 'o', 'O', 'w', 'W', 'y', 'Y', 'z', 'Z', '1', '0');
-
-   public static boolean isValidPassword(String password) {
-      return PASSWORD_PATTERN.matcher(password).matches();
-   }
-
-   public static String generate() {
-      int count = random.nextInt(MAX_CHAR - MIN_CHAR) + MIN_CHAR;
-
-      final char[] buffer = new char[count];
-
-      final int start = 'A';
-      final int end = 'z';
-      final int gap = end - start + 1;
-
-      while (count-- != 0) {
-         char ch = (char) (random.nextInt(gap) + start);
-         if ((isBetween(ch, start, 'Z') || isBetween(ch, 'a', end))
-                 && !INVALID_CHARS.contains(ch))
-            buffer[count] = ch;
-         else
-            count++;
-      }
-      return new String(buffer);
-   }
-
-   private static boolean isBetween(char ch, int start, int end) {
-      return ch >= start && ch <= end;
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/7e496723/providers/profitbricks/src/main/java/org/jclouds/profitbricks/util/Preconditions.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/util/Preconditions.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/util/Preconditions.java
index b15689d..b0013c4 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/util/Preconditions.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/util/Preconditions.java
@@ -21,7 +21,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Strings.isNullOrEmpty;
 import static com.google.common.net.InetAddresses.isInetAddress;
 import static org.jclouds.profitbricks.util.MacAddresses.isMacAddress;
-import static org.jclouds.profitbricks.util.Passwords.isValidPassword;
+import static org.jclouds.util.Passwords.isValidPassword;
 
 import java.util.List;
 import java.util.regex.Pattern;

http://git-wip-us.apache.org/repos/asf/jclouds/blob/7e496723/providers/profitbricks/src/test/java/org/jclouds/profitbricks/util/PasswordsTest.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/util/PasswordsTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/util/PasswordsTest.java
deleted file mode 100644
index fc7be1f..0000000
--- a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/util/PasswordsTest.java
+++ /dev/null
@@ -1,53 +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.profitbricks.util;
-
-import com.google.common.collect.ImmutableList;
-import java.util.List;
-import static org.jclouds.profitbricks.util.Passwords.isValidPassword;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertTrue;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "PasswordsTest")
-public class PasswordsTest {
-
-   private final List<String> validPasswords = ImmutableList.of(
-           "fKVasTnNm", "84625894", "QQQQQQQQ", "qqqqqqqq", "asdfghjk"
-   );
-   private final List<String> invalidPasswords = ImmutableList.of(
-           "", "apachejclouds", "s0merand0mpassw0rd"
-   );
-
-   @Test
-   public void testPasswordValidation() {
-      for (String pwd : validPasswords)
-         assertTrue(isValidPassword(pwd), "Should've been valid: " + pwd);
-
-      for (String pwd : invalidPasswords)
-         assertFalse(isValidPassword(pwd), "Should've been invalid: " + pwd);
-   }
-
-   @Test
-   public void testGeneratorGeneratesValidPassword() {
-      final int times = 50;
-      for (int i = 0; i < times; i++) {
-         String pwd = Passwords.generate();
-         assertTrue(isValidPassword(pwd), "Failed with: " + pwd);
-      }
-   }
-}