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 zcmah|+iuf95IviuF|kY&QYZ!5G!z$dfx4D>3qnGr6_>PBq6*I&dug|F){*U`<9zz6VAh*>)lH?_88&v<CH5wxp@u?fzVn?Pz|8ikN zn?(P!t-K(Nr8?Xd$x-NAxQCX73NBliN83UNT?_Z|z`%wD2b<(?p1roqP}3kM;OfwM zH9Qs`X5#)+WuF*NgdY0{%`5{vyv(4@(w#(ysD>hFJ;)Y4XE+l7=jbH+jY zVs6RX+&gq;j;3`Fi zYgn8yyhJf&Sm>OAouQb8Quiz7ep8tm!aktRKBjbw*^(I@C|<`B5f*WS=nJ@sTNF#w QaG6?z))Xkuu5uQB0pQ99I{*Lx 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 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 v&4wV46;#$voU2Uo^oUuOJVE9>29c}Gc}#Hd zYM@lF7wSMI+L}iFh>SkEINoE_S8a5%FR-{V9JbjO@S3(m0_B!A^u6D`r085-h8&q} z*+7MD6=~;ZLC+-@fPjB&3`NaQ#W8VYVQ7|WgUcD~+I~!@6q1UmBe3*RRbBl~>NFse z)K47X(3yL#tUL`8f%%m6|0n@@X8Tb<-?S^&&$Ms5rm&tv6NEO_=IVr!YuhPe*~bc2 zeH2jiG2*N>taBHKHL=>@{O<5=`h$+@B@_wF4!bHa?z-Q!-JUh9i2IY@aH^yV0*ZNh zJ3PNH?@Z<$-J5OJ;qkNJDO4&>4qG|?M^NIqNVay_cM)0Jx`(JeAa|Q$MtLnT2KWJ= zS3k8S#!z8TU;>jF!$HPSs@*|s{XzbfK&I3`Io+?6WIFXr840+EDSTv_JU%gL4%3+7 R-Qy?x8D+L4pLx9V_YYAms~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 zcmaJ<+iuf95Ivi?H8!S%QcCFs3Ye-*CEQdxJhbF}m2y1JbSkaRO)EK4MjyTH95CydHrhTH*w~((w$l^v+W9~UT<>b5UZ0Qp zYH}j`86%6`Je65bPPFr@py!GUKp^TEqbBW47KLJDeP)$-pL819s?o8PR<(!HoT|Ye zVu`%4iJB^7lMZtZops=d)z#GgZt~J3f$%s#pQP%gc6_6%`NvKbHgssxEHAVX@=6i_UPpJO|2utYi nEc>GbSuXvc0&z5!aEmZ?EEBYb+gRc4akW>`pyfzFkw560=3+w{~sp0lei3$ltfRF+Y6!LC1BjRdfN4uN!yDGJ6 z#RDI}{{U}@@ph$3s9~kGXU4~8=FIr!;p!T|27)R)%t(x3R$>}+Wz3hcAW%xXItkVV zW?J9WP^o@D(xFPVH5-jXGWziRXopc>w9)CV!2HT+*lJtAYuXM8OtiG2lR@u-;xly- zab&V(Llw1Eteu|+J(pYn0{)RP6gMN4B*c-qky(N*E@!-F2ML{0L@J?Bj}pp0D$ZKMGIw!Q6N4?z?+%})-|MJ;O0mH7sH*}mUH6-|*SCfhaes;{PL)() zNJ$cGuJimpKQozUbg#BqhsV!?r%XV}Xbs`Z}`YkyGuM<6rmJ5G0>kxXTNH75ZV@fvTKriiyp WTEG>OE)zO{94!SOf_wLiC}nd0#I>UAgRryG#7L3N0;t z@DJ$Uq|({zK|zcMw>vZY?Kkty?4QTqcL4SgRN!GnVgjoYOIRyoy^IZkQhKeEpeeA@ zxltpf27^e4D%IBPH%`gu)6261Mt#&qr-uUTyW?SdT>-Ccdn7Q^(S|OD{VR&UsH=!0 za~&J1sHAoE%^ob%;3H1av{#Dgbw`qe$ zWYWgD0~|Z^z?D^`Q7W*Su|AIyke}@^4(UX@a{XNUJJ%G}b8N!MCfa;Gr}WzP%GmU= zg||LRDEpXn);4yyi{qLYv^c*ze475Krv@p-0!!nr3cPaNZ`=OB8dk*pDegK|QiUNU zN$|eO^ZW3^WM0s{*JT|ZKMS5hwd&-sRp5UT6`qS^tHr*H$XfjeMC~UE-!jY;uO-F+ z_waf3Gh1RBRrUmCF_$wO{LL%ou{cS*9_-z8XD zeCQA8k1Cy;1_bFENM`Qj+%t1#=J%ibUjX(IHQ-}8z!X*jEMc{VwHnq5)%;p#(H>#B zd!xom4Tp)2Rj#esZ=bQzXJ5{b1a+*9&fgQ(wkN}OdIY~?`%IYaYQrB#gDXxi)m0*q zxvq^>(o?B+=Q8NK23Y>`fuPOLnC0Tj5ZMF0Q* 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 zcmaJ*f>b_sIgWi(8cS*AA?-D8& zAN&FSsN&o-P$*pk$;_RcduGneJpR6a0I-d)4iED_USPq;92Toss$!W?$*y!7ZV~1? zKh#L6!64R=%Ct4xts^%2==^wJP@lEY*%!jn`gqtzm*BN+j|tNqZTQ=;f5FL_x`-t* z)3K3?yDHJ{Tm(IroB%>_Yz!yuSfwdTWN~bka97Hi?Au|=-#KQLa*we5r>d5^&RRTT zleJD9;Ly4IuBzrANB^Nj9|uITV&Eo2IfhLa;+N!}XjG8bRG9XY#*-`u zBM?7uzTB8ZLoDGXW(tObf}!603EKRH@?QeqQPTu!6yzkcd8&Fr0x9AZUJFebZ-lgj TS-chN$qK*2be>L@POLmnAdjkD 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 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 Hk9zp`wyJW% 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))+iuf95Qcvzc9JH6p3@fSiDTj(Lg5ZjFQ^0(stTf2EV8>@2&%%`Hn-i#}7g%skRnTLS9jarR z+%rG)<82Ecs#pIq6uFx8KapC41$UxD798L8LvOEl-1NE!su^h9sHK92>iTjY1nu~f ze_~--tE)~Y@LMYOqj0PKvghwa$DJtj!k9f5551477sL(4=JIVX-qU@}RBKnkm~e8Q zFl*>nFiVtpb1~=HYRxbNW>M!dt5P*2iJ0&l=r@tViC183H+hQ!gXb=zY(ZW|q64?M zAN9H|?}aaOnjG$YQ=Y$!2|O%g9OW{`P%NV)-ZeR{qikVOl12{C!o=kcy>1?Pt=K}g zT5DjHTUX#_I>?AFy^Kg}OLc8oKwB24ErDv7VR4`}43bTQJTZbSaUw|<|A1uEAkPW1GXg~BB@lfZR2L_|+I-Utv`Rsp%MxAMVXq%rKQ 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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 Tdi!H|so!ym*8}9@!-M|=R_jGi 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 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 diff --git a/gui/JavaApplication1/build/classes/javaapplication1/User.class b/gui/JavaApplication1/build/classes/javaapplication1/User.class deleted file mode 100644 index d8e6322db1307a3bd9179d1d19da291ae633a3ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1092 zcma)(-EPxB5QWdiuAKzan$R?~{I*3XHBhVK3Q_f@1#uC9P=6%2a}q0c73|1ykos02 z5g~EG1MpCYGi!@fi7RolvpYL;=9`({e}4V~u!qNWSa?vw5+2I&NRCY#TQ;^8jPo>B zXml=uFM&S{;(>phrBOV1rC?^4qfnvNkJ7N0CF!MtwI9V%cEGgu&KV;PlRhI>I#C?H zn|$tu=}FKX($nZ9y;P}rGG*A%{-YTM_ zEv0CyP*Q{EO}<{xD%vIQ2h=wmw#>86G~hN&tYU>X31<*o+@j^q_?HXx8EMkzdQYdQ zc+aLVyysJxGp&aHZ!!B0b=Rr4p*6icuh67|29`RmMiv5B`e!rT44OqnpEgJSj>=aC zRUpWgc0MV^T|=u#K47#6TN-x;nK!&kNM9?g~D{IRq@{u5)t^twN2*^FXgZqC0m*AZ? diff --git a/gui/JavaApplication1/certutil.py b/gui/JavaApplication1/certutil.py deleted file mode 100755 index 73a534f6..00000000 --- a/gui/JavaApplication1/certutil.py +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/python -from M2Crypto import X509 -import sys - -id_file = "" -try: - if len(sys.argv)>1: - id_file = sys.argv[len(sys.argv)-1] - else: - print 'File '+id_file+' does not exist.\n' - sys.exit(0) - pubkey = X509.load_cert(id_file).get_pubkey().as_pem(cipher=None) - print pubkey - - print "Character map:\n" - prev = '' - cur = '' - for ch in pubkey: - prev = cur - cur = ch - if cur == '\n': - 1==1 - print ch, -except: - print "Error in input file.\n" diff --git a/gui/JavaApplication1/client_keiko/acc_file b/gui/JavaApplication1/client_keiko/acc_file deleted file mode 100644 index 88158341..00000000 --- a/gui/JavaApplication1/client_keiko/acc_file +++ /dev/null @@ -1,52 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIB+zCCAWQCAQAwDQYJKoZIhvcNAQEEBQAwDzENMAsGA1UEAxMEa2VpbzAeFw0w -ODAzMjgwNDI2NDRaFw0wODA3MjEyMjEzMjRaMBoxGDAWBgNVBAMTD0dFTkkgQWNj -b3VudGluZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAlxyzi9dVIDmyUuaW -/H7YM+5LLZbQg/lGtQ0hyn/DNWp0b3FZ0tazmdK/yD3bq1sUa8txCq2gSsBzv6gA -3E1YI71wYmv8xTOOo5hZlBT3apdh2UKlu4vuUBVaSIm3whiVEd7sGkJJIJoWC3tx -R+/d9u6GYgORP/sb8q2Xk2y9CB8CAwEAAaNhMF8wXQYDVR0RAQH/BFMwUYZPaHR0 -cDovLyNocm46cGxhbmV0bGFiLmpwLmtlaW8ua2Vpa28jdXVpZDo1MzU4NDk4NDQ3 -NTM3MDMzNTI5ODU5MjQ1MTI2MjQwODAwMDc5MjANBgkqhkiG9w0BAQQFAAOBgQCW -zG0R4AkzONNWSEYccFcI0yDJIcojse8CGVhI0N8ykmph1MEcUHAdT8x1Ssl593+o -K6vmwJpak8qLjD9Fbry/byVj3d8CzrokO8LkjVz4daye0SQIFp7TbfeoK9mg/GE1 -shI6rxnUg15cfR9L9lkso6p8O/KQpWX9zUtgRIuTbw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw -MzI4MDQyNjQ0WhcNMDgwNzIxMjIxMzI0WjAaMRgwFgYDVQQDEw9HRU5JIEFjY291 -bnRpbmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOVoqTRxh/259AB1p3+G -HcUxSKpdVkKgJJGXvsCtav2Rxu9jlEq1AHt6Ff08YlqjVLPbSLTxVDDYUva+fmWl -SzWRRZdVkPrT5PipoQ38HM/RlgsMaSsB1otJd+sbVP2Opwbqcc3DZ4+NbRAV051Z -mzR4C10QIOkYBaa+D48ocjC9AgMBAAGjWzBZMFcGA1UdEQEB/wRNMEuGSWh0dHA6 -Ly8jaHJuOnBsYW5ldGxhYi5qcC5rZWlvI3V1aWQ6NjU5MTQzMzc2OTc1MDYxNDM3 -ODc5MDUwMjkzMDIyOTMxMDY2MzAwDQYJKoZIhvcNAQEEBQADgYEA0NDOfUAk1Puw -ghgHzdXzTBZLJkhj9B80D678aSGX/dSOIIJGUo/AXRNfwtVRVUfQ+PQs/LgygGJ6 -u1NUTuhVDJrJROd+bguDp5DSqR/om9uupSvGxGjcGGLpcrGES7hWuTU1VIRgdC8Z -1BK3qYToeIsiaDzIjrkZplq5brgBHoE= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODA0MDAyMloXDTA4MDcyMTIxNDcwMlowGjEYMBYGA1UEAxMPR0VO -SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgD+Z79eOf -iurH0dBuwTFgTfWafbVQXcsY6IQs3o+lV9n7uNAIy2+puX30TZPVja6AsYbLXJsK -2xMUYWuqcyErA9DCD1Ln+PLEJnskx5KQnVm5Gw/xbVOxDSOWQOXUKMxRbRCtlFtZ -Ar/iM40lSpgUTHzHBGOlH7lNeY3UZvLEZQIDAQABo1YwVDBSBgNVHREBAf8ESDBG -hkRodHRwOi8vI2hybjpwbGFuZXRsYWIuanAjdXVpZDoxOTUzNTQ1Nzg5NjI5MDI3 -NTY4NTk3NzE3OTI3NzU0NzI4MTY0MTANBgkqhkiG9w0BAQQFAAOBgQBFnESK6zc+ -GxI/XET7boZ8GSMbKwSQoGf33Sz1qwRp31nf4HvoHXl6j6DmpFtcEqeK8rTP+AiX -n6b14cfXdQ0Px+00/zDNcDyVzh01V6KMrDeVhZrpiejIqW+vPSjMMoO1/nYrY5r4 -gf8HYww8uY1RciEeLPZkcJtR0Gq2jnkT4Q== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDcyMTIxMzEyOFowGjEYMBYGA1UEAxMPR0VO -SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz -8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vG -O7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiL -m6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABo1QwUjBQBgNVHREBAf8ERjBE -hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjQyMTQ0ODk4NTIwNjUyMzY3 -MjM5NzIxNzQ2MjkyMjIyNjk3MTgwDQYJKoZIhvcNAQEEBQADgYEAUrjefqbA5c69 -KfNh/ENOp0xFnvWn3UReOo2mhYZI2LWyX41g/q/InVogh8aJ7LXHI6wjHL+PGz3n -fU+Bl2fL7GAL0i6Wr1JRbT2YHMJd97C11hWPLg+1Tt3MHwMRf0X8v7I3pRSJOIq3 -si0AZRHgngrWmhf85bKAqS210OWHWOM= ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/clientstub.py b/gui/JavaApplication1/client_keiko/clientstub.py deleted file mode 100755 index 147ecaaf..00000000 --- a/gui/JavaApplication1/client_keiko/clientstub.py +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/python - -import os, sys -from M2Crypto import SSL -sys.path.append('/home/soners/work/geni/rpc/util') -sys.path.append('/home/soners/work/geni/rpc/util/sec') -from sec import * - -SERVER_HOST = '127.0.0.1' -SERVER_PORT = 8002 -AUTH_HOST = '127.0.0.1' -AUTH_PORT = 8002 - -renew_res1 = 0 -renew_res2 = 0 - -def verify_callback(preverify_ok, ctx): - return 1 - -class GENIClient(): - def __init__(self, hrn, type, id_file, id_key_file, acc_file, cred_file): - self.hrn = hrn - self.type = type - #check if the certificate and the private key exists, terminate if not - if not os.path.exists(id_file) or not os.path.exists(id_key_file) : - print 'The certificate or the private key does not exist.\n' - os.exit(1) - #check the acc and cred files - if not os.path.exists(acc_file) or not is_valid_chain(acc_file): - open(acc_file, 'w').write('ANONYM') - if not os.path.exists(cred_file) or not is_valid_chain(cred_file): - open(cred_file, 'w').write('NO_CRED') - #initialize the security system - self.sec = Sec('client', id_file, id_key_file, acc_file, cred_file) - #ssl parameters - self.ctx = SSL.Context() - self.ctx.load_cert(self.sec.id_file,self.sec.id_key_file) - self.ctx.set_verify(SSL.verify_peer | SSL.verify_fail_if_no_peer_cert, depth=9, callback=verify_callback) - - def connect(self, host, port): - #if the acc and cred needs renewal then do call to authority - if self.type == 'user' or self.type == 'slice' or self.type == 'SA': - reg_type = 'slice' - else: - reg_type ='component' - renew_res1 = renew_cert('accounting', '.', reg_type, self.hrn, None, None, (AUTH_HOST, AUTH_PORT), self.sec) - renew_res2 = renew_cert('credential', '.', reg_type, self.hrn, None, None, (AUTH_HOST, AUTH_PORT), self.sec) - if renew_res1 == None: - print "There is no certificate in the directory "+"./\n" - os.exit(0) - #connect to server - server = SSL.Connection(self.ctx) - server.connect((host,port)) - peer = self.sec.auth_protocol(server) - if peer: - return server - else: - return None - -def main(): - try: - #read the input file - fp = open('tmp_input.txt', 'r') - user_data = fp.readline() - call_data = fp.readline() - print 'Read file.\n' - - #client related info - HRN = user_data.split(' ')[0] - TYPE = user_data.split(' ')[1].split('\n')[0] - name = get_leaf(HRN) - ID_FILE = name+'.cert' - ID_KEY_FILE = name+'.pkey' - ACC_FILE = 'acc_file' - CRED_FILE = 'cred_file' - my_client = GENIClient(HRN, TYPE, ID_FILE, ID_KEY_FILE, ACC_FILE, CRED_FILE) - print 'Constructed client.\n' - - #operation call - message = eval(call_data) - server = my_client.connect(SERVER_HOST, SERVER_PORT) - if server: - server.write(str(message)) - result = server.read() - server.close() - print 'Performed the call.\n' - else: - result = "Error in client data structures.\n" - - if renew_res2 == 1: - result = "Cred renewed. "+result - if renew_res1 == 1: - result = "Acc renewed. "+result - #write result to output file - open('tmp_output.txt','w').write(result) - print 'Written to file.\n' - except: - #write result to output file - open('tmp_output.txt','w').write("An error occurred in client stub.\n") - print 'Exception occurred.\n' - -if __name__=="__main__": - print 'Client started.\n' - main() diff --git a/gui/JavaApplication1/client_keiko/cred_file b/gui/JavaApplication1/client_keiko/cred_file deleted file mode 100644 index 98c0d2d7..00000000 --- a/gui/JavaApplication1/client_keiko/cred_file +++ /dev/null @@ -1,59 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICazCCAdQCAQAwDQYJKoZIhvcNAQEEBQAwDzENMAsGA1UEAxMEa2VpbzAeFw0w -ODAzMjgxNDI1MTZaFw0wODA1MDkwNjI1MTZaMB8xHTAbBgNVBAMTFFJlZ2lzdHJ5 -IGNyZWRlbnRpYWxzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCXHLOL11Ug -ObJS5pb8ftgz7kstltCD+Ua1DSHKf8M1anRvcVnS1rOZ0r/IPdurWxRry3EKraBK -wHO/qADcTVgjvXBia/zFM46jmFmUFPdql2HZQqW7i+5QFVpIibfCGJUR3uwaQkkg -mhYLe3FH79327oZiA5E/+xvyrZeTbL0IHwIDAQABo4HLMIHIMIHFBgNVHREBAf8E -gbowgbeGgbRodHRwOi8vI2NyZWRlbnRpYWxfc2V0OigwLTApKDEtMCkoMi0wKSgz -LTApKDQtMCkoNS0wKSg2LTApKDctMCkoOC0wKSg5LTApKDAtMSkoMS0xKSgyLTEp -KDMtMSkoNC0xKSg1LTEpKDYtMSkoNy0xKSg4LTEpKDktMSkjMDpyZWc6c2xjOnBs -YW5ldGxhYi5qcC5rZWlvIzE6cmVnOmNvbXA6cGxhbmV0bGFiLmpwLmtlaW8wDQYJ -KoZIhvcNAQEEBQADgYEAy72/MrNh6ZcAFgTl908nPl0KZGViSIQZG/Ks+QxR2MaD -SV0fPHrzv+RprLJw0frTjwIpPFDhDSvjbZB3+HWNhgKd88mIzwUSMOZjGmLGijRC -VNE5Pf1H2O76yXCc98Tm8ymkeMxps1gH1hfem6N4aToA4tTNma3poQnn3SaHpig= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICTzCCAbgCAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw -MzI4MDQyNjQ2WhcNMDgwNTA4MjAyNjQ2WjAfMR0wGwYDVQQDExRSZWdpc3RyeSBj -cmVkZW50aWFsczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5WipNHGH/bn0 -AHWnf4YdxTFIql1WQqAkkZe+wK1q/ZHG72OUSrUAe3oV/TxiWqNUs9tItPFUMNhS -9r5+ZaVLNZFFl1WQ+tPk+KmhDfwcz9GWCwxpKwHWi0l36xtU/Y6nBupxzcNnj41t -EBXTnVmbNHgLXRAg6RgFpr4PjyhyML0CAwEAAaOBsTCBrjCBqwYDVR0RAQH/BIGg -MIGdhoGaaHR0cDovLyNjcmVkZW50aWFsX3NldDooMi0wKSg0LTApKDYtMCkoNy0w -KSg4LTApKDktMCkoMC0xKSgxLTEpKDItMSkoMy0xKSg0LTEpKDUtMSkoNi0xKSg3 -LTEpKDgtMSkoOS0xKSMwOnJlZzpzbGM6cGxhbmV0bGFiLmpwIzE6cmVnOnNsYzpw -bGFuZXRsYWIuanAua2VpbzANBgkqhkiG9w0BAQQFAAOBgQCQ9r5c/zYcsPuBV4iY -s1KD1E6B1xTu+TtvQw8GMK4JwTLaiBCdX6tiUkOHw40mej3huXD0KSDiBTt34Bg9 -9/E5XwqE0L604WATE4zVzz3s/lP1MroMzjoSphFzXdyHHQRYAOMLWr8e6JLH8qvA -CKI2ZD423aSCNB3FVxqlMyChwg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICTjCCAbcCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODA0MjY0NVoXDTA4MDUwODIwMjY0NVowHzEdMBsGA1UEAxMUUmVn -aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOAP -5nv145+K6sfR0G7BMWBN9Zp9tVBdyxjohCzej6VX2fu40AjLb6m5ffRNk9WNroCx -hstcmwrbExRha6pzISsD0MIPUuf48sQmeyTHkpCdWbkbD/FtU7ENI5ZA5dQozFFt -EK2UW1kCv+IzjSVKmBRMfMcEY6UfuU15jdRm8sRlAgMBAAGjgakwgaYwgaMGA1Ud -EQEB/wSBmDCBlYaBkmh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDItMCkoNC0wKSg2 -LTApKDctMCkoOC0wKSg5LTApKDAtMSkoMS0xKSgyLTEpKDMtMSkoNC0xKSg1LTEp -KDYtMSkoNy0xKSg4LTEpKDktMSkjMDpyZWc6c2xjOnBsYW5ldGxhYiMxOnJlZzpz -bGM6cGxhbmV0bGFiLmpwMA0GCSqGSIb3DQEBBAUAA4GBAGR3d1rIelq++rJjlerk -+Xlbg+siLcDfNrOE4BgPWqZz9G6QDg+oxpmyP7SkqtO/u/D0PLyndcdKqpXsEisw -28KZtudxBTS5cRpTBCZnoUAGBKLJ3pwRqozwKxxCG8rmsUeGl0xdAjLVw9tzLppO -7LyVz7tZQkIyNF23gv+z9IQU ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICEzCCAXwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDUwODE5NDQ0OFowHzEdMBsGA1UEAxMUUmVn -aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALU2 -JnMnIjPy5lUdqFlCpyaGzFE5jxiONEX9YajD23yG9qKZJw7TIfdVQQ+iVuVIzUm6 -R7oze8Y7tpPtskJqlvuS6geWtLfmTQr+9w44xdLzSClPyiW0pt8muW3ySa0RebsX -h+HxSIubqf8YRj048W69S1CogWobwN0F3dISGLpRAgMBAAGjbzBtMGsGA1UdEQEB -/wRhMF+GXWh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDAtMCkoMS0wKSgyLTApKDMt -MCkoNC0wKSg1LTApKDYtMCkoNy0wKSg4LTApKDktMCkjMDpyZWc6c2xjOnBsYW5l -dGxhYjANBgkqhkiG9w0BAQQFAAOBgQBCYwXvYXbMiAi8hiZNFboYE812F0CT1T7U -PRQemorQcU/7SNZh8wOqGSsHSdA9XW5sC01skkxdOrkxTjGA+Nb1BL+vIFLe7wdp -26lQIA3239E9TUSXQlU9TqdALAC1OsmKgN+kbVfqIQ8U2eqAcUawm4h9/8TEV9xG -teVEYDdXpA== ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/keiko.cert b/gui/JavaApplication1/client_keiko/keiko.cert deleted file mode 100644 index 82fbfc7a..00000000 --- a/gui/JavaApplication1/client_keiko/keiko.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVrZWlrbzAeFw0w -ODAzMjgwNDE5MzdaFw0xMzAzMjcwNDE5MzdaMBAxDjAMBgNVBAMTBWtlaWtvMIGf -MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCXHLOL11UgObJS5pb8ftgz7kstltCD -+Ua1DSHKf8M1anRvcVnS1rOZ0r/IPdurWxRry3EKraBKwHO/qADcTVgjvXBia/zF -M46jmFmUFPdql2HZQqW7i+5QFVpIibfCGJUR3uwaQkkgmhYLe3FH79327oZiA5E/ -+xvyrZeTbL0IHwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAIGDtblGdZBm9C1irOwj -vcKM39SDb1MCb5zdBeuidVMPRazIHwMV3QYrrkQVnN9xffjGGyS77pKARYvDdFWm -Lm5LYP7fbRNndR7Y5VZT1uWJtIJn7LEA6fLoqMPftXwDpKYiLP6c/p11FgRYVlAC -WvE0MGOUIOsYSgBmvdcfEPzg ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/keiko.pkey b/gui/JavaApplication1/client_keiko/keiko.pkey deleted file mode 100644 index 03984b8b..00000000 --- a/gui/JavaApplication1/client_keiko/keiko.pkey +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIICXgIBAAKBgQCXHLOL11UgObJS5pb8ftgz7kstltCD+Ua1DSHKf8M1anRvcVnS -1rOZ0r/IPdurWxRry3EKraBKwHO/qADcTVgjvXBia/zFM46jmFmUFPdql2HZQqW7 -i+5QFVpIibfCGJUR3uwaQkkgmhYLe3FH79327oZiA5E/+xvyrZeTbL0IHwIDAQAB -AoGAPVG2Qg7VSkhfZmiP6FIIpboS46MJZiRnXty/U47Yxfo22Wojyvy40LjGfhkr -5LMG7F8Xtf+SxgKmdaVVBBCWrPp4OqkU/mal7mFEkc69rtJUigmsUsFv1SldgBq2 -qUYE337+dgP8+crziOEIA846Yrz69EnHSMKcEPAclxXCAPECQQDE35Em7pFKKRXx -d35pjh6UX0nWUEvxzGnNFazRMaal8R9wz4NKsbo/K46MbG+udbF0Qd6rcG4mCe+5 -1sFCsLx7AkEAxH7TJNSHAj+YyZr+g/fJ4l0tlIKZHNnZ30cnm20PVNr+lGe92lFw -QGlr0BJVKcNxFy2cE5zgmZdvegFTDl8rrQJBAIcQHcPIzZJEJ5K1+Nqvrpj52m0W -P1POehNBuIL3/i1AA+Lf6mG3FmA6IJyD1AarJaftfLa+9kJQdM9Y3tNC7rsCQQCk -FmSsNO4paoJkmRJBkgL9DWKqygSimynd0sW4fXJ4IgjGVXutfKSIpYBq2WRU4+jk -uinEFxVYLaXh9IkvTzphAkEAqyutr5X7XLe6E8km3MVgXgPjH3bn9Au4t/JWH7gV -Tc352qD5VFoByxpv57ZIhWF4dlqikFZYCIbuSgbKfUEsTg== ------END RSA PRIVATE KEY----- diff --git a/gui/JavaApplication1/client_keiko/trusted_certs/geni_mng.cert b/gui/JavaApplication1/client_keiko/trusted_certs/geni_mng.cert deleted file mode 100644 index 9f9b5c30..00000000 --- a/gui/JavaApplication1/client_keiko/trusted_certs/geni_mng.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4 -MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN -BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4 -cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c -LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS -4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc -6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x -k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q -rBwyf1+Su4n1IPiqGi9yyA== ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/trusted_certs/geni_slc.cert b/gui/JavaApplication1/client_keiko/trusted_certs/geni_slc.cert deleted file mode 100644 index 9f9b5c30..00000000 --- a/gui/JavaApplication1/client_keiko/trusted_certs/geni_slc.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4 -MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN -BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4 -cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c -LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS -4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc -6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x -k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q -rBwyf1+Su4n1IPiqGi9yyA== ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_mng.cert b/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_mng.cert deleted file mode 100644 index c1b42112..00000000 --- a/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_mng.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODAzNDUwNVoXDTEzMDMyNzAzNDUwNVowFDESMBAGA1UEAxMJcGxh -bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1li/h52QbJtucIQUE -YZMZkA8tWcS9f0VkAPNS5/OeRhaQ/iLERQI2EV/rmPCuARQhlZLhm5Y5vxvHG/ba -6Rb9vYKEMDujZwdc3QjhAbYS72V28rbdIeHysJ7JeGz9J1ODLSzbcCt5amLZcMPm -u/G64ieWI8QMUxYgCE1ut3bI1QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJH5KqIU -2lrA9calI3oklbWpduiZspbwCUkhr8PNVDnkXSI1K+egDqFTaANVp1DxXU8qaDS6 -X5+s9Qf9FQ5+9mfSaocma6YW4Qfb3Zm/mYmpt+nknTlnVuEaTENyBIPfr0pDqzld -GGcYPul25KknFmdPOrqAUzma9n568u2KYlfz ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_slc.cert b/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_slc.cert deleted file mode 100644 index 9f5b851d..00000000 --- a/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_slc.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODAzNDQ0OFoXDTEzMDMyNzAzNDQ0OFowFDESMBAGA1UEAxMJcGxh -bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz8uZVHahZ -QqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vGO7aT7bJC -apb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiLm6n/GEY9 -OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABRIUVzW -JbwQKnqM3rVHJoSgtYWpgDvJosLCrLZhsXrukOsC8Gs8V6vPTPO7kofdUbHQKRnL -xp1nI5hlWIlq/XOnh+NEPZaB2SAKwfl3FZwUqjaEVd/VYOfsRryZtiUz4sL3CtXN -C8i/I4HwCnrl/pmzbprqpGq+RJTa5yLmBw6r ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/acc_file b/gui/JavaApplication1/client_osaka/acc_file deleted file mode 100644 index a7c9fedb..00000000 --- a/gui/JavaApplication1/client_osaka/acc_file +++ /dev/null @@ -1,39 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw -MzI4MjExMDUxWhcNMDgwNzIyMTQ1NzMxWjAaMRgwFgYDVQQDEw9HRU5JIEFjY291 -bnRpbmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANAGdic1KHHvvlTE7id6 -fmQU4HZ5iZwp9RqFiflTlvc/fJelxS8cV51rE878eZymgbVYwLIcO/Tyvfkg+axM -nBzzWgzSX4wk/zuuNPV0ZwzG0Vf9EN/hzqzu1KWRMxT0/vz6Kri33eTgbyURWp4D -OGYRqR7E573fDd8SWGfWW7AXAgMBAAGjXTBbMFkGA1UdEQEB/wRPME2GS2h0dHA6 -Ly8jaHJuOnBsYW5ldGxhYi5qcC5vc2FrYSN1dWlkOjE1MTI4NTYzNzgzNjk1MTc5 -NTEyOTg5MzAyMTMzNDQ0OTQyMjMyOTANBgkqhkiG9w0BAQQFAAOBgQAfdUPl4pLy -ILFiIvr7a4cH+hfgTvJOwr2U07RZfjiu5qxugOwPJJT0S/RLRRBdaL1VOM/f3ZLl -tRM7JBtaHw5iNQlVAJIWV9rhEKuDywc7Yw6sfsnmNCLie7M2QX9WpQ3G/l21y33G -q6wKxV8TVAj04juCHdJ16FQnx/612VtDOA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODA0MDAyMloXDTA4MDcyMTIxNDcwMlowGjEYMBYGA1UEAxMPR0VO -SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgD+Z79eOf -iurH0dBuwTFgTfWafbVQXcsY6IQs3o+lV9n7uNAIy2+puX30TZPVja6AsYbLXJsK -2xMUYWuqcyErA9DCD1Ln+PLEJnskx5KQnVm5Gw/xbVOxDSOWQOXUKMxRbRCtlFtZ -Ar/iM40lSpgUTHzHBGOlH7lNeY3UZvLEZQIDAQABo1YwVDBSBgNVHREBAf8ESDBG -hkRodHRwOi8vI2hybjpwbGFuZXRsYWIuanAjdXVpZDoxOTUzNTQ1Nzg5NjI5MDI3 -NTY4NTk3NzE3OTI3NzU0NzI4MTY0MTANBgkqhkiG9w0BAQQFAAOBgQBFnESK6zc+ -GxI/XET7boZ8GSMbKwSQoGf33Sz1qwRp31nf4HvoHXl6j6DmpFtcEqeK8rTP+AiX -n6b14cfXdQ0Px+00/zDNcDyVzh01V6KMrDeVhZrpiejIqW+vPSjMMoO1/nYrY5r4 -gf8HYww8uY1RciEeLPZkcJtR0Gq2jnkT4Q== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDcyMTIxMzEyOFowGjEYMBYGA1UEAxMPR0VO -SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz -8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vG -O7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiL -m6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABo1QwUjBQBgNVHREBAf8ERjBE -hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjQyMTQ0ODk4NTIwNjUyMzY3 -MjM5NzIxNzQ2MjkyMjIyNjk3MTgwDQYJKoZIhvcNAQEEBQADgYEAUrjefqbA5c69 -KfNh/ENOp0xFnvWn3UReOo2mhYZI2LWyX41g/q/InVogh8aJ7LXHI6wjHL+PGz3n -fU+Bl2fL7GAL0i6Wr1JRbT2YHMJd97C11hWPLg+1Tt3MHwMRf0X8v7I3pRSJOIq3 -si0AZRHgngrWmhf85bKAqS210OWHWOM= ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/clientstub.py b/gui/JavaApplication1/client_osaka/clientstub.py deleted file mode 100755 index 1a263317..00000000 --- a/gui/JavaApplication1/client_osaka/clientstub.py +++ /dev/null @@ -1,154 +0,0 @@ -#!/usr/bin/python - -import os, sys -from M2Crypto import SSL -sys.path.append('/home/soners/work/geni/rpc/util') -sys.path.append('/home/soners/work/geni/rpc/util/sec') -from sec import * - -SERVER_HOST = '127.0.0.1' -SERVER_PORT = 8002 -AUTH_HOST = '127.0.0.1' -AUTH_PORT = 8002 -MAX_RESULT = 3000 - -renew_res1 = 0 -renew_res2 = 0 - -def verify_callback(preverify_ok, ctx): - return 1 - -class GENIClient(): - def __init__(self, hrn, type, id_file, id_key_file, acc_file, cred_file): - self.hrn = hrn - self.type = type - #check if the certificate and the private key exists, terminate if not - if not os.path.exists(id_file) or not os.path.exists(id_key_file) : - print 'The certificate or the private key does not exist.\n' - os.exit(1) - #check the acc and cred files - if not os.path.exists(acc_file) or not is_valid_chain(acc_file): - open(acc_file, 'w').write('ANONYM') - if not os.path.exists(cred_file) or not is_valid_chain(cred_file): - open(cred_file, 'w').write('NO_CRED') - #initialize the security system - self.sec = Sec('client', id_file, id_key_file, acc_file, cred_file) - #ssl parameters - self.ctx = SSL.Context() - self.ctx.load_cert(self.sec.id_file,self.sec.id_key_file) - self.ctx.set_verify(SSL.verify_peer | SSL.verify_fail_if_no_peer_cert, depth=9, callback=verify_callback) - - def connect(self, host, port): - #if the acc and cred needs renewal then do call to authority - if self.type == 'user' or self.type == 'slice' or self.type == 'SA': - reg_type = 'slice' - else: - reg_type ='component' - renew_res1 = renew_cert('accounting', '.', reg_type, self.hrn, None, None, (AUTH_HOST, AUTH_PORT), self.sec) - renew_res2 = renew_cert('credential', '.', reg_type, self.hrn, None, None, (AUTH_HOST, AUTH_PORT), self.sec) - if renew_res1 == None: - print "There is no certificate in the directory "+"./\n" - os.exit(0) - #connect to server - server = SSL.Connection(self.ctx) - server.connect((host,port)) - peer = self.sec.auth_protocol(server) - if peer: - return server - else: - return None - -def toFileFormat(res_str): - out_str = "" - try: - res_dict = eval(res_str) - if res_dict['geni'].has_key('pubkey'): # in public key, replace '\n' with ' ' - pubkey = res_dict['geni']['pubkey'] - pubkey = pubkey.split('-----BEGIN RSA PRIVATE KEY-----')[1].split('-----END RSA PRIVATE KEY-----')[0].replace('\n',' ') - pubkey = '-----BEGIN RSA PRIVATE KEY-----'+pubkey+'-----END RSA PRIVATE KEY-----' - res_dict['geni']['pubkey'] = pubkey - - if res_dict.has_key('message'): - out_str = res_dict['message']+'\n' - else: - out_str = "{'geni':{\n" - for key in res_dict['geni']: - val = '' - if res_dict['geni'][key] == None: - val = '' - elif isinstance(res_dict['geni'][key], str): - val = res_dict['geni'][key] - else: - val = str(res_dict['geni'][key]) - out_str = out_str+"'"+key+"':"+val+"\n" - out_str = out_str + "}\n" - out_str = out_str + "'pl':{\n" - for key in res_dict['pl']: - val = '' - if res_dict['pl'][key] == None: - val = '' - if isinstance(res_dict['pl'][key], str): - val = res_dict['pl'][key] - else: - val = str(res_dict['pl'][key]) - out_str = out_str+"'"+key+"':"+val+"\n" - out_str = out_str + "}}" - except: - out_str = res_str - return out_str - -def evaluate(call_data): - call_data = eval(call_data) - #adjust the key format to obey server's storage format - if call_data['g_params'].has_key('pubkey'): #replace the ' ' with '\n' - pubkey = call_data['g_params']['pubkey'] - pubkey = pubkey.split('-----BEGIN RSA PRIVATE KEY-----')[1].split('-----END RSA PRIVATE KEY-----')[0].replace(' ','\n') - pubkey = '-----BEGIN RSA PRIVATE KEY-----'+pubkey+'-----END RSA PRIVATE KEY-----' - call_data['g_params']['pubkey'] = pubkey - return call_data - -def main(): - try: - #read the input file - fp = open('tmp_input.txt', 'r') - user_data = fp.readline() - call_data = fp.read() - print 'Read file.\n' - - #client related info - HRN = user_data.split(' ')[0] - TYPE = user_data.split(' ')[1].split('\n')[0] - name = get_leaf(HRN) - ID_FILE = name+'.cert' - ID_KEY_FILE = name+'.pkey' - ACC_FILE = 'acc_file' - CRED_FILE = 'cred_file' - my_client = GENIClient(HRN, TYPE, ID_FILE, ID_KEY_FILE, ACC_FILE, CRED_FILE) - print 'Constructed client.\n' - - #operation call - message = evaluate(call_data) - server = my_client.connect(SERVER_HOST, SERVER_PORT) - if server: - server.write(str(message)) - result = toFileFormat(server.read(MAX_RESULT)) - server.close() - print 'Performed the call.\n' - else: - result = "Error in client data structures.\n" - - if renew_res2 == 1: - result = "Cred renewed.\n"+result - if renew_res1 == 1: - result = "Acc renewed.\n"+result - #write result to output file - open('tmp_output.txt','w').write(result) - print 'Written to file.\n' - except: - #write result to output file - open('tmp_output.txt','w').write("An error occurred in client stub.\n") - print 'Exception occurred.\n' - -if __name__=="__main__": - print 'Client started.\n' - main() diff --git a/gui/JavaApplication1/client_osaka/cred_file b/gui/JavaApplication1/client_osaka/cred_file deleted file mode 100644 index 2dc4a361..00000000 --- a/gui/JavaApplication1/client_osaka/cred_file +++ /dev/null @@ -1,44 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICUDCCAbkCAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw -MzI4MjExMDUxWhcNMDgwNTA5MTMxMDUxWjAfMR0wGwYDVQQDExRSZWdpc3RyeSBj -cmVkZW50aWFsczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0AZ2JzUoce++ -VMTuJ3p+ZBTgdnmJnCn1GoWJ+VOW9z98l6XFLxxXnWsTzvx5nKaBtVjAshw79PK9 -+SD5rEycHPNaDNJfjCT/O6409XRnDMbRV/0Q3+HOrO7UpZEzFPT+/PoquLfd5OBv -JRFangM4ZhGpHsTnvd8N3xJYZ9ZbsBcCAwEAAaOBsjCBrzCBrAYDVR0RAQH/BIGh -MIGehoGbaHR0cDovLyNjcmVkZW50aWFsX3NldDooMi0wKSg0LTApKDYtMCkoNy0w -KSg4LTApKDktMCkoMC0xKSgxLTEpKDItMSkoMy0xKSg0LTEpKDUtMSkoNi0xKSg3 -LTEpKDgtMSkoOS0xKSMwOnJlZzpzbGM6cGxhbmV0bGFiLmpwIzE6cmVnOnNsYzpw -bGFuZXRsYWIuanAub3Nha2EwDQYJKoZIhvcNAQEEBQADgYEAOjGYfQry2jLhVTCx -7aygF13tq8+h7l8AzEOjTldzFF9h+OQscT74FP6e7hneDgI3EqBwWrW6E8yplJkS -flpKKuShlfSDoY3iLalSqZLhQHGX6fZ3oNlKGHJmJtL/QPhzs4tMwm5Jf0IXNadV -KVTpeZ1/xmfEJ8+E9HxYEvrKeEI= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICTjCCAbcCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODA0MjY0NVoXDTA4MDUwODIwMjY0NVowHzEdMBsGA1UEAxMUUmVn -aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOAP -5nv145+K6sfR0G7BMWBN9Zp9tVBdyxjohCzej6VX2fu40AjLb6m5ffRNk9WNroCx -hstcmwrbExRha6pzISsD0MIPUuf48sQmeyTHkpCdWbkbD/FtU7ENI5ZA5dQozFFt -EK2UW1kCv+IzjSVKmBRMfMcEY6UfuU15jdRm8sRlAgMBAAGjgakwgaYwgaMGA1Ud -EQEB/wSBmDCBlYaBkmh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDItMCkoNC0wKSg2 -LTApKDctMCkoOC0wKSg5LTApKDAtMSkoMS0xKSgyLTEpKDMtMSkoNC0xKSg1LTEp -KDYtMSkoNy0xKSg4LTEpKDktMSkjMDpyZWc6c2xjOnBsYW5ldGxhYiMxOnJlZzpz -bGM6cGxhbmV0bGFiLmpwMA0GCSqGSIb3DQEBBAUAA4GBAGR3d1rIelq++rJjlerk -+Xlbg+siLcDfNrOE4BgPWqZz9G6QDg+oxpmyP7SkqtO/u/D0PLyndcdKqpXsEisw -28KZtudxBTS5cRpTBCZnoUAGBKLJ3pwRqozwKxxCG8rmsUeGl0xdAjLVw9tzLppO -7LyVz7tZQkIyNF23gv+z9IQU ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICEzCCAXwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDUwODE5NDQ0OFowHzEdMBsGA1UEAxMUUmVn -aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALU2 -JnMnIjPy5lUdqFlCpyaGzFE5jxiONEX9YajD23yG9qKZJw7TIfdVQQ+iVuVIzUm6 -R7oze8Y7tpPtskJqlvuS6geWtLfmTQr+9w44xdLzSClPyiW0pt8muW3ySa0RebsX -h+HxSIubqf8YRj048W69S1CogWobwN0F3dISGLpRAgMBAAGjbzBtMGsGA1UdEQEB -/wRhMF+GXWh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDAtMCkoMS0wKSgyLTApKDMt -MCkoNC0wKSg1LTApKDYtMCkoNy0wKSg4LTApKDktMCkjMDpyZWc6c2xjOnBsYW5l -dGxhYjANBgkqhkiG9w0BAQQFAAOBgQBCYwXvYXbMiAi8hiZNFboYE812F0CT1T7U -PRQemorQcU/7SNZh8wOqGSsHSdA9XW5sC01skkxdOrkxTjGA+Nb1BL+vIFLe7wdp -26lQIA3239E9TUSXQlU9TqdALAC1OsmKgN+kbVfqIQ8U2eqAcUawm4h9/8TEV9xG -teVEYDdXpA== ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/osaka.cert b/gui/JavaApplication1/client_osaka/osaka.cert deleted file mode 100644 index ce4da44a..00000000 --- a/gui/JavaApplication1/client_osaka/osaka.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVvc2FrYTAeFw0w -ODAzMjgwMzQ0NTBaFw0xMzAzMjcwMzQ0NTBaMBAxDjAMBgNVBAMTBW9zYWthMIGf -MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQBnYnNShx775UxO4nen5kFOB2eYmc -KfUahYn5U5b3P3yXpcUvHFedaxPO/HmcpoG1WMCyHDv08r35IPmsTJwc81oM0l+M -JP87rjT1dGcMxtFX/RDf4c6s7tSlkTMU9P78+iq4t93k4G8lEVqeAzhmEakexOe9 -3w3fElhn1luwFwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABOBGbnYsv2xjOXidUtp -e1woERQGJRe7HJrbo9NyI5ozjSLt9yphY11ZmNex2IhKIrmbRSPfDnKNYaMHFOpz -qbJMCmC4uUIUd9HY8bg4mQ4wjwdWkLA9uWlmpAFRoIY3eNEvv5tpUnD3sV1dEDsQ -uQQcjxVTSgQQgjpE1KJ/KQ6q ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/osaka.pkey b/gui/JavaApplication1/client_osaka/osaka.pkey deleted file mode 100644 index 25155f25..00000000 --- a/gui/JavaApplication1/client_osaka/osaka.pkey +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIICXAIBAAKBgQDQBnYnNShx775UxO4nen5kFOB2eYmcKfUahYn5U5b3P3yXpcUv -HFedaxPO/HmcpoG1WMCyHDv08r35IPmsTJwc81oM0l+MJP87rjT1dGcMxtFX/RDf -4c6s7tSlkTMU9P78+iq4t93k4G8lEVqeAzhmEakexOe93w3fElhn1luwFwIDAQAB -AoGAflTuPDFUNp1aATD3UJJbX3wuNMTqhSQV7d1bRUc2T0EG8TGC5nFX5Am7JeC+ -GhwkeXVE0OXEo6UnKbyU48ZCp1lL70bjiPvhS/wceTbjuxJq2wS2hjIwf9NKyZ1j -ppO0gpvxOVNbIgyS3Yj2T98sYkJCVBnBN2huUsfzmHSeKIECQQD3SOiKRGfla+Du -dfBY7tKNxxXYTZwV2eYKhMZFW6rMcGboqoAXFMVUTEdHB2Ozk2wHsKcDb3WFpqQI -0QFqdNefAkEA11tW5cDIjiLeppSi57knZr9aYfysJcHslez9wgFGgK72s8XB8CfS -QqzPTmQm4F3NVM+5Y5PbMp55ntEiwPg0iQJAMnGsBjCoJRPZoatraSjmyMc4/JPw -aEC3/aNSMundMLEpPQMy+AJjsquQyruGKibDndn6Z+f/yFDTG31PVaEaLwJAV8AQ -GG4FSmVK8/V8q472TxeJbIPYYUozbKO0gmiioaypOXdLHuAa/LANiJOmg6W1FOnP -UJPerTGFvQDaeGaqgQJBAItAXexGSQEA1AKVzP31zorlb6zBh6dTxxrMhfeROwZx -drr47bhcwuiJ011xXzea9iy1dWJOtC8JrQ/YVw14Sjc= ------END RSA PRIVATE KEY----- diff --git a/gui/JavaApplication1/client_osaka/trusted_certs/geni_mng.cert b/gui/JavaApplication1/client_osaka/trusted_certs/geni_mng.cert deleted file mode 100644 index 9f9b5c30..00000000 --- a/gui/JavaApplication1/client_osaka/trusted_certs/geni_mng.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4 -MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN -BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4 -cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c -LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS -4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc -6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x -k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q -rBwyf1+Su4n1IPiqGi9yyA== ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/trusted_certs/geni_slc.cert b/gui/JavaApplication1/client_osaka/trusted_certs/geni_slc.cert deleted file mode 100644 index 9f9b5c30..00000000 --- a/gui/JavaApplication1/client_osaka/trusted_certs/geni_slc.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4 -MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN -BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4 -cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c -LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS -4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc -6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x -k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q -rBwyf1+Su4n1IPiqGi9yyA== ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_mng.cert b/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_mng.cert deleted file mode 100644 index c1b42112..00000000 --- a/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_mng.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODAzNDUwNVoXDTEzMDMyNzAzNDUwNVowFDESMBAGA1UEAxMJcGxh -bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1li/h52QbJtucIQUE -YZMZkA8tWcS9f0VkAPNS5/OeRhaQ/iLERQI2EV/rmPCuARQhlZLhm5Y5vxvHG/ba -6Rb9vYKEMDujZwdc3QjhAbYS72V28rbdIeHysJ7JeGz9J1ODLSzbcCt5amLZcMPm -u/G64ieWI8QMUxYgCE1ut3bI1QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJH5KqIU -2lrA9calI3oklbWpduiZspbwCUkhr8PNVDnkXSI1K+egDqFTaANVp1DxXU8qaDS6 -X5+s9Qf9FQ5+9mfSaocma6YW4Qfb3Zm/mYmpt+nknTlnVuEaTENyBIPfr0pDqzld -GGcYPul25KknFmdPOrqAUzma9n568u2KYlfz ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_slc.cert b/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_slc.cert deleted file mode 100644 index 9f5b851d..00000000 --- a/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_slc.cert +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi -MB4XDTA4MDMyODAzNDQ0OFoXDTEzMDMyNzAzNDQ0OFowFDESMBAGA1UEAxMJcGxh -bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz8uZVHahZ -QqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vGO7aT7bJC -apb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiLm6n/GEY9 -OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABRIUVzW -JbwQKnqM3rVHJoSgtYWpgDvJosLCrLZhsXrukOsC8Gs8V6vPTPO7kofdUbHQKRnL -xp1nI5hlWIlq/XOnh+NEPZaB2SAKwfl3FZwUqjaEVd/VYOfsRryZtiUz4sL3CtXN -C8i/I4HwCnrl/pmzbprqpGq+RJTa5yLmBw6r ------END CERTIFICATE----- diff --git a/gui/JavaApplication1/dist/JavaApplication1.jar b/gui/JavaApplication1/dist/JavaApplication1.jar deleted file mode 100644 index f346822defdf4f8c72bf6737e2683e6b654662a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52319 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�bNFH3#k|{h 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 diff --git a/gui/JavaApplication1/manifest.mf b/gui/JavaApplication1/manifest.mf deleted file mode 100644 index 328e8e5b..00000000 --- a/gui/JavaApplication1/manifest.mf +++ /dev/null @@ -1,3 +0,0 @@ -Manifest-Version: 1.0 -X-COMMENT: Main-Class will be added automatically by build - diff --git a/gui/JavaApplication1/nbproject/build-impl.xml b/gui/JavaApplication1/nbproject/build-impl.xml deleted file mode 100644 index d21a5a0a..00000000 --- a/gui/JavaApplication1/nbproject/build-impl.xml +++ /dev/null @@ -1,541 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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.43.0