Quantcast
Channel: VMware Communities: Message List
Viewing all articles
Browse latest Browse all 196326

Re: Read and write metadata in vCloud Director

$
0
0

Hi, all

cdecanini_, thank you, i enable DEBUG mode on vCO.

 

In server.log begin write response from vCloud Director.

 

I use follow Script Task:

  1. function setMetadataBoolean(obj,key,value){ 
  2.     var metadata = obj.getMetadata(); 
  3.     var vclMetadataStringValue = new VclMetadataBooleanValue() ; 
  4.     vclMetadataStringValue.value = value; 
  5.     var vclAbstractValueObject = new VclAbstractValueObject(); 
  6.     vclAbstractValueObject.setValue(vclMetadataStringValue); 
  7.     var vclMetadataEntry = new VclMetadataEntry(); 
  8.     vclMetadataEntry.key = key; 
  9.     vclMetadataEntry.typedValue = vclAbstractValueObject; 
  10.     System.log("Setting key " + key + " with value " + value); 
  11.     return metadata.updateTypedEntry(vclMetadataEntry); 
  12.  
  13. function getMetadataBoolean(obj,key){ 
  14.     ObjMetadata = obj.getMetadata(); 
  15.     Entries = ObjMetadata.getTypedEntries() 
  16.     for each (Entrie in Entries.enumerate()){ 
  17.         if (Entrie.key == key){ 
  18.             value = Entrie.typedValue.getValue(new VclMetadataBooleanValue).value; 
  19.             break
  20.         }else{value = null;} 
  21.     } 
  22.     return value; 
  23.  
  24.  
  25. var vCDHosts = System.getModule("com.vmware.library.vCloud.Host").getHosts(); 
  26. for each (vCDHost in vCDHosts){ 
  27.     if (vCDHost.url.substring(8,vCDHost.url.length-4).toLowerCase() == vCDUrl.toLowerCase()) {  
  28.         CurrvCDHost = vCDHost 
  29.     } else
  30.          
  31.         System.log("vCD Host with url=" + vCDUrl + " not found."
  32.     }     
  33.      
  34.  
  35. var vCDHA = CurrvCDHost.toAdminObject(); 
  36.  
  37. //Get AllPvDC 
  38. var AllPvDC = System.getModule("com.vmware.library.vCloud.operation.admin").getProviderVdcsVCloudHostAdmin(vCDHA);  
  39.  
  40.  
  41. for each (PvDC in AllPvDC){ 
  42.      
  43.     PvDC.updateInternalState(); 
  44.         //if key tst  not exists  
  45.     if (!getMetadataBoolean(PvDC,"tst")){  
  46.         System.log("No Metadata"); 
  47.                 //create key tst with value false 
  48.         setMetadataBoolean(PvDC,"tst",false
  49.                 PvDC.updateInternalState(); 
  50.     }else
  51.         System.log(PvDC.name + "-" + getMetadataBoolean(PvDC,"tst")) 
  52.     } 
  53.      
  54.      

 

 

Result :

  1. [2013-07-25 13:04:24.897] [I] No Metadata 
  2. [2013-07-25 13:04:24.921] [I] Setting key tst with value false 
  3. [2013-07-25 13:04:25.169] [I] No Metadata 
  4. [2013-07-25 13:04:25.194] [I] Setting key tst with value false 

 

But in log file i see:

  1. 2013-07-25 04:48:57.783-0400 INFO  [STDOUT] Jul 25, 2013 4:48:57 AM com.vmware.vcloud.sdk.RestUtil get 
  2. INFO: GET URL - https://vcloud.xxxxxx.xx/api/admin/providervdc/04fe3d52-cf4c-43c1-a78d-95265f4e0fe8/metadata 
  3. 2013-07-25 04:48:57.804-0400 INFO  [STDOUT] Jul 25, 2013 4:48:57 AM com.vmware.vcloud.sdk.RestUtil get 
  4. INFO: Status Code - 200 
  5. 2013-07-25 04:48:57.805-0400 INFO  [STDOUT] Jul 25, 2013 4:48:57 AM com.vmware.vcloud.sdk.RestUtil get 
  6. INFO: Status - OK 
  7. 2013-07-25 04:48:57.805-0400 INFO  [STDOUT] Jul 25, 2013 4:48:57 AM com.vmware.vcloud.sdk.RestUtil get 
  8. INFO: Response - <?xmlversion="1.0"encoding="UTF-8"?> 
  9. <Metadataxmlns="http://www.vmware.com/vcloud/v1.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"type="application/vnd.vmware.vcloud.metadata+xml"href="https://vcloud.xxxxxx.xx/api/admin/providervdc/04fe3d52-cf4c-43c1-a78d-95265f4e0fe8/metadata" xsi:schemaLocation="http://www.vmware.com/vcloud/v1.5http://vcloud.xxxxxx.xx/api/v1.5/schema/master.xsd"> 
  10.     <Linkrel="up"type="application/vnd.vmware.admin.providervdc+xml"href="https://vcloud.xxxxxx.xx/api/admin/providervdc/04fe3d52-cf4c-43c1-a78d-95265f4e0fe8"/> 
  11.     <Linkrel="add"type="application/vnd.vmware.vcloud.metadata+xml"href="https://vcloud.xxxxxx.xx/api/admin/providervdc/04fe3d52-cf4c-43c1-a78d-95265f4e0fe8/metadata"/> 
  12.     <MetadataEntrytype="application/vnd.vmware.vcloud.metadata.value+xml"href="https://vcloud.xxxxxx.xx/api/admin/providervdc/04fe3d52-cf4c-43c1-a78d-95265f4e0fe8/metadata/service"> 
  13.         <Linkrel="up"type="application/vnd.vmware.vcloud.metadata+xml"href="https://vcloud.xxxxxx.xx/api/admin/providervdc/04fe3d52-cf4c-43c1-a78d-95265f4e0fe8/metadata"/> 
  14.         <Linkrel="edit"type="application/vnd.vmware.vcloud.metadata.value+xml"href="https://vcloud.xxxxxx.xx/api/admin/providervdc/04fe3d52-cf4c-43c1-a78d-95265f4e0fe8/metadata/service"/> 
  15.         <Linkrel="remove"href="https://vcloud.xxxxxx.xx/api/admin/providervdc/04fe3d52-cf4c-43c1-a78d-95265f4e0fe8/metadata/service"/> 
  16.         <Key>service</Key> 
  17.         <TypedValue xsi:type="MetadataBooleanValue"> 
  18.             <Value>false</Value> 
  19.         </TypedValue> 
  20.     </MetadataEntry> 
  21.     <MetadataEntrytype="application/vnd.vmware.vcloud.metadata.value+xml"href="https://vcloud.xxxxxx.xx/api/admin/providervdc/04fe3d52-cf4c-43c1-a78d-95265f4e0fe8/metadata/tst"> 
  22.         <Linkrel="up"type="application/vnd.vmware.vcloud.metadata+xml"href="https://vcloud.xxxxxx.xx/api/admin/providervdc/04fe3d52-cf4c-43c1-a78d-95265f4e0fe8/metadata"/> 
  23.         <Linkrel="edit"type="application/vnd.vmware.vcloud.metadata.value+xml"href="https://vcloud.xxxxxx.xx/api/admin/providervdc/04fe3d52-cf4c-43c1-a78d-95265f4e0fe8/metadata/tst"/> 
  24.         <Linkrel="remove"href="https://vcloud.xxxxxx.xx/api/admin/providervdc/04fe3d52-cf4c-43c1-a78d-95265f4e0fe8/metadata/tst"/> 
  25.         <Key>tst</Key> 
  26.         <TypedValue xsi:type="MetadataBooleanValue"> 
  27.             <Value>false</Value> 
  28.         </TypedValue> 
  29.     </MetadataEntry> 
  30. </Metadata> 

 

I attached full logfile. In log file you can ignore line "Canceling workflow token 'ff808081400fcf0b01401504469d0174'", because it test workflow with many action and i use "workflow.cancel();"

 

Thank you!


Viewing all articles
Browse latest Browse all 196326

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>