From db513903ce5d33663691fe0ad949ee59ef18afc9 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Thu, 2 Jul 2009 09:22:58 +0000 Subject: [PATCH] cleanup gui/ and dummy/ --- dummy/dummyClient.py | 35 - dummy/dummyServer.py | 93 -- gui/JavaApplication1/build.xml | 69 - .../javaapplication1/DisplayHandle$1$1.class | Bin 1039 -> 0 bytes .../javaapplication1/DisplayHandle$1.class | Bin 1971 -> 0 bytes .../javaapplication1/DisplayHandle.class | Bin 15568 -> 0 bytes .../classes/javaapplication1/GeniGUI$1.class | Bin 748 -> 0 bytes .../classes/javaapplication1/GeniGUI$2.class | Bin 772 -> 0 bytes .../classes/javaapplication1/GeniGUI$3.class | Bin 748 -> 0 bytes .../classes/javaapplication1/GeniGUI$4.class | Bin 748 -> 0 bytes .../classes/javaapplication1/GeniGUI$5.class | Bin 748 -> 0 bytes .../classes/javaapplication1/GeniGUI$6.class | Bin 748 -> 0 bytes .../classes/javaapplication1/GeniGUI$7.class | Bin 552 -> 0 bytes .../classes/javaapplication1/GeniGUI.class | Bin 10671 -> 0 bytes .../javaapplication1/GuiComponent.class | Bin 1573 -> 0 bytes .../javaapplication1/PanelFiller.class | Bin 7338 -> 0 bytes .../classes/javaapplication1/RecordInfo.class | Bin 878 -> 0 bytes .../javaapplication1/SpringUtilities.class | Bin 4280 -> 0 bytes .../build/classes/javaapplication1/User.class | Bin 1092 -> 0 bytes gui/JavaApplication1/certutil.py | 25 - gui/JavaApplication1/client_keiko/acc_file | 52 - .../client_keiko/clientstub.py | 104 -- gui/JavaApplication1/client_keiko/cred_file | 59 - gui/JavaApplication1/client_keiko/keiko.cert | 11 - gui/JavaApplication1/client_keiko/keiko.pkey | 15 - .../client_keiko/trusted_certs/geni_mng.cert | 11 - .../client_keiko/trusted_certs/geni_slc.cert | 11 - .../trusted_certs/planetlab_mng.cert | 11 - .../trusted_certs/planetlab_slc.cert | 11 - gui/JavaApplication1/client_osaka/acc_file | 39 - .../client_osaka/clientstub.py | 154 --- gui/JavaApplication1/client_osaka/cred_file | 44 - gui/JavaApplication1/client_osaka/osaka.cert | 11 - gui/JavaApplication1/client_osaka/osaka.pkey | 15 - .../client_osaka/trusted_certs/geni_mng.cert | 11 - .../client_osaka/trusted_certs/geni_slc.cert | 11 - .../trusted_certs/planetlab_mng.cert | 11 - .../trusted_certs/planetlab_slc.cert | 11 - .../dist/JavaApplication1.jar | Bin 52319 -> 0 bytes gui/JavaApplication1/dist/README.TXT | 31 - .../dist/lib/swing-layout-1.0.jar | Bin 140545 -> 0 bytes gui/JavaApplication1/manifest.mf | 3 - gui/JavaApplication1/nbproject/build-impl.xml | 541 -------- .../nbproject/genfiles.properties | 8 - .../nbproject/private/private.properties | 4 - .../nbproject/private/private.xml | 4 - .../nbproject/project.properties | 57 - gui/JavaApplication1/nbproject/project.xml | 16 - .../src/javaapplication1/DisplayHandle.java | 570 -------- .../src/javaapplication1/GeniGUI.form | 453 ------ .../src/javaapplication1/GeniGUI.java | 452 ------ .../src/javaapplication1/GuiComponent.java | 119 -- .../src/javaapplication1/PanelFiller.java | 248 ---- .../src/javaapplication1/RecordInfo.java | 71 - .../src/javaapplication1/SpringUtilities.java | 224 --- .../src/javaapplication1/User.java | 92 -- gui/JavaApplication1/test/NewJFrame.form | 1037 -------------- gui/JavaApplication1/test/NewJFrame.java | 1221 ----------------- 58 files changed, 5965 deletions(-) delete mode 100644 dummy/dummyClient.py delete mode 100644 dummy/dummyServer.py delete mode 100644 gui/JavaApplication1/build.xml delete mode 100644 gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1$1.class delete mode 100644 gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1.class delete mode 100644 gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle.class delete mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$1.class delete mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$2.class delete mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$3.class delete mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$4.class delete mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$5.class delete mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$6.class delete mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$7.class delete mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GeniGUI.class delete mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GuiComponent.class delete mode 100644 gui/JavaApplication1/build/classes/javaapplication1/PanelFiller.class delete mode 100644 gui/JavaApplication1/build/classes/javaapplication1/RecordInfo.class delete mode 100644 gui/JavaApplication1/build/classes/javaapplication1/SpringUtilities.class delete mode 100644 gui/JavaApplication1/build/classes/javaapplication1/User.class delete mode 100755 gui/JavaApplication1/certutil.py delete mode 100644 gui/JavaApplication1/client_keiko/acc_file delete mode 100755 gui/JavaApplication1/client_keiko/clientstub.py delete mode 100644 gui/JavaApplication1/client_keiko/cred_file delete mode 100644 gui/JavaApplication1/client_keiko/keiko.cert delete mode 100644 gui/JavaApplication1/client_keiko/keiko.pkey delete mode 100644 gui/JavaApplication1/client_keiko/trusted_certs/geni_mng.cert delete mode 100644 gui/JavaApplication1/client_keiko/trusted_certs/geni_slc.cert delete mode 100644 gui/JavaApplication1/client_keiko/trusted_certs/planetlab_mng.cert delete mode 100644 gui/JavaApplication1/client_keiko/trusted_certs/planetlab_slc.cert delete mode 100644 gui/JavaApplication1/client_osaka/acc_file delete mode 100755 gui/JavaApplication1/client_osaka/clientstub.py delete mode 100644 gui/JavaApplication1/client_osaka/cred_file delete mode 100644 gui/JavaApplication1/client_osaka/osaka.cert delete mode 100644 gui/JavaApplication1/client_osaka/osaka.pkey delete mode 100644 gui/JavaApplication1/client_osaka/trusted_certs/geni_mng.cert delete mode 100644 gui/JavaApplication1/client_osaka/trusted_certs/geni_slc.cert delete mode 100644 gui/JavaApplication1/client_osaka/trusted_certs/planetlab_mng.cert delete mode 100644 gui/JavaApplication1/client_osaka/trusted_certs/planetlab_slc.cert delete mode 100644 gui/JavaApplication1/dist/JavaApplication1.jar delete mode 100644 gui/JavaApplication1/dist/README.TXT delete mode 100644 gui/JavaApplication1/dist/lib/swing-layout-1.0.jar delete mode 100644 gui/JavaApplication1/manifest.mf delete mode 100644 gui/JavaApplication1/nbproject/build-impl.xml delete mode 100644 gui/JavaApplication1/nbproject/genfiles.properties delete mode 100644 gui/JavaApplication1/nbproject/private/private.properties delete mode 100644 gui/JavaApplication1/nbproject/private/private.xml delete mode 100644 gui/JavaApplication1/nbproject/project.properties delete mode 100644 gui/JavaApplication1/nbproject/project.xml delete mode 100644 gui/JavaApplication1/src/javaapplication1/DisplayHandle.java delete mode 100644 gui/JavaApplication1/src/javaapplication1/GeniGUI.form delete mode 100644 gui/JavaApplication1/src/javaapplication1/GeniGUI.java delete mode 100644 gui/JavaApplication1/src/javaapplication1/GuiComponent.java delete mode 100644 gui/JavaApplication1/src/javaapplication1/PanelFiller.java delete mode 100644 gui/JavaApplication1/src/javaapplication1/RecordInfo.java delete mode 100644 gui/JavaApplication1/src/javaapplication1/SpringUtilities.java delete mode 100644 gui/JavaApplication1/src/javaapplication1/User.java delete mode 100644 gui/JavaApplication1/test/NewJFrame.form delete mode 100644 gui/JavaApplication1/test/NewJFrame.java diff --git a/dummy/dummyClient.py b/dummy/dummyClient.py deleted file mode 100644 index c7add958..00000000 --- a/dummy/dummyClient.py +++ /dev/null @@ -1,35 +0,0 @@ -import os - -from geniclient import * -from cert import * -from gid import * - -key_file = "dummyclient.key" -cert_file = "dummyclient.cert" - -if (not os.path.exists(key_file)) or (not os.path.exists(cert_file)): - key = Keypair(create=True) - key.save_to_file(key_file) - - cert = Certificate(subject="dummyclient") - cert.set_pubkey(key) - cert.set_issuer(key=key, subject="dummyclient") - cert.sign() - cert.save_to_file(cert_file) - -c = GeniClient("https://localhost:12345/", key_file, cert_file) - -gid = c.get_gid("planetlab.smbaker.dummy.client")[0] -gid.save_to_file("dummyclient.gid") - -print "gid: ", gid.get_subject(), "saved to dummyclient.gid" - -cred = c.get_self_credential("user", "planetlab.smbaker.dummy.client") -cred.save_to_file("dummyclient.cred") - -print "cred: ", cred.get_subject(), "saved to dummyclient.cred" - -object_cred = c.get_credential(cred, "slice", "planetlab.smbaker.dummy.slice") -object_cred.save_to_file("dummyslice.cred") - -print "cred: ", object_cred.get_subject(), "saved to dummyslice.cred" diff --git a/dummy/dummyServer.py b/dummy/dummyServer.py deleted file mode 100644 index c64c73dc..00000000 --- a/dummy/dummyServer.py +++ /dev/null @@ -1,93 +0,0 @@ -import tempfile -import os - -from cert import * -from gid import * -from geniserver import * - -# DummyRegistry implements the security layer for a registry. It creates GIDs -# by using the public key contained in client's certificate. - - -class DummyRegistry(GeniServer): - gid_dict = {} - - def __init__(self, ip, port, key_file, cert_file): - GeniServer.__init__(self, ip, port, key_file, cert_file) - - def register_functions(self): - GeniServer.register_functions(self) - self.server.register_function(self.get_self_credential) - self.server.register_function(self.get_credential) - self.server.register_function(self.get_gid) - - def resolve_gid(self, name): - gid = self.gid_dict.get(name, None) - if gid: - return [gid] - - # assume the user is who he says he is, and create a GID for him - peer_cert = self.server.peer_cert - gid = GID(subject=name, uuid=create_uuid(), hrn=name) - gid.set_pubkey(peer_cert.get_pubkey()) - gid.set_issuer(key=self.key, cert=self.cert) - gid.encode() - gid.sign() - - self.gid_dict[name] = gid - - return [gid] - - def get_gid(self, name): - gid_list = self.resolve_gid(name) - gid_string_list = [] - for gid in gid_list: - gid_string_list.append(gid.save_to_string()) - return gid_string_list - - def get_self_credential(self, type, name): - client_gid = self.resolve_gid(name)[0] - cred = Credential(subject = client_gid.get_subject()) - cred.set_gid_caller(client_gid) - cred.set_issuer(key=self.key, cert=self.cert) - cred.set_pubkey(client_gid.get_pubkey()) - cred.encode() - cred.sign() - return cred.save_to_string() - - def get_credential(self, cred, type, name): - if not cred: - return get_self_credential(self, type, name) - - self.decode_authentication(cred) - - object_gid = self.resolve_gid(name)[0] - new_cred = Credential(subject = object_gid.get_subject()) - new_cred.set_gid_caller(self.client_gid) - new_cred.set_gid_object(object_gid) - new_cred.set_issuer(key=self.key, cert=self.cert) - new_cred.set_pubkey(object_gid.get_pubkey()) - new_cred.encode() - new_cred.sign() - - return new_cred.save_to_string() - -if __name__ == "__main__": - key_file = "dummyserver.key" - cert_file = "dummyserver.cert" - - # if no key is specified, then make one up - if (not os.path.exists(key_file)) or (not os.path.exists(cert_file)): - key = Keypair(create=True) - key_file = "dummyserver.key" - key.save_to_file(key_file) - - cert = Certificate(subject="dummy") - cert.set_issuer(key=key, subject="dummy") - cert.set_pubkey(key) - cert.sign() - cert.save_to_file(cert_file) - - s = DummyRegistry("localhost", 12345, key_file, cert_file) - s.run() - diff --git a/gui/JavaApplication1/build.xml b/gui/JavaApplication1/build.xml deleted file mode 100644 index 716370b6..00000000 --- a/gui/JavaApplication1/build.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - Builds, tests, and runs the project JavaApplication1. - - - diff --git a/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1$1.class b/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1$1.class deleted file mode 100644 index 523cbd17bdb301d7f736af36f0a0ef69b9f18f4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1039 zcmaiz-A)rh7>1v(EnV5Hv=&8Fekv{sMcHoRS&fN7h(85MBzQb*M_97#lHH}?)u@+X zg3);31$a@$%$CHzK<8k7zIo^U-g&>7A3wi+2Ymcds!ZEh%#30)Yr3Y*ZRRZQShyDR zLN(tDGuOAcDH?+DdL zVI1aA!F?ma0Wt7cy4DeHbNOce>vfeH5OwZ zUkAA`U4;IE3F0GsWKTKLMr5ik#w$L0>j*c+W zSCN|wlLhp|%Z|f%*L$(0Px7@;N4<_PbFogrRzaY%%=O!C;mxr3)j2QIMWtQbrb!hG z;Sy4>n}Pu)V2m0<9e7Boh}f;A&q(VFrB4Os3Q)y-o%b{V$IP)A=PKquU1Q>m;U(pQ zVZ3#UoKhYPm8GwY{HC%EL_W}vj|JVt;K&&rjB}kygfcgZ^f$Q$RIr)C0UDIB8MNwP F`~~332Ri@& diff --git a/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1.class b/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1.class deleted file mode 100644 index 6cb79d02c91c8e28063368d13488627d7688f321..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1971 zcmai!-*XdH6vsa&O&bUcO=H29YOOWZHWbnzAP_)me@IJzVQWhfe_XPcbalI%$!-hv z)pue1HKUF`Iio&0BPnBNd~_WDD95>*P?}D$c{n+H?)Ut<=X>ry|NikOkZ0u}9h@`b zjU=6%PjZF}Nm{s=pm2aoM!jr|SB&L!>T4;ZY9r3+TIi9YVyK>crzZMF| z8?Iu$Tyeb8RCHDlVt0$X5tHMNt4CIRKZxQa=l!)xQ5&O>ZkWg^GgP5<%qzNn;CQ8J z9j^Fxf*Ffh<}6;|MT_HfS#)#5;vMEK7Puj#8|W}zQL9==Ue_Bv^V-$L&^WwnvB;9e zO_nWg8Sx&sg^r!BJG)8nzQqT8xC^qg9ii8FKbvEjd?s&le`KM!V^PGm(5Cjgl!TuB zyoD|U**&;nTa`my5xW0BfY5H&C_mz_mVHlq;gl1E!sR+`T;-K=^Pw5xE`}Q}xO>_R z?+Ohx5T`b!f{-vJ`hgaX?om}^p3}nQzIpaa^Q_!~4(FXu zwb0x@F=28Y3Up|;);t)(k&+J05^OKWvHn`5Xd*k;BVu5qRXAvZ)z_x0-kjOgnr&Kn zs-!DXi+%fbmB~lAHf7txMN^y^r1lI6dUr&wy#bAg+QgJ?3)vmeZA#QHr(S%WCj}v1 zR>e<*WT3-ECvc({E#7}?V38g==mcV^lvzherOa*`3((C=2tB|BVl)A**%ObD?BF9} z*-e^$i-0c!EtrS!A-#ZQbXs|ZS23^SYxLK`$Wh`n0}rylBaeyy#o@YErP*j(v@E9+ zn;dw|!KM09TkK|=Jgky@^3C5VyUL+$PiuOM!^@i-nHfA;rFDzc@+NH;(#zRR zo~zP6*cq>K^hwMr$Lj9!D$hS{<03~uz91=I(k@@oCtq_`zF}0pWmdjpNxtW{{D77p zsmM=k$j^Kxzwo*I8nu3=)?U4Jc)$Qzgjud~fM02?_uJ diff --git a/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle.class b/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle.class deleted file mode 100644 index 3e0bee3e282d468f71cb74ee6344dbfb035da9a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15568 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 EKmCgFbpQYW diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$1.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$1.class deleted file mode 100644 index 75abe61f67ca5ec1c639fb394f2c42ec05d8ec9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmaKpU279T6o#LZY?JJ|HL+@qNn5M#MVo?2zzd-wlu%0{^{blu>1MDio7u3tiN8xw z6fgV%{wR@I7X&e#t8>nrdERs0`T6Vn4`4{(;?VI}qwCRTtIl?v9if(AMp-ZrI^z#& zsnmQPN1@82#0>i<+C(SsP7j6J)5t{mGhusgb=&?#a7M{g3(aw4^ozypLZ@%lMXZI5 zaT2O{qSDCbWzn(X0)l^Pj7~?f$}*h^TPsz9;i0fTOBR`aqhqZyJr#ETOx0H(^S)kc zllRYT!?6vEv8sBR3*CbH|1QBhPZnvYpGS6Fzuf(iHAQG1n=nqY$h<$(`DHS#bI)g& z`#v@5J`Ec^;Gxi2WnwTCy7uy4`J<_t=Q7HcyN;c_vi%tl6FlL!D*8 zU@#D#T=6qk?7cr>7l$=KS}nT{Pyrga2p;g5N>TB82VaohS1O;1o@+o20bb$*ei3`D z)3P*fuu&3@N`l+_j2wKU`WN68=vOp&T|hRA+$|yCa+6yKRc;reo7@2$+T5iHcnA)~ F`3+Gms~P|R diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$2.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$2.class deleted file mode 100644 index db7e2feaee441d5a96ea51a340d20a54d6b27526..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmaKpQEL-H6otRrY?EeP+gP=>X{%ME)D+yL2tHH<3AF^GK2-ZY*$l~)WHw}{@plP| z;)6fH-=h8mky%qkG0xMSJ9o}G_ngn)KYjw5+$|HZ8M4S$$OhXbu9vt`Vn-;tfyrtO zq1riBQ>Dh^p-Gf8scptb+M1(R?E|6s$XMeZ3){Q%$L^g7K`ZTPVWnfNettIU>d8yh z9cp2Y*qX~y+dmL0#_7?qQ%<)A%Jy~dm#|p9 zcCnsn>*BW4qeEZi!U}ro&X@e>kPsfHXOl!fHC}HtTmHUxMOZns$uP}~?LX6QkoHR4 zjJU<^h!RT?Wna~}BUIW;~rwt6D0&qEWIeIl)N zG)}FyE)xp7K7ddqiO#ZGv(XS9{wJ;6;lGH_?P7<3MT8fgc5Qd*g+$1(G2?a_>+ET!WHkC+9IUp4wRZ*!br5yOkee0~Kk+Y6$C;ToX z5Qqamfd2#B5L#mi36bt;W_I>@XWsqx>&sVQpTNbTO0%{p5`Ex(AeU?6lx zZ`DGn*({Dil}Cx$@1JNBoxDCh6lzZ*6Xj2Z&7I|KyJNu_CKD|*N0HIb=hJhYzEbD0 z7S={dsN%6oBb%2+$BGLG{;4rK9mXolbS7*pRS6Cbh1F>?&-4o&YnADVu=QuEzIvDU z^+KDxe`XtwZCH#|)r(x{7S#WD3Es!R>uO_C8bn3-Ai`4;uU|AnQf$mJo2c&JBbrHw)2qZUGK$Zqo!j I1c&1M1_%nR5&!@I diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$4.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$4.class deleted file mode 100644 index 9421b52d68c93eadc1a7c5dd0fe07bc8f2d82ca9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmaKp(P|Sx6o$W(Y?JJ|HL+@qNn5Mki#7$5VlIS=P(m$*)C;w_pKb=bWiuPHoA_LU zqIls0_)J=4)&)UK=jxm@XTJZOe|}tl`wkosxHz;tR%m-P*{HHvWlN}Jmr)w@gx2s% zEtHy0<0w>Fl$e9=i8j&6`RSohc@dc?dns)0E^pf#3Cp?($Fas6WVr`8mqer&=xNh9i{L7hKt|+F9vj{81vaE(l^eS7*+gdERs0^YhpDAHV^jhfBw&O4p~&W}U4%+d?hBjaxAD;11J?7Mi2j=+}$sm7c#-SBVzZ zM`@&zv6{#BUM5{DE+7Qw#_0JlQCX%lVRNNQcyuhRP18lD-{?fEOizUEKV9|J$GoqX z+T{HUTX1T_qAf=+bD>*M|6e8eZ_~v*(ywCMZcxtt%$g!JPfe7hS!~{4==?gJ)Oi%J z!{dM&^?-(rp72!YtTHh?61w*BU-^@Xn&o;fv{!u<<>2#JFZSqWTcCFdIiXxq5 z;o)E)JilQxH_W{^W(SulAgz`i2dDrIJOm#&q*7%3-u@S)_m#@0qUIJ*!>-RE00JB1 zvqsC(xWjr$I4KEU?=!Oh4d*Yww`g%`NVR}$6jELZ0gt=fLvXlXh;HxzaB1_9W+5lI G6z4Y-xT-|} diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$6.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$6.class deleted file mode 100644 index ce0035b7b094c4652d34d9c56b9eedf05ff3b9b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmaKpU279T6o#LZY?JJEYhu+JleSj77i|hA1ua5FD4~`@>V+Sw+Mrb9Ls-ndd#{JwJba{{b8lxHxn?R_J=P*{riwXIrS{S5X!WgwE(% zEtHzg;wV&kl$gW*nKsec`}1R=_98M-{!-Z5TVA$57Mx)+(L!?+8U1=bz0~PDbs1}6 zeUyYM9;-C6_cG~NaRI?UH%6z!SY?^cgw3TY!O^j>HcjT4exqZpGCdKt|8&(?AM?Im zXp{FZY{97wi?*tIkqg~|`u{4ydz;MDP``?7yM8(Q6KjglJT+mQWRdxBq4TR`Qs<%1 z4v&0l)O{K@dd#lSS!QBzBy{cLzw##&HOqA>w3mGqZdvz-$#j+&ZSqX0?pd=v6^1&? zf@gz)@cf3&+%Wh4m>nEe0BN=CI6wtx;39ayQz}Kq>m7VSdS9u0Dr#1N8g_jiKH%FJ zk2PAB#%eX{y9ib86`~v52OQcwpjpTX H4#oKmAdjkD diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$7.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$7.class deleted file mode 100644 index 5e4ce4b070e0367cb3745be50a63316640d19e49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmZ{h%}yIJ6otP#nPli-6bLj0%HM)TU_rzR394>Ti;x19N{K|fat13H4IVTz=>xTW zfo_UaBp#p-RaKrug$-U<@;&!__C5ad_xA&^%SKFtcEqcgfVSTjBbFkTBVG%QH`dwm ztx)T1^@Z>-yEHh)4tBFKTnEbd1VU$K^;41^21aYg(-xU z-nIU!_3dqH6J6TO?RJlhvq$I0n|lXBEgv}{KFdaVV%}TNR}+258-?aOm!w%?-SEVe zSJ|avg;m8AFNDSC*ormQh2`h;%{^h(i``VaVfVw}+9ajWdMte$IX9j+ywTPP?ar5K zl(FNi%&i+9_@Ls#lzm&+Dx9$Md8^L`bs7i}5P*LyLJV{f1gLM{AwMg58meaG8wyb4 z24Ym`@j#~JO@R8yF6Zy`x{CL7q6Hbj*b=y1(KuEw#nm~+D$FHe> DH(YJD diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI.class deleted file mode 100644 index 669c519dd66da9a3cdd86940030bac3c5eedf502..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10671 zcmb_h33yahmi|v|@1^oWD#aoN5feoSm4pxyKoUR$vP2Vv6d;8S@{)Qa1(jE^>IH#T zL`4zBcEbg6!v);e;zf-MZMVquIMdUMz4!F=%=9w$I5XNfJ=0F(eCNJbYa*auTYl%B zd+xdaJ@?#m&pj`E=fvx80jQ^AUhKtxF!@g=|Hb5ECZ90*qZfDMICGyCVK4sMixKz} zbN|ESf0_JQ!e`w6pM<|~d%_DJJ}<&vf)_p_i5y;x#&MQ7y{IM^b8atc$s>`(9odV~ zR3wqtiwTxuF^d&1CQu23j9^mA#K#s0tTKuGUQ}6~krIvaq8i5~8tp}`B^<*bXGk>G zi+W2EV97WpfP32A1N>nG~9hs)dRPV(Sn$8<+kf~9o88Xe3XqFet={%l0o4Ft(0k%Oqa^ETBfi}Yh=1iqOW<;&s(gewKA>qVixb_axb>Aa2D@-y+o=P z+i8+aof36EvQ`ysVA9QgTFwjgu$@uvZe+5F4T>@8Wuo(9af$l8xC6(% zbOj|ON=jr9iu+Vui*1O;Vp@VQp>3nOSylV`V$m+uh{pB$x@A1RNQ^fV$+pV$EZdM}8wsTwTXjQA=xS_HLhaS+3FY}vdBe>FX`|R`{g9mraaLh^ zMztZsHD9V-c~%h=kdEr|Da#tCQSn<}L9<6GFhwxaF0 z;-sM({Ykr5lmj7nTke??)uYBdg0pJMDuQc4Jfaaw+oHO*w7<7gORP{kV;aHV7VlDH ztJFl4`?kL zLi%Wd50>AuIZhA`T`3ytmZ{-oBS z#WXdkMFPqSL=XUSA+D+YnFm z7RbtTqrTP9dP9b4XbXB&y_@YnbBO({lQrK8$sEJ8!vs00#k4Miaj2Ex>Q$pUVN8`3 zop})@?u44?P7+2AGfeQRU0qr-IdR&wX@v7EtMcM5eG^XNNnXUUWg3(EEMh$)&iWFF z*)1|)+OX*ilkPO+b{ca#Gejp8?@x4Ti=uqv72EQue9aVm58qet0h1pw`7x89;%5qe z!rWn)3XU>)3I`SHr_BnU#z6(oFnJaS34X@Oyb0p!D|nJe%1`#PD0mtB6da~272Jb+ z71{!mL$B~L;`^=OLF`v(D{WKo3SLy`>vR>t$GW+vs^ETByPCEW#t#9?W&s7yW50qI z80i|?q0qH-okG{sPK9p3+X|i-x-F4a6+D1_gfR@A*>Fxq7sh7>(ivPqiZ^;6PaT&x zHSal6@E9IfaESf-98Y+OCydOSU_FHj9>T*49$|8T$)k8!p&MzJjXzwNPOK+@ptS0` zmRJx|lSwVf&c8{a-E=ddh}~SlDN>?a6xu_#D)bGyjZnIfpVW%2@%}``l8&WK3f+#k z3I4vAs%u6}?VP%?Z)!ZLZc+&qxyD|oZBYAToM}7x9czzAxPowmS_qEz7GC=fh3=%g z2qUJ}b;Y8ZZd`8TxL0iL)0zmQgi(tZE^V!dL^*H76I+`IXPqKHGxlDE?xuSbx|jAT zbU!^H(Sr&-#O=chJwgYVJkI0^CI^`uQs_x~in*s1dWN25{pS>Vo}MKXTftLtp=ziK zy}%wAyELxXYLTeH@22ovqF2;UjPN3%G^807VgsTqN)mi53B{saTEzygl#;g6(s(2* zv6Ncs+FNWTg7pzUVL5ErOjl@tUM0v0tvi}D_znJI4Pys&P`S83a!( z9^cg8cQUM*3cW_V6ndRDvsVWBz~4~lO-@*E;cbQ9qPG<~0#l)HGI@u-buzeF5`9~t zcj+i$EXVS2E-6fSqSPdKlbW$Anv9B~%2l<7Q+18~@?=tiRTqgDBO?=;MPzm#S0+(4 z7Tu-^#Uw%M)(lQCgi%#ftd}OYZX%R+Ylam7T7=(;Ld8ouH)>s6v5ZJ+#)AGtLemWn zO2TaWrOm|~y24NiZ_Jkkvx1N?`Ly78vXs^dwzjE8BBFfZDp%9lYnApk3o56yf|wS_ zO@s5}iHMe1q>AK4@OLFN)zDT%jhGg(#t1Wp@tt+r=_u(GD0R8hxCBpXMjFE|{0b&m zqrxh7yA?|L1(6*g><>Aq8Frp7fXmC`LidauM=Xfzh8op#4lZ4QZ( zr?JXVPtB}qZ9RrkL2! z7e~_#eir$I&VC9x31_ZUv;8pVO9`!2t=1!EY1`lZU(K@@ef2{cdg9@#*1y`dEA$zM zC6@!~cZt$ZXwJixJ1$cCsGQSliAB5hUQIWw%Auv-h$p)e@fa5+i-z~;mrX&0hN{*z zUw)RWPwm=dl@X!nHjUusXyq^Cgtl3YMXkzGN@#s*lF* zd3(JV@S?zZ$(Fxtx3Adpl<50F{O14=1^^s^8x8 zZsj*IBJ2#NP#OxmSUD7Svu-Ht38tWg!cs7Wl2BW45WaAAFom)K_zz=bFolsOM!h5~ zd=)?tUI3%v!WhUH3m*a)i*cyHcvRs`EW-q>$64q`C0+wC#n;PO`JK13E=^pwX`;vLWQMM zY3Z0ao6W5;aSpe&CMI%QZQ|Ul{bxf4FcC7&#Y9X(4JM-nQ_zYamZKVB)CjwSmPNMR zz#1IEH$jlmfp_pNI8cMB_%_~!6Au0xjkTAe<0xhi$p{W&M0fy`4r6j~5LMv;OgW5T za1hnu0n{AE8Nor+h6gb9FalX=c~-YB%T5apqCPx;>4(vf#VyUUMOn5u%PLv6B+E8t zac5)~uE?5GnN^q>9K@{f0M0v%*;%$J%Qk1(IoWAtL63>K!9mOm2M2Jzi3@@$O!l|D ziuooM1XBq5FEp``Puai7#9}_@K`aS--o*H@)885jyZjf0!fyY?p#ij+Xy@biFSRu5 z{FhjBr}>weSU8B~VMZT7M;o`*CPLNKE)y%NO{_Grs@iSyf(fQjXW~+}!NjE|R{O^B z&qUb78lDkMVVa4{oF=|zVvUK_0*eiBl;P8|Yd$xzmJQGA1$-xb^L-~wtTnOP#40g! zUDk|hj|s-$HF>h{gd?r(E8(Asa9Ssj9<)tm8%OXjN2feTXPUi_slv9)#nS78DKz+1 z6P?VsOmy+p_eZP)uw7O~KAU^El!(jvT<7BOs*e?uNh(EvJ@ zvb@$rsJ3zt6g-75*!%n_J0u+-G0%1Yh!2 zzU0YJ*yA@sVTtd&oO|ah2hqsqVB#wK;T@m_r=e3SS_r@dF zdrXcUoG!{-CT_IbUBa~{ZerIKF%u}_>rfOZ60R*Wu`*D^G4B$*2@cfB=|Hmswb73A zUK2Xsfd&)1bM?y{WzMj$f;HGT<@~cUyoq%M%ekB;Zsuc7UmspF&D;KA`+X;Tf!q^r zNSjrLeb)c!71jq$+>)s{XfxIVn1N!<#2Cy%CC)<)W@8qbFdxlm#~iH2Ty$X`bexZ^ zxBxrRg4-}3_hSK`z=e1b3o(dAIEuyi9+u!2XvObv5kA4i_zT*}fu%G8D`*^6(mA-4 zY7nM&Tt=&~mM+KT)B}|abkbGmayYTsu^qb{yKs}^Htcrn$IXsIxW(}T_Bh_b?T!y{ zx8v8i$MF&Fb$p8ZoH8D8j>iG#WIXC@#AD96c-+~6C!O7R&Y8sX&K-Ecxf?G!A41Cc z3SM)*jn|#;W6=2l-f(`1BhJt9uB#MBUE}edYY#qfeS+V(PT;q03BPyy@S(c}e{e6u z$L=ux=s-yc=q5u90NHHxx@Gy9D~F0k$WV*gJWh=a#!3!6bh3TqpTtI)tms-IiXlt(X49 z%KNlBgq7tUOHV1#OMi-qPq0I%EtejKTrNK%K2S=&Kv{ri{jdQ6fVQKAuE8kUf$?-5 z&Y|m3MLRK#ZoqkTBQBs_xR`ch8QqN4bPLwg9`w+yNYZWCLbqcF-GQ6vPTWp+VL#oC zC+HqLNB80|-G?`6AKs+KjGJaPsTsvUu>8r`@VRB)dTQk5kvsMmlFUU{Hyqi z1U&c+UlpH>-{N<};kZv9=jQ_F_ru%cI(;0=o_`x2$N6P(J{%s$@nv!TFg#A-MLW5l z;lRI(8~PEQ3!npD%!Bn`zuj)L+wFFHt=;al+dD)n(>yGv`#>}Y%V|G|9>sEc%tikX DwyJW% diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GuiComponent.class b/gui/JavaApplication1/build/classes/javaapplication1/GuiComponent.class deleted file mode 100644 index a93c11db10c8d0073a23ba9e527cdeceda6a71db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1573 zcma))TW=Ck5P-h}yFg)krO;CC%`0p#Sbejm4>r-nG}YLK2Te>Cdc>{Ug}~CJ|HB`m ziNwSQe}F&Am~(b*8+u6OVPm_n)7?fE{-7&QcfT zy1hm0HDw^M&%IzE1y<;tNkQhB zANtXr;6wH1D?^c+LI2~aH3Zgv=R^vo5ByLb4$hjgckDF-joWE?LBs3$>N{~-(I>wz zSk>9RZa45-UgUSeo%+jxzu!6Qc0w6OyMp|Q{OApWsNn^IY+FW$y07_a?IxHY+y56( zGW4r33vC&_xtw#US~CnmQ0QNeDpw6bDw*Or);m#!V=LE|(Lub6T>r{!OVxtfjPfRC z{-`tPwd4z5&1v>}=i6%i4l_J*n8tCKAn#C6)}#_sID%yrG))33BSVL^L zVh_oD(;17v3R$3t#XJ*~n4(OP1u87E$`bRyUYwH>Wz=s?*B07Rlqqc~&a}1^simz2 z9Bc%OR1(5ELcg@#@1(w7Vq~<_)#aQxASowU;#Tr_kCZN!(XCxI5hFat=84Wwj-xJt zGYPQZHp>Q(^eD(vBghJ?CXn*F(B$%6v#azNM;n|vk~OJ8RXib$2SsTGZ+J+j#Ys? I&{z5JFQhT-tN;K2 diff --git a/gui/JavaApplication1/build/classes/javaapplication1/PanelFiller.class b/gui/JavaApplication1/build/classes/javaapplication1/PanelFiller.class deleted file mode 100644 index 3e8e5a2d793924165d91f4f75cf3aee2d5e9d729..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7338 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 diff --git a/gui/JavaApplication1/build/classes/javaapplication1/RecordInfo.class b/gui/JavaApplication1/build/classes/javaapplication1/RecordInfo.class deleted file mode 100644 index aa54ab1f3b450a12828a4f9574f046cbe8653c60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 878 zcmZ{h&2G~`6h_bWZ|j&Ql%({BQdl(&h)}U?)lC6`RDqyX_l`THu7Vvo4iaw#5)~2) z9)O2JXvQW%#NEt{?_3|9@6NB^KYjxH>;$-MF5|GJmwP_jKKBLtGEaroldI@c)E`CZ zuzyyrC*y z=@jkm-eQN~O{)7&4N?RAp(@TyR)6yM6r5($JXS9g9j!T+eWC{yvP=--;fE~Y3tPH+ zLp-51AMV@1m5K`<;@|=nmZq4~lG!~(!x0+5GXw$L-go4yX$ye>3uxoe;T8~s0U?xg@T6h(+&+|Xd$d}r^5GVe&4XZ z%=~l+*sXPI)2V(wGV#GPZgZ_NT_2aHhOlPRdNU=jQWDl`MeP4Y4r@j3){FczpHk#G RE-!8n(Ql?-Xx&8L_yhc%hnN5W diff --git a/gui/JavaApplication1/build/classes/javaapplication1/SpringUtilities.class b/gui/JavaApplication1/build/classes/javaapplication1/SpringUtilities.class deleted file mode 100644 index 4b026d92ddd9a6ecfaac23ef127cab40f4d0df23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4280 zcma);ZE##w8OMJoyUFgod$YUQWD{gN&(TOsvvzdcZcBkBZNj|0 z$F0n6tLVu0iqP*)IVHiW;eFNt%PJHy&bZ||`P_xQBZZ=qo809(8OL?(Qolf#5_iP8 z(=G`*x|K<EvCYkg-ao0juO*H9Kw>WRm>?|9C!E3h*sKXds^}xkby#xg~)yl*`#g zWg@d(tNhINmS&vXWTmuW>tKG`UA@SxUmzTT7!ouUtfHNB�uDrodm!&y-a7Oi2)w zH{e*AJ*T&$0{`p|YeL{ZsFtRTiYHih)?8$drH$A6YV7)~rH*u1)d^QapD7rv3Vc~> zRuIlwvo|^u?o?GA$y&36wlg{9RwcoVRdQuJ1R=S-AwT22H5R-zK547-N|(3hivxBh zBe=YKXlU_;SKBnS?yRMr(RN=kKO^vs=QBbkw%?YJvc_ExE21a}$&0RCZ{v(CMbI>* zDiDZSfjB78NAlCfaeJ#H5#Q!jR>SZ{337w;=nind!2>)f=#VlGU?Z+X{1wwqX2LGY zjyX9eJDrt)PhOTZc!-AseB0m=9+fZOG59Wr0({TlF&-C03q^acT`bxYHH#;B)a!hm zpC@@Vz*7d_=LdpwWc>Oo_JAo!oKEf2*f)4urhm!KDLc8>DVE%%Rh*p8+BrAr=95*P zC9~5dH#uFhlU^%4*Bb*oWAHhi+0l3g?Kmuz>Bpt){p z3%ZxO>!orM_)61Rq5O;rnoEnPzhK=GewK2xZZ|7g!&>C85h3R^>NCthkFQL;OnaG*RCE1n*xwh4N8-j2 zHkyH+c*IjoMa^b2TBc)xb5hM_Snf@^56?x!{HZ_ssz$5pjiP3AnPq0w43}B1RR1PY z5s`}e`dZ>GGRl}VXsJYr#aj}Er)V)Fsi+w<^)iWh+RT_4iFKA)VFnlIDwBw}Br;FY zY{tw`nWU!?jjfa#n$k#`u~cNPMa-Xi+6?rRX-~D7EwPoVBW6TtD!o-^ORQ71s}jMJ z9#!|QVbD@R%rl$^T!Y4T46Y^2FzsxkgB`5kde(3Q>ltAaJK4-0wsI4@xP{xel?=Bt zi^Uwba6fxF#3YB=$MfvxW%lwK1s1r2;}m&^5+|7ELk{o}GknZJ{=;3I;wwVqZn2De z#0rXHHTQ}Q+$XN!L9vHN6kz^~Nf?cbxr87Y&Y_PKQTDKje$qrZOt>O@i0+E)1j9-e z<1O|oS&M`gm$60iNsMwiY1t1k%I8Vbpmtv%jZf{aAT0qbMj0SYquO0bnkF={gR9s| zfEA*js~IH78gVg045G1KY~&gS(b*)<<5~s@v01EQm^21kMJwAFq?uj9&vph0v%q1l zBSnPcJi`uIn~EQqvBViC- zpQh`%lCFxNL0_L1*AhqA=Tm(3^@ZZ0L_2t#DAzz;nHxe>zD6Yqi zN?678(466g^)y!1&Qr~1v#FIyn$41r%az_qQ!_(~ZW$Lj` zne-B*dzf>9qiDQ_!7;+TN;|)xg9SQygSEWL299$Hzhsc(Z0Bum;8Sz^Re3t47AI8X3E4WbCSuv8zVLt{NHJD`e~x4cx5Ac!&qMMUqh% Yv??0uG;pgT#uxbm2^7*lUw&Vzqxm@e^q*__WH?T` z@@1q)P|_{z=&|}-!}lpr^eJgmrYNZE(9#qH!F&^MIv295*uupFY%DDTSX#%NWpfr0 zx(0&lz%v8_a9iIHU(B-=po|5q;!vXk<~g_o+yDesRx^Pf77h@!9#61ZPbS!{rxTpH zR@KBCxU5rVg9@8Qvo+1jG$Am+8YVEvnjkRHHi8=UtYUkH{1xl-4B0cOk8*L>Xk^I; zSVq`0xO2#9!#lXNjl$aW)eO$d-~{WrAoe22elEyHK8U>ta)ir^D?s!*_0l$TL7YX9 ex49rU^FjVv+jJuDartlsi2k26$St#j+rI&q;GH%A diff --git a/gui/JavaApplication1/certutil.py b/gui/JavaApplication1/certutil.py deleted file mode 100755 index 73a534f6..00000000 --- a/gui/JavaApplication1/certutil.py +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/python -from M2Crypto import X509 -import sys - -id_file = "" -try: - if len(sys.argv)>1: - id_file = sys.argv[len(sys.argv)-1] - else: - print 'File '+id_file+' does not exist.\n' - sys.exit(0) - pubkey = X509.load_cert(id_file).get_pubkey().as_pem(cipher=None) - print pubkey - - print "Character map:\n" - prev = '' - cur = '' - for ch in pubkey: - prev = cur - cur = ch - if cur == '\n': - 1==1 - print ch, -except: - print "Error in input file.\n" diff --git a/gui/JavaApplication1/client_keiko/acc_file b/gui/JavaApplication1/client_keiko/acc_file deleted file mode 100644 index 88158341..00000000 --- a/gui/JavaApplication1/client_keiko/acc_file +++ /dev/null @@ -1,52 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIB+zCCAWQCAQAwDQYJKoZIhvcNAQEEBQAwDzENMAsGA1UEAxMEa2VpbzAeFw0w -ODAzMjgwNDI2NDRaFw0wODA3MjEyMjEzMjRaMBoxGDAWBgNVBAMTD0dFTkkgQWNj -b3VudGluZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAlxyzi9dVIDmyUuaW -/H7YM+5LLZbQg/lGtQ0hyn/DNWp0b3FZ0tazmdK/yD3bq1sUa8txCq2gSsBzv6gA -3E1YI71wYmv8xTOOo5hZlBT3apdh2UKlu4vuUBVaSIm3whiVEd7sGkJJIJoWC3tx -R+/d9u6GYgORP/sb8q2Xk2y9CB8CAwEAAaNhMF8wXQYDVR0RAQH/BFMwUYZPaHR0 -cDovLyNocm46cGxhbmV0bGFiLmpwLmtlaW8ua2Vpa28jdXVpZDo1MzU4NDk4NDQ3 -NTM3MDMzNTI5ODU5MjQ1MTI2MjQwODAwMDc5MjANBgkqhkiG9w0BAQQFAAOBgQCW -zG0R4AkzONNWSEYccFcI0yDJIcojse8CGVhI0N8ykmph1MEcUHAdT8x1Ssl593+o -K6vmwJpak8qLjD9Fbry/byVj3d8CzrokO8LkjVz4daye0SQIFp7TbfeoK9mg/GE1 -shI6rxnUg15cfR9L9lkso6p8O/KQpWX9zUtgRIuTbw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw -MzI4MDQyNjQ0WhcNMDgwNzIxMjIxMzI0WjAaMRgwFgYDVQQDEw9HRU5JIEFjY291 -bnRpbmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOVoqTRxh/259AB1p3+G -HcUxSKpdVkKgJJGXvsCtav2Rxu9jlEq1AHt6Ff08YlqjVLPbSLTxVDDYUva+fmWl -SzWRRZdVkPrT5PipoQ38HM/RlgsMaSsB1otJd+sbVP2Opwbqcc3DZ4+NbRAV051Z -mzR4C10QIOkYBaa+D48ocjC9AgMBAAGjWzBZMFcGA1UdEQEB/wRNMEuGSWh0dHA6 -Ly8jaHJuOnBsYW5ldGxhYi5qcC5rZWlvI3V1aWQ6NjU5MTQzMzc2OTc1MDYxNDM3 -ODc5MDUwMjkzMDIyOTMxMDY2MzAwDQYJKoZIhvcNAQEEBQADgYEA0NDOfUAk1Puw -ghgHzdXzTBZLJkhj9B80D678aSGX/dSOIIJGUo/AXRNfwtVRVUfQ+PQs/LgygGJ6 -u1NUTuhVDJrJROd+bguDp5DSqR/om9uupSvGxGjcGGLpcrGES7hWuTU1VIRgdC8Z -1BK3qYToeIsiaDzIjrkZplq5brgBHoE= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODA0MDAyMloXDTA4MDcyMTIxNDcwMlowGjEYMBYGA1UEAxMPR0VO -SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgD+Z79eOf -iurH0dBuwTFgTfWafbVQXcsY6IQs3o+lV9n7uNAIy2+puX30TZPVja6AsYbLXJsK -2xMUYWuqcyErA9DCD1Ln+PLEJnskx5KQnVm5Gw/xbVOxDSOWQOXUKMxRbRCtlFtZ -Ar/iM40lSpgUTHzHBGOlH7lNeY3UZvLEZQIDAQABo1YwVDBSBgNVHREBAf8ESDBG -hkRodHRwOi8vI2hybjpwbGFuZXRsYWIuanAjdXVpZDoxOTUzNTQ1Nzg5NjI5MDI3 -NTY4NTk3NzE3OTI3NzU0NzI4MTY0MTANBgkqhkiG9w0BAQQFAAOBgQBFnESK6zc+ -GxI/XET7boZ8GSMbKwSQoGf33Sz1qwRp31nf4HvoHXl6j6DmpFtcEqeK8rTP+AiX -n6b14cfXdQ0Px+00/zDNcDyVzh01V6KMrDeVhZrpiejIqW+vPSjMMoO1/nYrY5r4 -gf8HYww8uY1RciEeLPZkcJtR0Gq2jnkT4Q== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDcyMTIxMzEyOFowGjEYMBYGA1UEAxMPR0VO -SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz -8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vG -O7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiL -m6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABo1QwUjBQBgNVHREBAf8ERjBE -hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjQyMTQ0ODk4NTIwNjUyMzY3 -MjM5NzIxNzQ2MjkyMjIyNjk3MTgwDQYJKoZIhvcNAQEEBQADgYEAUrjefqbA5c69 -KfNh/ENOp0xFnvWn3UReOo2mhYZI2LWyX41g/q/InVogh8aJ7LXHI6wjHL+PGz3n -fU+Bl2fL7GAL0i6Wr1JRbT2YHMJd97C11hWPLg+1Tt3MHwMRf0X8v7I3pRSJOIq3 -si0AZRHgngrWmhf85bKAqS210OWHWOM= ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/clientstub.py b/gui/JavaApplication1/client_keiko/clientstub.py deleted file mode 100755 index 147ecaaf..00000000 --- a/gui/JavaApplication1/client_keiko/clientstub.py +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/python - -import os, sys -from M2Crypto import SSL -sys.path.append('/home/soners/work/geni/rpc/util') -sys.path.append('/home/soners/work/geni/rpc/util/sec') -from sec import * - -SERVER_HOST = '127.0.0.1' -SERVER_PORT = 8002 -AUTH_HOST = '127.0.0.1' -AUTH_PORT = 8002 - -renew_res1 = 0 -renew_res2 = 0 - -def verify_callback(preverify_ok, ctx): - return 1 - -class GENIClient(): - def __init__(self, hrn, type, id_file, id_key_file, acc_file, cred_file): - self.hrn = hrn - self.type = type - #check if the certificate and the private key exists, terminate if not - if not os.path.exists(id_file) or not os.path.exists(id_key_file) : - print 'The certificate or the private key does not exist.\n' - os.exit(1) - #check the acc and cred files - if not os.path.exists(acc_file) or not is_valid_chain(acc_file): - open(acc_file, 'w').write('ANONYM') - if not os.path.exists(cred_file) or not is_valid_chain(cred_file): - open(cred_file, 'w').write('NO_CRED') - #initialize the security system - self.sec = Sec('client', id_file, id_key_file, acc_file, cred_file) - #ssl parameters - self.ctx = SSL.Context() - self.ctx.load_cert(self.sec.id_file,self.sec.id_key_file) - self.ctx.set_verify(SSL.verify_peer | SSL.verify_fail_if_no_peer_cert, depth=9, callback=verify_callback) - - def connect(self, host, port): - #if the acc and cred needs renewal then do call to authority - if self.type == 'user' or self.type == 'slice' or self.type == 'SA': - reg_type = 'slice' - else: - reg_type ='component' - renew_res1 = renew_cert('accounting', '.', reg_type, self.hrn, None, None, (AUTH_HOST, AUTH_PORT), self.sec) - renew_res2 = renew_cert('credential', '.', reg_type, self.hrn, None, None, (AUTH_HOST, AUTH_PORT), self.sec) - if renew_res1 == None: - print "There is no certificate in the directory "+"./\n" - os.exit(0) - #connect to server - server = SSL.Connection(self.ctx) - server.connect((host,port)) - peer = self.sec.auth_protocol(server) - if peer: - return server - else: - return None - -def main(): - try: - #read the input file - fp = open('tmp_input.txt', 'r') - user_data = fp.readline() - call_data = fp.readline() - print 'Read file.\n' - - #client related info - HRN = user_data.split(' ')[0] - TYPE = user_data.split(' ')[1].split('\n')[0] - name = get_leaf(HRN) - ID_FILE = name+'.cert' - ID_KEY_FILE = name+'.pkey' - ACC_FILE = 'acc_file' - CRED_FILE = 'cred_file' - my_client = GENIClient(HRN, TYPE, ID_FILE, ID_KEY_FILE, ACC_FILE, CRED_FILE) - print 'Constructed client.\n' - - #operation call - message = eval(call_data) - server = my_client.connect(SERVER_HOST, SERVER_PORT) - if server: - server.write(str(message)) - result = server.read() - server.close() - print 'Performed the call.\n' - else: - result = "Error in client data structures.\n" - - if renew_res2 == 1: - result = "Cred renewed. "+result - if renew_res1 == 1: - result = "Acc renewed. "+result - #write result to output file - open('tmp_output.txt','w').write(result) - print 'Written to file.\n' - except: - #write result to output file - open('tmp_output.txt','w').write("An error occurred in client stub.\n") - print 'Exception occurred.\n' - -if __name__=="__main__": - print 'Client started.\n' - main() diff --git a/gui/JavaApplication1/client_keiko/cred_file b/gui/JavaApplication1/client_keiko/cred_file deleted file mode 100644 index 98c0d2d7..00000000 --- a/gui/JavaApplication1/client_keiko/cred_file +++ /dev/null @@ -1,59 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICazCCAdQCAQAwDQYJKoZIhvcNAQEEBQAwDzENMAsGA1UEAxMEa2VpbzAeFw0w -ODAzMjgxNDI1MTZaFw0wODA1MDkwNjI1MTZaMB8xHTAbBgNVBAMTFFJlZ2lzdHJ5 -IGNyZWRlbnRpYWxzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCXHLOL11Ug -ObJS5pb8ftgz7kstltCD+Ua1DSHKf8M1anRvcVnS1rOZ0r/IPdurWxRry3EKraBK -wHO/qADcTVgjvXBia/zFM46jmFmUFPdql2HZQqW7i+5QFVpIibfCGJUR3uwaQkkg -mhYLe3FH79327oZiA5E/+xvyrZeTbL0IHwIDAQABo4HLMIHIMIHFBgNVHREBAf8E -gbowgbeGgbRodHRwOi8vI2NyZWRlbnRpYWxfc2V0OigwLTApKDEtMCkoMi0wKSgz -LTApKDQtMCkoNS0wKSg2LTApKDctMCkoOC0wKSg5LTApKDAtMSkoMS0xKSgyLTEp -KDMtMSkoNC0xKSg1LTEpKDYtMSkoNy0xKSg4LTEpKDktMSkjMDpyZWc6c2xjOnBs -YW5ldGxhYi5qcC5rZWlvIzE6cmVnOmNvbXA6cGxhbmV0bGFiLmpwLmtlaW8wDQYJ -KoZIhvcNAQEEBQADgYEAy72/MrNh6ZcAFgTl908nPl0KZGViSIQZG/Ks+QxR2MaD -SV0fPHrzv+RprLJw0frTjwIpPFDhDSvjbZB3+HWNhgKd88mIzwUSMOZjGmLGijRC -VNE5Pf1H2O76yXCc98Tm8ymkeMxps1gH1hfem6N4aToA4tTNma3poQnn3SaHpig= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICTzCCAbgCAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw -MzI4MDQyNjQ2WhcNMDgwNTA4MjAyNjQ2WjAfMR0wGwYDVQQDExRSZWdpc3RyeSBj -cmVkZW50aWFsczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5WipNHGH/bn0 -AHWnf4YdxTFIql1WQqAkkZe+wK1q/ZHG72OUSrUAe3oV/TxiWqNUs9tItPFUMNhS -9r5+ZaVLNZFFl1WQ+tPk+KmhDfwcz9GWCwxpKwHWi0l36xtU/Y6nBupxzcNnj41t -EBXTnVmbNHgLXRAg6RgFpr4PjyhyML0CAwEAAaOBsTCBrjCBqwYDVR0RAQH/BIGg -MIGdhoGaaHR0cDovLyNjcmVkZW50aWFsX3NldDooMi0wKSg0LTApKDYtMCkoNy0w -KSg4LTApKDktMCkoMC0xKSgxLTEpKDItMSkoMy0xKSg0LTEpKDUtMSkoNi0xKSg3 -LTEpKDgtMSkoOS0xKSMwOnJlZzpzbGM6cGxhbmV0bGFiLmpwIzE6cmVnOnNsYzpw -bGFuZXRsYWIuanAua2VpbzANBgkqhkiG9w0BAQQFAAOBgQCQ9r5c/zYcsPuBV4iY -s1KD1E6B1xTu+TtvQw8GMK4JwTLaiBCdX6tiUkOHw40mej3huXD0KSDiBTt34Bg9 -9/E5XwqE0L604WATE4zVzz3s/lP1MroMzjoSphFzXdyHHQRYAOMLWr8e6JLH8qvA -CKI2ZD423aSCNB3FVxqlMyChwg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICTjCCAbcCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODA0MjY0NVoXDTA4MDUwODIwMjY0NVowHzEdMBsGA1UEAxMUUmVn -aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOAP -5nv145+K6sfR0G7BMWBN9Zp9tVBdyxjohCzej6VX2fu40AjLb6m5ffRNk9WNroCx -hstcmwrbExRha6pzISsD0MIPUuf48sQmeyTHkpCdWbkbD/FtU7ENI5ZA5dQozFFt -EK2UW1kCv+IzjSVKmBRMfMcEY6UfuU15jdRm8sRlAgMBAAGjgakwgaYwgaMGA1Ud -EQEB/wSBmDCBlYaBkmh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDItMCkoNC0wKSg2 -LTApKDctMCkoOC0wKSg5LTApKDAtMSkoMS0xKSgyLTEpKDMtMSkoNC0xKSg1LTEp -KDYtMSkoNy0xKSg4LTEpKDktMSkjMDpyZWc6c2xjOnBsYW5ldGxhYiMxOnJlZzpz -bGM6cGxhbmV0bGFiLmpwMA0GCSqGSIb3DQEBBAUAA4GBAGR3d1rIelq++rJjlerk -+Xlbg+siLcDfNrOE4BgPWqZz9G6QDg+oxpmyP7SkqtO/u/D0PLyndcdKqpXsEisw -28KZtudxBTS5cRpTBCZnoUAGBKLJ3pwRqozwKxxCG8rmsUeGl0xdAjLVw9tzLppO -7LyVz7tZQkIyNF23gv+z9IQU ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICEzCCAXwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDUwODE5NDQ0OFowHzEdMBsGA1UEAxMUUmVn -aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALU2 -JnMnIjPy5lUdqFlCpyaGzFE5jxiONEX9YajD23yG9qKZJw7TIfdVQQ+iVuVIzUm6 -R7oze8Y7tpPtskJqlvuS6geWtLfmTQr+9w44xdLzSClPyiW0pt8muW3ySa0RebsX -h+HxSIubqf8YRj048W69S1CogWobwN0F3dISGLpRAgMBAAGjbzBtMGsGA1UdEQEB -/wRhMF+GXWh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDAtMCkoMS0wKSgyLTApKDMt -MCkoNC0wKSg1LTApKDYtMCkoNy0wKSg4LTApKDktMCkjMDpyZWc6c2xjOnBsYW5l -dGxhYjANBgkqhkiG9w0BAQQFAAOBgQBCYwXvYXbMiAi8hiZNFboYE812F0CT1T7U -PRQemorQcU/7SNZh8wOqGSsHSdA9XW5sC01skkxdOrkxTjGA+Nb1BL+vIFLe7wdp -26lQIA3239E9TUSXQlU9TqdALAC1OsmKgN+kbVfqIQ8U2eqAcUawm4h9/8TEV9xG -teVEYDdXpA== ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/keiko.cert b/gui/JavaApplication1/client_keiko/keiko.cert deleted file mode 100644 index 82fbfc7a..00000000 --- a/gui/JavaApplication1/client_keiko/keiko.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVrZWlrbzAeFw0w -ODAzMjgwNDE5MzdaFw0xMzAzMjcwNDE5MzdaMBAxDjAMBgNVBAMTBWtlaWtvMIGf -MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCXHLOL11UgObJS5pb8ftgz7kstltCD -+Ua1DSHKf8M1anRvcVnS1rOZ0r/IPdurWxRry3EKraBKwHO/qADcTVgjvXBia/zF -M46jmFmUFPdql2HZQqW7i+5QFVpIibfCGJUR3uwaQkkgmhYLe3FH79327oZiA5E/ -+xvyrZeTbL0IHwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAIGDtblGdZBm9C1irOwj -vcKM39SDb1MCb5zdBeuidVMPRazIHwMV3QYrrkQVnN9xffjGGyS77pKARYvDdFWm -Lm5LYP7fbRNndR7Y5VZT1uWJtIJn7LEA6fLoqMPftXwDpKYiLP6c/p11FgRYVlAC -WvE0MGOUIOsYSgBmvdcfEPzg ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/keiko.pkey b/gui/JavaApplication1/client_keiko/keiko.pkey deleted file mode 100644 index 03984b8b..00000000 --- a/gui/JavaApplication1/client_keiko/keiko.pkey +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIICXgIBAAKBgQCXHLOL11UgObJS5pb8ftgz7kstltCD+Ua1DSHKf8M1anRvcVnS -1rOZ0r/IPdurWxRry3EKraBKwHO/qADcTVgjvXBia/zFM46jmFmUFPdql2HZQqW7 -i+5QFVpIibfCGJUR3uwaQkkgmhYLe3FH79327oZiA5E/+xvyrZeTbL0IHwIDAQAB -AoGAPVG2Qg7VSkhfZmiP6FIIpboS46MJZiRnXty/U47Yxfo22Wojyvy40LjGfhkr -5LMG7F8Xtf+SxgKmdaVVBBCWrPp4OqkU/mal7mFEkc69rtJUigmsUsFv1SldgBq2 -qUYE337+dgP8+crziOEIA846Yrz69EnHSMKcEPAclxXCAPECQQDE35Em7pFKKRXx -d35pjh6UX0nWUEvxzGnNFazRMaal8R9wz4NKsbo/K46MbG+udbF0Qd6rcG4mCe+5 -1sFCsLx7AkEAxH7TJNSHAj+YyZr+g/fJ4l0tlIKZHNnZ30cnm20PVNr+lGe92lFw -QGlr0BJVKcNxFy2cE5zgmZdvegFTDl8rrQJBAIcQHcPIzZJEJ5K1+Nqvrpj52m0W -P1POehNBuIL3/i1AA+Lf6mG3FmA6IJyD1AarJaftfLa+9kJQdM9Y3tNC7rsCQQCk -FmSsNO4paoJkmRJBkgL9DWKqygSimynd0sW4fXJ4IgjGVXutfKSIpYBq2WRU4+jk -uinEFxVYLaXh9IkvTzphAkEAqyutr5X7XLe6E8km3MVgXgPjH3bn9Au4t/JWH7gV -Tc352qD5VFoByxpv57ZIhWF4dlqikFZYCIbuSgbKfUEsTg== ------END RSA PRIVATE KEY----- diff --git a/gui/JavaApplication1/client_keiko/trusted_certs/geni_mng.cert b/gui/JavaApplication1/client_keiko/trusted_certs/geni_mng.cert deleted file mode 100644 index 9f9b5c30..00000000 --- a/gui/JavaApplication1/client_keiko/trusted_certs/geni_mng.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4 -MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN -BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4 -cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c -LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS -4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc -6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x -k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q -rBwyf1+Su4n1IPiqGi9yyA== ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/trusted_certs/geni_slc.cert b/gui/JavaApplication1/client_keiko/trusted_certs/geni_slc.cert deleted file mode 100644 index 9f9b5c30..00000000 --- a/gui/JavaApplication1/client_keiko/trusted_certs/geni_slc.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4 -MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN -BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4 -cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c -LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS -4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc -6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x -k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q -rBwyf1+Su4n1IPiqGi9yyA== ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_mng.cert b/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_mng.cert deleted file mode 100644 index c1b42112..00000000 --- a/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_mng.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODAzNDUwNVoXDTEzMDMyNzAzNDUwNVowFDESMBAGA1UEAxMJcGxh -bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1li/h52QbJtucIQUE -YZMZkA8tWcS9f0VkAPNS5/OeRhaQ/iLERQI2EV/rmPCuARQhlZLhm5Y5vxvHG/ba -6Rb9vYKEMDujZwdc3QjhAbYS72V28rbdIeHysJ7JeGz9J1ODLSzbcCt5amLZcMPm -u/G64ieWI8QMUxYgCE1ut3bI1QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJH5KqIU -2lrA9calI3oklbWpduiZspbwCUkhr8PNVDnkXSI1K+egDqFTaANVp1DxXU8qaDS6 -X5+s9Qf9FQ5+9mfSaocma6YW4Qfb3Zm/mYmpt+nknTlnVuEaTENyBIPfr0pDqzld -GGcYPul25KknFmdPOrqAUzma9n568u2KYlfz ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_slc.cert b/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_slc.cert deleted file mode 100644 index 9f5b851d..00000000 --- a/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_slc.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODAzNDQ0OFoXDTEzMDMyNzAzNDQ0OFowFDESMBAGA1UEAxMJcGxh -bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz8uZVHahZ -QqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vGO7aT7bJC -apb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiLm6n/GEY9 -OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABRIUVzW -JbwQKnqM3rVHJoSgtYWpgDvJosLCrLZhsXrukOsC8Gs8V6vPTPO7kofdUbHQKRnL -xp1nI5hlWIlq/XOnh+NEPZaB2SAKwfl3FZwUqjaEVd/VYOfsRryZtiUz4sL3CtXN -C8i/I4HwCnrl/pmzbprqpGq+RJTa5yLmBw6r ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/acc_file b/gui/JavaApplication1/client_osaka/acc_file deleted file mode 100644 index a7c9fedb..00000000 --- a/gui/JavaApplication1/client_osaka/acc_file +++ /dev/null @@ -1,39 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw -MzI4MjExMDUxWhcNMDgwNzIyMTQ1NzMxWjAaMRgwFgYDVQQDEw9HRU5JIEFjY291 -bnRpbmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANAGdic1KHHvvlTE7id6 -fmQU4HZ5iZwp9RqFiflTlvc/fJelxS8cV51rE878eZymgbVYwLIcO/Tyvfkg+axM -nBzzWgzSX4wk/zuuNPV0ZwzG0Vf9EN/hzqzu1KWRMxT0/vz6Kri33eTgbyURWp4D -OGYRqR7E573fDd8SWGfWW7AXAgMBAAGjXTBbMFkGA1UdEQEB/wRPME2GS2h0dHA6 -Ly8jaHJuOnBsYW5ldGxhYi5qcC5vc2FrYSN1dWlkOjE1MTI4NTYzNzgzNjk1MTc5 -NTEyOTg5MzAyMTMzNDQ0OTQyMjMyOTANBgkqhkiG9w0BAQQFAAOBgQAfdUPl4pLy -ILFiIvr7a4cH+hfgTvJOwr2U07RZfjiu5qxugOwPJJT0S/RLRRBdaL1VOM/f3ZLl -tRM7JBtaHw5iNQlVAJIWV9rhEKuDywc7Yw6sfsnmNCLie7M2QX9WpQ3G/l21y33G -q6wKxV8TVAj04juCHdJ16FQnx/612VtDOA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODA0MDAyMloXDTA4MDcyMTIxNDcwMlowGjEYMBYGA1UEAxMPR0VO -SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgD+Z79eOf -iurH0dBuwTFgTfWafbVQXcsY6IQs3o+lV9n7uNAIy2+puX30TZPVja6AsYbLXJsK -2xMUYWuqcyErA9DCD1Ln+PLEJnskx5KQnVm5Gw/xbVOxDSOWQOXUKMxRbRCtlFtZ -Ar/iM40lSpgUTHzHBGOlH7lNeY3UZvLEZQIDAQABo1YwVDBSBgNVHREBAf8ESDBG -hkRodHRwOi8vI2hybjpwbGFuZXRsYWIuanAjdXVpZDoxOTUzNTQ1Nzg5NjI5MDI3 -NTY4NTk3NzE3OTI3NzU0NzI4MTY0MTANBgkqhkiG9w0BAQQFAAOBgQBFnESK6zc+ -GxI/XET7boZ8GSMbKwSQoGf33Sz1qwRp31nf4HvoHXl6j6DmpFtcEqeK8rTP+AiX -n6b14cfXdQ0Px+00/zDNcDyVzh01V6KMrDeVhZrpiejIqW+vPSjMMoO1/nYrY5r4 -gf8HYww8uY1RciEeLPZkcJtR0Gq2jnkT4Q== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDcyMTIxMzEyOFowGjEYMBYGA1UEAxMPR0VO -SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz -8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vG -O7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiL -m6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABo1QwUjBQBgNVHREBAf8ERjBE -hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjQyMTQ0ODk4NTIwNjUyMzY3 -MjM5NzIxNzQ2MjkyMjIyNjk3MTgwDQYJKoZIhvcNAQEEBQADgYEAUrjefqbA5c69 -KfNh/ENOp0xFnvWn3UReOo2mhYZI2LWyX41g/q/InVogh8aJ7LXHI6wjHL+PGz3n -fU+Bl2fL7GAL0i6Wr1JRbT2YHMJd97C11hWPLg+1Tt3MHwMRf0X8v7I3pRSJOIq3 -si0AZRHgngrWmhf85bKAqS210OWHWOM= ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/clientstub.py b/gui/JavaApplication1/client_osaka/clientstub.py deleted file mode 100755 index 1a263317..00000000 --- a/gui/JavaApplication1/client_osaka/clientstub.py +++ /dev/null @@ -1,154 +0,0 @@ -#!/usr/bin/python - -import os, sys -from M2Crypto import SSL -sys.path.append('/home/soners/work/geni/rpc/util') -sys.path.append('/home/soners/work/geni/rpc/util/sec') -from sec import * - -SERVER_HOST = '127.0.0.1' -SERVER_PORT = 8002 -AUTH_HOST = '127.0.0.1' -AUTH_PORT = 8002 -MAX_RESULT = 3000 - -renew_res1 = 0 -renew_res2 = 0 - -def verify_callback(preverify_ok, ctx): - return 1 - -class GENIClient(): - def __init__(self, hrn, type, id_file, id_key_file, acc_file, cred_file): - self.hrn = hrn - self.type = type - #check if the certificate and the private key exists, terminate if not - if not os.path.exists(id_file) or not os.path.exists(id_key_file) : - print 'The certificate or the private key does not exist.\n' - os.exit(1) - #check the acc and cred files - if not os.path.exists(acc_file) or not is_valid_chain(acc_file): - open(acc_file, 'w').write('ANONYM') - if not os.path.exists(cred_file) or not is_valid_chain(cred_file): - open(cred_file, 'w').write('NO_CRED') - #initialize the security system - self.sec = Sec('client', id_file, id_key_file, acc_file, cred_file) - #ssl parameters - self.ctx = SSL.Context() - self.ctx.load_cert(self.sec.id_file,self.sec.id_key_file) - self.ctx.set_verify(SSL.verify_peer | SSL.verify_fail_if_no_peer_cert, depth=9, callback=verify_callback) - - def connect(self, host, port): - #if the acc and cred needs renewal then do call to authority - if self.type == 'user' or self.type == 'slice' or self.type == 'SA': - reg_type = 'slice' - else: - reg_type ='component' - renew_res1 = renew_cert('accounting', '.', reg_type, self.hrn, None, None, (AUTH_HOST, AUTH_PORT), self.sec) - renew_res2 = renew_cert('credential', '.', reg_type, self.hrn, None, None, (AUTH_HOST, AUTH_PORT), self.sec) - if renew_res1 == None: - print "There is no certificate in the directory "+"./\n" - os.exit(0) - #connect to server - server = SSL.Connection(self.ctx) - server.connect((host,port)) - peer = self.sec.auth_protocol(server) - if peer: - return server - else: - return None - -def toFileFormat(res_str): - out_str = "" - try: - res_dict = eval(res_str) - if res_dict['geni'].has_key('pubkey'): # in public key, replace '\n' with ' ' - pubkey = res_dict['geni']['pubkey'] - pubkey = pubkey.split('-----BEGIN RSA PRIVATE KEY-----')[1].split('-----END RSA PRIVATE KEY-----')[0].replace('\n',' ') - pubkey = '-----BEGIN RSA PRIVATE KEY-----'+pubkey+'-----END RSA PRIVATE KEY-----' - res_dict['geni']['pubkey'] = pubkey - - if res_dict.has_key('message'): - out_str = res_dict['message']+'\n' - else: - out_str = "{'geni':{\n" - for key in res_dict['geni']: - val = '' - if res_dict['geni'][key] == None: - val = '' - elif isinstance(res_dict['geni'][key], str): - val = res_dict['geni'][key] - else: - val = str(res_dict['geni'][key]) - out_str = out_str+"'"+key+"':"+val+"\n" - out_str = out_str + "}\n" - out_str = out_str + "'pl':{\n" - for key in res_dict['pl']: - val = '' - if res_dict['pl'][key] == None: - val = '' - if isinstance(res_dict['pl'][key], str): - val = res_dict['pl'][key] - else: - val = str(res_dict['pl'][key]) - out_str = out_str+"'"+key+"':"+val+"\n" - out_str = out_str + "}}" - except: - out_str = res_str - return out_str - -def evaluate(call_data): - call_data = eval(call_data) - #adjust the key format to obey server's storage format - if call_data['g_params'].has_key('pubkey'): #replace the ' ' with '\n' - pubkey = call_data['g_params']['pubkey'] - pubkey = pubkey.split('-----BEGIN RSA PRIVATE KEY-----')[1].split('-----END RSA PRIVATE KEY-----')[0].replace(' ','\n') - pubkey = '-----BEGIN RSA PRIVATE KEY-----'+pubkey+'-----END RSA PRIVATE KEY-----' - call_data['g_params']['pubkey'] = pubkey - return call_data - -def main(): - try: - #read the input file - fp = open('tmp_input.txt', 'r') - user_data = fp.readline() - call_data = fp.read() - print 'Read file.\n' - - #client related info - HRN = user_data.split(' ')[0] - TYPE = user_data.split(' ')[1].split('\n')[0] - name = get_leaf(HRN) - ID_FILE = name+'.cert' - ID_KEY_FILE = name+'.pkey' - ACC_FILE = 'acc_file' - CRED_FILE = 'cred_file' - my_client = GENIClient(HRN, TYPE, ID_FILE, ID_KEY_FILE, ACC_FILE, CRED_FILE) - print 'Constructed client.\n' - - #operation call - message = evaluate(call_data) - server = my_client.connect(SERVER_HOST, SERVER_PORT) - if server: - server.write(str(message)) - result = toFileFormat(server.read(MAX_RESULT)) - server.close() - print 'Performed the call.\n' - else: - result = "Error in client data structures.\n" - - if renew_res2 == 1: - result = "Cred renewed.\n"+result - if renew_res1 == 1: - result = "Acc renewed.\n"+result - #write result to output file - open('tmp_output.txt','w').write(result) - print 'Written to file.\n' - except: - #write result to output file - open('tmp_output.txt','w').write("An error occurred in client stub.\n") - print 'Exception occurred.\n' - -if __name__=="__main__": - print 'Client started.\n' - main() diff --git a/gui/JavaApplication1/client_osaka/cred_file b/gui/JavaApplication1/client_osaka/cred_file deleted file mode 100644 index 2dc4a361..00000000 --- a/gui/JavaApplication1/client_osaka/cred_file +++ /dev/null @@ -1,44 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICUDCCAbkCAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw -MzI4MjExMDUxWhcNMDgwNTA5MTMxMDUxWjAfMR0wGwYDVQQDExRSZWdpc3RyeSBj -cmVkZW50aWFsczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0AZ2JzUoce++ -VMTuJ3p+ZBTgdnmJnCn1GoWJ+VOW9z98l6XFLxxXnWsTzvx5nKaBtVjAshw79PK9 -+SD5rEycHPNaDNJfjCT/O6409XRnDMbRV/0Q3+HOrO7UpZEzFPT+/PoquLfd5OBv -JRFangM4ZhGpHsTnvd8N3xJYZ9ZbsBcCAwEAAaOBsjCBrzCBrAYDVR0RAQH/BIGh -MIGehoGbaHR0cDovLyNjcmVkZW50aWFsX3NldDooMi0wKSg0LTApKDYtMCkoNy0w -KSg4LTApKDktMCkoMC0xKSgxLTEpKDItMSkoMy0xKSg0LTEpKDUtMSkoNi0xKSg3 -LTEpKDgtMSkoOS0xKSMwOnJlZzpzbGM6cGxhbmV0bGFiLmpwIzE6cmVnOnNsYzpw -bGFuZXRsYWIuanAub3Nha2EwDQYJKoZIhvcNAQEEBQADgYEAOjGYfQry2jLhVTCx -7aygF13tq8+h7l8AzEOjTldzFF9h+OQscT74FP6e7hneDgI3EqBwWrW6E8yplJkS -flpKKuShlfSDoY3iLalSqZLhQHGX6fZ3oNlKGHJmJtL/QPhzs4tMwm5Jf0IXNadV -KVTpeZ1/xmfEJ8+E9HxYEvrKeEI= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICTjCCAbcCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODA0MjY0NVoXDTA4MDUwODIwMjY0NVowHzEdMBsGA1UEAxMUUmVn -aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOAP -5nv145+K6sfR0G7BMWBN9Zp9tVBdyxjohCzej6VX2fu40AjLb6m5ffRNk9WNroCx -hstcmwrbExRha6pzISsD0MIPUuf48sQmeyTHkpCdWbkbD/FtU7ENI5ZA5dQozFFt -EK2UW1kCv+IzjSVKmBRMfMcEY6UfuU15jdRm8sRlAgMBAAGjgakwgaYwgaMGA1Ud -EQEB/wSBmDCBlYaBkmh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDItMCkoNC0wKSg2 -LTApKDctMCkoOC0wKSg5LTApKDAtMSkoMS0xKSgyLTEpKDMtMSkoNC0xKSg1LTEp -KDYtMSkoNy0xKSg4LTEpKDktMSkjMDpyZWc6c2xjOnBsYW5ldGxhYiMxOnJlZzpz -bGM6cGxhbmV0bGFiLmpwMA0GCSqGSIb3DQEBBAUAA4GBAGR3d1rIelq++rJjlerk -+Xlbg+siLcDfNrOE4BgPWqZz9G6QDg+oxpmyP7SkqtO/u/D0PLyndcdKqpXsEisw -28KZtudxBTS5cRpTBCZnoUAGBKLJ3pwRqozwKxxCG8rmsUeGl0xdAjLVw9tzLppO -7LyVz7tZQkIyNF23gv+z9IQU ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICEzCCAXwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDUwODE5NDQ0OFowHzEdMBsGA1UEAxMUUmVn -aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALU2 -JnMnIjPy5lUdqFlCpyaGzFE5jxiONEX9YajD23yG9qKZJw7TIfdVQQ+iVuVIzUm6 -R7oze8Y7tpPtskJqlvuS6geWtLfmTQr+9w44xdLzSClPyiW0pt8muW3ySa0RebsX -h+HxSIubqf8YRj048W69S1CogWobwN0F3dISGLpRAgMBAAGjbzBtMGsGA1UdEQEB -/wRhMF+GXWh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDAtMCkoMS0wKSgyLTApKDMt -MCkoNC0wKSg1LTApKDYtMCkoNy0wKSg4LTApKDktMCkjMDpyZWc6c2xjOnBsYW5l -dGxhYjANBgkqhkiG9w0BAQQFAAOBgQBCYwXvYXbMiAi8hiZNFboYE812F0CT1T7U -PRQemorQcU/7SNZh8wOqGSsHSdA9XW5sC01skkxdOrkxTjGA+Nb1BL+vIFLe7wdp -26lQIA3239E9TUSXQlU9TqdALAC1OsmKgN+kbVfqIQ8U2eqAcUawm4h9/8TEV9xG -teVEYDdXpA== ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/osaka.cert b/gui/JavaApplication1/client_osaka/osaka.cert deleted file mode 100644 index ce4da44a..00000000 --- a/gui/JavaApplication1/client_osaka/osaka.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVvc2FrYTAeFw0w -ODAzMjgwMzQ0NTBaFw0xMzAzMjcwMzQ0NTBaMBAxDjAMBgNVBAMTBW9zYWthMIGf -MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQBnYnNShx775UxO4nen5kFOB2eYmc -KfUahYn5U5b3P3yXpcUvHFedaxPO/HmcpoG1WMCyHDv08r35IPmsTJwc81oM0l+M -JP87rjT1dGcMxtFX/RDf4c6s7tSlkTMU9P78+iq4t93k4G8lEVqeAzhmEakexOe9 -3w3fElhn1luwFwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABOBGbnYsv2xjOXidUtp -e1woERQGJRe7HJrbo9NyI5ozjSLt9yphY11ZmNex2IhKIrmbRSPfDnKNYaMHFOpz -qbJMCmC4uUIUd9HY8bg4mQ4wjwdWkLA9uWlmpAFRoIY3eNEvv5tpUnD3sV1dEDsQ -uQQcjxVTSgQQgjpE1KJ/KQ6q ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/osaka.pkey b/gui/JavaApplication1/client_osaka/osaka.pkey deleted file mode 100644 index 25155f25..00000000 --- a/gui/JavaApplication1/client_osaka/osaka.pkey +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIICXAIBAAKBgQDQBnYnNShx775UxO4nen5kFOB2eYmcKfUahYn5U5b3P3yXpcUv -HFedaxPO/HmcpoG1WMCyHDv08r35IPmsTJwc81oM0l+MJP87rjT1dGcMxtFX/RDf -4c6s7tSlkTMU9P78+iq4t93k4G8lEVqeAzhmEakexOe93w3fElhn1luwFwIDAQAB -AoGAflTuPDFUNp1aATD3UJJbX3wuNMTqhSQV7d1bRUc2T0EG8TGC5nFX5Am7JeC+ -GhwkeXVE0OXEo6UnKbyU48ZCp1lL70bjiPvhS/wceTbjuxJq2wS2hjIwf9NKyZ1j -ppO0gpvxOVNbIgyS3Yj2T98sYkJCVBnBN2huUsfzmHSeKIECQQD3SOiKRGfla+Du -dfBY7tKNxxXYTZwV2eYKhMZFW6rMcGboqoAXFMVUTEdHB2Ozk2wHsKcDb3WFpqQI -0QFqdNefAkEA11tW5cDIjiLeppSi57knZr9aYfysJcHslez9wgFGgK72s8XB8CfS -QqzPTmQm4F3NVM+5Y5PbMp55ntEiwPg0iQJAMnGsBjCoJRPZoatraSjmyMc4/JPw -aEC3/aNSMundMLEpPQMy+AJjsquQyruGKibDndn6Z+f/yFDTG31PVaEaLwJAV8AQ -GG4FSmVK8/V8q472TxeJbIPYYUozbKO0gmiioaypOXdLHuAa/LANiJOmg6W1FOnP -UJPerTGFvQDaeGaqgQJBAItAXexGSQEA1AKVzP31zorlb6zBh6dTxxrMhfeROwZx -drr47bhcwuiJ011xXzea9iy1dWJOtC8JrQ/YVw14Sjc= ------END RSA PRIVATE KEY----- diff --git a/gui/JavaApplication1/client_osaka/trusted_certs/geni_mng.cert b/gui/JavaApplication1/client_osaka/trusted_certs/geni_mng.cert deleted file mode 100644 index 9f9b5c30..00000000 --- a/gui/JavaApplication1/client_osaka/trusted_certs/geni_mng.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4 -MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN -BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4 -cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c -LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS -4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc -6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x -k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q -rBwyf1+Su4n1IPiqGi9yyA== ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/trusted_certs/geni_slc.cert b/gui/JavaApplication1/client_osaka/trusted_certs/geni_slc.cert deleted file mode 100644 index 9f9b5c30..00000000 --- a/gui/JavaApplication1/client_osaka/trusted_certs/geni_slc.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4 -MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN -BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4 -cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c -LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS -4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc -6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x -k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q -rBwyf1+Su4n1IPiqGi9yyA== ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_mng.cert b/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_mng.cert deleted file mode 100644 index c1b42112..00000000 --- a/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_mng.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODAzNDUwNVoXDTEzMDMyNzAzNDUwNVowFDESMBAGA1UEAxMJcGxh -bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1li/h52QbJtucIQUE -YZMZkA8tWcS9f0VkAPNS5/OeRhaQ/iLERQI2EV/rmPCuARQhlZLhm5Y5vxvHG/ba -6Rb9vYKEMDujZwdc3QjhAbYS72V28rbdIeHysJ7JeGz9J1ODLSzbcCt5amLZcMPm -u/G64ieWI8QMUxYgCE1ut3bI1QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJH5KqIU -2lrA9calI3oklbWpduiZspbwCUkhr8PNVDnkXSI1K+egDqFTaANVp1DxXU8qaDS6 -X5+s9Qf9FQ5+9mfSaocma6YW4Qfb3Zm/mYmpt+nknTlnVuEaTENyBIPfr0pDqzld -GGcYPul25KknFmdPOrqAUzma9n568u2KYlfz ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_slc.cert b/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_slc.cert deleted file mode 100644 index 9f5b851d..00000000 --- a/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_slc.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODAzNDQ0OFoXDTEzMDMyNzAzNDQ0OFowFDESMBAGA1UEAxMJcGxh -bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz8uZVHahZ -QqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vGO7aT7bJC -apb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiLm6n/GEY9 -OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABRIUVzW -JbwQKnqM3rVHJoSgtYWpgDvJosLCrLZhsXrukOsC8Gs8V6vPTPO7kofdUbHQKRnL -xp1nI5hlWIlq/XOnh+NEPZaB2SAKwfl3FZwUqjaEVd/VYOfsRryZtiUz4sL3CtXN -C8i/I4HwCnrl/pmzbprqpGq+RJTa5yLmBw6r ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/dist/JavaApplication1.jar b/gui/JavaApplication1/dist/JavaApplication1.jar deleted file mode 100644 index f346822defdf4f8c72bf6737e2683e6b654662a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52319 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�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 h@5JHrX;RXqYak87%Gu4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set src.dir - Must set test.src.dir - Must set build.dir - Must set dist.dir - Must set build.classes.dir - Must set dist.javadoc.dir - Must set build.test.classes.dir - Must set build.test.results.dir - Must set build.classes.excludes - Must set dist.jar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - To run this application from the command line without Ant, try: - - - - - - - java -cp "${run.classpath.with.dist.jar}" ${main.class} - - - - - - - - - - - - - - - - - - - - - - - To run this application from the command line without Ant, try: - - java -jar "${dist.jar.resolved}" - - - - - - - - - - - - - - - - Must select one file in the IDE or set run.class - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set debug.class - - - - - Must set fix.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - - - - Some tests failed; see details above. - - - - - - - - - Must select some files in the IDE or set test.includes - - - - Some tests failed; see details above. - - - - - Must select one file in the IDE or set test.class - - - - - - - - - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - - - - - - - - - - - diff --git a/gui/JavaApplication1/nbproject/genfiles.properties b/gui/JavaApplication1/nbproject/genfiles.properties deleted file mode 100644 index d7c8159a..00000000 --- a/gui/JavaApplication1/nbproject/genfiles.properties +++ /dev/null @@ -1,8 +0,0 @@ -build.xml.data.CRC32=6777d69e -build.xml.script.CRC32=09de7c06 -build.xml.stylesheet.CRC32=240b97a2 -# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. -# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=6777d69e -nbproject/build-impl.xml.script.CRC32=b93da968 -nbproject/build-impl.xml.stylesheet.CRC32=65d7ca21 diff --git a/gui/JavaApplication1/nbproject/private/private.properties b/gui/JavaApplication1/nbproject/private/private.properties deleted file mode 100644 index c36df805..00000000 --- a/gui/JavaApplication1/nbproject/private/private.properties +++ /dev/null @@ -1,4 +0,0 @@ -application.args= -javac.debug=true -javadoc.preview=true -user.properties.file=/home/soners/.netbeans/5.5.1/build.properties diff --git a/gui/JavaApplication1/nbproject/private/private.xml b/gui/JavaApplication1/nbproject/private/private.xml deleted file mode 100644 index c1f155a7..00000000 --- a/gui/JavaApplication1/nbproject/private/private.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/gui/JavaApplication1/nbproject/project.properties b/gui/JavaApplication1/nbproject/project.properties deleted file mode 100644 index 58e400c2..00000000 --- a/gui/JavaApplication1/nbproject/project.properties +++ /dev/null @@ -1,57 +0,0 @@ -application.args= -build.classes.dir=${build.dir}/classes -build.classes.excludes=**/*.java,**/*.form -# This directory is removed when the project is cleaned: -build.dir=build -build.generated.dir=${build.dir}/generated -# Only compile against the classpath explicitly listed here: -build.sysclasspath=ignore -build.test.classes.dir=${build.dir}/test/classes -build.test.results.dir=${build.dir}/test/results -debug.classpath=\ - ${run.classpath} -debug.test.classpath=\ - ${run.test.classpath} -# This directory is removed when the project is cleaned: -dist.dir=dist -dist.jar=${dist.dir}/JavaApplication1.jar -dist.javadoc.dir=${dist.dir}/javadoc -jar.compress=false -javac.classpath=\ - ${libs.swing-layout.classpath} -# Space-separated list of extra javac options -javac.compilerargs= -javac.deprecation=false -javac.source=1.5 -javac.target=1.5 -javac.test.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir}:\ - ${libs.junit.classpath} -javadoc.additionalparam= -javadoc.author=false -javadoc.encoding= -javadoc.noindex=false -javadoc.nonavbar=false -javadoc.notree=false -javadoc.private=false -javadoc.splitindex=true -javadoc.use=true -javadoc.version=false -javadoc.windowtitle= -main.class=javaapplication1.GeniGUI -manifest.file=manifest.mf -meta.inf.dir=${src.dir}/META-INF -platform.active=default_platform -run.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -# Space-separated list of JVM arguments used when running the project -# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value -# or test-sys-prop.name=value to set system properties for unit tests): -run.jvmargs= -run.test.classpath=\ - ${javac.test.classpath}:\ - ${build.test.classes.dir} -src.dir=src -test.src.dir=test diff --git a/gui/JavaApplication1/nbproject/project.xml b/gui/JavaApplication1/nbproject/project.xml deleted file mode 100644 index f3875b64..00000000 --- a/gui/JavaApplication1/nbproject/project.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - org.netbeans.modules.java.j2seproject - - - JavaApplication1 - 1.6.5 - - - - - - - - - diff --git a/gui/JavaApplication1/src/javaapplication1/DisplayHandle.java b/gui/JavaApplication1/src/javaapplication1/DisplayHandle.java deleted file mode 100644 index e755de91..00000000 --- a/gui/JavaApplication1/src/javaapplication1/DisplayHandle.java +++ /dev/null @@ -1,570 +0,0 @@ -/* - * DisplayHandle.java - * - * Created on March 29, 2008, 2:42 AM - * - * To change this template, choose Tools | Template Manager - * and open the template in the editor. - */ - -package javaapplication1; - -import java.io.*; -import javax.swing.JPanel; -import java.awt.*; -import javax.swing.*; - -/** - * - * @author soners - */ -public class DisplayHandle { - - /** Creates a new instance of DisplayHandle */ - public DisplayHandle(BufferedWriter outCommand) { - this.outCommand = outCommand; - createCompListUser(); - createCompListSlice(); - createCompListNode(); - createCompListSite(); - } - - private void createCompListNode(){ - compList_node = new GuiComponent[33]; - GuiComponent[] compList = compList_node; - String[] tmplist1 = {"readable","pl"}; - String[] tmplist2 = {"writable","pl"}; - String[] tmplist3 = {"readable","geni"}; - String[] tmplist4 = {"writable","geni"}; - compList[0] = new GuiComponent("node_id", tmplist1, "text", "Node Id", ""); - compList[1] = new GuiComponent("last_updated", tmplist1, "text", "Last Updated", ""); - compList[2] = new GuiComponent("boot_state", tmplist2, "combo", "Boot state", "boot, dbg, inst, new, rcnf, rins"); - compList[3] = new GuiComponent("site_id", tmplist1, "num", "Site Id", ""); - compList[4] = new GuiComponent("pcu_ids", tmplist2, "num", "PCU Ids", ""); - compList[5] = new GuiComponent("session", tmplist1, "text", "Session", ""); - compList[6] = new GuiComponent("key", tmplist2, "key", "Key", ""); - compList[7] = new GuiComponent("conf_file_ids", tmplist2, "text", "Conf file Ids", ""); - compList[8] = new GuiComponent("ssh_rsa_key", tmplist1, "text", "SSH RSA Key", ""); - compList[9] = new GuiComponent("ssh_rsa_key_write", tmplist2, "key", "SSH RSA Key", ""); - compList[10] = new GuiComponent("uuid", tmplist1, "text", "UUID", ""); - compList[11] = new GuiComponent("nodegroup_ids", tmplist2, "num", "Node Group Ids", ""); - compList[12] = new GuiComponent("slice_ids_whitelist", tmplist2, "text", "Slice Ids Whitelist", ""); - compList[13] = new GuiComponent("last_contact", tmplist2, "text", "Last Contact", ""); - compList[14] = new GuiComponent("nodenetwork_ids", tmplist2, "text", "Node Network Ids", ""); - compList[15] = new GuiComponent("peer_node_id", tmplist2, "num", "Peer Node Id", ""); - compList[16] = new GuiComponent("hostname", tmplist2, "text", "Hostname", "randomsite.edu"); - compList[17] = new GuiComponent("slice_ids", tmplist1, "num", "Slice Ids", ""); - compList[18] = new GuiComponent("boot_nonce", tmplist2, "text", "Boot Nonce", ""); - compList[19] = new GuiComponent("version", tmplist2, "text", "Version", "PlanetLab BootCD 3.1"); - compList[20] = new GuiComponent("date_created", tmplist1, "text", "Date Created", ""); - compList[21] = new GuiComponent("model", tmplist2, "text", "Model", "Dell OptiPlex GX280"); - compList[22] = new GuiComponent("peer_id", tmplist1, "num", "Peer Id", ""); - compList[23] = new GuiComponent("ports", tmplist2, "text", "Ports", ""); - compList[24] = new GuiComponent("description", tmplist4, "text", "Description", "New node for testing purposes"); - compList[25] = new GuiComponent("rights", tmplist4, "text", "Rights", ""); - compList[26] = new GuiComponent("pubkey", tmplist3, "text", "GENI Public key", ""); - compList[27] = new GuiComponent("pubkey_write", tmplist4, "key", "GENI Public key", ""); - compList[28] = new GuiComponent("wrapperurl", tmplist4, "text", "Wrapper URL", "local"); - compList[29] = new GuiComponent("disabled", tmplist3, "bool", "Disabled", "Yes, No"); - compList[30] = new GuiComponent("userlist", tmplist4, "text", "User List", ""); - compList[31] = new GuiComponent("pointer", tmplist3, "num", "PL Pointer", ""); - compList[32] = new GuiComponent("g_uuid", tmplist3, "text", "GENI UUID", ""); - - } - - private void createCompListUser(){ - compList_user = new GuiComponent[28]; - GuiComponent[] compList = compList_user; - String[] tmplist1 = {"readable","pl"}; - String[] tmplist2 = {"writable","pl"}; - String[] tmplist3 = {"readable","geni"}; - String[] tmplist4 = {"writable","geni"}; - compList[0] = new GuiComponent("person_id", tmplist1, "num", "Person Id", ""); - compList[1] = new GuiComponent("bio", tmplist2, "text", "Bio", ""); - compList[2] = new GuiComponent("first_name", tmplist2, "text", "First Name", ""); - compList[3] = new GuiComponent("last_name", tmplist2, "text", "Last Name", ""); - compList[4] = new GuiComponent("last_updated", tmplist1, "text", "Last Updated", ""); - compList[5] = new GuiComponent("key_ids", tmplist2, "num", "Key Ids", ""); - compList[6] = new GuiComponent("phone", tmplist2, "text", "Phone", ""); - compList[7] = new GuiComponent("peer_person_id", tmplist2, "num", "Peer Person Id", ""); - compList[8] = new GuiComponent("role_ids", tmplist2, "num", "Role Ids", ""); - compList[9] = new GuiComponent("site_ids", tmplist1, "num", "Site Ids", ""); - compList[10] = new GuiComponent("uuid", tmplist1, "text", "UUID", ""); - compList[11] = new GuiComponent("roles", tmplist2, "num", "Roles", ""); - compList[12] = new GuiComponent("title", tmplist2, "text", "Title", ""); - compList[13] = new GuiComponent("url", tmplist2, "text", "Url", "someuser.dom.edu"); - compList[14] = new GuiComponent("enabled", tmplist2, "bool", "Enabled", "Yes, No"); - compList[15] = new GuiComponent("slice_ids", tmplist2, "num", "Slice Ids", ""); - compList[16] = new GuiComponent("date_created", tmplist1, "text", "Date Created", ""); - compList[17] = new GuiComponent("peer_id", tmplist2, "num", "Peer Id", ""); - compList[18] = new GuiComponent("email", tmplist2, "text", "Email", "someuser@domain.edu"); - compList[19] = new GuiComponent("description", tmplist4, "text", "Description", "test user"); - compList[20] = new GuiComponent("rights", tmplist2, "text", "Rights", ""); - compList[21] = new GuiComponent("pubkey", tmplist3, "text", "GENI Public key", ""); - compList[22] = new GuiComponent("pubkey_write", tmplist4, "key", "GENI Public key", ""); - compList[23] = new GuiComponent("wrapperurl", tmplist4, "text", "Wrapper URL", "local"); - compList[24] = new GuiComponent("disabled", tmplist3, "bool", "Disabled", "Yes, No"); - compList[25] = new GuiComponent("userlist", tmplist4, "text", "User List", ""); - compList[26] = new GuiComponent("pointer", tmplist3, "text", "PL Pointer", ""); - compList[27] = new GuiComponent("g_uuid", tmplist3, "text", "GENI UUID", ""); - - } - - private void createCompListSlice(){ - compList_slice = new GuiComponent[24]; - GuiComponent[] compList = compList_slice; - String[] tmplist1 = {"readable","pl"}; - String[] tmplist2 = {"writable","pl"}; - String[] tmplist3 = {"readable","geni"}; - String[] tmplist4 = {"writable","geni"}; - compList[0] = new GuiComponent("slice_id", tmplist1, "num", "Slice Id", ""); - compList[1] = new GuiComponent("description", tmplist2, "text", "Description", ""); - compList[2] = new GuiComponent("node_ids", tmplist1, "num", "Node Ids", ""); - compList[3] = new GuiComponent("expires", tmplist2, "text", "Expires", ""); - compList[4] = new GuiComponent("site_id", tmplist1, "num", "Site Id", ""); - compList[5] = new GuiComponent("uuid", tmplist1, "text", "UUID", ""); - compList[6] = new GuiComponent("creator_person_id", tmplist2, "text", "Creator Person Id", ""); - compList[7] = new GuiComponent("instantiation", tmplist2, "combo", "Instantiation", "delegated, not-instantiated, plc-instantiated"); - compList[8] = new GuiComponent("name", tmplist2, "text", "Name", ""); - compList[9] = new GuiComponent("created", tmplist1, "text", "Created", ""); - compList[10] = new GuiComponent("url", tmplist2, "text", "Url", ""); - compList[11] = new GuiComponent("max_nodes", tmplist2, "num", "Max Nodes", "10"); - compList[12] = new GuiComponent("person_ids", tmplist2, "num", "Person Ids", ""); - compList[13] = new GuiComponent("slice_attribute_ids", tmplist2, "text", "Slice Attribute Ids", ""); - compList[14] = new GuiComponent("peer_id", tmplist1, "num", "Peer Id", ""); - compList[15] = new GuiComponent("description", tmplist4, "text", "Description", "test slice"); - compList[16] = new GuiComponent("rights", tmplist2, "text", "Rights", ""); - compList[17] = new GuiComponent("pubkey", tmplist3, "text", "GENI Public key", ""); - compList[18] = new GuiComponent("pubkey_write", tmplist4, "key", "GENI Public key", ""); - compList[19] = new GuiComponent("wrapperurl", tmplist4, "text", "Wrapper URL", "local"); - compList[20] = new GuiComponent("disabled", tmplist3, "bool", "Disabled", "Yes, No"); - compList[21] = new GuiComponent("userlist", tmplist4, "text", "User List", ""); - compList[22] = new GuiComponent("pointer", tmplist3, "num", "PL Pointer", ""); - compList[23] = new GuiComponent("g_uuid", tmplist3, "text", "GENI UUID", ""); - - } - - private void createCompListSite(){ - compList_site = new GuiComponent[31]; - GuiComponent[] compList = compList_site; - String[] tmplist1 = {"readable","pl"}; - String[] tmplist2 = {"writable","pl"}; - String[] tmplist3 = {"readable","geni"}; - String[] tmplist4 = {"writable","geni"}; - - compList[0] = new GuiComponent("last_updated", tmplist1, "text", "Last Updated", ""); - compList[1] = new GuiComponent("node_ids", tmplist2, "num", "Node Ids", ""); - compList[2] = new GuiComponent("site_id", tmplist1, "num", "Site Id", ""); - compList[3] = new GuiComponent("pcu_ids", tmplist2, "num", "PCU Ids", ""); - compList[4] = new GuiComponent("max_slices", tmplist2, "num", "Max Slices", ""); - compList[5] = new GuiComponent("ext_consortium_id", tmplist2, "text", "Ext Consortium Id", ""); - compList[6] = new GuiComponent("max_slivers", tmplist2, "num", "Max Slivers", "5"); - compList[7] = new GuiComponent("is_public", tmplist2, "bool", "Public", "Yes, No"); - compList[8] = new GuiComponent("peer_site_id", tmplist1, "num", "Peer Site Id", ""); - compList[9] = new GuiComponent("abbreviated_name", tmplist2, "text", "Abbreviated Name", ""); - compList[10] = new GuiComponent("name", tmplist2, "text", "Name", ""); - compList[11] = new GuiComponent("address_ids", tmplist2, "num", "Address Ids", ""); - compList[12] = new GuiComponent("uuid", tmplist1, "text", "UUID", ""); - compList[13] = new GuiComponent("url", tmplist2, "text", "Url", ""); - compList[14] = new GuiComponent("person_ids", tmplist2, "num", "Person Ids", ""); - compList[15] = new GuiComponent("enabled", tmplist2, "bool", "Enabled", "Yes, No"); - compList[16] = new GuiComponent("longitude", tmplist2, "num", "Longitude", "34.3"); - compList[17] = new GuiComponent("latitude", tmplist2, "num", "Latitude", "45.4"); - compList[18] = new GuiComponent("slice_ids", tmplist2, "num", "Slice Ids", ""); - compList[19] = new GuiComponent("login_base", tmplist2, "text", "Login Base", ""); - compList[20] = new GuiComponent("date_created", tmplist1, "text", "Date Created", ""); - compList[21] = new GuiComponent("peer_id", tmplist1, "num", "Peer Id", ""); - compList[22] = new GuiComponent("description", tmplist4, "text", "Description", "test slice"); - compList[23] = new GuiComponent("rights", tmplist2, "text", "Rights", ""); - compList[24] = new GuiComponent("pubkey", tmplist3, "text", "GENI Public key", ""); - compList[25] = new GuiComponent("pubkey_write", tmplist4, "key", "GENI Public key", ""); - compList[26] = new GuiComponent("wrapperurl", tmplist4, "text", "Wrapper URL", "local"); - compList[27] = new GuiComponent("disabled", tmplist3, "bool", "Disabled", "Yes, No"); - compList[28] = new GuiComponent("userlist", tmplist4, "text", "User List", ""); - compList[29] = new GuiComponent("pointer", tmplist3, "num", "PL Pointer", ""); - compList[30] = new GuiComponent("g_uuid", tmplist3, "text", "GENI UUID", ""); - } - - //input is in format: {"'field1_name':value1", "'field2_name':value2", ...} - public void FillComponentList(String recordType, String[] dict){ - GuiComponent[] complist = null; - if (recordType.equals("user")){ - complist = compList_user; - } - else if (recordType.equals("slice")){ - complist = compList_slice; - } - else if (recordType.equals("node")){ - complist = compList_node; - } - else if (recordType.equals("SA/MA")){ - complist = compList_site; - } - - for (int i=0; i 1) - comp_value = line[1]; - if (comp_value.equals("None")) - comp_value = ""; - int j; - for(j = 0; j tmp_key_file.txt\n"); - outCommand.flush(); - - //get key from temp file - String result = ""; - File file = new File("tmp_key_file.txt"); - int i = 0; - while(!file.exists() && i<5){ - i++; - try { - Thread.currentThread().sleep(200); - } catch (InterruptedException ex) { - ex.printStackTrace(); - } - } - try { - Thread.currentThread().sleep(100); - } catch (InterruptedException ex) { - ex.printStackTrace(); - } - if (file.exists()){ - BufferedReader in = new BufferedReader(new FileReader("tmp_key_file.txt")); - String tmp = in.readLine(); - while(tmp!=null && tmp.length() > 0){ - result += tmp+"\n"; - tmp = in.readLine(); - } - in.close(); - - outCommand.write("rm tmp_key_file.txt\n"); - outCommand.flush(); - } - //write the result in the textfield - t.setText(result); - }catch (Exception ex) { - ex.printStackTrace(); - } - } - - } - - public void displayComponentList(String recordType, JPanel panel1, JPanel panel2){ - - GuiComponent[] complist = null; - if (recordType.equals("user")){ - complist = compList_user; - } - else if (recordType.equals("slice")){ - complist = compList_slice; - } - else if (recordType.equals("node")){ - complist = compList_node; - } - else if (recordType.equals("SA/MA")){ - complist = compList_site; - } - - panel1.removeAll(); - panel1.setLayout(new SpringLayout()); - - int count1 = 0; - for (int i=0;i - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/gui/JavaApplication1/src/javaapplication1/GeniGUI.java b/gui/JavaApplication1/src/javaapplication1/GeniGUI.java deleted file mode 100644 index ad93a59c..00000000 --- a/gui/JavaApplication1/src/javaapplication1/GeniGUI.java +++ /dev/null @@ -1,452 +0,0 @@ -/* - * GeniGUI.java - * - * Created on March 29, 2008, 3:46 PM - */ - -package javaapplication1; - -import javax.swing.SpringLayout; -import org.jdesktop.layout.GroupLayout; - -/** - * - * @author soners - */ -public class GeniGUI extends javax.swing.JFrame { - - /** - * Creates new form GeniGUI - */ - public GeniGUI() { - initComponents(); - - jPanel4.setVisible(false); - jPanel5.setVisible(false); - jPanel6.setVisible(false); - jPanel7.setVisible(false); - - javax.swing.JPanel[] panelList = {jPanel3, jPanel4, jPanel5, jPanel6, jPanel7}; - panelfiller = new PanelFiller(panelList, statusLabel); - panelfiller.initializePanels(); - - } - - private void passCallToHandler(String opname){ - User user = new User(); - user.setCurrentUser(hrnTextField.getText(), (String)typeCombo.getSelectedItem(), dirTextField.getText()); - RecordInfo record = new RecordInfo(); - record.setCurrentRecord(rechrnTextField.getText(), (String)rectypeCombo.getSelectedItem()); - - panelfiller.setUser(user); - panelfiller.setRecord(record); - panelfiller.handleOperation(opname); - } - - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. - */ - // //GEN-BEGIN:initComponents - private void initComponents() { - jPanel1 = new javax.swing.JPanel(); - hrnLabel = new javax.swing.JLabel(); - hrnTextField = new javax.swing.JTextField(); - typeCombo = new javax.swing.JComboBox(); - dirTextField = new javax.swing.JTextField(); - typeLabel = new javax.swing.JLabel(); - dirLabel = new javax.swing.JLabel(); - jInternalFrame1 = new javax.swing.JInternalFrame(); - jPanel3 = new javax.swing.JPanel(); - jPanel4 = new javax.swing.JPanel(); - jPanel5 = new javax.swing.JPanel(); - jPanel6 = new javax.swing.JPanel(); - jPanel7 = new javax.swing.JPanel(); - jPanel2 = new javax.swing.JPanel(); - rechrnLabel = new javax.swing.JLabel(); - rechrnTextField = new javax.swing.JTextField(); - rectypeCombo = new javax.swing.JComboBox(); - rectypeLabel = new javax.swing.JLabel(); - jButton1 = new javax.swing.JButton(); - jButton2 = new javax.swing.JButton(); - jButton3 = new javax.swing.JButton(); - jButton4 = new javax.swing.JButton(); - statusLabel = new javax.swing.JLabel(); - - setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); - addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseReleased(java.awt.event.MouseEvent evt) { - formMouseReleased(evt); - } - }); - - jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("User Info")); - hrnLabel.setText("Enter your HRN:"); - - hrnTextField.setText("planetlab.jp.osaka"); - - typeCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "user", "SA", "MA" })); - - dirTextField.setText("./client_osaka"); - - typeLabel.setText("Type:"); - - dirLabel.setText("User GENI directory:"); - - org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1); - jPanel1.setLayout(jPanel1Layout); - jPanel1Layout.setHorizontalGroup( - jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel1Layout.createSequentialGroup() - .addContainerGap() - .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) - .add(jPanel1Layout.createSequentialGroup() - .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) - .add(typeLabel) - .add(hrnLabel)) - .add(26, 26, 26)) - .add(jPanel1Layout.createSequentialGroup() - .add(dirLabel) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED))) - .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(dirTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 245, Short.MAX_VALUE) - .add(hrnTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 245, Short.MAX_VALUE) - .add(typeCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addContainerGap()) - ); - jPanel1Layout.setVerticalGroup( - jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel1Layout.createSequentialGroup() - .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(hrnLabel) - .add(hrnTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(13, 13, 13) - .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(typeCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(typeLabel)) - .add(14, 14, 14) - .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(dirTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(dirLabel)) - .addContainerGap(46, Short.MAX_VALUE)) - ); - - jInternalFrame1.setTitle("Record Data"); - jInternalFrame1.setVisible(true); - jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Non-editable Information")); - org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3); - jPanel3.setLayout(jPanel3Layout); - jPanel3Layout.setHorizontalGroup( - jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(0, 825, Short.MAX_VALUE) - ); - jPanel3Layout.setVerticalGroup( - jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(0, 199, Short.MAX_VALUE) - ); - - jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Set User Fields")); - org.jdesktop.layout.GroupLayout jPanel4Layout = new org.jdesktop.layout.GroupLayout(jPanel4); - jPanel4.setLayout(jPanel4Layout); - jPanel4Layout.setHorizontalGroup( - jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(0, 825, Short.MAX_VALUE) - ); - jPanel4Layout.setVerticalGroup( - jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(0, 180, Short.MAX_VALUE) - ); - - jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("Set Slice fields")); - org.jdesktop.layout.GroupLayout jPanel5Layout = new org.jdesktop.layout.GroupLayout(jPanel5); - jPanel5.setLayout(jPanel5Layout); - jPanel5Layout.setHorizontalGroup( - jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(0, 825, Short.MAX_VALUE) - ); - jPanel5Layout.setVerticalGroup( - jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(0, 192, Short.MAX_VALUE) - ); - - jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder("Set Node fields")); - org.jdesktop.layout.GroupLayout jPanel6Layout = new org.jdesktop.layout.GroupLayout(jPanel6); - jPanel6.setLayout(jPanel6Layout); - jPanel6Layout.setHorizontalGroup( - jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(0, 825, Short.MAX_VALUE) - ); - jPanel6Layout.setVerticalGroup( - jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(0, 182, Short.MAX_VALUE) - ); - - jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder("Set SA/MA fields")); - org.jdesktop.layout.GroupLayout jPanel7Layout = new org.jdesktop.layout.GroupLayout(jPanel7); - jPanel7.setLayout(jPanel7Layout); - jPanel7Layout.setHorizontalGroup( - jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(0, 837, Short.MAX_VALUE) - ); - jPanel7Layout.setVerticalGroup( - jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(0, 221, Short.MAX_VALUE) - ); - - org.jdesktop.layout.GroupLayout jInternalFrame1Layout = new org.jdesktop.layout.GroupLayout(jInternalFrame1.getContentPane()); - jInternalFrame1.getContentPane().setLayout(jInternalFrame1Layout); - jInternalFrame1Layout.setHorizontalGroup( - jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jInternalFrame1Layout.createSequentialGroup() - .addContainerGap() - .add(jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel7, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(jInternalFrame1Layout.createSequentialGroup() - .add(jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) - .add(jPanel4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(jPanel3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel5, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(jPanel6, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addContainerGap()))) - ); - jInternalFrame1Layout.setVerticalGroup( - jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(org.jdesktop.layout.GroupLayout.TRAILING, jInternalFrame1Layout.createSequentialGroup() - .addContainerGap() - .add(jPanel3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addContainerGap()) - ); - - jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Record Select")); - rechrnLabel.setText("HRN:"); - - rechrnTextField.setText("planetlab.jp.osaka.tokyobranch"); - - rectypeCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "-", "user", "slice", "node", "SA", "MA" })); - rectypeCombo.addItemListener(new java.awt.event.ItemListener() { - public void itemStateChanged(java.awt.event.ItemEvent evt) { - rectypeComboItemStateChanged(evt); - } - }); - - rectypeLabel.setText("Type:"); - - jButton1.setText("register"); - jButton1.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseReleased(java.awt.event.MouseEvent evt) { - jButton1MouseReleased(evt); - } - }); - - jButton2.setText("remove"); - jButton2.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseReleased(java.awt.event.MouseEvent evt) { - jButton2MouseReleased(evt); - } - }); - - jButton3.setText("update"); - jButton3.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseReleased(java.awt.event.MouseEvent evt) { - jButton3MouseReleased(evt); - } - }); - - jButton4.setText("lookup"); - jButton4.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseReleased(java.awt.event.MouseEvent evt) { - jButton4MouseReleased(evt); - } - }); - - org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2); - jPanel2.setLayout(jPanel2Layout); - jPanel2Layout.setHorizontalGroup( - jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel2Layout.createSequentialGroup() - .addContainerGap() - .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel2Layout.createSequentialGroup() - .add(rechrnLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 38, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(rechrnTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 271, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(jPanel2Layout.createSequentialGroup() - .add(rectypeLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 38, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel2Layout.createSequentialGroup() - .add(jButton1) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jButton2) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jButton3) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jButton4)) - .add(rectypeCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))) - .addContainerGap(30, Short.MAX_VALUE)) - ); - jPanel2Layout.setVerticalGroup( - jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel2Layout.createSequentialGroup() - .addContainerGap() - .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(rechrnLabel) - .add(rechrnTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(rectypeCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(rectypeLabel)) - .add(27, 27, 27) - .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jButton1) - .add(jButton2) - .add(jButton3) - .add(jButton4)) - .addContainerGap(22, Short.MAX_VALUE)) - ); - - statusLabel.setVerticalAlignment(javax.swing.SwingConstants.TOP); - statusLabel.setAutoscrolls(true); - - org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane()); - getContentPane().setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(layout.createSequentialGroup() - .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) - .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup() - .addContainerGap() - .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .add(org.jdesktop.layout.GroupLayout.LEADING, jInternalFrame1) - .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup() - .addContainerGap() - .add(statusLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 857, Short.MAX_VALUE))) - .add(28, 28, 28)) - ); - layout.setVerticalGroup( - layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(layout.createSequentialGroup() - .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) - .add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(statusLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 25, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jInternalFrame1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(153, 153, 153)) - ); - pack(); - }// //GEN-END:initComponents - - private void jButton4MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton4MouseReleased -// TODO add your handling code here: - passCallToHandler("lookup"); - }//GEN-LAST:event_jButton4MouseReleased - - private void jButton3MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton3MouseReleased -// TODO add your handling code here: - passCallToHandler("update"); - }//GEN-LAST:event_jButton3MouseReleased - - private void jButton2MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton2MouseReleased -// TODO add your handling code here: - passCallToHandler("remove"); - - }//GEN-LAST:event_jButton2MouseReleased - - private void jButton1MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton1MouseReleased -// TODO add your handling code here: - passCallToHandler("register"); - - }//GEN-LAST:event_jButton1MouseReleased - - private void formMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_formMouseReleased -// TODO add your handling code here: - - }//GEN-LAST:event_formMouseReleased - - private void rectypeComboItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_rectypeComboItemStateChanged -// TODO add your handling code here: - - jInternalFrame1.setSize(500,800); - jInternalFrame1.revalidate(); - jInternalFrame1.repaint(); - - int selected = rectypeCombo.getSelectedIndex(); - if (selected == 1){ - jPanel4.setVisible(true); - jPanel5.setVisible(false); - jPanel6.setVisible(false); - jPanel7.setVisible(false); - } - else if (selected == 2){ - jPanel5.setVisible(true); - jPanel4.setVisible(false); - jPanel6.setVisible(false); - jPanel7.setVisible(false); - } - else if (selected == 3){ - jPanel6.setVisible(true); - jPanel4.setVisible(false); - jPanel5.setVisible(false); - jPanel7.setVisible(false); - } - else if (selected == 4 || selected == 5){ - jPanel7.setVisible(true); - jPanel4.setVisible(false); - jPanel5.setVisible(false); - jPanel6.setVisible(false); - } - }//GEN-LAST:event_rectypeComboItemStateChanged - - /** - * @param args the command line arguments - */ - public static void main(String args[]) { - java.awt.EventQueue.invokeLater(new Runnable() { - public void run() { - new GeniGUI().setVisible(true); - } - }); - } - - private PanelFiller panelfiller; - - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JLabel dirLabel; - private javax.swing.JTextField dirTextField; - private javax.swing.JLabel hrnLabel; - private javax.swing.JTextField hrnTextField; - private javax.swing.JButton jButton1; - private javax.swing.JButton jButton2; - private javax.swing.JButton jButton3; - private javax.swing.JButton jButton4; - private javax.swing.JInternalFrame jInternalFrame1; - private javax.swing.JPanel jPanel1; - private javax.swing.JPanel jPanel2; - private javax.swing.JPanel jPanel3; - private javax.swing.JPanel jPanel4; - private javax.swing.JPanel jPanel5; - private javax.swing.JPanel jPanel6; - private javax.swing.JPanel jPanel7; - private javax.swing.JLabel rechrnLabel; - private javax.swing.JTextField rechrnTextField; - private javax.swing.JComboBox rectypeCombo; - private javax.swing.JLabel rectypeLabel; - private javax.swing.JLabel statusLabel; - private javax.swing.JComboBox typeCombo; - private javax.swing.JLabel typeLabel; - // End of variables declaration//GEN-END:variables - -} diff --git a/gui/JavaApplication1/src/javaapplication1/GuiComponent.java b/gui/JavaApplication1/src/javaapplication1/GuiComponent.java deleted file mode 100644 index 40e9b7cc..00000000 --- a/gui/JavaApplication1/src/javaapplication1/GuiComponent.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * GuiComponent.java - * - * Created on March 29, 2008, 2:45 AM - * - * To change this template, choose Tools | Template Manager - * and open the template in the editor. - */ - -package javaapplication1; - -/** - * - * @author soners - */ -public class GuiComponent { - - /** Creates a new instance of GuiComponent */ - public GuiComponent(String name, String[] property, String type, String label, String defaultVal) { - this.name = name; - this.property = property; - this.type = type; - this.label = label; - this.value = defaultVal; - - } - private String[] property; - private String type; - private String label; - private String value; - - /** - * Holds value of property name. - */ - private String name; - - /** - * Getter for property name. - * @return Value of property name. - */ - public String getName() { - return this.name; - } - - /** - * Setter for property name. - * @param name New value of property name. - */ - public void setName(String name) { - this.name = name; - } - - /** - * Getter for property property. - * @return Value of property property. - */ - public String[] getProperty() { - return this.property; - } - - /** - * Setter for property property. - * @param property New value of property property. - */ - public void setProperty(String[] property) { - this.property = property; - } - - /** - * Getter for property type. - * @return Value of property type. - */ - public String getType() { - return this.type; - } - - /** - * Setter for property type. - * @param type New value of property type. - */ - public void setType(String type) { - this.type = type; - } - - /** - * Getter for property label. - * @return Value of property label. - */ - public String getLabel() { - return this.label; - } - - /** - * Setter for property label. - * @param label New value of property label. - */ - public void setLabel(String label) { - this.label = label; - } - - /** - * Getter for property value. - * - * @return Value of property value. - */ - public String getValue() { - return this.value; - } - - /** - * Setter for property value. - * - * @param value New value of property value. - */ - public void setValue(String defaultVal) { - this.value = defaultVal; - } - -} diff --git a/gui/JavaApplication1/src/javaapplication1/PanelFiller.java b/gui/JavaApplication1/src/javaapplication1/PanelFiller.java deleted file mode 100644 index 17d5d11d..00000000 --- a/gui/JavaApplication1/src/javaapplication1/PanelFiller.java +++ /dev/null @@ -1,248 +0,0 @@ -/* - * PanelFiller.java - * - * Created on March 29, 2008, 10:45 PM - * - * To change this template, choose Tools | Template Manager - * and open the template in the editor. - */ - -package javaapplication1; - -import java.io.*; -import javax.swing.*; -import javax.swing.JOptionPane; - -/** - * - * @author soners - */ -public class PanelFiller { - - /** Creates a new instance of PanelFiller */ - public PanelFiller(JPanel[] panelList, JLabel statusLabel) { - panel1 = panelList[0]; - panel2 = panelList[1]; - panel3 = panelList[2]; - panel4 = panelList[3]; - panel5 = panelList[4]; - this.statusLabel = statusLabel; - - try{ - rtime = Runtime.getRuntime(); - child = rtime.exec("/bin/bash"); - outCommand = new BufferedWriter(new OutputStreamWriter(child.getOutputStream())); - }catch (Exception e){ - JOptionPane.showMessageDialog(null, "The program cannot start bash.\n"); - return; - } - - displayHandle = new DisplayHandle(outCommand); - } - - public void handleOperation(String opname){ - - JPanel curpanel = null; - String type = record.getType(); - if (type.equals("user")) - curpanel = panel2; - else if (type.equals("slice")) - curpanel = panel3; - else if (type.equals("node")) - curpanel = panel4; - else if (type.equals("SA")){ - curpanel = panel5; - type = "SA/MA"; - } - else if (type.equals("MA")){ - curpanel = panel5; - type = "SA/MA"; - } - - if (opname.equals("register")){ - String params = displayHandle.PanelToString(type, curpanel); - String rest = params.substring(12); - if (rest.charAt(0)=='}') - params = "'g_params':{'hrn':'"+record.getHrn()+"', 'type':'"+record.getType()+"'"+rest; - else - params = "'g_params':{'hrn':'"+record.getHrn()+"', 'type':'"+record.getType()+"', "+rest; - String message = "{'opname':'"+opname+"', "+params+"}"; - String result = SendToClientStub(message); - String[] res_arr = result.split("\n"); - String send_str = ""; - for (int i=0; i 0){ - - String status_str = ""; - for (int i=0; i 0){ - result += tmp+"\n"; - tmp = in.readLine(); - } - in.close(); - - outCommand.write("rm tmp_input.txt tmp_output.txt\n"); - outCommand.write("cd "+curdir+"\n"); - outCommand.flush(); - }catch (Exception e){//Catch exception if any - System.err.println("Error: " + e.getMessage()); - result = "Problem occured in client stub.\n"; - return result; - } - return result; - } - - public void initializePanels(){ - displayHandle.displayComponentList("user",panel1, panel2); - displayHandle.displayComponentList("slice",panel1, panel3); - displayHandle.displayComponentList("node",panel1, panel4); - displayHandle.displayComponentList("SA/MA",panel1, panel5); - } - - public void setUser(User user){ - this.user = user; - } - public void setRecord(RecordInfo record){ - this.record = record; - } - - private User user; - private RecordInfo record; - private javax.swing.JPanel panel1; - private javax.swing.JPanel panel2; - private javax.swing.JPanel panel3; - private javax.swing.JPanel panel4; - private javax.swing.JPanel panel5; - private javax.swing.JLabel statusLabel; - - private BufferedWriter outCommand; - private Runtime rtime; - private Process child; - - private DisplayHandle displayHandle; - -} - - diff --git a/gui/JavaApplication1/src/javaapplication1/RecordInfo.java b/gui/JavaApplication1/src/javaapplication1/RecordInfo.java deleted file mode 100644 index 6af39f30..00000000 --- a/gui/JavaApplication1/src/javaapplication1/RecordInfo.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * RecordInfo.java - * - * Created on March 30, 2008, 12:07 AM - * - * To change this template, choose Tools | Template Manager - * and open the template in the editor. - */ - -package javaapplication1; -import javax.swing.*; - -/** - * - * @author soners - */ -public class RecordInfo { - - /** Creates a new instance of RecordInfo */ - public RecordInfo() { - } - - public void setCurrentRecord(String hrn, String type){ - this.hrn = hrn; - this.type = type; - } - - - /** - * Holds value of property hrn. - */ - private String hrn; - - /** - * Getter for property hrn. - * @return Value of property hrn. - */ - public String getHrn() { - return this.hrn; - } - - /** - * Setter for property hrn. - * @param hrn New value of property hrn. - */ - public void setHrn(String hrn) { - this.hrn = hrn; - } - - /** - * Holds value of property type. - */ - private String type; - - /** - * Getter for property type. - * @return Value of property type. - */ - public String getType() { - return this.type; - } - - /** - * Setter for property type. - * @param type New value of property type. - */ - public void setType(String type) { - this.type = type; - } - -} diff --git a/gui/JavaApplication1/src/javaapplication1/SpringUtilities.java b/gui/JavaApplication1/src/javaapplication1/SpringUtilities.java deleted file mode 100644 index f2eb8ccb..00000000 --- a/gui/JavaApplication1/src/javaapplication1/SpringUtilities.java +++ /dev/null @@ -1,224 +0,0 @@ -package javaapplication1; -/* - * Copyright (c) 1995 - 2008 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * - Neither the name of Sun Microsystems nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -import javax.swing.*; -import javax.swing.SpringLayout; -import java.awt.*; - -/** - * A 1.4 file that provides utility methods for - * creating form- or grid-style layouts with SpringLayout. - * These utilities are used by several programs, such as - * SpringBox and SpringCompactGrid. - */ -public class SpringUtilities { - /** - * A debugging utility that prints to stdout the component's - * minimum, preferred, and maximum sizes. - */ - public static void printSizes(Component c) { - System.out.println("minimumSize = " + c.getMinimumSize()); - System.out.println("preferredSize = " + c.getPreferredSize()); - System.out.println("maximumSize = " + c.getMaximumSize()); - } - - /** - * Aligns the first rows * cols - * components of parent in - * a grid. Each component is as big as the maximum - * preferred width and height of the components. - * The parent is made just big enough to fit them all. - * - * @param rows number of rows - * @param cols number of columns - * @param initialX x location to start the grid at - * @param initialY y location to start the grid at - * @param xPad x padding between cells - * @param yPad y padding between cells - */ - public static void makeGrid(Container parent, - int rows, int cols, - int initialX, int initialY, - int xPad, int yPad) { - SpringLayout layout; - try { - layout = (SpringLayout)parent.getLayout(); - } catch (ClassCastException exc) { - System.err.println("The first argument to makeGrid must use SpringLayout."); - return; - } - - Spring xPadSpring = Spring.constant(xPad); - Spring yPadSpring = Spring.constant(yPad); - Spring initialXSpring = Spring.constant(initialX); - Spring initialYSpring = Spring.constant(initialY); - int max = rows * cols; - - //Calculate Springs that are the max of the width/height so that all - //cells have the same size. - Spring maxWidthSpring = layout.getConstraints(parent.getComponent(0)). - getWidth(); - Spring maxHeightSpring = layout.getConstraints(parent.getComponent(0)). - getWidth(); - for (int i = 1; i < max; i++) { - SpringLayout.Constraints cons = layout.getConstraints( - parent.getComponent(i)); - - maxWidthSpring = Spring.max(maxWidthSpring, cons.getWidth()); - maxHeightSpring = Spring.max(maxHeightSpring, cons.getHeight()); - } - - //Apply the new width/height Spring. This forces all the - //components to have the same size. - for (int i = 0; i < max; i++) { - SpringLayout.Constraints cons = layout.getConstraints( - parent.getComponent(i)); - - cons.setWidth(maxWidthSpring); - cons.setHeight(maxHeightSpring); - } - - //Then adjust the x/y constraints of all the cells so that they - //are aligned in a grid. - SpringLayout.Constraints lastCons = null; - SpringLayout.Constraints lastRowCons = null; - for (int i = 0; i < max; i++) { - SpringLayout.Constraints cons = layout.getConstraints( - parent.getComponent(i)); - if (i % cols == 0) { //start of new row - lastRowCons = lastCons; - cons.setX(initialXSpring); - } else { //x position depends on previous component - cons.setX(Spring.sum(lastCons.getConstraint(SpringLayout.EAST), - xPadSpring)); - } - - if (i / cols == 0) { //first row - cons.setY(initialYSpring); - } else { //y position depends on previous row - cons.setY(Spring.sum(lastRowCons.getConstraint(SpringLayout.SOUTH), - yPadSpring)); - } - lastCons = cons; - } - - //Set the parent's size. - SpringLayout.Constraints pCons = layout.getConstraints(parent); - pCons.setConstraint(SpringLayout.SOUTH, - Spring.sum( - Spring.constant(yPad), - lastCons.getConstraint(SpringLayout.SOUTH))); - pCons.setConstraint(SpringLayout.EAST, - Spring.sum( - Spring.constant(xPad), - lastCons.getConstraint(SpringLayout.EAST))); - } - - /* Used by makeCompactGrid. */ - private static SpringLayout.Constraints getConstraintsForCell( - int row, int col, - Container parent, - int cols) { - SpringLayout layout = (SpringLayout) parent.getLayout(); - Component c = parent.getComponent(row * cols + col); - return layout.getConstraints(c); - } - - /** - * Aligns the first rows * cols - * components of parent in - * a grid. Each component in a column is as wide as the maximum - * preferred width of the components in that column; - * height is similarly determined for each row. - * The parent is made just big enough to fit them all. - * - * @param rows number of rows - * @param cols number of columns - * @param initialX x location to start the grid at - * @param initialY y location to start the grid at - * @param xPad x padding between cells - * @param yPad y padding between cells - */ - public static void makeCompactGrid(Container parent, - int rows, int cols, - int initialX, int initialY, - int xPad, int yPad) { - SpringLayout layout; - try { - layout = (SpringLayout)parent.getLayout(); - } catch (ClassCastException exc) { - System.err.println("The first argument to makeCompactGrid must use SpringLayout."); - return; - } - - //Align all cells in each column and make them the same width. - Spring x = Spring.constant(initialX); - for (int c = 0; c < cols; c++) { - Spring width = Spring.constant(0); - for (int r = 0; r < rows; r++) { - width = Spring.max(width, - getConstraintsForCell(r, c, parent, cols). - getWidth()); - } - for (int r = 0; r < rows; r++) { - SpringLayout.Constraints constraints = - getConstraintsForCell(r, c, parent, cols); - constraints.setX(x); - constraints.setWidth(width); - } - x = Spring.sum(x, Spring.sum(width, Spring.constant(xPad))); - } - - //Align all cells in each row and make them the same height. - Spring y = Spring.constant(initialY); - for (int r = 0; r < rows; r++) { - Spring height = Spring.constant(0); - for (int c = 0; c < cols; c++) { - height = Spring.max(height, - getConstraintsForCell(r, c, parent, cols). - getHeight()); - } - for (int c = 0; c < cols; c++) { - SpringLayout.Constraints constraints = - getConstraintsForCell(r, c, parent, cols); - constraints.setY(y); - constraints.setHeight(height); - } - y = Spring.sum(y, Spring.sum(height, Spring.constant(yPad))); - } - - //Set the parent's size. - SpringLayout.Constraints pCons = layout.getConstraints(parent); - pCons.setConstraint(SpringLayout.SOUTH, y); - pCons.setConstraint(SpringLayout.EAST, x); - } -} diff --git a/gui/JavaApplication1/src/javaapplication1/User.java b/gui/JavaApplication1/src/javaapplication1/User.java deleted file mode 100644 index 336749f2..00000000 --- a/gui/JavaApplication1/src/javaapplication1/User.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * User.java - * - * Created on March 29, 2008, 11:36 PM - * - * To change this template, choose Tools | Template Manager - * and open the template in the editor. - */ - -package javaapplication1; -import javax.swing.*; -/** - * - * @author soners - */ -public class User { - - /** Creates a new instance of User */ - public User() { - } - - public void setCurrentUser(String hrn, String type, String directory){ - this.hrn = hrn; - this.type = type; - this.directory = directory; - } - - /** - * Holds value of property hrn. - */ - private String hrn; - - /** - * Getter for property hrn. - * @return Value of property hrn. - */ - public String getHrn() { - return this.hrn; - } - - /** - * Setter for property hrn. - * @param hrn New value of property hrn. - */ - public void setHrn(String hrn) { - this.hrn = hrn; - } - - - /** - * Holds value of property type. - */ - private String type; - - /** - * Getter for property type. - * @return Value of property type. - */ - public String getType() { - return this.type; - } - - /** - * Setter for property type. - * @param type New value of property type. - */ - public void setType(String type) { - this.type = type; - } - - /** - * Holds value of property directory. - */ - private String directory; - - /** - * Getter for property directory. - * @return Value of property directory. - */ - public String getDirectory() { - return this.directory; - } - - /** - * Setter for property directory. - * @param directory New value of property directory. - */ - public void setDirectory(String directory) { - this.directory = directory; - } - -} diff --git a/gui/JavaApplication1/test/NewJFrame.form b/gui/JavaApplication1/test/NewJFrame.form deleted file mode 100644 index bc1510ba..00000000 --- a/gui/JavaApplication1/test/NewJFrame.form +++ /dev/null @@ -1,1037 +0,0 @@ - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/gui/JavaApplication1/test/NewJFrame.java b/gui/JavaApplication1/test/NewJFrame.java deleted file mode 100644 index ba492038..00000000 --- a/gui/JavaApplication1/test/NewJFrame.java +++ /dev/null @@ -1,1221 +0,0 @@ -/* - * NewJFrame.java - * - * Created on March 24, 2008, 8:22 PM - */ - -import java.io.*; -import javax.swing.JOptionPane; - -/** - * - * @author soners - */ -public class NewJFrame extends javax.swing.JFrame { - - /** Creates new form NewJFrame */ - public NewJFrame() { - initComponents(); - - jPanel6.setVisible(false); - jPanel7.setVisible(false); - jPanel2.setVisible(false); - - //public key prompt will be visible for only register and update - jLabel31.setVisible(false); - jTextField20.setVisible(false); - - try{ - rtime = Runtime.getRuntime(); - child = rtime.exec("/bin/bash"); - outCommand = new BufferedWriter(new OutputStreamWriter(child.getOutputStream())); - }catch (Exception e){ - JOptionPane.showMessageDialog(null, "The program cannot start bash.\n"); - return; - } - - } - - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. - */ - // //GEN-BEGIN:initComponents - private void initComponents() { - jPanel1 = new javax.swing.JPanel(); - jLabel1 = new javax.swing.JLabel(); - jTextField1 = new javax.swing.JTextField(); - jComboBox1 = new javax.swing.JComboBox(); - jTextField24 = new javax.swing.JTextField(); - jLabel29 = new javax.swing.JLabel(); - jLabel30 = new javax.swing.JLabel(); - jPanel4 = new javax.swing.JPanel(); - jLabel2 = new javax.swing.JLabel(); - jTextField2 = new javax.swing.JTextField(); - jComboBox2 = new javax.swing.JComboBox(); - jPanel3 = new javax.swing.JPanel(); - jToggleButton6 = new javax.swing.JToggleButton(); - jToggleButton7 = new javax.swing.JToggleButton(); - jToggleButton8 = new javax.swing.JToggleButton(); - jToggleButton9 = new javax.swing.JToggleButton(); - jLabel28 = new javax.swing.JLabel(); - jLabel31 = new javax.swing.JLabel(); - jTextField20 = new javax.swing.JTextField(); - jButton1 = new javax.swing.JButton(); - jInternalFrame1 = new javax.swing.JInternalFrame(); - jPanel6 = new javax.swing.JPanel(); - jLabel7 = new javax.swing.JLabel(); - jLabel8 = new javax.swing.JLabel(); - jLabel9 = new javax.swing.JLabel(); - jLabel10 = new javax.swing.JLabel(); - jLabel11 = new javax.swing.JLabel(); - jLabel12 = new javax.swing.JLabel(); - jLabel13 = new javax.swing.JLabel(); - jLabel14 = new javax.swing.JLabel(); - jLabel15 = new javax.swing.JLabel(); - jLabel16 = new javax.swing.JLabel(); - jTextField6 = new javax.swing.JTextField(); - jTextField7 = new javax.swing.JTextField(); - jTextField8 = new javax.swing.JTextField(); - jTextField9 = new javax.swing.JTextField(); - jTextField10 = new javax.swing.JTextField(); - jTextField11 = new javax.swing.JTextField(); - jTextField12 = new javax.swing.JTextField(); - jComboBox4 = new javax.swing.JComboBox(); - jTextField21 = new javax.swing.JTextField(); - jComboBox5 = new javax.swing.JComboBox(); - jPanel7 = new javax.swing.JPanel(); - jLabel6 = new javax.swing.JLabel(); - jLabel25 = new javax.swing.JLabel(); - jLabel26 = new javax.swing.JLabel(); - jLabel27 = new javax.swing.JLabel(); - jComboBox3 = new javax.swing.JComboBox(); - jTextField22 = new javax.swing.JTextField(); - jScrollPane1 = new javax.swing.JScrollPane(); - jTextArea1 = new javax.swing.JTextArea(); - jTextField23 = new javax.swing.JTextField(); - jPanel2 = new javax.swing.JPanel(); - jTextField3 = new javax.swing.JTextField(); - jLabel3 = new javax.swing.JLabel(); - jLabel4 = new javax.swing.JLabel(); - jLabel5 = new javax.swing.JLabel(); - jTextField4 = new javax.swing.JTextField(); - jTextField5 = new javax.swing.JTextField(); - jLabel32 = new javax.swing.JLabel(); - jTextField25 = new javax.swing.JTextField(); - jPanel5 = new javax.swing.JPanel(); - jLabel17 = new javax.swing.JLabel(); - jLabel18 = new javax.swing.JLabel(); - jLabel19 = new javax.swing.JLabel(); - jLabel20 = new javax.swing.JLabel(); - jLabel21 = new javax.swing.JLabel(); - jLabel22 = new javax.swing.JLabel(); - jLabel23 = new javax.swing.JLabel(); - jLabel24 = new javax.swing.JLabel(); - jTextField13 = new javax.swing.JTextField(); - jTextField14 = new javax.swing.JTextField(); - jTextField15 = new javax.swing.JTextField(); - jTextField16 = new javax.swing.JTextField(); - jTextField17 = new javax.swing.JTextField(); - jTextField18 = new javax.swing.JTextField(); - jTextField19 = new javax.swing.JTextField(); - jScrollPane2 = new javax.swing.JScrollPane(); - jTextArea2 = new javax.swing.JTextArea(); - jLabel33 = new javax.swing.JLabel(); - - setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); - jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("User Info")); - jPanel1.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseReleased(java.awt.event.MouseEvent evt) { - jPanel1MouseReleased(evt); - } - }); - - jLabel1.setText("Enter your HRN:"); - - jTextField1.setText("planetlab.jp.osaka"); - - jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "user", "SA", "MA" })); - - jTextField24.setText("./client_osaka"); - - jLabel29.setText("Type:"); - - jLabel30.setText("User GENI directory:"); - - org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1); - jPanel1.setLayout(jPanel1Layout); - jPanel1Layout.setHorizontalGroup( - jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel1Layout.createSequentialGroup() - .addContainerGap() - .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) - .add(jLabel29) - .add(jLabel1)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jComboBox1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 212, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(61, 61, 61) - .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jLabel30) - .add(jTextField24, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 173, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(39, 39, 39)) - ); - jPanel1Layout.setVerticalGroup( - jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel1Layout.createSequentialGroup() - .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel1) - .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jLabel30)) - .add(8, 8, 8) - .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jComboBox1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jTextField24, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jLabel29)) - .addContainerGap()) - ); - - jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("GENI Parameters")); - jLabel2.setText("HRN:"); - - jTextField2.setText("planetlab.jp.osaka.tokyobranch"); - - jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "-", "user", "slice", "node", "SA", "MA" })); - jComboBox2.addItemListener(new java.awt.event.ItemListener() { - public void itemStateChanged(java.awt.event.ItemEvent evt) { - jComboBox2ItemStateChanged(evt); - } - }); - - jToggleButton6.setText("register"); - jToggleButton6.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseReleased(java.awt.event.MouseEvent evt) { - jToggleButton6MouseReleased(evt); - } - }); - - jToggleButton7.setText("remove"); - jToggleButton7.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseReleased(java.awt.event.MouseEvent evt) { - jToggleButton7MouseReleased(evt); - } - }); - - jToggleButton8.setText("update"); - jToggleButton8.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseReleased(java.awt.event.MouseEvent evt) { - jToggleButton8MouseReleased(evt); - } - }); - - jToggleButton9.setText("lookup"); - jToggleButton9.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseReleased(java.awt.event.MouseEvent evt) { - jToggleButton9MouseReleased(evt); - } - }); - - org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3); - jPanel3.setLayout(jPanel3Layout); - jPanel3Layout.setHorizontalGroup( - jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel3Layout.createSequentialGroup() - .addContainerGap() - .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel3Layout.createSequentialGroup() - .add(jToggleButton6) - .addContainerGap()) - .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel3Layout.createSequentialGroup() - .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) - .add(org.jdesktop.layout.GroupLayout.LEADING, jToggleButton9, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 82, Short.MAX_VALUE) - .add(org.jdesktop.layout.GroupLayout.LEADING, jToggleButton7, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 82, Short.MAX_VALUE)) - .add(106, 106, 106)) - .add(jPanel3Layout.createSequentialGroup() - .add(jToggleButton8, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 82, Short.MAX_VALUE) - .add(106, 106, 106)))) - ); - jPanel3Layout.setVerticalGroup( - jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel3Layout.createSequentialGroup() - .add(jToggleButton6) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jToggleButton7) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jToggleButton8) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jToggleButton9) - .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - ); - - jLabel28.setText("Type:"); - - jLabel31.setText("Public Key:"); - - org.jdesktop.layout.GroupLayout jPanel4Layout = new org.jdesktop.layout.GroupLayout(jPanel4); - jPanel4.setLayout(jPanel4Layout); - jPanel4Layout.setHorizontalGroup( - jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel4Layout.createSequentialGroup() - .addContainerGap() - .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) - .add(jPanel4Layout.createSequentialGroup() - .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) - .add(jLabel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 38, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jLabel28, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 38, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jTextField2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 271, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jComboBox2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) - .add(jPanel4Layout.createSequentialGroup() - .add(jLabel31) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jTextField20))) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(jPanel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(106, 106, 106)) - ); - jPanel4Layout.setVerticalGroup( - jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel4Layout.createSequentialGroup() - .addContainerGap() - .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel2) - .add(jTextField2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jComboBox2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jLabel28)) - .add(17, 17, 17) - .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel31) - .add(jTextField20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) - .add(jPanel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - ); - - jButton1.setText("Send"); - jButton1.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseReleased(java.awt.event.MouseEvent evt) { - jButton1MouseReleased(evt); - } - }); - - jInternalFrame1.setVisible(true); - jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder("PL parameters for SA/MA")); - jLabel7.setText("Name:"); - - jLabel8.setText("Abbreviated Name:"); - - jLabel9.setText("URL:"); - - jLabel10.setText("Login Base:"); - - jLabel11.setText("Longitude:"); - - jLabel12.setText("Latitude:"); - - jLabel13.setText("Public:"); - - jLabel14.setText("Max Slices:"); - - jLabel15.setText("Max Slivers:"); - - jLabel16.setText("Enabled:"); - - jTextField6.setText("newname"); - - jTextField7.setText("abbname2"); - - jTextField8.setText("rand.com"); - - jTextField9.setText("my_loginbase4"); - - jTextField10.setText("44.4"); - - jTextField11.setText("66.6"); - - jTextField12.setText("10"); - - jComboBox4.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Yes", "No" })); - - jTextField21.setText("300"); - - jComboBox5.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Yes", "No" })); - - org.jdesktop.layout.GroupLayout jPanel6Layout = new org.jdesktop.layout.GroupLayout(jPanel6); - jPanel6.setLayout(jPanel6Layout); - jPanel6Layout.setHorizontalGroup( - jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel6Layout.createSequentialGroup() - .addContainerGap() - .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) - .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel6Layout.createSequentialGroup() - .add(jLabel11) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 63, Short.MAX_VALUE) - .add(jTextField10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel6Layout.createSequentialGroup() - .add(jLabel10) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 58, Short.MAX_VALUE) - .add(jTextField9, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel6Layout.createSequentialGroup() - .add(jLabel9) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 102, Short.MAX_VALUE) - .add(jTextField8, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel6Layout.createSequentialGroup() - .add(jLabel8) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(jTextField7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel6Layout.createSequentialGroup() - .add(jLabel7) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 91, Short.MAX_VALUE) - .add(jTextField6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(jPanel6Layout.createSequentialGroup() - .add(jLabel12) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 75, Short.MAX_VALUE) - .add(jTextField11, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) - .add(jPanel6Layout.createSequentialGroup() - .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jLabel15) - .add(jLabel16)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 56, Short.MAX_VALUE) - .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jComboBox5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jTextField21, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) - .add(jPanel6Layout.createSequentialGroup() - .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jLabel14) - .add(jLabel13)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 62, Short.MAX_VALUE) - .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jComboBox4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jTextField12, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))) - .addContainerGap(36, Short.MAX_VALUE)) - ); - jPanel6Layout.setVerticalGroup( - jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel6Layout.createSequentialGroup() - .addContainerGap() - .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel6Layout.createSequentialGroup() - .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel7) - .add(jTextField6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel8) - .add(jTextField7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel9) - .add(jTextField8, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel10) - .add(jTextField9, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel11) - .add(jTextField10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel12) - .add(jTextField11, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addContainerGap()) - .add(jPanel6Layout.createSequentialGroup() - .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel13) - .add(jComboBox4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel14) - .add(jTextField12, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel15) - .add(jTextField21, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel16) - .add(jComboBox5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(150, 150, 150)))) - ); - - jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder("PL Parameters for slice")); - jLabel6.setText("Instantiation:"); - - jLabel25.setText("URL:"); - - jLabel26.setText("Description:"); - - jLabel27.setText("Max Nodes:"); - - jComboBox3.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "plc-instantiated", "delegated" })); - - jTextArea1.setColumns(20); - jTextArea1.setRows(5); - jScrollPane1.setViewportView(jTextArea1); - - jTextField23.setText("10"); - - org.jdesktop.layout.GroupLayout jPanel7Layout = new org.jdesktop.layout.GroupLayout(jPanel7); - jPanel7.setLayout(jPanel7Layout); - jPanel7Layout.setHorizontalGroup( - jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel7Layout.createSequentialGroup() - .add(25, 25, 25) - .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jLabel25) - .add(jLabel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 90, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jLabel26) - .add(jLabel27)) - .add(43, 43, 43) - .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jComboBox3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false) - .add(org.jdesktop.layout.GroupLayout.LEADING, jTextField22) - .add(org.jdesktop.layout.GroupLayout.LEADING, jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 235, Short.MAX_VALUE)) - .add(jTextField23, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 56, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(191, Short.MAX_VALUE)) - ); - jPanel7Layout.setVerticalGroup( - jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel7Layout.createSequentialGroup() - .addContainerGap() - .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel6) - .add(jComboBox3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel25) - .add(jTextField22, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) - .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel7Layout.createSequentialGroup() - .add(7, 7, 7) - .add(jLabel26)) - .add(jPanel7Layout.createSequentialGroup() - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 58, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) - .add(16, 16, 16) - .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel27) - .add(jTextField23, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(18, Short.MAX_VALUE)) - ); - - jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("PL Parameters for node")); - jTextField3.setText("boot"); - - jLabel3.setText("Bootstate:"); - - jLabel4.setText("Version:"); - - jLabel5.setText("Model:"); - - jTextField4.setText("PlanetLab BootCD 3.1"); - - jTextField5.setText("Dell OptiPlex GX280"); - - jLabel32.setText("Hostname:"); - - org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2); - jPanel2.setLayout(jPanel2Layout); - jPanel2Layout.setHorizontalGroup( - jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel2Layout.createSequentialGroup() - .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) - .add(jPanel2Layout.createSequentialGroup() - .add(jLabel3) - .add(23, 23, 23) - .add(jTextField3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 161, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(jPanel2Layout.createSequentialGroup() - .add(jLabel32) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(jTextField25, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 161, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jLabel5) - .add(jLabel4)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jTextField4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 161, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jTextField5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 161, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(102, Short.MAX_VALUE)) - ); - jPanel2Layout.setVerticalGroup( - jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel2Layout.createSequentialGroup() - .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel2Layout.createSequentialGroup() - .add(30, 30, 30) - .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel4) - .add(jTextField4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jLabel32) - .add(jTextField25, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jLabel3)) - .add(jPanel2Layout.createSequentialGroup() - .add(55, 55, 55) - .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel5) - .add(jTextField5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jTextField3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))) - .addContainerGap(24, Short.MAX_VALUE)) - ); - - jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("PL Parameters for user")); - jLabel17.setText("First name:"); - - jLabel18.setText("Last name:"); - - jLabel19.setText("Title:"); - - jLabel20.setText("Email:"); - - jLabel21.setText("Password:"); - - jLabel22.setText("Phone:"); - - jLabel23.setText("URL:"); - - jLabel24.setText("Bio:"); - - jTextArea2.setColumns(20); - jTextArea2.setRows(5); - jScrollPane2.setViewportView(jTextArea2); - - org.jdesktop.layout.GroupLayout jPanel5Layout = new org.jdesktop.layout.GroupLayout(jPanel5); - jPanel5.setLayout(jPanel5Layout); - jPanel5Layout.setHorizontalGroup( - jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel5Layout.createSequentialGroup() - .addContainerGap() - .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jLabel17) - .add(jLabel18) - .add(jLabel19) - .add(jLabel20)) - .add(28, 28, 28) - .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jTextField16, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jTextField15, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jTextField14, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jTextField13, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(22, 22, 22) - .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jLabel24) - .add(jLabel23) - .add(jLabel22) - .add(jLabel21)) - .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) - .add(jPanel5Layout.createSequentialGroup() - .add(21, 21, 21) - .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jTextField18, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jTextField17, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jTextField19, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(59, Short.MAX_VALUE)) - .add(jPanel5Layout.createSequentialGroup() - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jScrollPane2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 202, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addContainerGap()))) - ); - jPanel5Layout.setVerticalGroup( - jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel5Layout.createSequentialGroup() - .add(19, 19, 19) - .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel17) - .add(jTextField13, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jLabel21) - .add(jTextField17, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel18) - .add(jTextField14, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jLabel22) - .add(jTextField18, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel19) - .add(jTextField15, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jLabel23) - .add(jTextField19, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(jLabel20) - .add(jTextField16, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(jLabel24)) - .add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 47, Short.MAX_VALUE)) - .addContainerGap()) - ); - - org.jdesktop.layout.GroupLayout jInternalFrame1Layout = new org.jdesktop.layout.GroupLayout(jInternalFrame1.getContentPane()); - jInternalFrame1.getContentPane().setLayout(jInternalFrame1Layout); - jInternalFrame1Layout.setHorizontalGroup( - jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jInternalFrame1Layout.createSequentialGroup() - .add(jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel5, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(jPanel6, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(jPanel7, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addContainerGap()) - ); - jInternalFrame1Layout.setVerticalGroup( - jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jInternalFrame1Layout.createSequentialGroup() - .addContainerGap() - .add(jPanel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 207, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(19, 19, 19) - .add(jPanel5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(22, 22, 22) - .add(jPanel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addContainerGap(55, Short.MAX_VALUE)) - ); - - jLabel33.setFocusTraversalPolicyProvider(true); - jLabel33.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - - org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane()); - getContentPane().setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(layout.createSequentialGroup() - .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(layout.createSequentialGroup() - .addContainerGap() - .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(jPanel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 604, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) - .add(layout.createSequentialGroup() - .add(153, 153, 153) - .add(jButton1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 277, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(198, 198, 198)) - .add(layout.createSequentialGroup() - .addContainerGap() - .add(jInternalFrame1)) - .add(layout.createSequentialGroup() - .add(53, 53, 53) - .add(jLabel33, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 501, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) - .addContainerGap()) - ); - layout.setVerticalGroup( - layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(layout.createSequentialGroup() - .add(22, 22, 22) - .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 92, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jButton1) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jLabel33, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 33, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jInternalFrame1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(794, 794, 794)) - ); - pack(); - }// //GEN-END:initComponents - - private void jButton1MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton1MouseReleased -// TODO add your handling code here: - String operation = ""; - if (jToggleButton6.isSelected()) - operation = "register"; - else if (jToggleButton7.isSelected()) - operation = "remove"; - else if (jToggleButton8.isSelected()) - operation = "update"; - else - operation = "lookup"; - - //user data - String user_hrn = jTextField1.getText(); - String user_type = (String) jComboBox1.getSelectedItem(); - - //call data - String hrn = jTextField2.getText(); - String type = (String) jComboBox2.getSelectedItem(); - String pubkey = jTextField20.getText(); - - String gparams = ""; - String pparams = ""; - - if (type == "SA" || type == "MA"){ - String name = jTextField6.getText(); - String abbreviated_name = jTextField7.getText(); - String url = jTextField8.getText(); - String login_base = jTextField9.getText(); - String longitude = jTextField10.getText(); - String latitude = jTextField11.getText(); - String max_slices = jTextField12.getText(); - String max_slivers = jTextField21.getText(); - String is_public = ""; - String enabled = ""; - - - if ((String) jComboBox4.getSelectedItem() == "Yes") - is_public = "True"; - else - is_public = "False"; - if ((String) jComboBox5.getSelectedItem() == "Yes") - enabled = "True"; - else - enabled = "False"; - - if (pubkey == "") - gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"'}"; - else - gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"', 'pubkey':'"+pubkey+"'}"; - pparams = "{'name':'"+name+"', 'url':'"+url+"', 'login_base':'"+login_base+ - "', 'longitude':"+longitude+", 'latitude':"+latitude+", 'is_public':"+ - is_public+", 'abbreviated_name':'"+abbreviated_name+"', 'max_slices':"+max_slices+", 'max_slivers':"+ - max_slivers+", 'enabled':"+enabled+"}"; - } - else if (type == "slice"){ - String instantiation = (String) jComboBox3.getSelectedItem(); - String url = jTextField22.getText(); - String description = jTextArea1.getText(); - String max_nodes = jTextField23.getText(); - - if (pubkey == "") - gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"'}"; - else - gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"', 'pubkey':'"+pubkey+"'}"; - pparams = "{'instantiation':'"+instantiation+"', 'url':'"+url+"', 'description':'"+description+ - "', 'max_nodes':"+max_nodes+"}"; - - } - else if (type == "user"){ - String first_name = jTextField13.getText(); - String last_name = jTextField14.getText(); - String title = jTextField15.getText(); - String email = jTextField16.getText(); - String password = jTextField17.getText(); - String phone = jTextField18.getText(); - String url = jTextField19.getText(); - String bio = jTextArea2.getText(); - - if (pubkey.length() == 0) - gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"'}"; - else - gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"', 'pubkey':'"+pubkey+"'}"; - - pparams = "{'first_name':'"+first_name+"', 'last_name':'"+last_name+"', 'title':'"+title+ - "', 'email':'"+email+"', 'password':'"+password+"', 'phone':'"+phone+"', 'url':'"+url+ - "', 'bio':'"+bio+"'}"; - - } - else if (type == "node"){ - String hostname = jTextField25.getText(); - String boot_state = jTextField3.getText(); - String version = jTextField4.getText(); - String model = jTextField5.getText(); - - if (pubkey == "") - gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"'}"; - else - gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"', 'pubkey':'"+pubkey+"'}"; - - pparams = "{'hostname':'"+hostname+"', 'boot_state':'"+boot_state+"', 'version':'"+version+ - "', 'model':'"+model+"'}"; - } - - String message = "{'opname':'"+operation+"', 'g_params':"+gparams+", 'p_params':"+pparams+"}"; - - //do the call to the python client - String curdir = System.getProperty("user.dir"); - String client_folder = jTextField24.getText(); - String result = ""; - - try{ - //cd to the client folder - outCommand.write("cd "+client_folder+"\n"); - outCommand.flush(); - - FileWriter fstream = new FileWriter(client_folder+"/tmp_input.txt"); - BufferedWriter out = new BufferedWriter(fstream); - out.write(user_hrn+" "+user_type+"\n"); - out.write(message); - //Close the output stream - out.close(); - outCommand.write("./clientstub.py\n"); - outCommand.flush(); - - //get the result of the call from the python client - File file = new File(client_folder+"/tmp_output.txt"); - int i = 0; - while(!file.exists() && i<5){ - i++; - try { - Thread.currentThread().sleep(200); - } catch (InterruptedException ex) { - ex.printStackTrace(); - result = "Problem occured in client stub.\n"; - jLabel33.setText(result); - return; - } - } - - try { - Thread.currentThread().sleep(200); - } catch (InterruptedException ex) { - ex.printStackTrace(); - result = "Problem occured in client stub.\n"; - jLabel33.setText(result); - return; - } - - BufferedReader in = new BufferedReader(new FileReader(client_folder+"/tmp_output.txt")); - result = in.readLine(); - in.close(); - - outCommand.write("rm tmp_input.txt tmp_output.txt\n"); - outCommand.write("cd "+curdir+"\n"); - outCommand.flush(); - }catch (Exception e){//Catch exception if any - System.err.println("Error: " + e.getMessage()); - result = "Problem occured in client stub.\n"; - jLabel33.setText(result); - return; - } - - if (operation == "lookup"){ - - - - //node fields -// {'pl': {'node_id': 10756, -// 'last_updated': 1206716001L, -// 'boot_state': u'boot', -// 'site_id': 10145, -// 'pcu_ids': [], -// 'session': None, -// 'key': None, -// 'conf_file_ids': [], -// 'ssh_rsa_key': None, -// 'uuid': u'154709652654203573378094948211939942919', -// 'nodegroup_ids': [], -// 'slice_ids_whitelist': [], -// 'last_contact': None, -// 'nodenetwork_ids': [], -// 'peer_node_id': None, -// 'hostname': u'tttyeni.com', -// 'slice_ids': [], -// 'boot_nonce': None, -// 'version': u'PlanetLab BootCD 3.1', -// 'date_created': 1206716001L, -// 'model': u'Dell OptiPlex GX280', -// 'peer_id': None, -// 'ports': []}, -// -// 'geni': {'description': None, -// 'rights': None, -// 'pubkey': None, -// 'wrapperurl': None, -// 'disabled': None, -// 'userlist': None, -// 'hrn': 'mynewnode', -// 'type': 'node', -// 'pointer': 10756, -// 'uuid': None}} - -//user fields -// {'pl': {'bio': None, -// 'last_name': u'Okawa', -// 'last_updated': 1170811781L, -// 'key_ids': [], -// 'phone': u'+81-466-49-3529', -// 'peer_person_id': None, -// 'role_ids': [20], -// 'site_ids': [10145], -// 'first_name': u'Keiko', -// 'uuid': u'53584984475370335298592451262408000792', -// 'roles': [u'pi'], -// 'title': u'Professor', -// 'url': None, -// 'enabled': True, -// 'slice_ids': [], -// 'person_id': 12397, -// 'date_created': 1170811781L, -// 'peer_id': None, -// 'email': u'keiko@sfc.wide.ad.jp'}, -// -// 'geni': {'description': None, -// 'rights': None, -// 'pubkey': '-----BEGIN RSA PRIVATE KEY-----\nMIGMAgEAAoGBAJccs4vXVSA5slLmlvx+2DPuSy2W0IP5RrUNIcp/wzVqdG9xWdLW\ns5nSv8g926tbFGvLcQqtoErAc7+oANxNWCO9cGJr/MUzjqOYWZQU92qXYdlCpbuL\n7lAVWkiJt8IYlRHe7BpCSSCaFgt7cUfv3fbuhmIDkT/7G/Ktl5NsvQgfAgMBAAE=\n-----END RSA PRIVATE KEY-----\n', -// 'wrapperurl': 'local', -// 'disabled': None, -// 'userlist': None, -// 'hrn': 'keiko', -// 'type': 'user', -// 'pointer': 12397, -// 'uuid': None}} -// - - -//slice fields -// {'pl': {'description': u'', -// 'node_ids': [], -// 'expires': 1207943671L, -// 'site_id': 10145, -// 'uuid': u'166270525633143177647274842267687147563', -// 'creator_person_id': 12974, -// 'instantiation': u'plc-instantiated', -// 'name': u'keio_keikoslc', -// 'slice_id': 15390, -// 'created': 1206734071L, -// 'url': u'', -// 'max_nodes': 10, -// 'person_ids': [], -// 'slice_attribute_ids': [], -// 'peer_slice_id': None, -// 'peer_id': None}, -// 'geni': {'description': None, -// 'rights': None, -// 'pubkey': None, -// 'wrapperurl': None, -// 'disabled': None, -// 'userlist': None, -// 'hrn': 'keikoslc', -// 'type': 'slice', -// 'pointer': 15390, -// 'uuid': None}} - -//site fields -// {'pl': {'last_updated': 1206743152L, -// 'node_ids': [], -// 'site_id': 10240, -// 'pcu_ids': [], -// 'max_slices': 10, -// 'ext_consortium_id': None, -// 'max_slivers': 300, -// 'is_public': True, -// 'peer_site_id': None, -// 'abbreviated_name': u'abbname2my', -// 'name': u'newnamere', -// 'address_ids': [], -// 'uuid': u'215768548793207591574508192043308034894', -// 'url': u'rand.com', -// 'person_ids': [], -// 'enabled': True, -// 'longitude': 44.399999999999999, -// 'slice_ids': [], -// 'login_base': u'tokyologinb', -// 'latitude': 66.599999999999994, -// 'date_created': 1206743152L, -// 'peer_id': None}, -// 'geni': {'description': None, -// 'rights': '(2-0)(4-0)(6-0)(7-0)(8-0)(9-0)(0-1)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)#0:reg:slc:planetlab.jp.osaka#1:reg:slc:planetlab.jp.osaka.tokyobranch2', -// 'pubkey': '-----BEGIN RSA PRIVATE KEY-----\nMIGMAgEAAoGBANsAFcsPHdx1cEyChNljSHDp16vp9GjJBhOhD5/1jiaD8qfQgbcx\nIlMDGOROKJqeNCIk5yuuv46O4obai6MXCfGPnLCvBL7IeI95tImJt0NFg19wHe+I\nwDOabHRJCfSXYViuBDBJUuuMITLmK2cBIlY/lkPKYROXq9FMtht9dekzAgMBAAE=\n-----END RSA PRIVATE KEY-----\n', -// 'wrapperurl': 'local', -// 'disabled': None, -// 'userlist': None, -// 'hrn': 'tokyobranchty', -// 'type': 'SA', -// 'pointer': 10242, -// 'uuid': None}} -// - - - - } - - jLabel33.setText(result); - - }//GEN-LAST:event_jButton1MouseReleased - - private void jComboBox2ItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_jComboBox2ItemStateChanged -// TODO add your handling code here: - - int selected = jComboBox2.getSelectedIndex(); - if (selected == 1){ - jPanel5.setVisible(true); - jPanel6.setVisible(false); - jPanel7.setVisible(false); - jPanel2.setVisible(false); - } - else if (selected == 2){ - jPanel7.setVisible(true); - jPanel5.setVisible(false); - jPanel6.setVisible(false); - jPanel2.setVisible(false); - } - else if (selected == 3){ - jPanel2.setVisible(true); - jPanel5.setVisible(false); - jPanel6.setVisible(false); - jPanel7.setVisible(false); - } - else if (selected == 4 || selected == 5){ - jPanel6.setVisible(true); - jPanel5.setVisible(false); - jPanel7.setVisible(false); - jPanel2.setVisible(false); - } - }//GEN-LAST:event_jComboBox2ItemStateChanged - - private void jToggleButton9MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jToggleButton9MouseReleased -// TODO add your handling code here: - jToggleButton6.setSelected(false); - jToggleButton7.setSelected(false); - jToggleButton8.setSelected(false); - if (!jToggleButton9.isSelected()) - jToggleButton9.setSelected(true); - - jLabel31.setVisible(false); - jTextField20.setVisible(false); - }//GEN-LAST:event_jToggleButton9MouseReleased - - private void jToggleButton8MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jToggleButton8MouseReleased -// TODO add your handling code here: - jToggleButton6.setSelected(false); - jToggleButton7.setSelected(false); - jToggleButton9.setSelected(false); - if (!jToggleButton8.isSelected()) - jToggleButton8.setSelected(true); - - jLabel31.setVisible(true); - jTextField20.setVisible(true); - - }//GEN-LAST:event_jToggleButton8MouseReleased - - private void jToggleButton7MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jToggleButton7MouseReleased -// TODO add your handling code here: - jToggleButton6.setSelected(false); - jToggleButton8.setSelected(false); - jToggleButton9.setSelected(false); - if (!jToggleButton7.isSelected()) - jToggleButton7.setSelected(true); - - jLabel31.setVisible(false); - jTextField20.setVisible(false); - }//GEN-LAST:event_jToggleButton7MouseReleased - - private void jToggleButton6MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jToggleButton6MouseReleased -// TODO add your handling code here: - jToggleButton7.setSelected(false); - jToggleButton8.setSelected(false); - jToggleButton9.setSelected(false); - if (!jToggleButton6.isSelected()) - jToggleButton6.setSelected(true); - - jLabel31.setVisible(true); - jTextField20.setVisible(true); - - }//GEN-LAST:event_jToggleButton6MouseReleased - - private void jPanel1MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jPanel1MouseReleased -// TODO add your handling code here: - - }//GEN-LAST:event_jPanel1MouseReleased - - /** - * @param args the command line arguments - */ - public static void main(String args[]) { - java.awt.EventQueue.invokeLater(new Runnable() { - public void run() { - new NewJFrame().setVisible(true); - } - }); - } - - //global for communicating the shell - private BufferedWriter outCommand = null; - private Runtime rtime = null; - private Process child = null; - - - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JButton jButton1; - private javax.swing.JComboBox jComboBox1; - private javax.swing.JComboBox jComboBox2; - private javax.swing.JComboBox jComboBox3; - private javax.swing.JComboBox jComboBox4; - private javax.swing.JComboBox jComboBox5; - private javax.swing.JInternalFrame jInternalFrame1; - private javax.swing.JLabel jLabel1; - private javax.swing.JLabel jLabel10; - private javax.swing.JLabel jLabel11; - private javax.swing.JLabel jLabel12; - private javax.swing.JLabel jLabel13; - private javax.swing.JLabel jLabel14; - private javax.swing.JLabel jLabel15; - private javax.swing.JLabel jLabel16; - private javax.swing.JLabel jLabel17; - private javax.swing.JLabel jLabel18; - private javax.swing.JLabel jLabel19; - private javax.swing.JLabel jLabel2; - private javax.swing.JLabel jLabel20; - private javax.swing.JLabel jLabel21; - private javax.swing.JLabel jLabel22; - private javax.swing.JLabel jLabel23; - private javax.swing.JLabel jLabel24; - private javax.swing.JLabel jLabel25; - private javax.swing.JLabel jLabel26; - private javax.swing.JLabel jLabel27; - private javax.swing.JLabel jLabel28; - private javax.swing.JLabel jLabel29; - private javax.swing.JLabel jLabel3; - private javax.swing.JLabel jLabel30; - private javax.swing.JLabel jLabel31; - private javax.swing.JLabel jLabel32; - private javax.swing.JLabel jLabel33; - private javax.swing.JLabel jLabel4; - private javax.swing.JLabel jLabel5; - private javax.swing.JLabel jLabel6; - private javax.swing.JLabel jLabel7; - private javax.swing.JLabel jLabel8; - private javax.swing.JLabel jLabel9; - private javax.swing.JPanel jPanel1; - private javax.swing.JPanel jPanel2; - private javax.swing.JPanel jPanel3; - private javax.swing.JPanel jPanel4; - private javax.swing.JPanel jPanel5; - private javax.swing.JPanel jPanel6; - private javax.swing.JPanel jPanel7; - private javax.swing.JScrollPane jScrollPane1; - private javax.swing.JScrollPane jScrollPane2; - private javax.swing.JTextArea jTextArea1; - private javax.swing.JTextArea jTextArea2; - private javax.swing.JTextField jTextField1; - private javax.swing.JTextField jTextField10; - private javax.swing.JTextField jTextField11; - private javax.swing.JTextField jTextField12; - private javax.swing.JTextField jTextField13; - private javax.swing.JTextField jTextField14; - private javax.swing.JTextField jTextField15; - private javax.swing.JTextField jTextField16; - private javax.swing.JTextField jTextField17; - private javax.swing.JTextField jTextField18; - private javax.swing.JTextField jTextField19; - private javax.swing.JTextField jTextField2; - private javax.swing.JTextField jTextField20; - private javax.swing.JTextField jTextField21; - private javax.swing.JTextField jTextField22; - private javax.swing.JTextField jTextField23; - private javax.swing.JTextField jTextField24; - private javax.swing.JTextField jTextField25; - private javax.swing.JTextField jTextField3; - private javax.swing.JTextField jTextField4; - private javax.swing.JTextField jTextField5; - private javax.swing.JTextField jTextField6; - private javax.swing.JTextField jTextField7; - private javax.swing.JTextField jTextField8; - private javax.swing.JTextField jTextField9; - private javax.swing.JToggleButton jToggleButton6; - private javax.swing.JToggleButton jToggleButton7; - private javax.swing.JToggleButton jToggleButton8; - private javax.swing.JToggleButton jToggleButton9; - // End of variables declaration//GEN-END:variables - -} -- 2.47.0