From ffc64d7cdd7e06d6edf028f07f671cdb08f150af Mon Sep 17 00:00:00 2001 From: Nikos Skalkotos Date: Thu, 20 Jun 2013 17:35:45 +0300 Subject: [PATCH 1/1] Remove all referencies to words like ~okeanos In the documentation and the printed messages, remove all references to ~okeanos, pithos or cyclades. --- docs/man/snf-image-creator.rst | 15 ++++++---- docs/snapshots/confirm.png | Bin 18654 -> 19547 bytes docs/snapshots/main_menu.png | Bin 24422 -> 24418 bytes docs/usage.rst | 49 ++++++++++++++++--------------- image_creator/dialog_menu.py | 35 +++++++++++----------- image_creator/dialog_wizard.py | 17 ++++++----- image_creator/help/image_properties.rst | 6 ++-- image_creator/kamaki_wrapper.py | 2 +- image_creator/main.py | 23 ++++++++------- 9 files changed, 79 insertions(+), 68 deletions(-) diff --git a/docs/man/snf-image-creator.rst b/docs/man/snf-image-creator.rst index f55652d..9d38859 100644 --- a/docs/man/snf-image-creator.rst +++ b/docs/man/snf-image-creator.rst @@ -16,6 +16,12 @@ itself. Options ------- +-a URL, --authentication-url=URL + use this authentication URL when uploading/registering images + +-c CLOUD, --cloud=CLOUD + use this saved cloud account to authenticate against a cloud when + uploading/registering images --disable-sysprep=SYSPREP prevent SYSPREP operation from running on the input media @@ -42,27 +48,26 @@ Options dump image to FILE --public - register image with cyclades as public + register image with the storage service as public --print-sysprep print the enabled and disabled system preparation operations for this input media -r IMAGENAME, --register=IMAGENAME - register the image with cyclades as IMAGENAME + register the image with the compute service with name IMAGENAME -s, --silent output only errors -t TOKEN, --token=TOKEN - use this token when uploading/registering images to a Synnefo - deployment + use this token when uploading/registering images --tmpdir=DIR create large temporary image files under DIR -u FILENAME, --upload=FILENAME - upload the image to pithos with name FILENAME + save the image to the storage service with remote name FILENAME --version show program's version number and exit diff --git a/docs/snapshots/confirm.png b/docs/snapshots/confirm.png index 50247126daa93fd1211f7b3838e09c4145978b4e..1a8614ba77f78c197dc0564d076f03741d277c96 100644 GIT binary patch literal 19547 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 D_s>YM diff --git a/docs/snapshots/main_menu.png b/docs/snapshots/main_menu.png index 348dcda93a09e665787994b776adcb0011c63daa..8dd8f8b89ee262993d56819fe9ccbe4ff68b3ff9 100644 GIT binary patch literal 24418 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 E29y<+HUIzs literal 24422 zcmeFZWmFyE-z_$Ha3?syT|hu|8VgC)3IfZ)O1-Q6v?ySqd1PX2Fi?``|8 zu72savJQ*IIm65|KY#Y#Lx`fhBq|ai5&!_GQlG_?0RWl<0HA!{K!fir`__kunzu;X#ZK$5dhG7{(VEmGoldzz&k)n?31cn>T#O8hRWRRx%zGr>>G@C zhyy4;ep85NekpbqCf2%HRI{mdcGE7eb@pgIX|>T8va6N;KZ{+G18!XmmkzG$8;$-D-@+d#BOkPPzGu*1~w5-aj$Mww49IM^}(BFmMVX(kR zQSmOUalONM18by6nK)kIMRS);g70JpKNB&#ruKyRmeWGm?w8_FX z_{v$Fw$+a*$nigx%52^u{Z1gi`GdyUkKT}WI4{VWWOgl(C*bH2dxJ`Ek1zCij#CmK>ZPT%w8^smsL{>|h5 z-Z%(3r2FQre>5&l6Y3gT6_`%38!CT**WZ3P2nkThLZh`0Y!dK|4t~BEtUAC!s~sPO zz+N|Av>uSR`X93Mm+yowLxn_txlXtG=KEzmO>#78rBM3D zcvjN{1$uZEk37_eMp;J#D!%m+Cykt;w19FE9e1?2PI;m&g}bq z-sEUZ@OmRz20I6<;T^8oP10{(onU7o)b2EsDwW7ur~^Ox`;oX3ok(Rx!zv(kK1got zs@%kGQbh7+ckqeExAqTq$m*mYRTyBaSAK64Xz5HTfu z=0IY*#Mh4XCooM`nkgBp#(^$cN{ssCImD_3Mtn?oTGameUTlo&_}wk7>GaEgEb2UX@~V&LW%&02_z zMY_|cSPVw88v3SZ`QpM+^EiVE?HcNn(fq?D4y_WJ;u-VKNTO}t7kq`)H?B5?i)tF~ zrH!Z6RYj%ZKu5^>&8p0;fd9VJx(gdtJeBTS(hPP(S$AnLyz$#c^d71iy=DAN5Ex4H z#*WfPs3d*3J)90yOISAu$tuW={`OWjvsz4?>z*BKOMV}?rE#^7+F4+{2VNg0aB9As(e3s&hv^|VUY=0gX?NOHqB$sEwwdy5vC{IB zb8W)ykK)_EO}Kq{xn4To9g;V^FzIHfTx*$5gvyHgjak+m7S)>IQ9lTUlwjE2+*0TU z&^W25+K`VCuxgIZj-g4>H1GEFGfF}j%elBoyF;iCnR1Wy znE*et`uqH5_(UzXu^yj8!FAN8SHulb8SQW zmT4{7*GQ-@K>>38NB>IbHm|n(LT4y=8zw;v#dUZWk`Rt3&Dv&}qB@*}mUy|WnAW{u zvia$jqLhq+26>H z#NVy2P{~-5Oyx2Q1!3$d}Ck1_JIDkPkn>*(k%5yp2jTsAE`3y~mF?l2Eb>hATvOKQ7-4`9D|Y$4`TuGm-W zg}9Fj%@|5HOn4%U9;lJbxh)rWUwo{(!(w^%?sPfgx-FZ+tF8XQv#ilMP`u@(7hUzE zK?8tXJNftq!cj5t#C*g7D$Hep-($+VBeGj4&dB%nzs|BcW{2gN_jZ6k_BDAM`!Mn< z!EA+cfC0NEl&=`Ir}`huDlXFE4YV!L_Xl6m1uKlsSW=ec#NdXww&9=O^E#O^X_Q=2 z&g33_BSxP7^31+H@vH&-Q7VMd0XlWgj>nFGfHB#Q?Z zX9N~;xIr{ZZJ^svF!UAEd&;S(!fy(r#o2VZe0KD%NKc&qSD7 zzDMfwh|$E62}%;9M0aPE=9wD5y@KJGQo1`;Tj{J_Kt-T-X!VzA*RRlRMlCzy46xCw zer~MvG_FqP3s<-^GDmu(WpcKwuG2sTmNlS&^T1{p-@1adL-~Anc0f38POZ5f2bk|n zbJPImi-h%0HPf@W)qP@F(F50{kOj*s08o?ybMFOH(n1gA;E*kDXg_I_(M@??rIKqo z;{qzEm_5|-Qk#<1B(iz=Tc%RYJ74VkM=J;(BQUQ(++4&1HPYT8-=&S zkAfG`02Fp2pdtuXBB1k=l;?}JXH@Yk0fImesV$0-lUWI`j77?pkzUb?N-WD2vj=MDLR4tY(<#y~OZm;$Qy+)ppB*s^(XNmzCL zIGA<7XVYk?-&eK4YYLfqdChl;*Rx>}y3U1Hs-f?zF7K{NO^df?@XcEMmqdv(B86D3 zzU$=~!#RAe8Dk6+BfnYA0M^@?KD##-X3L)Z4);5Kru`f#U)f5L#aQ-SR%I~394I7H z#ef6&7q(>uK%FEFwY;@UXiq@^gb$DZG-S)wA4Z11Ud?QP4P;Aq;|Dcw?|-~hBYvXF zo&4x#w=nl*8DEg`S26Rqhy`Vcsg-17-<~_-XxtdtmIb>;vi$V>+~Z$c##-JnM@2PV z2i{<|DH-kv(6|MihQ^VUFhTh0n~#O2l(GWp(-cycZ0iYAuG3Y-g=wGw(UHrfe}yyD zk>_sCv~*$K$ew6tsBTkAx<06{*`0VbdIoG%vDwj)LEW#%}Q>vb9 zZ#G+WH2Uy>Hdv&{kg=PzY4t&qC~EHG8E;k{4B%5^b}p3dPPq&ve6Jnn7uzsTq@cP& z;Iny)q2p7hV;#=V89MTtGp*z<^$;1b;l>@Z8V!U`nM#32E_spAfJH?@!E0HvN{BeQS1X98#Zesa?ZYr6X#PohHZ5+S~%d0VC zK*n36m>Ps{lyBlnJ?-rni#e1Co2z~iJA@q+K?>`Nz>TJ(^74{oZJl;0?rjUY-nZr= zEsZHdj{3-@@>X7AW%F6;MxY-xoYn*mSX57XM5UXOD}i>tI?d6<=n4 zZ|C=F)rl%;Rl%;Mo;!h8?+OXZS~B+wh_Ia@(Mee;L(7W2?Q8CWJDR5Nb4;tNAOYKt zdwhH1-lH-w>R09*vk*ID&Fr?5@SnMVDTfV*rM0yD=+B%vu9?ZxMEZQ(sdP>|iT$#MKWUXfN5n1|A;|L>pH%C=sX!%tLYv3P98)%u z^nd@%ui{D6R;sq9^2LVUM0)=FnV1V#hy;z&=Q>w7l8(sr3yC*ctRHp-U03EyXgLOR zI3CL1g#5LJb;WQ0rt-Z^#P3TYNs+1<{c{3*z-j2CG1840lZVXeQ_5nOOFOk_hY_>e zjhbX(_L73xVq_){z%%6y}lySObqneEj#mzW60kTUE2O!r)LEhaFX!)y;W>lG*u|&16kti zF^gfa=4N}KA`gzA&YX-7w6D3LZ<%!QQ|X`s`(875j8sEta2ZedkQ^MiopV!hx}w+I zs?<8$>#59-v&lrx23@PY^8MmJer@QxdxSeeX()SN7!F2m;Yv>NpBgjz@3M#G3zNnT zwCPT|4JKdq)3)`U{*70ldHTg0+rH{a9D9@EA8s64yTdEld%Z|P#pEn=6C zZ$#Z%KUAKw4B_G0xsMWcwZA>Ok7Pfc0-X504jhZ;kkGUk~#Z zCjs2jLvM)uuJ8wcfAbbPfEpG&rU8SFi5&c-D?r%rKS#3kWN?ukmLC&>M}Nns(zz1Y zX#kR$|F6g3U7YgOi~NHLHZy;i%KSUno?KDm-#h-u-@E>Ed7U@^uP+LV^#7mYe>mX( z3tN0T(RR@HoT$J27X%k{8g(V@%zsHZwME{MQjn0K_jUmb(B!9BwZU zG9=M!R5iwf`nAoeDdV%%i0!Kn(4QVDRlNS%TN-DZ+1sB`PVG~Tj-CoVu_-acS8F_^ z&pNMWfPb=NmtUm1OfGr|F=Nd#Ye?Q3H66NJQ=o_|)zd3|wm~M(m%qt(seRC1+7s04 zf&3&EOtq|ywSG&gWVxy<0Ht343Y>!ul*W*y%CAynjY}_2H`4Wre zWJfM8lz3S5l_}&DqHeCNl6fxR0Y$pqii)A*Yrqe)}gy!MCIsK?Jmh`-t}tncsNi|gxzEb2>ZyVpXcrM3|f zq@O-HqpPjB`^0{pP1NK4;QdsJpyKal@UVPkVc`IN{{6c%FUi(Wyjxtz=5KpRgsri( z0$YS2l*0G;<~uu^Z5#*eroecDL_`y9B4lYlHx zclf%PqN;iDx@1SmwjmiQ3+Ic7ZTs-ZU8LGV#BHRd^;f6Nr6(BL=T(A2yuoF0_osSU z4@`%O!dH0s*&AgVmIe+Roo23<7M;{zzp(Mtc5+17wgN<`LriQeHi81xA_(Ipb3U`Y zU2XbMQyL+Yos^@jX=D@$qXI4l_xBmpUtDWD?_;V{18`IUV4Lw zUQSgM+~G!NXz|eP)8iCsK%!c>jY^~zn?};NHN%ngaQUrLWBJegJ|@OHM_0SzlI!6y zw5wZNOeF1cJ(5opnxdk`GSWF3x^W@jHbk;!q(dW^V+UI%CpX>rBkEnlTJhpSvXn2t z8<}^6<5=i2d0|&)q>qu1Q1cJ?;_Sp0Y_ggB^XJbm8u$f@Z?Lc(>2SiDAt?*8ZT1_8 z*)fEeN=jgA9F=FAjx-$a=2fbTZ5OZ`R}m8W=jO(qpG#*d(&Nd^qdMoo}Ehy^ocse;$WuQV?a#z82UbXS3_Kv42Q?QM931-h@7PjVG9hM}EF{j;E2Tll#-=n% zg!~OsQTOcW(NQZWA)aY|yU$jmqZF9A4Gk3FHVqbGPK#-KQaR-FG%?1zqt=mGwR%SN z&80=2mzRi%iCmMa+_JHyrRIRoc_N*OgZ|{?GfGN3XsO{x7yt%R{KiJS>HEgQLETc* z`g%uuTummbumB?trCjBEuQQ1o53TweudKtBnkzRgh>ww=lmgjpGYq5O4@;RP)IdA7 zdWDLbF6OeBVFcl;q~^my{PwMjf|3#FFzF)uC`WTRn!;XLDc(@r%$clI?i!K^V>a^3 z@X_;fd(gWEHnE?X2?_|AzGn^bztOrpSyGCR_pYlKA2sCw2j?vdpu@#6NZ@^g7vJIS z$(XZY1pI3VW`rp$(3&3kXfu}{!H7LarK6<9JWPX8jm>9NKH%;_U){FK$kPxwuAZ16 zJ(fWR15irf@I+g%{n>ZQmfiizp;Vyis6g_g7oB4P3BW@pAnHHCrKZ_6H4y{jFl>~K zn00f)JkPcpN$JLRF$9({VtRLX440@>?R5UT*Q$_1tyQfoYq{D|c!F5fB8q+C3q9U& zbrnU8R-Vo&J=O>88w`ph`E*wV7hcEELe=+xMkyQQHlT^u4tVFWm0dNdQ2f=hc4VnO zd&E>)n<&3T)=1mxLs9|DWt$%}j&p=US$8+8Oc~pklA=py7PRv#tI%*JJF6|Q$l>_< z%Q;P3asf5<)s?aH43e_4h%Oo6{x=X)ohIIL_i6?SPCs|^^4_vIK4)&Kxom5pBR<4x z^6WziVDRjPVp!?Kg&OR-^LZ@JKil3)&m>a;NhIl8o}QvfGn=1EWa~trb$cvxG!F zkB+j{$Cr@ew9(nxS_dXPj-=&}+J}TmO?cIb_jHf>8q3k~xJo+2zb7iPvSmm(vER}v z=&+t_UrYnPl`jB5JD_@nao;Jtjtea;x7#SaSEOqerqXW4(#5%U054&2k!QZDoe?Fx zYy?PWUTGolTalQV4Xs%m6O@CE%Ex@OI6Oo(@8ji(qgr&o+KLeuqNT_N%SVUxp<1Kq z@*8`+B~2VN65QHSbG*4*Xefh>LX?0jixicmt<4TPnVy060tSOSQ%<+{DDDq&&27Sa8NgMTs!k4veFt zAr>AKil%bDT<$2Xt|D2lka@SaQg@A)({ppzWOh=rRa{9j3lyEAz{8a0N%%9TS#XwA zaUiD2^VD^T?q`4{MN@O5{fT37uD-BvkdmeB%^kZ&`<()M6c<`P3{iijq?~|d-g8Lz zO-qKpvE8u=2P%b0+eU+>3p zG8HW#dm`C};AO!wMS5>$&*7_&!ODWxv086oi-+?T0Yg9y^-VM!!dyaP*m$Z`o+57$ z5%0>c)KsZVjnFWdipmhNs!8*_5Nx}q#zJrsaQxOaZCNKQ>^4kHsFfCNA0^KX&K_X$ z8alzK)09c!&--12ouQ_t0j$4By&Q&Ja^HWq{x*0MVnQPHf|pV5{m$XQkUlI|mR z(9!+sQqs?#J0~m3YBZ*7D8~J(-o8YMp-4VRy~pc2QvRs1pQjVYn=1q^tk04fE_G(= zO1?jzqe5hA+apByDZuu?sw@5L!_lOlKn4W%_sczxVQp+ASq28NjxmI+NBkGNap1{E zmDke{+Qiq3pH=|t=1uIHH&LhQ5dn&qgTuQ3BZnQiPZ(a2U?XrG*L6DolePBg`O2Zo zl3Fg^bLBQtu#4S~o5_KPE^1SPF&eUPqMy z`w{qhwt<8Gj((UCEGawpm9zi)B%2HZf6j>hZ=2=zWZzg(W4%z7MKR~W@b{bta(mnr zfSdvL$8@eng%&6M6RlF0!B}eKw=ABIC-o#`o`71ZR(x983K3#(8H%|Nn)w!{m%I?` zCW(;u)Ahj=L%cLYe3@RW789x1(vcQZ0t^D0=j9-+prBx+45@&JYNle#%fnHW24BkP zYP*k*me%6IRQ|v7?v5mFot^o-e)Ef;(}R?jokp$AmT1?X4$@{gDXy+&v>tPzXU}0y z?DbK?b3PL!jAaPDUX2Tt>$eNOd-sl&b=>; <;k0E}@sB)Q`Mj&Aks^j8a7~osK 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 0: - if d.yesno("The following pithos object(s) already exist(s):\n" - "%s\nDo you want to overwrite them?" % + if d.yesno("The following storage service object(s) already " + "exist(s):\n%s\nDo you want to overwrite them?" % "\n".join(overwrite), width=WIDTH, defaultno=1): continue @@ -182,8 +182,9 @@ def upload_image(session): out.success("done") except ClientError as e: - d.msgbox("Error in pithos+ client: %s" % e.message, - title="Pithos+ Client Error", width=SMALL_WIDTH) + d.msgbox( + "Error in storage service client: %s" % e.message, + title="Storage Service Client Error", width=SMALL_WIDTH) if 'pithos_uri' in session: del session['pithos_uri'] return False @@ -192,26 +193,26 @@ def upload_image(session): finally: gauge.cleanup() - d.msgbox("Image file `%s' was successfully uploaded to pithos+" % filename, + d.msgbox("Image file `%s' was successfully uploaded" % filename, width=SMALL_WIDTH) return True def register_image(session): - """Register image with cyclades""" + """Register image with the compute service""" d = session["dialog"] is_public = False if "account" not in session: d.msgbox("You need to select a valid cloud before you " - "can register an images with cyclades", width=SMALL_WIDTH) + "can register an images with it", width=SMALL_WIDTH) return False if "pithos_uri" not in session: - d.msgbox("You need to upload the image to pithos+ before you can " - "register it with cyclades", width=SMALL_WIDTH) + d.msgbox("You need to upload the image to the cloud before you can " + "register it", width=SMALL_WIDTH) return False while 1: @@ -248,7 +249,7 @@ def register_image(session): out.add(gauge) try: try: - out.output("Registering %s image with Cyclades..." % img_type) + out.output("Registering %s image with the cloud..." % img_type) kamaki = Kamaki(session['account'], out) result = kamaki.register(name, session['pithos_uri'], metadata, is_public) @@ -266,14 +267,14 @@ def register_image(session): kamaki.share("%s.md5sum" % session['upload']) out.success('done') except ClientError as e: - d.msgbox("Error in pithos+ client: %s" % e.message) + d.msgbox("Error in storage service client: %s" % e.message) return False finally: out.remove(gauge) finally: gauge.cleanup() - d.msgbox("%s image `%s' was successfully registered with Cyclades as `%s'" + d.msgbox("%s image `%s' was successfully registered with the cloud as `%s'" % (img_type.title(), session['upload'], name), width=SMALL_WIDTH) return True @@ -374,8 +375,8 @@ def kamaki_menu(session): choices = [("Add/Edit", "Add/Edit cloud accounts"), ("Delete", "Delete existing cloud accounts"), ("Cloud", "Select cloud account to use: %s" % cloud), - ("Upload", "Upload image to pithos+"), - ("Register", "Register the image to cyclades: %s" % upload)] + ("Upload", "Upload image to the cloud"), + ("Register", "Register image with the cloud: %s" % upload)] (code, choice) = d.menu( text="Choose one of the following or press to go back.", @@ -791,7 +792,7 @@ def main_menu(session): text="Choose one of the following or press to exit.", width=WIDTH, choices=choices, cancel="Exit", height=13, default_item=default_item, menu_height=len(choices), - title="Image Creator for ~okeanos (snf-image-creator version %s)" % + title="Image Creator for synnefo (snf-image-creator version %s)" % version) if code in (d.DIALOG_CANCEL, d.DIALOG_ESC): diff --git a/image_creator/dialog_wizard.py b/image_creator/dialog_wizard.py index 1c2e64b..8abcfed 100644 --- a/image_creator/dialog_wizard.py +++ b/image_creator/dialog_wizard.py @@ -353,7 +353,7 @@ def create_image(session): out.output() try: - out.output("Uploading image to pithos:") + out.output("Uploading image to the cloud:") account = Kamaki.get_account(wizard['Cloud']) assert account, "Cloud: %s is not valid" % wizard['Cloud'] kamaki = Kamaki(account, out) @@ -375,7 +375,7 @@ def create_image(session): is_public = True if wizard['ImageRegistration'] == "Public" else \ False - out.output('Registering %s image with cyclades ...' % + out.output('Registering %s image with the cloud ...' % wizard['ImageRegistration'].lower(), False) result = kamaki.register(wizard['ImageName'], pithos_file, metadata, is_public) @@ -397,14 +397,17 @@ def create_image(session): out.output() except ClientError as e: - raise FatalError("Pithos client: %d %s" % (e.status, e.message)) + raise FatalError("Storage service client: %d %s" % + (e.status, e.message)) finally: out.remove(with_progress) - msg = "The %s image was successfully uploaded to Pithos and registered " \ - "with Cyclades. Would you like to keep a local copy?" \ - % wizard['ImageRegistration'].lower() - if not d.yesno(msg, width=PAGE_WIDTH): + text = "The %s image was successfully uploaded to the storage service " \ + "and registered with the compute service of %s. Would you like " \ + "to keep a local copy?" % \ + (wizard['Cloud'], wizard['ImageRegistration'].lower()) + + if not d.yesno(text, width=PAGE_WIDTH): extract_image(session) # vim: set sta sts=4 shiftwidth=4 sw=4 et ai : diff --git a/image_creator/help/image_properties.rst b/image_creator/help/image_properties.rst index 64fbb87..8e65f2a 100644 --- a/image_creator/help/image_properties.rst +++ b/image_creator/help/image_properties.rst @@ -11,11 +11,11 @@ Properties used during image deployment This is a space-seperated list of users, whose password will be reset during deployment. - SWAP=: - If this property is present, cyclades will create a swap - partition with given size at the end of the instance's disk. + If this property is present, a swap partition with given + size will be created at the end of the instance's disk. This property only makes sense for Linux images. -Properties used by the ~okeanos User Interface +Properties used by the synnefo User Interface ---------------------------------------------- - OS The value of this property is used to associate the image diff --git a/image_creator/kamaki_wrapper.py b/image_creator/kamaki_wrapper.py index af588c4..c515fa6 100644 --- a/image_creator/kamaki_wrapper.py +++ b/image_creator/kamaki_wrapper.py @@ -163,7 +163,7 @@ class Kamaki(object): self.CONTAINER, path) def register(self, name, location, metadata, public=False): - """Register an image to ~okeanos""" + """Register an image with cyclades""" # Convert all metadata to strings str_metadata = {} diff --git a/image_creator/main.py b/image_creator/main.py index 4db1e19..bff95d9 100644 --- a/image_creator/main.py +++ b/image_creator/main.py @@ -83,12 +83,12 @@ def parse_options(input_args): parser.add_option("-u", "--upload", dest="upload", type="string", default=False, - help="upload the image to pithos with name FILENAME", + help="upload the image to the cloud with name FILENAME", metavar="FILENAME") parser.add_option("-r", "--register", dest="register", type="string", default=False, - help="register the image with ~okeanos as IMAGENAME", + help="register the image with a cloud as IMAGENAME", metavar="IMAGENAME") parser.add_option("-m", "--metadata", dest="metadata", default=[], @@ -129,7 +129,7 @@ def parse_options(input_args): help="don't shrink any partition", action="store_false") parser.add_option("--public", dest="public", default=False, - help="register image with cyclades as public", + help="register image with the cloud as public", action="store_true") parser.add_option("--tmpdir", dest="tmp", type="string", default=None, @@ -231,15 +231,16 @@ def image_creator(): if options.upload and not options.force: if kamaki.object_exists(options.upload): - raise FatalError("Remote pithos object `%s' exists " + raise FatalError("Remote storage service object: `%s' exists " "(use --force to overwrite it)." % options.upload) if kamaki.object_exists("%s.md5sum" % options.upload): - raise FatalError("Remote pithos object `%s.md5sum' exists " - "(use --force to overwrite it)." % options.upload) + raise FatalError("Remote storage service object: `%s.md5sum' " + "exists (use --force to overwrite it)." % + options.upload) if options.register and not options.force: if kamaki.object_exists("%s.meta" % options.upload): - raise FatalError("Remote pithos object `%s.meta' exists " + raise FatalError("Remote storage service object `%s.meta' exists " "(use --force to overwrite it)." % options.upload) disk = Disk(options.source, out, options.tmp) @@ -306,7 +307,7 @@ def image_creator(): try: uploaded_obj = "" if options.upload: - out.output("Uploading image to pithos:") + out.output("Uploading image to the storage service:") with open(snapshot, 'rb') as f: uploaded_obj = kamaki.upload( f, size, options.upload, @@ -323,8 +324,8 @@ def image_creator(): if options.register: img_type = 'public' if options.public else 'private' - out.output('Registering %s image with ~okeanos ...' % img_type, - False) + out.output('Registering %s image with the compute service ...' + % img_type, False) result = kamaki.register(options.register, uploaded_obj, metadata, options.public) out.success('done') @@ -344,7 +345,7 @@ def image_creator(): out.output() except ClientError as e: - raise FatalError("Pithos client: %d %s" % (e.status, e.message)) + raise FatalError("Service client: %d %s" % (e.status, e.message)) finally: out.output('cleaning up ...') -- 1.7.10.4