annotate src/main/java/christie/topology/manager/CreateHash.java @ 55:34181394333f

fix RecordTopology
author akahori
date Thu, 23 Aug 2018 10:31:48 +0900
parents ea9657dc8311
children cfd79a71f9cd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
43
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
1 package christie.topology.manager;
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
2
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
3
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
4 import christie.annotation.Take;
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
5 import christie.codegear.CodeGear;
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
6
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
7 import christie.codegear.CodeGearManager;
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
8 import org.apache.commons.lang3.RandomStringUtils;
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
9
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
10 import java.security.MessageDigest;
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
11 import java.security.NoSuchAlgorithmException;
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
12 import java.util.LinkedList;
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
13
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
14 public class CreateHash extends CodeGear{
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
15 // this CodeSegment change raw string to MD5
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
16
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
17 // Question: orderHashどこで使われているかわかんない
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
18 //@Take
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
19 //orderHash;
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
20
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
21 @Take
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
22 LinkedList<String> createdList;
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
23
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
24
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
25 public CreateHash(){ }
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
26
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
27 @Override
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
28 protected void run(CodeGearManager cgm) {
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
29
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
30 boolean checkNewStr = false;
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
31 String raw = null;
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
32
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
33 while (!checkNewStr){
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
34 raw = RandomStringUtils.randomAscii(10);
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
35 // checking raw String has already created
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
36 int count = 0;
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
37 for (String str : createdList) {
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
38 if (raw.equals(str)) break;
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
39 count++;
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
40 }
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
41
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
42 if (count == createdList.size()) checkNewStr = true;
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
43 }
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
44 createdList.add(raw);
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
45 getLocalDGM().put("createdList", createdList);
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
46
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
47 try { // convert to MD5
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
48 String MD5 = convertMD5(raw);
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
49
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
50 getLocalDGM().put("MD5", MD5);
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
51 } catch (NoSuchAlgorithmException e) {
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
52 System.out.println("cannot convert MD5");
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
53
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
54 }
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
55 cgm.setup(new CreateHash());
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
56 }
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
57
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
58 private String convertMD5(String raw) throws NoSuchAlgorithmException{
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
59 MessageDigest md = MessageDigest.getInstance("MD5");
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
60 md.update(raw.getBytes());
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
61 byte[] hash = md.digest();
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
62 StringBuilder builder = new StringBuilder();
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
63 for (byte aHash : hash) {
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
64 if ((0xff & aHash) < 0x10) {
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
65 builder.append("0" + Integer.toHexString((0xff & aHash)));
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
66 } else {
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
67 builder.append(Integer.toHexString((0xff & aHash)));
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
68 }
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
69 }
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
70 return builder.toString();
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
71 }
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
72
ea9657dc8311 add CreateHash SearchHostName TopologyManager
akahori
parents:
diff changeset
73 }