在OpenStack原生环境中,Glance作为镜像服务组件,负责管理镜像的存储、检索和共享,更新镜像成员状态是Glance的一个重要功能,允许管理员对镜像共享进行精细化管理,本文将详细介绍如何使用Glance的镜像服务API来更新镜像成员状态,并探讨镜像共享的相关概念。
Glance镜像服务API简介
Glance提供了一套RESTful API,用于管理镜像,这些API允许用户创建、检索、更新和删除镜像,更新镜像成员状态是其中一个高级功能,用于管理镜像的共享关系。
更新镜像成员状态
要更新镜像成员状态,首先需要了解镜像成员的概念,镜像成员是镜像共享的一部分,它定义了哪些项目可以访问特定的镜像。
步骤1:获取镜像ID
你需要知道要更新的镜像的ID,可以通过以下API获取镜像列表和对应的ID:
curl -X GET步骤2:获取镜像成员列表
获取指定镜像的成员列表:
curl -X GET{image_id}/members步骤3:更新镜像成员状态
更新镜像成员状态需要使用以下API:
curl -X PUT{image_id}/members/{member_id}在这个API调用中,
{member_id}是你要更新的成员ID,你可以通过以下参数来更新状态:以下是一个示例请求:
curl -X PUT-d '{"status": "inactive"}'镜像共享
镜像共享是Glance的一个重要特性,它允许用户将镜像共享给其他项目,以下是一些关于镜像共享的要点:
常见问题解答(FAQs)
Q1:如何检查一个镜像是否被共享?
A1:可以通过以下API来检查一个镜像是否被共享:
curl -X GET{image_id}/members这个API调用会返回一个包含所有镜像成员的列表,你可以查看是否有其他项目被列为成员。
Q2:如何撤销一个镜像的共享?
A2:要撤销一个镜像的共享,你需要将镜像成员的状态设置为,这可以通过以下API完成:
curl -X PUT{image_id}/members/{member_id} -d '{"status": "inactive"}'确保你已经知道了镜像ID和成员ID,然后使用上面的命令来更新状态。
如何把Word通用C#程序,转换成Tif传真格式.
是否可以考虑使用方法?参考一下这个java的程序,你有一些收获。 java 实现word转为 tif格式??急1.我用打印的方式没有得到任何文件(用的是虚拟传真打印机)2.我用JACOB老是缺少组建异常3.用jawin调用word转为pdf的方法出异常1.我用打印的方式没有得到任何文件(用的是虚拟传真打印机)public class Y {/*打印指定的文件*/publicvoid printFileAction(){//构造一个文件选择器,默认为当前目录JFileChooser fileChooser = new JFileChooser(c:\\);int state = (null);//弹出文件选择对话框if (state == _OPTION)//如果用户选定了文件{File file = ();//获取选择的文件//构建打印请求属性集PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();//设置打印格式,因为未确定文件类型,这里选择AUTOSENSEDocFlavor flavor = _;//查找所有的可用打印服务PrintService printService[] = (flavor, pras);//定位默认的打印服务PrintService defaultService = ();//显示打印对话框PrintService service = (null, 200, 200, printService , defaultService, flavor, pras);if (service != null){try{DocPrintJob job = ();//创建打印作业FileInputStream fis = new FileInputStream(file);//构造待打印的文件流DocAttributeSet das = new HashDocAttributeSet();Doc doc = new SimpleDoc(fis, flavor, das);//建立打印文件格式(doc, pras);//进行文件的打印}catch(Exception e){();}}}}}2.我用JACOB老是缺少组建异常package com;import .*;import .*;public class Dispatch_MSWord {private ActiveXComponent wordCom=null;private Object wordDoc=null;private final Variant False=new Variant(false);private final Variant True=new Variant(true);/** * 打开word文档 * @param filePath word文档 * @return 返回word文档对象 */public boolean openWord(String filePath){//建立ActiveX部件wordCom=new ActiveXComponent();try{//返回的DispatchObject wrdDocs=(Documents)();//调用方法打开指定的word文档,返回wordDocwordDoc=((Dispatch) wrdDocs,Open,,new Object[]{filePath},new int[1])();return true;}catch(Exception ex){();}return false;}/** * 关闭word文档 */public void closeWord(){//关闭word文件(Quit,new Variant[]{});}/** * 打开word,调用word中的宏 * @param filePath word文件路径 * @param macroName 被调用的宏名字 * @param parameter 调用宏的参数数组 */public void callWordMacro(String filePath,String macroName,Object parameter[]){if (!openWord(filePath)){closeWord();return;}else{//使用方法传入的参数parameter调用word文档中的MyWordMacro宏((Dispatch)wordDoc,macroName,,parameter,new int[1]);closeWord();}}/** * 打开word,替换其中的文字 * @param filePath word文件路径 * @param sourceStr 源文字 * @param replaceStr 替换后的文字 */public void callReplaceWord(String filePath,String sourceStr,String replaceStr){if (!openWord(filePath)){closeWord();return;}try{//获得Selection对象Dispatch selectDoc=(Selection)();//获得Find对象Dispatch find = (selectDoc,Find)();//设置替换的方法属性,但是不支持ReplaceWith的属性,而且使用属性也无济于事。 (find,Text,sourceStr);//所以使用Find对象的Execute(FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, Format, ReplaceWith, Replace, MatchKashida, MatchDiacritics, MatchAlefHamza, MatchCONtrol)方法//详细内容见MSDN的office2000开发文档Variant True=new Variant(true);Variant False=new Variant(false);Variant FindText=new Variant(sourceStr);Variant ReplaceWith=new Variant(replaceStr);Variant Format=False;Variant Forward=True;Variant MatchCase=True;Variant MatchWholeWord=True;Variant MatchWildcards=False;Variant MatchSoundsLike=False;Variant MatchAllWordForms=False;int wdFindWrap_FindContinue=1;Variant Wrap=new Variant(wdFindWrap_FindContinue);int wdReplace_ReplaceAll=2;Variant Replace=new Variant(wdReplace_ReplaceAll);//使用callN方法调用execute方法(find,Execute,new Variant[]{FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, Format, ReplaceWith, Replace});((Dispatch) wordDoc,SaveAs,,new Object[]{c:\\},new int[1]);closeWord();}catch(Exception ex){();}finally{closeWord();}}/** * 将word文档打印为PS文件后,使用Distiller将PS文件转换为PDF文件 * @param sourceFilePath 源文件路径 * @param destinPSFilePath 首先生成的PS文件路径 * @param destinPDFFilePath 生成PDF文件路径 */public void docToPDF(String sourceFilePath,String destinPSFilePath,String destinPDFFilePath){if (!openWord(sourceFilePath)){closeWord();return;}//建立Adobe Distiller的com对象ActiveXComponent distiller=new ActiveXComponent(.1);try{//设置当前使用的打印机,我的Adobe Distiller打印机名字为Adobe (ActivePrinter,new Variant(Adobe PDF));//设置printout的参数,将word文档打印为postscript文档。 目前只使用了前5个参数,如果要使用更多的话可以参考MSDN的office开发相关api//是否在后台运行Variant Background=False;//是否追加打印Variant Append =False;//打印所有文档int wdPrintAllDocument=0;Variant Range =new Variant(wdPrintAllDocument);//输出的postscript文件的路径Variant OutputFileName =new Variant(destinPSFilePath);//调用word文档对象的PrintOut方法:将word文档打印为postscript文档,简称ps文档((Dispatch)wordDoc, PrintOut, new Variant[]{Background,Append,Range,OutputFileName}) ;(由word文档打印为ps文档成功!);//调用Distiller对象的FileToPDF方法所用的参数,详细内容参考Distiller Api手册//作为输入的ps文档路径Variant inputPostScriptFilePath=new Variant(destinPSFilePath);//作为输出的pdf文档的路径Variant outputPDFFilePath=new Variant(destinPDFFilePath);//定义FileToPDF方法要使用adobe pdf设置文件的路径,在这里没有赋值表示并不使用pdf配置文件Variant PDFOption=new Variant();//调用FileToPDF方法将ps文档转换为pdf文档(distiller,FileToPDF,new Variant[]{inputPostScriptFilePath,outputPDFFilePath,PDFOption});(由ps文档转换为pdf文档成功!);}catch(Exception ex){();}finally{closeWord();}}public static void main(String[] argv){Dispatch_MSWord d=new Dispatch_MSWord();//(E:/eclIPSe3.1RC3/workspace/jacobPractice/src/com/bjinfotech/practice/jacob/,MyWordMacro,new String[]{这是调用word宏的测试程序});//(E:/eclipse3.1RC3/workspace/jacobPractice/src/com/bjinfotech/practice/jacob/,$TITLE$,文字已经被替换);(c:\\,c:\\,c:\\);}}
求助,Java中如何根据一个http接口
public void test(Long clusterId,boolean monitorSendAllFlag) {boolean result=false;try {String url =json= (url);(json);} catch (Exception e) {();}}public static String getHttpResponse(String allConfigUrl) {BuffeRedReader in = null;StringBuffer result = null;try {URI uri = new URI(allConfigUrl);URL url = ();URLConnection connection = ();(Content-Type, application/x-www-form-urlencoded);(Charset, utf-8);();result = new StringBuffer();//读取URL的响应in = new BufferedReader(new InputStreamReader(()));String line;while ((line = ()) != null) {(line);}return ();} catch (Exception e) {();}finally {try {if (in != null) {();}} catch (Exception e2) {();}}return null;}
如何实现高效的 jsp 分页显示功能(数据库是sqlserver),最好有实例;
用sql分页。 select top 10 from tablename where id not in (select top 10 id from tablename)一般的分页是一次性把数据库中数据全部取出来,在页面进行分页。 mssql 可以通过top关键字来实现查询的时候就只查显示的部分。















发表评论