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 zcmb_j2Y6h?wf_IvUG3~@CCe+zu(+)YF0$kz8w0W_u3#e@gIusFVkKS6i&wj1cV)|f zDZ$hPNJ2NE#1ths5C}#B985_lp(P;+B#=UAA=Csy3MBY_XXf5jv7DFpzL@X3JNLh5 z&YU@O{&Qx==9w=Z+6`d3x+hE@H-zY8Doj6HrIi*eBab$DoGy=SkU9C553*fzqvj^f z4$aM)XK0?Od6wpuFhV?A^Bm1{HP6%hlIHoETQx7xyioHZ&5JcJ(Y#di%bH)&yiD_Q z%_}s&s`)j|uWMeZd6nkXn%8Jvt9hN~^_tr>Z_xaP=8c*+Y2K`Pi{>{qw`<<2d7I|# zns;b+YJN-e+nRT3?$G>>=3Sb1YkpVr9?g3-zo&Vh=1$G~HM=ysH6PG?Q1cH zndZ+mf1&x3=F6JD)clp^E1Iur{#x@ln!nZjo#tzrzt?hxwT(NYXR`ca$fmRE{cwa3Fs-wbqO&u0iN2|p_ zwIqx;*eWl_h~afXwN!qWh4BYx8s89_%Pm=$-J-X1zr(WE7dCbwpt!11l5`_ zK2d9f>clWURVRz!De|QutWFgty{{4?(5O|DR?S*DTCLNnMXU8%C4=g;pxQu$Gwu2L znby`sx|!I&?zF_l#MESF>b&-K>zu69ygHlAJK5Pp=>}(Wy_0g9@{6*GR)-j3WILwj zHYL+7Qp??aBF>*0xOAN#|!1 zC51liIVaouJ)LQGdcWtAd50*PlT0V`hZDml?#tjws|f#m(|b@|GVLsDZ*6q4D-w+< zhlti?ni8p1iEL8dUC^IjpUe^Qy{%o4%(bNwn~zSUn^Q8yXj9fnaIzJu3WC-*a{ z-neP-qGT#n@UxgoOmscg+mr#UleusM!No*TQ+sw*B1Ht#PDkFfqSo!bl@R{?<~E1$ zr;=%h2#F^e(k4{GroAzdYIg{pMleZ)vrbbc+q}YdYECwZ&qPq1M#MHao9D03WO7b+ zZj(gKawoeklWldHiG%GV3bD7s>BuiiI;rN_)~>{+{8VS7lg>}IT^CB*%t<*N-V$5u z7pL=1Hrw8ocbXS=G&yZD(riK{(*v>Lcqh?p*x<{zwh={HC)b|J6aIBciL25=G%iY- zNU7-Mr{3xV>#Sp#_eL3DE`-n7m?wt+yGaphT@!JDktryV;a%s=Cb*6m(rkmcUpO2# zKsfYOwLFn_QUhWpMpAnvg1SVblM=g{8j1b-Dx05aZOqKebV#&V4-~bD{^@&ZvBT2+ zUL#SMX-^B8Y@>zfPLr%(`v$RYYR|e+tMcoJaDH7wQzo5v z(s?4>)Y$W41Kh@Z!~}RjP76^4@}^}Xvf%pJ#`d(6B1-d#Y>Oia*rXCdw=}dRvWeCl zq1y^ge^VlxB`RE|N__X$7EUxZIl0`pY15_=v+VTyFWQZ`u_vXJ8FnL{+@Gv85`WOy}}d@wBt4DxPghud9k@lj$50l(K59 z@TJ>ZiJ;UEV??m6sl6fDEHcaIuZ%A?t(=p~B{OM}^IE8c6`i5*S(O~)%*Vi8%KfZo$-1HsX>sy0(OA1PRyK&IUm5Ub;CE~G` zY^J@9pKrD>%|xIz(=3@Nu+;vRFK|++__1yI8%n`mouvhCRvQM}r|#8)0) zM+8!`(Ia$oGAFzfo;7ANf-EQ?!8J~g zdxHzT)?gFiPq1Hr)$s5A?rHKxcG;)NRE@il|gpvgc%a@~<-V*tIHrd#2(zc-1 zDRVv4Mn~AV(YP+c67geL1~q`_l~GN{95LAG$V(>7WwQBXd#j1v!3#U`k`7(W_`KNF zAo+(Vc2(Fn9z=waxrR1FR-(wVmTrGO}4G(v=^wKJ9X(?LQSZRsEleOI6+oBlXfENbd`;$ zoILWXo$#;7%DE@FEK?O<SA?CL|v-BOpNTA z#z5z(i291CAL^<1?iTE6iimn2WKtHCp)QN4%f*RTsIL+XN7UCu%aCmA-V=$auZyS4 zd+aEjwu0))h`LI8_Hkf+o1DVy5}Pya`G~q&T@z8)s_R@^3SKs6nTWbx8H2V()D7Z* zZ>SsH*%Sl|ThoZTN!=V#x2SIh)%J+GRoxa*x688JAtqFafrU=qX-Fp9NyO!2pIv63 zJ?l6r<%`p4Cp$lt$mN`zbo*9BeOuibQ9IOkg6gh_x?3FfT?rT88ew%{Q6eRA9g=l- z_fx*A_yi&{!8>V8s6CSyw52LO!8>pmgj?K&-M2}7HoeC-p619V>XZSFUjy7Q?0xw9 zPY^kC7CEQ4CsH}0qW4I4_}P=z3Rl}w$viQk_jmW&Wzqnq5WyBFZ!`6fi31)BMZn%v z=$s>WAj0TA<9qt$5~!shQY1SQxml|o$d zU55~ZM8w?OInDMkROU_6<+|Ky^@&XPiZ3Xa1{sMT(J{9%mr1qfo#l!A`T^K%ZwiTk z8)kuZsrKA@S+0&`PPTTwiLyAoj!7%l%lSwS4DH#hlg@kZeb>OEa%Rq@9H))&Ph28i z9wZFT*XI*W8&+f!vOz9)eVoipbuVhnYRDjR1xOU7oOFvA@0&Pju^g9DW^%!tlNSQ_ z_ky`sAVOKEHM7x~o04`;_Scd$dM+PjWh}NdkxsNYSu<>Li<4iT&9ph${ALN2fdfxM z#UvSG=l~J2SSBFm+2HggnwyDASFrCbfE!GGL83V4tF!m z5dyG3{Avb5Y9>k%Lpct>ei(*f7>-dGfw36LD1f0>Kg&79{6)w(V=tlPX2e?I`!zx+ z0@Rz8WuqTP=zfGNcOqODco@ZNe9=h#8h^B;eyRIfYG0T2{yM0>*5CW{p!(XtWZy1? z)Xdgqa$3Ypn*nKM~6p8 zxsWzcTy%|gp)%WZOm%cjbgYNjuH&ksgQEv}nC&}W`cCk$kkL0$`WCRT!6u1Zr6*Tx zu*qUdm4`(PRxM*p@vstuO%-gKhm{&^x?nXPHppNzMBhvgD>K+ZA~!2~uyIP+V1peZ zUOCj0iyEv}B&_XY_7=7i_W)lLk+e-##rdd?Pst> zB6pOB?QgK7V}a=4=;G)S+c{>yV+>g5NgiOpr7?eWaCDgm4m04fu|RZ84>;U_%T4#= zqQ_gEBMev{^G8=iS4LM^aHIiO8_5$qoudr6CgzV0kFNE=xB*Wzqn~8K9u{rKL;#}^ z!WfidEJk1)s&F9YU_9zD0S%alEGFRsRN^{J#tu|rH>&X>rr>Q%#b=ntQcUL<)NmGN za0zDe6dc4XX7NHC%xyS?cjHh#j#|Ei*?bps_yrDAQ5>$u;|MhyN2=wRs~pTzXJEd% z0t?h_Sg0PvBJ~1}Qg2|fVesLWn=XS()l1xuVGtwKQ{101C{(EjcmQMYVUGG1hcN~} z>eO`{&KLqvavSP0y~$y=D5T5;X}IvP^FjsL6#a zUz-JTT*%V3Pl~W?T_+4_aiv_Qua}-l53^lQ6S)l@X8WcDYxOY8^t70p@vwa}y-oU_ z?#WrEXJy=+hgqiQ1#6FPv@vR#zNtF8BHH1_t!4TlqOZVU%k;j?v`k+has?Jzrf-%p z&WN6A$FNNISa_BNE!B?^!2$^_)%%gqa=jl3E!q2#(6YTB2`$_EkTik=xM3yV1IiI5E09u2 zw5qd_=|#A63WPhoK)A*N;pz*7n_nQ@i~`|C76|8a2{*N}Y=1+zEtNa5<-bF?vn7Jh zaih=@?r2%}#V%wCcdkgC=R%fnUlOVFUC6SgPqnqA>09<}&#lt)0=K72xC^CrUlhIA z#-HtbiO5~*$yvgES<25>Jj@c#C5_!3xTW18;){78R3xpV5AVjo4 z2%kp?e&P{=ZxjeIsz8VxE+KYRmW?umxVmyDuKw>3qEFSZgg93M$BTYTh(4ii!@AGL z(h}kt>3FRhT{ft%lYqP43pm?zn~2>I{f3P#+x14t`Zsx5-}b#(Sa^%q*An8JqHnv0 zSwi$Bj@@hCDr4N{$yq}5C1;-s`w-xBQG(K{_> z>Cm@&SvKsDd3?tkci(%>zT~u2=toXVg}&sp<)9&3@#x zo6UaYw42R+kaHWx1GowyT#Zs(gAuqERk#jwa6Rg90~+uRWN{-dz)iRgH)98G!ESsL zFJe31#;y1ax3Ltra}4g_EOc@SzQt4UZDw&NFT@UR!*_T$?&9OPn=j$Jd>8ld3*4*9 z@jW#G_o+G9sgA?_Y8|@Nndnwu#RKYgJg6SRL%oQ*t3cel3dFssK-?=l;;M5z;;M{G zTr$qlcI&8~fe$4B&*ieo(Yv~E_w^{2&Ev98%$OYgZUNY`tP^7B;bol|JUM!= z0kp7vnQxZA!e6y}I}fU=@Yh7Y*M<9P1F?XwCc3i=_xWpTi=ySV!B}9o|2BkT0e?+x zFcys7Z!`qulW&%;(AB%QV_0>CuIWNotjK&U>O^R(X6K$a5c1(|jD6fNjVEys zp2p$$5$5ALEXDIU0WZM8kCDVr(1xF4BVNS0_!+k17q}cR;YPfSTks3qfmd)BUd285 z4IadA@jQNqU*R>pf#2f;ypDh1O$P852jOjwz#ljo@30DggBz|ov&jxY{~ za1zI(2uYT)lH(D?MfjMLITjj=cqpql7Jd_*?nMXBWi`ix2Ag7zNs4E4D#P$W$v+x# z<9ZzeCq(DPnwGm)rB9%{7>R{52&Y5CrTA4SV+i+16eHPL6g@tlcRiL>XoVQhug+c9FR<^ywjWbAb_dVbk||H0{DmYj)vfqxF~F_?7+qN^Lk6eiGAS;V!&-6DE4W zR%GH#%=@()X+<)~E4AUyJwKJ!Z^YQ>Z+onsEPZ|_;}%Kl_xHkwEY89?coCQ2N?d~% zF_FbA#cNRJGV1FX2jFke_&ZAR87lBOhT~rtjV~~f3P;n2V_AfH25|~C5)2{3FtUu` zEDpjsEHPV@3pogvFp4W#fooWf>o^2Aawu-+e(2`@*v%N8g%73FoX11q z2RWY$Y|I6Jh@j+B|23@jd&x8+$+XtriCJDY6=aJb;?kDCXb29XH4P6-6~&c-vPKjhK{jk%#zeqJs?5?jqeL(Rx`j z=w`{)yYPoKuEaZK#ohR0t&V9I=<33|RWaR#_g3%1`)j)KfyAWyaaR|97Yq5i@L^0# zynR$9&-Yeu4RC7_JNGpBW)=Bn1uKFDOM`n^Y7l=-w4`9EAl+g@!BXANQju^iwZ;fw zEj8nNmWE^DnBROfmWGX`A)(PnRq}jq_0}S84T`0Kia?cIBEtk|t)N9<$7i0k=YF06|;&Gh8<9QhC zc^p@;nJalZSFwYuc^*&T?F;o02+xQtzR{`dfW?q%ET^-DgY6&-~73@$aag#o~t@}p1PA?QoDJ+`Z>3%S9yVYofoRNc#(RC7psqXiTa$E`ZT}nE9F;w6}-$h zoLBfJbBAvV^S+tWU=%l9I`@B0NG_WhB&eS7$bzle|eOZb?-jF0=v`2+t5{?I?3Pxxo>Nq;S$^3Ubd z{sp|pzl6{E>-oI@RKDPE<&XV&{=~nDKlPu%pZPE2Fa2NRul!f@RjHFa1f%c}=5iqy zLE~kNGu14FE3w|}!-6;&x0y;<#Aa76#PeLaFb{L(G=r{OkS`!?^{GoR(&&q*pJOnO z;?anx&oRTrmf%ez7g8(m3KvT)Rw+Dg#w}LGoMbDoZ>OuJ*tf^kQtTgJz&7JqtHpOM z?lOJDzFL;qzW!Fv7E^EC-J$;)Z+GawhD&&i{3V(H8rJa`_~7$jY4(YJto6^~QjSG{ ze&5%*jAK#6o$7TS%drT8T+ZWcMfd*zJ`4iXvs@M}uk}aEYXe?k|9_v7s=Dy^TDLqF z?cT1Ai4|1@YozXV;UBdj->h&&Sk6GBsw=`$-b|thnJQ_{L1A|8c}+y*9HfF)s=Ky0 zT3#C&pcpI{_5M?99>x2$C9#q&d{$c;EA7Io+fdZWr`;ac7mhM=R(nJQ9x*LB$3!|2 zjFrmI_X|~GdO__cR_*7HqF6LX|7lDOM;|o(qW_Ygt!|yU9tRKH&)azqIQXJMotabU zJ-}q}`M=Q;3q`+h4I5J%>crq!D0-{`g3+b5A?wAST706M3SQlY$=;sZ?>R)4;t@I9 zJ|b1k_{ZOgbNk5ck*@>Fogl}G-g?a`!_0bb`9NpSp5MsrLvKKG|G(~YO(-X1crmz~ zl&178r?S@GJ1D+}BK{s>zJYSSiD7&TfqC8WT^K3PQ z7pn?hrH1kbwLfoFG2Wqu@i8@$&#F;;QN{UdHJY!fG5oU{%YUeGYP1@!7OP3>I8~`O zt15L9KUBA=Y34}rTMWe(l<;_SP<;xAvz~{c1TWxVuHbl-awJBXBv-ueR%`M+rGG!pL3Pb+{wRjHOC`@CN-NUa1At0Q!~vGID}R;-5h+wSfQ4i zBo{P^$4zbOS(5^3u(c+&DfJ_sXb!$b>It62@$e(89^=X8D07@TgQu_oMP-_&GGP-M zrh=jaa@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 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 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 zcmd?S2YejWwFmq^cgxIIUk-e-C5%$&LR z+;i`obL+Y1EIr2MHo*VPvWpIvH}*dt+*mw!#mwsZCG*C8@m*kPI%+}LMTb9j!PE_( z0N`IAAQN@*%q8{n<~FRTSv+rXC>ma8C6d*vtau_Ei`E4v)Qm4QW=69hGuuPW>#g9- zXfimVW=hTELSuH^3MH+U>RDSj{^XkRYbQ*sZW=#1IHsW^8eAN1j>i&P5=pBq5v-3k z*NiPR7Kg&o>e-P{B2gDSCA2XVYHyE(n?uQPEIOfPz7-A6Us+#h$OzR-L&^1Z!AQ7i zTw+r=+FBh6ZHaXxt0&ZquQ??YFEoy;o_*}%#dDXes0(J$1~-KxkzkV*47IdaEx}Mn zGS(JKhMPl?$d+K!mS9syIMPyR6dIX2>RFwo0D96kE;stQGs`NA-2nf_6~R3_)?yKg7lotN zl8&|}E50Js6tM{YMX}~kWK}30=4Tt|W(o--4~lyv6H^>&<`2Epim!{s+pHGCP({_a z(5B=#YoirSj+-f?%;kGYkIUMaBn*-n>?az*Xoz*ho2_|aNoYzL|d?++ggs~fD4a-IQ7ca9#rHiw8^LUgbtJ5%aVwGFS{l-;mKO8-tV$ZgpH8vMctY?X zpJO_~voRDInI!a=Q8z0I8@F(UwK+L2Y(-k86NVhP`~)M^+-xNhBPWa>Pgs30{+hnO zoDTG9$F4#UUT7fbppp{)U;qSwA{2vA0$>t^gcuc-yFnFQ5Rb|@EXQ83=-dWBH=BG9 z17)%mB$T7Cjo}!$B!;qzU7%fXsf)XE4?G!E21lXW;io$!y1pujjSeV7KlBH|g@DX{ z00shZ!@wYz0Q?Y8?KhJp|K&C+BUZdW|1k~V->5@qRC+Wi>wV~tDI82S5WwLECSjTZ zFX}W**D-@{k6_@De0LNFM{_V!!z=@ZoM1NQXqaoD1cz&wXTXp7{IG!E)N|a092}!z zk%q;G#60gjy*TNlZWaymh*Ywj6iAvcn<*T-TBiRWK$IW;UXaV(aa z7=*zlbGeBjSY~258ceLfGJ>C5j&z$cFCJ>+*5VjzOR&L;Sj|aJu+qdTtTu5R8cnR> z;CP%s=%1Z5yEGb3G;tEv_K1>QoI`4|Iq#EAgwSN787(F(rhOe+52;}u*rRQiA8uw# zs6ELo`$1dGJ}qikFgw=P9*bJhB=-u0BkcBFb|Vc*{)9bROXh`0UKn${YW|((csw`9 zQw}OZV{;fseWmFHjY*6pEJAr6syMeyKDC5}2hAs6Hv7vvVI>>Fr&$EgnEHCos~}+| zdECLn20~G*m1H4E3rF8E3X|+@v&BPlU@ny4V`Ne^2m|fHaW}1Ci$l>+s}+|;Jk-Hb zX{e<|4OlYW`|vEx*+Uv9hWcWmmKH)qR@5|0*p*`wZ}Z7?g1bG`yn$dOtmLY2A}q&b z?lEg*57}RJIVB~k()Zi%H~ftiT_{VTPgTI3Lb-!8g}!!jcMAP7 z#i&COKv%+`tI&t8#$j{~CeyW;LpR`9x)H1CCY(UGz@l3br@OI*I&lu&hs)?2vgngk z@$8}lJ24g&ARLRMQHd%Dtj6J}Mh#rBP{E@`xZ%PCS>v^sD7*bhn2f{hZoj`hQR7hv zvZrS}_4vcH?>+H@836xA9<dTpjblR!YrI$fvJ^*Y_4(~Uaaq|?nh-J;X2 zI^Cwz?K<6|)15lqrPJLy-J{dJI(6!FpHAP<>3*Fa(CM2xJ*d+|Iz6n@BRV~*)3GZNrujuruPT$w*2Ri*wr`L4)kxoC>=_fk9uG1Sj{Zyx)>GX4*-qh(A zI{lYUztrh1oqna$+dBPPr+0LESEu)MdY^OnjZPov^jn=i)afIgKGx}XI{jX!Kj`#F zo&KcLCpy*Z^k<#^qSL23{kKkk)#-0K{avTeboyMUf9Uj2#`J|wU+Mz7AYBMuxOCyx zg+~`&U1++{b>Y*6p^E}tn7Sy`MUgIwby1>=QeF6UQKpMNx+vF0UjqfApDz0ABA|-_ zx){iSLAn^Miy;PlVkiee4uRr-}InekG1D!~#*TiG>E4t2sDM6O9J`EY@h^cmtn`6FK5Z z{AR5oPUcGbScEu2lP;Qd(V`1W7wdGpZR>qyRywY7z!EzaC(TsSsv zR>!(^R@`b?9SsDZLzs#Bo8=-Bmw*epMAE26 zG`dp~f}U(^kAxG+34}6L1v#UoOoZCZ?ZnLOBr2y_a8!UQ93HOJyDD^#MEFfT;N>f=fy1U6V(>_NX8uVk&kOjU(Q z^Im2RK+)B6B_p%!Ags;KVuPZ-KAN=R@s9SS)iQT;v(?VSHlBurqxqy^xfN=W(%?$A zwG+H?E71{265Q+LI!=+wJ{%jzQ0>qu865=2%#n@5Sw*{ARl%sWsVW$6j;^Z;#>3GBLE~;!QsIhrv=KD! zKO_-advnLya0|y-I(ucXUfw0F1aG)-Jm=1}!P-J_9m8Q^b1b@UEw_j&W#Q~tbX}02 zRr-QNV*T29BD7YfDQIX|5M16cGbq!RX1!a>wZ$DuM~AGSl`HG#5DK}*TH~>fc7?r2 zR@i(7DD-7=+`%u`ZdxBsTBOtG6cD)Fiz5hk%vosQl@`6EAkQre1oZ!S7UYcjlS*wN( z%s_KONh@gYgAqJ!u@);r@GMr>vN={H5xoag?d`TkKW^w)1w8YvJS8G<(u5@j#bLX+z zLSbgNx$0WxBs;n#))op!ZFyi02{Ja5d|actBOpv4%ZjW|-EKXZYFp&ErLs1+hvQ7I zHrKf;mFypjXID+Blz~`0yLJk>g$zZLVSD|qus-*>y2XlEt=tk<1*5TKbtXDP+9S<5 z5Q5wObZP0+(t_t}3vHI|MuOm59NH`!jRZkV;BGkm3Aq(Wf4&4c&08p$jE9>#WV6js zRVgzasNxPoR->#slM1;W4bD^o7%%546DA0y*5)L)go#)@8SZG4yjwbVbCR1w8z$?# zz{bGs523(Dp`K_m!52=fZI{AI@G7Y#yOB)yGOCeGcQPfRrlz>HG0fF!^L@$849I5x zf>28fZ!anlD4409R6%`_ShO{q?BIQ1-=fUDd*Y-To>N6aN&Bt7D1GamG`VIH!HC3K z!_l=(Aznc?7V$%HmV9ta1{7@~O7O@^<6*0u?Rgqzj$1sFAV$}jA|~1iG@8G5ENYqJ zR1r5tf`g>!Ah=h=dETQfiB$y~t%NByia0@31quD+;(XQ!bQbURTX9ot5}Qr2MZ`66 znkh~fXB=P?!4zA?nVQ&UitW_b6lXE^qMC8dRy^5}3`c6(w*(1&f=33EZSCCW%C5O4 zxjAWQ;%rl#BRWj6gNHe$q{g1T5K4N+=K)EFDb5w=Y2tiSTp%tq#YN&`dlzB<^C?qY z!sz=t=$*9%HJh?GUz~gukh8kf6qj)&?i803$S}nfjHOS!t#?68aV6JuS*AMEvn@?r zWs0jg<$gD6OmU64))d!?>w9hl$+?UvZV-~78%=Q&SHR8U7P~a*iA{P2YKmLMZKk+g z+@Xm(O>vjF+Z6ZkXStV2C}#rGiJaLG7q;_|Hgj_HDLC1Eruc@q-xLpsZ))N}Q#`~K z_As-HtC6MJGcOcjzV`8Vx5rbis^DmXIog?NjIKMKP`tG&INF(TNC<5`gzcd`$^<9n znSSM2VaS>pXYU_n3qzhbye{FjPVERq5cv1?dX+auv5VRRl!#^xb~ptV{_ z)l&Cy_Ghw$(vF~3DsP%9bx+iucZ(^0%UGU1iA>U^~Hssmg6<>F9!K082ib>1}% zg0Iy|DpeBdLAzZcgkp{&cQLINrEgN=6f(0?k#_?$v$MuHW;P{ak&dLrN=|vCS*;Wj zJT{wo)-lqS4kvhM=NiKwCyQfNtmpX=PZ&DlaVwg1o^!u}g0ccgB4SzX1oxPQ z%m&50ahz;OhMG65h=+K9TxQpCI5y5+sNr~W62`hgyajDVTbX#*n6dRdU5dzUL*B$= z0q!aNa+!eOi(756jn>Qv-yiaZTtTaqTpEwHTk+%;X4U+R$E+e78A9JY93poVnLNdu zUttf9w` znv?V6JV6+ogU;Fiub2NAsS&p}h9Y5}ln}JI)gB5*lU)34$#kT775$s46(ymT7P;lk zLwTjmG%SliwcVK$L6*GGUX+nr-U+TF=lkW>lGAzRKvjF9I4WEC>XTL*hLMZha_3U; zf&*{B@e+i*`iQk{1WzL5)wHjL@@j&ph>AhPDny%Y6{3;6AzDGZ;pRZ_Myb1^3!aKD zcq_V~Rdhj@8;!)uMWf&Y&>wCw5k4^qMF^k_1JDlxF%W|=6oWAWLx{Kil(x`FDkE0G z1V&1F34&Kf6cw&tfVBc4-mNGZ_7r@(8&* z>fG6{iyP`Zm9B318vP|z{!+i+U)F^_4V7*QDrZn%8|0Coe%1c|{(yggjOCS}fmQxN z{=s%EO@fA0`v>`l+8|wmf{bgJ4JuJ7hgbWD`$sr1m2_maztn%215;^7aoW)i%qQ`U z;k0R(Az@=VUWF5{K*B1Slqv^iN?0}LQRBc0C2SnS#yhYg37f#MS_f7vVG|kOBnMU^ zVUs!D6#rCNDJ7*6b~x9{G$)>4!s(0gu1bU+-V25(gyk7zteD#2g@jivwrZTq=_<^DkF82TNc>!0lh*U+G_^fI}p3wTyY3gL9|^HU`}OLH;!k zFerh?%iK>;z>E~#DK%(^!H3}}!Uzn;NL1l4%)lrt!f33;7{oCa=b{4FqY@9G3VTtF z*HDA^F%F+$JQZOA4M#0a!9-e!Npun>Qyf$1JWQn5zjz!Aca zBgH5jC8pzOu@p0fg<0Y>%oaN_N8F9M;&IFquVTJ<2lY~dk5sa0OK_2Ro%)dh!eH?t z^``&?s>B`|KmoWgL)=FLDF8PXiR)<)1>k|;)lgf~n{7$oR#7rYO8SWvyKv&yBk3nG z+pM*#UP=1N%rzk!q$ItGLCrQu$!iOPEE}Z6HK&PC(z=c%q}7gPOZs|F8FpYQ=_wp< zg9B4(BMfVEU`o=XOm579?O)Q{Iqj)VJSFLI&Ntz}l%yva*5Ti%cvMOHrfUBR|7M48 zm82ie_|g)rBt2I$m88$%cxfqAlD>uWIL&{$%0o%IBZX%upc3_CIAU4|m8ka+LM7`x zgir~44+bScK(R ziw4B80_S2SuE#1ofYsQGuhhMw>Vju`GexmKL~E(*oC&7PyAAz|Bqz z+{CoN4M_`}%NDqC6(#+pz-_JAg{@zYz@5n)yv^o9C2$M)yVu(wC2-q0)>$@43EbHn z>l_=Tq$a1gRYH^7?WvSIIOVx^N?YL0u`q6SxF3BbgR;+l$GxaR8-h@4(S3B-109EbarK;*ExV(XlNr4op1IpK9ScPXa6o*C{2 zhv8Jp8#&rd{+ktVsie1XtADH0>Z`Q3u@v6!q*VfO2jjcbfhmE=6&y9zyo>X=+li+H zB3C$bdLUbvltAPPjuMF6UP;NrJ)FnA{!Ud6B@g#8>>K|36- zlIqp);Tja-S`5Z@sKWJ_fg7+0H(@PqMjW@`T-=K5aT^}M?bwSu@EY#K`?w3A;chCz zJv1Em(iC*kLfl6u;Tsgk{d684pd0Z`dI%5Fb9jhe$HVj?9-%Mrs3^m?#ArMwW?+|C zhTUQvQsQ)UiOaD^+=Iu(6L=y^aJ$oj`(RpdZ%qsCPDgOXHb-zp%obdtAPrMPNAX>_ z_zVnfrzMsC2UB?H2B}4R;*w5Gtn@#e25eo@iQ$$0N74XeNheAx{f|n3&eFcbHN{=- zuG)JiO|B|;*ZRMe!ee!wfX7wq-<85+?%F!9zpPFRc=o#QhA-f8*VbtP&A(e>(D;>W zie9c)@4XWPtIPG;6jA}NeCh3kZ--8uU%tz)Z|CQiRgA7WU%=-tP2r&%Q5f*~2g&%w z{4$`Wu%{Du1$_P$5_(ub^FN+>?_VX~pTlwePssaC0iVCWjIl7XnYC0MDQd&tVXr$4I<@YV5;gyo4k19n8kdSd3S2 z9A1Tm?<0&KpdCNNM!bgY_z`yCC%6o+;}*Pu+wl|Ji=X2`yopEfUw9n9#4C6UKf|x^ z4&KJ^@N4`X?~(`aQ8C`9!T1dg!v|D_-_jI(NGtFGt-(jsjE`v@en;*2J#E3uv<;s~ zj@*Gl8i^@1oJPQ;!I(!QDFB0pVHO=mqfmgy@eGY7Ug9{8hS3-~g|Vm)jipiWB1|Pz zL8GAIe0)NcGy*#2(KM=}5pYZHv==&PJ5|#tc?xSg)yQd*pfhP48GPo7l}2p7UIz~f z0P0(n!n4odxh2&pJYVOo*afjqE`*2_z8!Gy!(Ukm{DnGJHFw)z)4z{Dq=!H0i|SLR z@DjgI;XD4aI&U|=+vxvZ7haYe%Y63AjTlj`>vv-C4xRSk)zy9Q{XO_$=a=s>f2Q!G z&M)6o;2$#>h7Fc!Z$NW5UT^Hi8xreJyYMsh`sZ~e5q<@= z7rc%5g1~;d<(WTc|JYp?>J1{@6=F=1!1p^J(LsKPxorDMJaGC}U zA>1#yN~aQ;whms5!S84~jbc50>YL`YzBGf5ket?+j-;a?pi>bYO*7#_5$QCGroj!O z*)&J-oc3*K+?Kkpr8>9Mn3_BjuXA@|iqo1hWGh2PI?X9V42Jlf_SDDiX`Q<&g$H-Z z-Ab>w|prnH6*1z7Nb8@arn{d9bVd@F{PezPr3Kx^-OHJR^pA6c-P;C!CW)` zGP_RfYLM}NQDw&}vH$kqk5wuBsVap}s#ExNb&s#5m+M>yG&10pJsN+lA}%qR4kZ1x zKC{0E_k8J6s${7;L(%_XwJNC%@2V>Z6r`)Gz^<-pryk6JlZ*Od0W*a^RC6f5RVU65 z6vz&bJI?~Uo2>4}pP4O~4AuX2;V*S&pm*x}K!M$x9krhvO}pl^@(q~X__VPiV0PiZ zQ}`>hj82_j{9Lk(Q(Xm4i#sRCUAmGbM?V(Og3K(`(RXA03z#Q#b`ST&LXSI@2#h%r@*|R!@ zKUJsjNqU4qzr-ehs^Ovqp6rhhhqUv$0C}6)pR7*&{44H zXk17$aTU!%C(XtaGzTxzT)ay2@CMDtyR-lwQa%1e3-LEP2A|VWM06~YFa}#(eZRAoj~`{QhI<+rd<@GXQ_!^rDpmG zwa`z=qBp6Peoq_d6N=D(Q#*Y|rwR`xgic9OMjc`*Z4?V>lUPBU#qqR7G|_1yLZ^%E zbcVQ)wu)=%OmPcs6L-^g(Me~C`{``4m(CGCrXAuLf&J*v^`Qih*Kzu?MiqGjH zmrfVEis%woIbG@+L_1xT^nj~|lCDYguxlzk;+jQ|y4KORTwCZd*Lk$dbt&z3T}LU` z1Jvc(MSEP&(&Mg|=n2>NsoV7$J?Z)hJ>~i>?R9-gPrJSJjJuGYb(hd{?lOAbJ(#}j z9z`#>C(=H59lhwDNiVtQ&?D}J^s>8wUU8pHue#gl`|c$Dz`con=st~pb`=0 z=DvpBeXV4LLJe@Q< zo<^_2Q24}!7$WhR;>ReZ`LqD0_#6{$*h0K3et>LPp5|!57=FlShTYGfqzSbEXy04{$bPOMNPf^7rPQd*{ZbocXcp%@U~qb2^b zI=8>9&f|3KeAe(Q&6288_*&dk#pEM@fWlWU*B$908)!W2HMD+&~)@aB#1 zcG63BiW|~X8J?>>%@LlKcRY_VJD~-N`0`}Bmza=7`)7sr^Jh@NnEn5dq#FLmWjg;q z`Le_AXKujM{OO#LciznBrTdu~>C|}&gU=6uCE)XaVG}mI&ew_3fX{!d1Ze)nbv{*# znZEdVo)x@#BPyLSx7(=@{uEF1-1cei)nxs+JFz_{-k1C~Z@lApT9J)c&N5`Fd&l>5 zX2$$7-hS|Uxb6SvV>St81kRobE+gVwPFqGoQTvG8y)Fev;Anu}f}mf)OK-!VcTh&} zVj#VTk@P;Q=r@>5AK(c3E#}dOIEH?QW%PTTKz~3p{Sl|oCrHwtv6cRU^XXGuM4#Yt z`WvpJzvD*w9Cy(_&`JM9H+_K@=}WvSfY$}#XF}i|;UW?q@(3^KLLX^8OA7-3MY zD4=Pgkd6>VbhId@g`$L3iBdXQ_~~>}MrVpXbb%0IO7Tnd#a0y3aye0b z5l2!39f3l;im9}MMxls?V5n^53TX_=X{Cg%!eKV-WDK-nSEE{`rJFEHrNv$JIjxeI zJL#{qnnuAyvzSiDQ6qGmA|}Zxun%owf}HpoSRt0mMoyCrkKMG1@5v^RBy5dr+JyKH z9WN)oUhx8*K%>|?hQgn4qv^=2OH8(h>{dQ>hHm!w^dJv1Nlk76AYF;5w^p$GB)Q59(c+u?w_;)}_sm-+;fKeHSoc$+3Q2mRz91OtvaVP(^zFJb9z;Yi)ss7M;wdDtpEl{8Dk>zO3+9BtByXTzGh+%3Hm?N*Gy!a z0sjm8nu-6pzNYqny07{4-|cJu8#?~__4YNdzWV5vLz0w9|5qht(*IIPne?BNl!^b- zlJbv#S5p279bbIClJeeXzkK+RBxUmdRY{rrzf@8t|K}uS(*Llekn7)+6mml+&(|v{ zA2eKW`XNcml>e)eGUb1%q)hqGNy_B^X-P5uT}df`PUhDuDfeIa;>BYGz`p~|^r!Za zlpvez?W>_5Poes9&|gD9!vGBfvy6W!i(CKsm944M39fiY^k17?+s0;f`0SI%`6jSz z+I8rG=G#;A&bO7VP<45vrVb9=8XW!7+=wbRV9 z65W}_Y@V!TC1+u(4ni&fo81tNU2wTmaLe`A%*qnog#x-e3y*2zaY>7l!ZuOuhCq3G zJxQ6~({oKwkN(cR6CNH5@NdWgR$g;?j9xNuHGa>*A2|3U2Y=$=6Au1t;2Qje?>_b6 zYW%l>BK(!_{>H)IIrvP&=Y0K#hJW()3pP9br4Lv0;#>)lM#4Zj{=yKKfl6}ooyR~m zc{S4bK{rrNK8*|mLsY~92Ac+kP$45J;-Hv=5~e`nD%HquV2pYw)2NSuO8iBmas$;0 z*q4#?)2P3J2?`Qm$N&xoaxh4v!3L(PcS9I5l!G7#!wg(a!!;UV;7A(952JM&W6)Tt zFi=F5I#n4ML)ALfaG|O-8mHqqoyO}l!N3Bla>*KE;DF3P2*P$oN@)zU3lKc2$D1|}%NK^q5A z&Mc-;yMZh47lTffMou-h0#_gnf~^ZjBGN3gJQ<$TV#veDY|u~IpVM2yar@kG4?Bz! zI-RZlgyU(e1dc7cwCREL8$N2jJ|4Aknd{@x^ecjX%B+rLG8UcSSh7o}S8z^jN2$%+ zvcU}-I*CwxiZrno4Mn8g$O(>Tgfyz0*L>9e6j{{$n}o9?)TX0OOy5mP-%U>6O-bKP zB^1Q1=1g&m)l*i9&A8RfCf%fIh69I*w2%CJWuZNJf+9;ROh+82j@C)8*i=ioHlGBuN*{~ zR=~tVxXHxBjA1HygJ2G(>?l#fM_4*(uc$5=JGehYFsw*^cD{eD!I|p}ga3^jv={!3BK%@H!y`3a+ z(_wHt4vC)aYW9E}=_Jx{P*8*FZ@t9^4Y^hzA!eUs7k%<#?LlZ?88+>=aNe|FBIsSttJw)Fm6e#8i&Iu($COynG(0@rRT5Z|pPGrr+ z*_Bo-$`~FY6gODOpe%rN8I&NDFhm(oTgP66*rW-Aq&YbUq9U=yFB@diqx3C}9%Hn- zIM~fWico0Nr0new-28b6LwbLinq+LlmRM6f6m4Elpz2;G#tyIvYf=~Ok(O;**{VtW zKs+{4cEfDI=0LF~5xmO8=z(HQW)nKG*oKbw1I3zR(&Kc#Nl(y5u9a^7;7^+L6gOCV z@w7>M>1mUmLCU0OIe3nqKM=a98hzWO7iixB=FvSHJja1cuPHB~%CA zx9utRPgqH(5n|&@S+Cqe9Hi&Wgva z7Wq{t9SXblMzkO=NrzN*Jxk|LSjh#kc=$9HONa3*4!Jg0af9^LJ{k85tE{+mC~ET- zw<)#>-${qY2|bJRZ~C>WA5*XTp^j|C&IX9A zt-}u1dP@PoFkFpmq#ZoL(_E>3cRg;9*Bfz@yxwd--(o-CirXaocKdpVeZAAZ-i5p6 z`+IP&yms2x`|RsC?CbsZ^#S|(P5b(wo!>)teh)*c&hv~@;`^3;eawdMlFua|UJd}E z3&1mMvkSm_$M9dpF7Odrc41avU-`HsKNs>^ro$p^?w6`x+WqYrmkO(Oa<# zW<#UKF&h?DuyeD@id`t}f`7MkI?B$?)TYiJ02NXrnf+@mI{z-x>4TPg}#fcDt4h?3jHf~ zA&|m=XE3m07Y3!!KgFkMhctF!=#uJ+T?nc;!&ICUhF9!DSyc)n_*$L9NWNC4a9D=^ z;Zi$vBy=2xkr;(4jK)liMLjC843%g^m882uQDoB%tidyQR=Rp!j_2?^TU0|0zKs{; zF@}B4m+}1t1zbZqAI&Uk?82zs7+ukgF^ydqyBif1-KcErLe*~ctLR2`V;5?6Band( z%ETR)xgB58jR}oisNIc;8N9`rTVLk3AaiSGZVNNFlQMWGXEF|E$QhQ2Fr}g!QyaT* z_-;(g+}34or)O?wWRjIucvCo{q8mrDcf6xgIJ#mNM*C;(!K@T!SL{NCe@+T>`78V9 zr7)krb2k<=dY{6;Mwh>y%||Y5X!Q7xY3RbD6c+R6_b*W~$MI1sPCMSeG=;g{Sk}nc zyRdu_Un^5+sH}9Su%a@Bl_{*M^w{_EreYVyrND0bDpFXT!f_=7_%DUV6xMJGMx4U& zt`ts4VND9hNnA{TD8;9x+rCUmgLwUNo&qIbl*}smB83xEI4*@%GUZ7bGAg|(Fb>X> zOI`AXaAKDf@?Q##PMm=A(k7K@EaJbcID@j{jJL~CBWYVJvp%_E7bf~cDKznoJB4Nz zeSeGk0CtrXcVRi#Y;jcz4OLZKWv)`!G>OJa;Uouy7ab6z_4(K3VDWWf`4Wa#r_fMc z-3yBY!meyA1^(6?ECpRyE)8lF@L98lfIGmB6Laaw0P##VF4Mn02bamXxOFr6uv$aF z6Y%uLl?Eb}jjPZf&cRj4xVVWdWK$On0dK%-uRD?K+;A!YPb`n^(SP z8yy=0T0mng{J%7Qf!Q&JoIvIML z9JBDWF{g7LHcL6r1wEe49?yl&vt;*ZN;1bJe@sYd7`1w>rXZ`YAo}5w#*OfMhCYb8&lX+u?tfi$)D!moWhohU6|I5(>TKEDV$NU z3w8dj3SQTZGa0^3!KeGTEBN$ooW=076?}&O90i}zjU5a>H-$6oFE@!l8~3Y|_$+Nh zKo98ho9Xs9%RF&eOTH)>#S-n*Ua;hgQYw~^6xPT@T!5TtxhSUDjSd$hb2~kAJ0peT zQ&>~63&V0-8*ZdZhDg3q(tlEKV(s>4vTA>V_P1kJ;m;p%-VbwLFtK*KGLZjLXiP_% zrjXRB%XD>_VaM*9MF%$*rS25Yv#;mNs!ibnu38`8@Hy2D0bjr;tJaso%7Bk~-YxG_ zU`8G7Fq+M%lWab3OCicKFfoM-v*VYFQdgs-f@5&q4B|i4!l!UjkL=v86fWY=?1&F% z>D=4(!}OPYQ4+}h!V?{`N^yhw@8ocDMG6fCjyv^0!%?)OvNx9jw(#URMcS> zreiT?;5ZzCW*mtqj=~lkjUAYYotT9iF&p<_4j#c=bYmX&VLpC{1^5N(@f$3}CpZTG z#9|UyLPc0X1F(`tU^P{tkrv~4T7?s7E!NU{geZw7Is?tZg^l7&oG;GD1!5;I6gS}_ z(TR)2!?;8|hs(uJaE*8y*NWfaI`Jv4cj>soGj;dKyo-UPia;CwS8JA)ax4i5J|(*ykRI7u}cOC+<)1p8E^D z@6qsqrvx8*X5u5yQvAu&h(CLp@E6ai_{?(}KKEQm(p3Gjp8Wjy#z1fC6MU! zG~zpW2}1nNQ-<&2CAeIZ+%MyMcnNOTcK3F?jF;eXz3iTZSMU4>2|T2tSrX zEN4EjPw&c! zhCG%yQ$NGcRkc%#eGGUXHwmTmmr_?Sg-ccYaGAQWSLk6WTzIRA9pq8*3ha2!6f0+H)rpmZyegjABc3xAlT)xxR1eZ_gFZ;VT~1I6_Y+wn z&v4B;_Mc5>qL8+s4{gUlIvXSC9E_nI7*FToa5@i1)A=}tF2qv02*=UIIGHZNdb$(| z+KJ6{IkwXkxPY$2<#ZKpqHAyuU5f|lI_#$F@f6*F7w9Hg&+3%)zH~kB!;kPL2qSP8 zeu4jjfDgaKTQ;M!&u#)x(2Xk^yKvo1wK`c>fM4NlJ_wFq;~g6f zD-p81cq=Nq;LTuA=kiLj7{H5nzhcppt_s4yrZOXc)&nH`6XV@~fcOPHyw+LwO?XQ-k2KJ>5DkPG|5Q z;*s>9_l)zEbfJgJmDn7ujO==3wVM{DHlUmUAJkP&+Fi;1w8{?6H41w!$v9BSbq|uI z)+~2pr4M1w*!Izr@v6d0-M02!mRlZ%+D?3O)No3(OD=5;m?*(`6U8w3fV5$vfbR-9 zD1vz~*PuE2FwSXdR{p~<`#>@;*ztj6KHOg*^`Ql0m(NA^wOC#YKqx_}JbnyZ4Z+6! z5o85zcKRVIs&>OwQO)i@0`A@LR0KS`orbdvtQ^g1-eqv34}2&`5&EJG{p3R3Pz(S& z`H&6+5Jb5=lgxLVH@D_NNhLSPK}jc@)(A>U`HXT9{b0falIQ>VfOI}HAd(E#URKEL z6l#y19bo_l+KG?MwEnxD){P6H4prB}gNYJ@I#lgV6YRAKCJe&hJcPK^qAH_Ogw*9F zWC(`lBgAg5Gla~72ebD>h&pCY2qKV&5O+^P7Um^nSpFKZ`=1OU%i%%8eh6Ww&)3Uj>C5GIGIYFwQ?Sd2Fm`j0;-HIzJsdpF!4n3$ z@g(0prDHEYJk1Z!Xn0n`a|WKrw^`Ny1p|fH$8TQL@RE-282B!}r{QG-eenvzU*+KY z27Z7a>eyi5D7>cQM>>A2<0m>^*YSpqpK|P<@w=aM@TP`e7#M|JI{u5VzvR?!>G+k7 zxB2(P-*BoAbo|!9hxkax$2xwevG7Y(24 zd`hA({>s7Mbo|}GXM8{+jDHyTC%(|}rGY{|8&N3FM(BJfVj;Qt=UVsgFXh1;v*3!GQPe( zd`A6rJ`hnx0fPq6KusQkVBf-DmkRTtJ2IC#+N_o(Z&>q6-b`k{T-jRW`%&ySVjZl& z*A`;8a{bjdYB-j5s;JzsvAeW*GTg>q(XuptmUl!M$Zwn1ha)YyZt%V-~WUqX=sEFYV@$J<2E7hZBT@o}D-pCHdZ( zOZywlP*^E8dmXp!d54DXxRqePU~N_+5o%>uba5-u5n)i=O01RM-SZDP^@J5|S(`}4 zS@F!tLu+^L48<}k0=2WJT#hdhrnUFkslDVet|U2DDrvByEh}QPrHW@mvZIMG%2syB zIRlWzJ8AVc!MnAJBUEImG8^w`Pg*V6-$PrMNXD%YtG}hWl>HB;In)*FU=>OB3{EJ@ zi8Gxb_%vH@{g<7j*@Wml*LYUb)!w1N{5>?jcN!5qpO0WSpY`Y zjb@L%Ce<<6HJW|#7Mwm>opw<#w@Qs}>3Ei=(+pyha7UPQBreWUsMVcZ*c0$pf;fFE zp@?(II9DYU=D1eP(zH!0)A~*y-D*X{((h`PgG?oI1hI9iNk`GqCe5T-wwv;rmT+97 z*(S|lZSxI?Xf)TPd9pmsEkTp!<6@H*;6cYlq3!F_ano5ej@|o)qwO6@_65uwdNF~5 zCe?GAlA3W!pc2WBrkeIGMlbik#S%eG@|(oK)=)KCWYS_rVnZ3V3)1Z|hW>B33}!Wqg9lUC7c zb{8Ix$KrKCla8YrjT%i_!*z1N6BBu7c%>}!Y4sG<4I8ai((ZnxJJ76_HPb7*t<6?* ze!bo71euOHD<>PM{Jmy31BCur{$8`+OeX~FR=-EnA+>3;{HfY)HtV5DpVf{^>%wE( zS-qayJ3?twb9JfLBB4@qH(Rab9OwK>Z>PnMYvBLy zIxluvaXz@IBqC9+W>?(T%?R-rt3OyV3tq5US9K6Ho?$vjNPKM)&%`js7S= z0DcTW00R-kAdJRfR3V6o7>1)U9E})-6EFfNVkDYz7+Np}35>-#QWMUN6QN-T&XtQ~ zNt}oC?UB)4fsdJF7&Tv z#ke|mz+GadFjD$bO5w1Qt+%tb#HhwDjP{R7VXUI5B89R3%Jky^eymDiENj$^O`)32 zR8Kv$WHmX-oHXN77|Zz8Yd7DGw^4g50^Tl6kZwk5QfbLPLO*aeN>P40A^TIru6Yv5rg->K;`O4-8G^ur*pCom< zQ>Om_(c;NU|BU}%e>Qre(tiZk06pq_ga7wF8`b#&`aV1v(D&Yolz&p4;hIuVULZMd zTtF``sP!M2!k`;7Y-lJpEU2}a$JkLoonL-mvZ0Z}WY?5}>~uc)`j0ybD4_2xFKF?$ zJcXl}zfBcuyu{u&;43$Gm?U8hGRZsT1)h@~Tu1LWmXvko|Cvs+(vLxY)}a*@yWmP; zRwq_FO^kXu*na7jFYBDHBWg^f5G+b|OsVHTdn z9DIto6u>+hhWS*11yqB2nudk69QAY@j-e11Q41DR8OI7iMP=t-b1ta zBU)TOG`osnx%y+BYam)(BeCAqfUs*dPH~-!4X#TOab1fx*9~ZQ-Ho{GJ|tX^A?bPs z9j>1t;d%>OTpwVo>kDji6SljHaF)9iXS;{s9CsylxF_H|_f(wko`VbA%W$E4H7;?7 zaH;zgT;@I#JKg8wa`#QR!hJWcbnn4c?q_ke`!!t49TJ_45i|j#aS1MkfsObGmtiN| z*oI%@a_oeM0$6}6uoGV5?(ItKghmyZimPxnbgIEbT!WqP(fbY-x*4b8TE;@RV0`|vQX z$4(foj}TEXcPZxK23!i$)j-=6rLNUVUU0g$1mtx|DPAFU!tuc}{i>PIfEOj^|e1h|$vV+%V~QZq@2O zSiJ|0X~%QN`%mEU!y|h#uTZMI%Q>&QabjaPPRgIt+Af@2=i?gU<|&lrkgiEOq?3aX z*}=*-)v2;{blV{v>oWWOEq2keE1E|rPO41FJ2AG-^DS6T%yo9>-KuIJh4ps10`5oP z!5erR?_v!;!9VaN*1(TH(cLJ+CuH)K3h55{tVWaHLKT3U;Kj`-!Y%OQ4otwEI2?Cl z1@6IG+>1-li7W99T!;H{J03tM9>Vi@82j)DevC))1|GxP*n@Ym3-4n$K0*qAKo>s2 zllTXo#g}-B2z$wkr^&!GREXzkJibkn@B&T8K3aemsTnU(8@@|%yiBL#6}l0x(jE8_ z-Hq?lz4!q=j~~*Dc#Xb`AIs4zyS{rLY{%dZ_=uc4tf0lX6L-ObwKNNNV>7&X9>0{Q zT{P^&n^N#}8jn-aiTmKA=~#zvuvpT)7%4}??E3B%N1*5xDS`wqy@>m<69Pr_G#-!w z<)>~bmTnNfi3gQvVViu0RPxX5w`7l#-B(FKcK@{hJ_&uLU9q2{6hFgo{2UYUCg$K5 zvO3fT^<0~1!b5o2CMIWtdTzRhvp1;Uf(O5n7@Q4iXA$w}5@xf_{BJo)3@Q5V3!Vfi*PGwUb0`~g z^D0CB4Gy)hkk)niH!K_-%vjLBb!8@NK{HOu)szI6iE7{@}H!TXSf+#`5Bvn zj$aswSm|Mm&P$uJkk7Q`$cU}(mMPshcradKaO6#uj+Yp?%2-BN+eMlE&nCoH2w_x; zkQsRi=_gI~_aY>#ew1d)9C$EyKZNi%V?x->zd#^YSYKSWW&NHKfPbu(&}-SMftPDq zS0=-ea58KqdPwYJynnyehm#S~(8P{v*Xn5IYl{I3>-esfgY~?%e~Q!?un^JF#;>CW zFZ5_QRYRO{By=PVUZY_6CN^xine7E`Vc2PWcRB}WaIlqwGj(j^>voQC7T=w%;~c*3 z&~dJT!*HI4^EF)X^;qv5E*HIWmV$fK4zGa8Fvqfmjt~n zw85Gm5BG4)k+v7W$CdfS@+yMM+T85yJgas8*%4`FEs@OL5p_4mq6rNb5(;L=qKRZY z6ppgn7_&Yawc;`fQ#&eWwNn*M85^;k4!S+V0D#`y-+qnj}Ra|lWx0Vz= zd@adx6mxAk7Qv9&G@F;XBuL3PW ztvmDyDXJlz7Fu9BP?$DMJ7o&AAKLPXw$o4j&>@|(d#@fh*X9e|8A(@rch8=EoV|O` z+5I0E|3ML)96vavqPrHni*^_SLI#Li?p%iF>!7y zHl~y`LeNd4ao$FXqeI?^f*TPSD;`qB$BKt`kK8=H-;GX;6%X|fkL=q&?Z!k#i&N9m z9ExVSyn6hg`4^fnzv+F$`o7c3edCjt4Udj0E?Kd;;qbZJOpcPiu>!u$9+(_Is0iFN zKB|PVTLmp}qIlD^87pd1(JUQZ?cUHqsfuFJeq95FI;2pCJ$SN8f&z=$Vvu6~+O~t8c zLG1dW0E*38{8(Z`JI80H_X~#CbBg@@tkm`9JRDhE%}xheYoTe#=V`9!k$&}S!+POv z$mv=(%zlaaRQ`*K6BEO-C+IvMo66}1s7q%?WTV8zu6ej&_EQ?*VW2jo1fa&DAqg)Z z85=$@H8L*SZW@Ynt$D^QQMZ+(R$QHtYMwQi!2p=gUNQgDOh5&yxE}_FKyWGsiq#R_ zSXoE%6;Zuk_^{rN(otVeGXe*S2a5Z2QyHU6gQcuGA8C;<3OGZ%Yw&CAWdUW?bJEzv z_yIj#R}(h2z5rr2PF{+<)2R*Jj4ls7MPO=XOldj=MT?+e zRVU$^9lCBv`d3Z1W}mH>VCW6a%UOZq+=dO!RZQ&O>auYqE42wt7QZ1@ah~?@v|6t< zCG*_`^u1lr(R6}9;im*sp$dz7D}*aVDnu*9>h3k0dzRn57IQCNy=PYG!c0nA)Gj2$ z8aD7L2Dzw?v0Yrig_^N7`fcG{2(%HBU9+mtTOsih$y|7rcrNlBsZ?8q*t6--9E)?2 z^dk9*cFA`v9h9Hu&dmOGmL2X5R7h7?QlUN9()c$XT$e~E($+Cn+u`1H!X(Tk?G`&( zp?!`saxHdTu5G!FA4#a$Q@;zinR*&CCB?ODhn*D9v7I{UpHwcPa>>BD)^w|sa-(Eu zbxKL4TQd`n(P}4hNjoLFqs%Oe?UbDmGul!+GKUz;(yf_M@lBo*huT?_A}J=brFK-O z$l9q~;z+BSJ@teg?yayS*J`(>&eSbpCv-}kZkgSh>e9{Slwe}zEnmESS+vrmJLyT5 z16LAd8x~uLvy~+b(5_)Jc5pUVvyz>xVUYC<(Z?QkaUEaadPcc{Llil}bsS|c53-M^ zxP|X>D?ef{&ojXsU*rUnyvh_Onc*F7<2?@Y0f+eyU*Z(Et0;G<4!*3GGO2pFQ?24I zbt(6#A@0`$=D*m)iE7DsU-z8NjN*W#qNOsKDjqSwvKAXA^yhbIgmm zf_{POP#3Y8exj^YtGSYXVysci*+M_ftXIp}N*;?o)y4q*w6IGB*+xHc=6H&$$dTX# zPqJO=rbKFYkfW8DJm4L%zk`52X^~mw2uN^MN7w$&8!Du8Av-9h&n0H-x(J|oO@5dt zkFc0Wbz7QK6&VJ}YeR5`U8WVt=$4UF6&c+g0qs{&>M5r*B3fKSM7hQl*QW33H+NL` z>Ee2ph^rRRNMKzw9nBo$mVlO5ZK~=#M#he%o72(W%p5(A_!+CzU)>bTs`qo2ZOH-k zjBSbNbZA@C`*y^R=^;Kx_Z;21$dRa;J@t^85R6~xPPf?Rz&a~!Wu(~VbS!N-#cD}! zK4Pg^Db}P|R=qEdo<$9uwOd3UJ9WDE#oN7>H>X%*(tXGg$Cw>Uohg}?*|AiYFzq9B z_vs^J&l2T%1m-r*ahC8C+L@z^7dVF(S;Yy~@-zB5!8TrEH!pJ|zhZ<}nBXOD<2CN& z1@7f_9^?(4;5R(Yn|zVqXp@O`tEZ$RT-d9Wc zvmO}Y6}Tp3=hMw@@-%ZJafZlY>B+#vt>Rh=dWdHk;{x(T`3~LsO2C0ljuw8+*-qTk zT+1FU3J)`;sl;U9RE4p-DvaG#VeGC7V|P^;yQ{+3T@}V9jxctqCa%@O_#k(4od~0{ zXwzaO8WB0;-o)qmwBr(VJxMkYZPb1ILLY77e(JfzD z`8qSqvaoo2{dhfPw2EE($*3gSPghB3&`g8W^@(A8{$I40o~=-pKy=o2Mm6X*qq--| zi>W>c=Qs|HSj33ThZNoLGE-G*it7=y^~`n68FgHA%27?hN)m0IXy9AGPq`Vdo(D6B z+QjXwQP_v{K{?rCWVDY$;AWci+9+95ZtBBwX6+=j%-X4)5N9ABW)pO1ng;VJ>Cgn@ zOH>}}NzJlM-$~81Eb)xWQcA2>Ga5hGx)`HoJja(^@uF+$>!zjm|z8FBQTHAalSQz)Fyh;*kg(&5X9a{#W!$PQmd zI{g``>o%i!Ef8YQJdDVA5=Jt5GV0pCMKvuB$dOC1+Kz6}7fuj!hY3kO+$dKAn+7+Y zw|QIN`5(P5PQPneo7;|VIDXgqTmKEnN6t^Wp(LG6(&M`q zpyqgf^iuQs!*fHq^xB>Us5##8ywtot!`x6V{pM@hH`1*2R`)btdzdw wyap*ZluKRD`jGP~uYGBH7kX|em+W8q(5x-{wr>f^Vu3c=I39wBUX!f<1NXKi4FCWD diff --git a/gui/JavaApplication1/dist/README.TXT b/gui/JavaApplication1/dist/README.TXT deleted file mode 100644 index 5fc38c7b..00000000 --- a/gui/JavaApplication1/dist/README.TXT +++ /dev/null @@ -1,31 +0,0 @@ -======================== -BUILD OUTPUT DESCRIPTION -======================== - -When you build an Java application project that has a main class, the IDE -automatically copies all of the JAR -files on the projects classpath to your projects dist/lib folder. The IDE -also adds each of the JAR files to the Class-Path element in the application -JAR files manifest file (MANIFEST.MF). - -To run the project from the command line, go to the dist folder and -type the following: - -java -jar "JavaApplication1.jar" - -To distribute this project, zip up the dist folder (including the lib folder) -and distribute the ZIP file. - -Notes: - -* If two JAR files on the project classpath have the same name, only the first -JAR file is copied to the lib folder. -* If the classpath contains a folder of classes or resources, none of the -classpath elements are copied to the dist folder. -* If a library on the projects classpath also has a Class-Path element -specified in the manifest,the content of the Class-Path element has to be on -the projects runtime path. -* To set a main class in a standard Java project, right-click the project node -in the Projects window and choose Properties. Then click Run and enter the -class name in the Main Class field. Alternatively, you can manually type the -class name in the manifest Main-Class element. diff --git a/gui/JavaApplication1/dist/lib/swing-layout-1.0.jar b/gui/JavaApplication1/dist/lib/swing-layout-1.0.jar deleted file mode 100644 index 50f159011aa045405fff8e21decd747e259749ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140545 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≦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 hcl^+~G%4xQHIRm3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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.51.1