Beispiel #1
0
        public SelectionSpec[] GetStorageTraversalSpec()
        {
            SelectionSpec ssFolders = new SelectionSpec();

            ssFolders.name = "visitFolders";

            TraversalSpec datacenterSpec = new TraversalSpec();

            datacenterSpec.name      = "dcTodf";
            datacenterSpec.type      = "Datacenter";
            datacenterSpec.path      = "datastoreFolder";
            datacenterSpec.skip      = false;
            datacenterSpec.selectSet = new SelectionSpec[] { ssFolders };

            TraversalSpec visitFolder = new TraversalSpec();

            visitFolder.type = "Folder";
            visitFolder.name = "visitFolders";
            visitFolder.path = "childEntity";
            visitFolder.skip = false;

            SelectionSpec[] ssSpecList = new SelectionSpec[] { new SelectionSpec(), new SelectionSpec() };
            ssSpecList[0] = datacenterSpec;
            ssSpecList[1] = ssFolders;

            visitFolder.selectSet = ssSpecList;
            return(new SelectionSpec[] { visitFolder });
        }
Beispiel #2
0
        /// <summary>
        /// Create TraversalSpec for Datacenter
        /// </summary>
        /// <returns>SelectionSpec[]</returns>
        private SelectionSpec[] buildTraversalSpecForDatastoreToDatacenter()
        {
            // For Folder -> Folder recursion
            SelectionSpec sspecvfolders = new SelectionSpec();

            sspecvfolders.name = "VisitFolders";

            TraversalSpec visitFolders = new TraversalSpec();

            visitFolders.type      = "Folder";
            visitFolders.path      = "parent";
            visitFolders.skip      = false;
            visitFolders.name      = "VisitFolders";
            visitFolders.selectSet = new SelectionSpec[] { sspecvfolders };

            TraversalSpec datastoreToFolder = new TraversalSpec();

            datastoreToFolder.type      = "Datastore";
            datastoreToFolder.path      = "parent";
            datastoreToFolder.skip      = false;
            datastoreToFolder.name      = "DatastoreToFolder";
            datastoreToFolder.selectSet = new SelectionSpec[] { sspecvfolders };

            SelectionSpec[] speclist = new SelectionSpec[] { new SelectionSpec(), new SelectionSpec() };
            speclist[0] = datastoreToFolder;
            speclist[1] = visitFolders;
            return(speclist);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="VSphereSelectionSpec" /> class.
 /// </summary>
 /// <param name="selectionSpecName">The name of the selection spec to reference/reuse.</param>
 public VSphereSelectionSpec(string selectionSpecName)
 {
     SelectionSpec = new SelectionSpec
     {
         name = selectionSpecName
     };
 }
Beispiel #4
0
 public static CursorLoader NewInstance(Context context, Album album, SelectionSpec selectionSpec)
 {
     if (album == null || album.All)
     {
         return(new PictureLoader(context, MediaStore.Images.Media.ExternalContentUri, PROJECTION, IS_LARGE_SIZE, new string[] { selectionSpec.MinPixels + "" }, ORDER_BY, selectionSpec.IsEnableCamera));
     }
     return(new PictureLoader(context, MediaStore.Images.Media.ExternalContentUri, PROJECTION, MediaStore.Images.Media.InterfaceConsts.BucketId + " = ? and (" + IS_LARGE_SIZE + ")", new string[] { album.Id, selectionSpec.MinPixels + "" }, ORDER_BY, selectionSpec.IsEnableCamera));
 }
Beispiel #5
0
 public virtual void OnCreate(FragmentActivity context, GridView gridView, SelectedUriCollection mCollection, SelectionSpec selectionSpec)
 {
     mContext           = new System.WeakReference <Context>(context);
     mLoaderManager     = context.SupportLoaderManager;
     this.selectionSpec = selectionSpec;
     albumPhotoAdapter  = new PictureAdapter(context, null, mCollection);
     mCollection.Engine.Scrolling(gridView);
     gridView.Adapter = albumPhotoAdapter;
 }
Beispiel #6
0
 public virtual void OnCreate(FragmentActivity activity, IOnDirectorySelectListener directorySelectListener, SelectionSpec selectionSpec, ListView listView)
 {
     mContext       = new WeakReference <Context>(activity);
     mLoaderManager = activity.SupportLoaderManager;
     this.directorySelectListener = directorySelectListener;
     this.selectionSpec           = selectionSpec;
     albumAdapter                 = new AlbumAdapter(activity, null);
     listView.Adapter             = albumAdapter;
     listView.OnItemClickListener = this;
 }
Beispiel #7
0
 internal BulbPlugin(Activity activity, Fragment fragment)
 {
     mContext = new WeakReference <Activity>(activity);
     if (fragment != null)
     {
         mFragment = new WeakReference <Fragment>(fragment);
     }
     else
     {
         mFragment = null;
     }
     MimeTypes      = MimeType.AllOf();
     mSelectionSpec = new SelectionSpec();
     mResumeList    = new List <Uri>();
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="VSphereSelectionSpec" /> class.
        /// </summary>
        /// <param name="name">The name to assign this selection spec, which allows it to be referenced/reused.</param>
        /// <param name="managedObjectType">The type of vSphere managed object to extend the query from.</param>
        /// <param name="path">The name of the property to use to select objects.</param>
        /// <param name="selectSet">An optional set of selections to specify additional objects to retrieve.</param>
        public VSphereSelectionSpec(string name, VSphereManagedObjectType managedObjectType, string path, params VSphereSelectionSpec[] selectSet)
        {
            IEnumerable <SelectionSpec> set = Enumerable.Empty <SelectionSpec>();

            if (selectSet != null)
            {
                set = selectSet.Select(n => n.SelectionSpec);
            }

            SelectionSpec = new TraversalSpec
            {
                name      = name,
                type      = managedObjectType.ToString(),
                path      = path,
                selectSet = set.ToArray()
            };
        }
 ///<summary>
 ///Specifications to find all the Datacenters and
 ///retrieve their name, vmFolder and hostFolder values.
 ///</summary>
 private static ObjectContent[] getDatacenters()
 {
     // The PropertySpec object specifies what properties
     // to retrieve from what type of Managed Object
     PropertySpec pSpec = new PropertySpec();
     pSpec.type = "Datacenter";
     pSpec.pathSet = new String[] {
       "name", "vmFolder", "hostFolder" };
     // The following TraversalSpec and SelectionSpec
     // objects create the following relationship:
     //
     // a. Folder -> childEntity
     //   b. recurse to a.
     //
     // This specifies that starting with a Folder
     // managed object, traverse through its childEntity
     // property. For each element in the childEntity
     // property, process by going back to the 'parent'
     // TraversalSpec.
     // SelectionSpec to cause Folder recursion
     SelectionSpec recurseFolders = new SelectionSpec();
     // The name of a SelectionSpec must refer to a
     // TraversalSpec with the same name value.
     recurseFolders.name = "folder2childEntity";
     // Traverse from a Folder through the 'childEntity' property
     TraversalSpec folder2childEntity = new TraversalSpec();
     // Select the Folder type managed object
     folder2childEntity.type = "Folder";
     // Traverse through the childEntity property of the Folder
     folder2childEntity.path = "childEntity";
     // Name this TraversalSpec so the SelectionSpec above
     // can refer to it
     folder2childEntity.name = recurseFolders.name;
     // Add the SelectionSpec above to this traversal so that
     // we will recurse through the tree via the childEntity
     // property
     folder2childEntity.selectSet = new SelectionSpec[] {
   recurseFolders };
     // The ObjectSpec object specifies the starting object and
     // any TraversalSpecs used to specify other objects
     // for consideration
     ObjectSpec oSpec = new ObjectSpec();
     oSpec.obj = _sic.rootFolder;
     // We set skip to true because we are not interested
     // in retrieving properties from the root Folder
     oSpec.skip = true;
     // Specify the TraversalSpec. This is what causes
     // other objects besides the starting object to
     // be considered part of the collection process
     oSpec.selectSet = new SelectionSpec[] { folder2childEntity };
     // The PropertyFilterSpec object is used to hold the
     // ObjectSpec and PropertySpec objects for the call
     PropertyFilterSpec pfSpec = new PropertyFilterSpec();
     pfSpec.propSet = new PropertySpec[] { pSpec };
     pfSpec.objectSet = new ObjectSpec[] { oSpec };
     // RetrieveProperties() returns the properties
     // selected from the PropertyFilterSpec
     return _service.RetrieveProperties(
           _sic.propertyCollector,
           new PropertyFilterSpec[] { pfSpec });
 }
Beispiel #10
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.ImageSelect);

            mOnClickFoldName = new AnonymousOnClickListener((v) => {
                if (mListViewGroup.Visibility == ViewStates.Visible)
                {
                    HideFolderList();
                }
                else
                {
                    ShowFolderList();
                }
            });

            mCapturePhotoUriHolder = savedInstanceState != null?savedInstanceState.GetString(STATE_CAPTURE_PHOTO_URI) : "";

            var Extra_selection = Intent.GetParcelableExtra(ImageSelectActivity.EXTRA_SELECTION_SPEC);

            selectionSpec = Extra_selection as SelectionSpec;
            //  selectionSpec = (SelectionSpec)Intent.GetParcelableExtra(ImageSelectActivity.EXTRA_SELECTION_SPEC);
            MediaStoreCompat = new MediaStoreCompat(this, new Handler(Looper.MainLooper));

            UriSelecteds.OnCreate(savedInstanceState);
            UriSelecteds.PrepareSelectionSpec(selectionSpec);

            var Extra_uris = Intent.GetParcelableArrayListExtra(EXTRA_RESUME_LIST);
            var uris       = Extra_uris as IEnumerable <Uri>;

            if (uris != null)
            {
                UriSelecteds.AddRange(uris);
            }

            UriSelecteds.SetOnSelectionChange(new SelectionChange(commit));

            mGridView      = (GridView)FindViewById(Resource.Id.gridView);
            mListView      = (ListView)FindViewById(Resource.Id.listView);
            btnBack        = (ImageView)FindViewById(Resource.Id.btn_back);
            mListViewGroup = FindViewById(Resource.Id.listViewParent);
            mListViewGroup.SetOnClickListener(mOnClickFoldName);
            mFoldName  = (TextView)FindViewById(Resource.Id.foldName);
            galleryTip = (ImageView)FindViewById(Resource.Id.gallery_tip);
            LinearLayout selectFold = (LinearLayout)FindViewById(Resource.Id.selectFold);

            commit = (Button)FindViewById(Resource.Id.commit);
            commit.SetText("确定(0/" + selectionSpec.MaxSelectable + ")", TextView.BufferType.Normal);
            if (selectionSpec.IsSingleChoose)
            {
                commit.Visibility = ViewStates.Gone;
            }
            mFoldName.SetText("最近图片", TextView.BufferType.Normal);
            selectFold.SetOnClickListener(mOnClickFoldName);

            albumCollection.OnCreate(this, this, selectionSpec, mListView);
            albumCollection.LoadAlbums();
            mPhotoCollection.OnCreate(this, mGridView, UriSelecteds, selectionSpec);
            mPhotoCollection.LoadAllPhoto();

            commit.SetOnClickListener(new AnonymousOnClickListener((v) =>
            {
                if (UriSelecteds.IsEmpty)
                {
                    Toast.MakeText(ApplicationContext, "未选择图片", ToastLength.Long).Show();
                }
                else
                {
                    SetResult();
                }
            }));

            btnBack.SetOnClickListener(new AnonymousOnClickListener((v) => this.Finish()));

            if (selectionSpec.WillStartCamera())
            {
                ShowCameraAction();
            }
        }
        public SelectionSpec[] GetStorageTraversalSpec()
        {
            SelectionSpec ssFolders = new SelectionSpec();
            ssFolders.name = "visitFolders";

            TraversalSpec datacenterSpec = new TraversalSpec();
            datacenterSpec.name = "dcTodf";
            datacenterSpec.type = "Datacenter";
            datacenterSpec.path = "datastoreFolder";
            datacenterSpec.skip = false;
            datacenterSpec.selectSet = new SelectionSpec[] { ssFolders };

            TraversalSpec visitFolder = new TraversalSpec();
            visitFolder.type = "Folder";
            visitFolder.name = "visitFolders";
            visitFolder.path = "childEntity";
            visitFolder.skip = false;

            SelectionSpec[] ssSpecList = new SelectionSpec[] { new SelectionSpec(), new SelectionSpec() };
            ssSpecList[0] = datacenterSpec;
            ssSpecList[1] = ssFolders;

            visitFolder.selectSet = ssSpecList;
            return (new SelectionSpec[] { visitFolder });
        }
      /// <summary>
      /// Get Container contents for all childEntities accessible from rootFolder
      /// </summary>
      public void GetContainerContents() {
         // Create a Filter Spec to Retrieve Contents for...
        
          TraversalSpec rpToVm = new TraversalSpec();
          rpToVm.name = "rpToVm";
          rpToVm.type = "ResourcePool";
          rpToVm.path = "vm";
          rpToVm.skip = false;


          // Recurse through all ResourcePools

          TraversalSpec rpToRp = new TraversalSpec();
          rpToRp.name = "rpToRp";
          rpToRp.type = "ResourcePool";
          rpToRp.path = "resourcePool";
          rpToRp.skip = false;

          rpToRp.selectSet = new SelectionSpec[] { new SelectionSpec(), new SelectionSpec() };
          rpToRp.selectSet[0].name = "rpToRp";
          rpToRp.selectSet[1].name = "rpToVm";


          // Traversal through ResourcePool branch
          TraversalSpec crToRp = new TraversalSpec();
          crToRp.name = "crToRp";
          crToRp.type = "ComputeResource";
          crToRp.path = "resourcePool";
          crToRp.skip = false;
          crToRp.selectSet = new SelectionSpec[] { new SelectionSpec(), new SelectionSpec() };
          crToRp.selectSet[0].name = "rpToRp";
          crToRp.selectSet[1].name = "rpToVm";


          // Traversal through host branch
          TraversalSpec crToH = new TraversalSpec();
          crToH.name = "crToH";
          crToH.type = "ComputeResource";
          crToH.path = "host";
          crToH.skip = false;


          // Traversal through hostFolder branch
          TraversalSpec dcToHf = new TraversalSpec();
          dcToHf.name = "dcToHf";
          dcToHf.type = "Datacenter";
          dcToHf.path = "hostFolder";
          dcToHf.skip = false;
          dcToHf.selectSet = new SelectionSpec[] { new SelectionSpec() };
          dcToHf.selectSet[0].name = "visitFolders";


          // Traversal through vmFolder branch
          TraversalSpec dcToVmf = new TraversalSpec();
          dcToVmf.name = "dcToVmf";
          dcToVmf.type = "Datacenter";
          dcToVmf.path = "vmFolder";
          dcToVmf.skip = false;
          dcToVmf.selectSet = new SelectionSpec[] { new SelectionSpec() };
          dcToVmf.selectSet[0].name = "visitFolders";


          // Recurse through all Hosts
          TraversalSpec HToVm = new TraversalSpec();
          HToVm.name = "HToVm";
          HToVm.type = "HostSystem";
          HToVm.path = "vm";
          HToVm.skip = false;
          HToVm.selectSet = new SelectionSpec[] { new SelectionSpec() };
          HToVm.selectSet[0].name = "visitFolders";


          // Recurse thriugh the folders
          TraversalSpec visitFolders = new TraversalSpec();
          visitFolders.name = "visitFolders";
          visitFolders.type = "Folder";
          visitFolders.path = "childEntity";
          visitFolders.skip = false;
          visitFolders.selectSet = new SelectionSpec[] { new SelectionSpec(), new SelectionSpec(), new SelectionSpec(), new SelectionSpec(), new SelectionSpec(), new SelectionSpec(), new SelectionSpec() };
          visitFolders.selectSet[0].name = "visitFolders";
          visitFolders.selectSet[1].name = "dcToHf";
          visitFolders.selectSet[2].name = "dcToVmf";
          visitFolders.selectSet[3].name = "crToH";
          visitFolders.selectSet[4].name = "crToRp";
          visitFolders.selectSet[5].name = "HToVm";
          visitFolders.selectSet[6].name = "rpToVm";
          SelectionSpec[] selectionSpecs = new SelectionSpec[] { visitFolders, dcToVmf, dcToHf, crToH, crToRp, rpToRp, HToVm, rpToVm };

         PropertySpec[] propspecary = new PropertySpec[] { new PropertySpec() };
         propspecary[0].all = false;
         propspecary[0].allSpecified = true;
         propspecary[0].pathSet = new string[] { "name" };
         propspecary[0].type = "ManagedEntity";

         PropertyFilterSpec spec = new PropertyFilterSpec();
         spec.propSet = propspecary;
         spec.objectSet = new ObjectSpec[] { new ObjectSpec() };
         spec.objectSet[0].obj = _rootFolder;
         spec.objectSet[0].skip = false;
         spec.objectSet[0].selectSet =  selectionSpecs;

         // Recursively get all ManagedEntity ManagedObjectReferences 
         // and the "name" property for all ManagedEntities retrieved
         ObjectContent[] ocary = 
            _service.RetrieveProperties(
               _propCol, new PropertyFilterSpec[] { spec }
            );

         // If we get contents back. print them out.
         if (ocary != null) {
            ObjectContent oc = null;
            ManagedObjectReference mor = null;
            DynamicProperty[] pcary = null;
            DynamicProperty pc = null;
            for (int oci = 0; oci < ocary.Length; oci++) {
               oc = ocary[oci];
               mor = oc.obj;
               pcary = oc.propSet;

               Console.WriteLine("Object Type : " + mor.type);
               Console.WriteLine("Reference Value : " + mor.Value);

               if (pcary != null) {
                  for (int pci = 0; pci < pcary.Length; pci++) {
                     pc = pcary[pci];
                     Console.WriteLine("   Property Name : " + pc.name);
                     if (pc != null) {
                        if (!pc.val.GetType().IsArray) {
                           Console.WriteLine("   Property Value : " + pc.val);
                        } 
                        else {
                           Array ipcary = (Array)pc.val;
                           Console.WriteLine("Val : " + pc.val);
                           for (int ii = 0; ii < ipcary.Length; ii++) {
                              object oval = ipcary.GetValue(ii);
                              if (oval.GetType().Name.IndexOf("ManagedObjectReference") >= 0) {
                                 ManagedObjectReference imor = (ManagedObjectReference)oval;

                                 Console.WriteLine("Inner Object Type : " + imor.type);
                                 Console.WriteLine("Inner Reference Value : " + imor.Value);
                              } 
                              else {
                                 Console.WriteLine("Inner Property Value : " + oval);
                              }
                           }
                        }
                     }
                  }
               }
            }
         } 
         else {
            Console.WriteLine("No Managed Entities retrieved!");
         }
      }
Beispiel #13
0
        public PropertyFilterSpec[] NetworkSearchFilter()
        {
            PropertySpec        prop;
            List <PropertySpec> props = new List <PropertySpec>();

            TraversalSpec        trav = new TraversalSpec();
            List <SelectionSpec> list = new List <SelectionSpec>();

            SelectionSpec        sel       = new SelectionSpec();
            List <SelectionSpec> selectset = new List <SelectionSpec>();

            ObjectSpec         objectspec = new ObjectSpec();
            PropertyFilterSpec filter     = new PropertyFilterSpec();

            trav.name = "DatacenterTraversalSpec";
            trav.type = "Datacenter";
            trav.path = "networkFolder";

            sel.name = "FolderTraversalSpec";
            selectset.Add(sel);
            trav.selectSet = selectset.ToArray();
            list.Add(trav);

            trav      = new TraversalSpec();
            trav.name = "FolderTraversalSpec";
            trav.type = "Folder";
            trav.path = "childEntity";
            selectset.Clear();
            sel      = new SelectionSpec();
            sel.name = "DatacenterTraversalSpec";
            selectset.Add(sel);
            trav.selectSet = selectset.ToArray();
            list.Add(trav);

            prop         = new PropertySpec();
            prop.type    = "Datacenter";
            prop.pathSet = new string[] { "networkFolder", "name" };
            props.Add(prop);

            prop         = new PropertySpec();
            prop.type    = "Folder";
            prop.pathSet = new string[] { "childEntity", "name" };
            props.Add(prop);

            prop         = new PropertySpec();
            prop.type    = "VmwareDistributedVirtualSwitch";
            prop.pathSet = new string[] { "portgroup", "name", "parent", "uuid" };
            props.Add(prop);

            prop         = new PropertySpec();
            prop.type    = "DistributedVirtualPortgroup";
            prop.pathSet = new string[] { "name", "key" };
            props.Add(prop);

            objectspec           = new ObjectSpec();
            objectspec.obj       = _sic.rootFolder;
            objectspec.selectSet = list.ToArray();

            filter           = new PropertyFilterSpec();
            filter.propSet   = props.ToArray();
            filter.objectSet = new ObjectSpec[] { objectspec };
            PropertyFilterSpec[] _dvNetworkSearchFilters = new PropertyFilterSpec[] { filter };
            return(_dvNetworkSearchFilters);
        }
Beispiel #14
0
        /// <summary>
        /// Get Container contents for all childEntities accessible from rootFolder
        /// </summary>
        public void GetContainerContents()
        {
            // Create a Filter Spec to Retrieve Contents for...

            TraversalSpec rpToVm = new TraversalSpec();

            rpToVm.name = "rpToVm";
            rpToVm.type = "ResourcePool";
            rpToVm.path = "vm";
            rpToVm.skip = false;


            // Recurse through all ResourcePools

            TraversalSpec rpToRp = new TraversalSpec();

            rpToRp.name = "rpToRp";
            rpToRp.type = "ResourcePool";
            rpToRp.path = "resourcePool";
            rpToRp.skip = false;

            rpToRp.selectSet         = new SelectionSpec[] { new SelectionSpec(), new SelectionSpec() };
            rpToRp.selectSet[0].name = "rpToRp";
            rpToRp.selectSet[1].name = "rpToVm";


            // Traversal through ResourcePool branch
            TraversalSpec crToRp = new TraversalSpec();

            crToRp.name              = "crToRp";
            crToRp.type              = "ComputeResource";
            crToRp.path              = "resourcePool";
            crToRp.skip              = false;
            crToRp.selectSet         = new SelectionSpec[] { new SelectionSpec(), new SelectionSpec() };
            crToRp.selectSet[0].name = "rpToRp";
            crToRp.selectSet[1].name = "rpToVm";


            // Traversal through host branch
            TraversalSpec crToH = new TraversalSpec();

            crToH.name = "crToH";
            crToH.type = "ComputeResource";
            crToH.path = "host";
            crToH.skip = false;


            // Traversal through hostFolder branch
            TraversalSpec dcToHf = new TraversalSpec();

            dcToHf.name              = "dcToHf";
            dcToHf.type              = "Datacenter";
            dcToHf.path              = "hostFolder";
            dcToHf.skip              = false;
            dcToHf.selectSet         = new SelectionSpec[] { new SelectionSpec() };
            dcToHf.selectSet[0].name = "visitFolders";


            // Traversal through vmFolder branch
            TraversalSpec dcToVmf = new TraversalSpec();

            dcToVmf.name              = "dcToVmf";
            dcToVmf.type              = "Datacenter";
            dcToVmf.path              = "vmFolder";
            dcToVmf.skip              = false;
            dcToVmf.selectSet         = new SelectionSpec[] { new SelectionSpec() };
            dcToVmf.selectSet[0].name = "visitFolders";


            // Recurse through all Hosts
            TraversalSpec HToVm = new TraversalSpec();

            HToVm.name              = "HToVm";
            HToVm.type              = "HostSystem";
            HToVm.path              = "vm";
            HToVm.skip              = false;
            HToVm.selectSet         = new SelectionSpec[] { new SelectionSpec() };
            HToVm.selectSet[0].name = "visitFolders";


            // Recurse thriugh the folders
            TraversalSpec visitFolders = new TraversalSpec();

            visitFolders.name              = "visitFolders";
            visitFolders.type              = "Folder";
            visitFolders.path              = "childEntity";
            visitFolders.skip              = false;
            visitFolders.selectSet         = new SelectionSpec[] { new SelectionSpec(), new SelectionSpec(), new SelectionSpec(), new SelectionSpec(), new SelectionSpec(), new SelectionSpec(), new SelectionSpec() };
            visitFolders.selectSet[0].name = "visitFolders";
            visitFolders.selectSet[1].name = "dcToHf";
            visitFolders.selectSet[2].name = "dcToVmf";
            visitFolders.selectSet[3].name = "crToH";
            visitFolders.selectSet[4].name = "crToRp";
            visitFolders.selectSet[5].name = "HToVm";
            visitFolders.selectSet[6].name = "rpToVm";
            SelectionSpec[] selectionSpecs = new SelectionSpec[] { visitFolders, dcToVmf, dcToHf, crToH, crToRp, rpToRp, HToVm, rpToVm };

            PropertySpec[] propspecary = new PropertySpec[] { new PropertySpec() };
            propspecary[0].all          = false;
            propspecary[0].allSpecified = true;
            propspecary[0].pathSet      = new string[] { "name" };
            propspecary[0].type         = "ManagedEntity";

            PropertyFilterSpec spec = new PropertyFilterSpec();

            spec.propSet                = propspecary;
            spec.objectSet              = new ObjectSpec[] { new ObjectSpec() };
            spec.objectSet[0].obj       = _rootFolder;
            spec.objectSet[0].skip      = false;
            spec.objectSet[0].selectSet = selectionSpecs;

            // Recursively get all ManagedEntity ManagedObjectReferences
            // and the "name" property for all ManagedEntities retrieved
            ObjectContent[] ocary =
                _service.RetrieveProperties(
                    _propCol, new PropertyFilterSpec[] { spec }
                    );

            // If we get contents back. print them out.
            if (ocary != null)
            {
                ObjectContent          oc    = null;
                ManagedObjectReference mor   = null;
                DynamicProperty[]      pcary = null;
                DynamicProperty        pc    = null;
                for (int oci = 0; oci < ocary.Length; oci++)
                {
                    oc    = ocary[oci];
                    mor   = oc.obj;
                    pcary = oc.propSet;

                    Console.WriteLine("Object Type : " + mor.type);
                    Console.WriteLine("Reference Value : " + mor.Value);

                    if (pcary != null)
                    {
                        for (int pci = 0; pci < pcary.Length; pci++)
                        {
                            pc = pcary[pci];
                            Console.WriteLine("   Property Name : " + pc.name);
                            if (pc != null)
                            {
                                if (!pc.val.GetType().IsArray)
                                {
                                    Console.WriteLine("   Property Value : " + pc.val);
                                }
                                else
                                {
                                    Array ipcary = (Array)pc.val;
                                    Console.WriteLine("Val : " + pc.val);
                                    for (int ii = 0; ii < ipcary.Length; ii++)
                                    {
                                        object oval = ipcary.GetValue(ii);
                                        if (oval.GetType().Name.IndexOf("ManagedObjectReference") >= 0)
                                        {
                                            ManagedObjectReference imor = (ManagedObjectReference)oval;

                                            Console.WriteLine("Inner Object Type : " + imor.type);
                                            Console.WriteLine("Inner Reference Value : " + imor.Value);
                                        }
                                        else
                                        {
                                            Console.WriteLine("Inner Property Value : " + oval);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                Console.WriteLine("No Managed Entities retrieved!");
            }
        }
Beispiel #15
0
 private AlbumLoader(Context context, Uri uri, string[] projection, string selection, string[] selectionArgs, string sortOrder, SelectionSpec selectionSpec) : base(context, uri, projection, selection, selectionArgs, sortOrder)
 {
 }
        /// <summary>
        /// Create TraversalSpec for Datacenter
        /// </summary>
        /// <returns>SelectionSpec[]</returns>
        private SelectionSpec[] buildTraversalSpecForDatastoreToDatacenter()
        {
            // For Folder -> Folder recursion
            SelectionSpec sspecvfolders = new SelectionSpec();
            sspecvfolders.name = "VisitFolders";

            TraversalSpec visitFolders = new TraversalSpec();
            visitFolders.type = "Folder";
            visitFolders.path = "parent";
            visitFolders.skip = false;
            visitFolders.name = "VisitFolders";
            visitFolders.selectSet = new SelectionSpec[] { sspecvfolders };

            TraversalSpec datastoreToFolder = new TraversalSpec();
            datastoreToFolder.type = "Datastore";
            datastoreToFolder.path = "parent";
            datastoreToFolder.skip = false;
            datastoreToFolder.name = "DatastoreToFolder";
            datastoreToFolder.selectSet = new SelectionSpec[] { sspecvfolders };

            SelectionSpec[] speclist = new SelectionSpec[] { new SelectionSpec(), new SelectionSpec() };
            speclist[0] = datastoreToFolder;
            speclist[1] = visitFolders;
            return speclist;
        }
 public void PrepareSelectionSpec(SelectionSpec spec)
 {
     mSpec = spec;
 }
 ///<summary>
 /// Specifications to find all the VMs in a Datacenter and
 /// retrieve their name and runtime.powerState values.
 ///</summary>
 private static ObjectContent[] getVMs(ManagedObjectReference dcMoRef)
 {
     // The PropertySpec object specifies what properties
     // retrieve from what type of Managed Object
     PropertySpec pSpec = new PropertySpec();
     pSpec.type = "VirtualMachine";
     pSpec.pathSet = new String[] { "name", "runtime.powerState" };
     SelectionSpec recurseFolders = new SelectionSpec();
     recurseFolders.name = "folder2childEntity";
     TraversalSpec folder2childEntity = new TraversalSpec();
     folder2childEntity.type = "Folder";
     folder2childEntity.path = "childEntity";
     folder2childEntity.name = recurseFolders.name;
     folder2childEntity.selectSet =
        new SelectionSpec[] { recurseFolders };
     // Traverse from a Datacenter through the 'vmFolder' property
     TraversalSpec dc2vmFolder = new TraversalSpec();
     dc2vmFolder.type = "Datacenter";
     dc2vmFolder.path = "vmFolder";
     dc2vmFolder.selectSet =
        new SelectionSpec[] { folder2childEntity };
     ObjectSpec oSpec = new ObjectSpec();
     oSpec.obj = dcMoRef;
     oSpec.skip = true;
     oSpec.selectSet = new SelectionSpec[] { dc2vmFolder };
     PropertyFilterSpec pfSpec = new PropertyFilterSpec();
     pfSpec.propSet = new PropertySpec[] { pSpec };
     pfSpec.objectSet = new ObjectSpec[] { oSpec };
     return _service.RetrieveProperties(_sic.propertyCollector,
           new PropertyFilterSpec[] { pfSpec });
 }
 private static ObjectContent[] getHosts(ManagedObjectReference dcMoRef)
 {
     // PropertySpec specifies what properties to
     // retrieve from what type of Managed Object
     PropertySpec pSpec = new PropertySpec();
     pSpec.type = "HostSystem";
     pSpec.pathSet = new String[] { "name", "runtime.connectionState" };
     SelectionSpec recurseFolders = new SelectionSpec();
     recurseFolders.name = "folder2childEntity";
     TraversalSpec computeResource2host = new TraversalSpec();
     computeResource2host.type = "ComputeResource";
     computeResource2host.path = "host";
     TraversalSpec folder2childEntity = new TraversalSpec();
     folder2childEntity.type = "Folder";
     folder2childEntity.path = "childEntity";
     folder2childEntity.name = recurseFolders.name;
     // Add BOTH of the specifications to this specification
     folder2childEntity.selectSet = new SelectionSpec[] { recurseFolders };
     // Traverse from a Datacenter through
     // the 'hostFolder' property
     TraversalSpec dc2hostFolder = new TraversalSpec();
     dc2hostFolder.type = "Datacenter";
     dc2hostFolder.path = "hostFolder";
     dc2hostFolder.selectSet = new SelectionSpec[] { folder2childEntity };
     ObjectSpec oSpec = new ObjectSpec();
     oSpec.obj = dcMoRef;
     oSpec.skip = true;
     oSpec.selectSet = new SelectionSpec[] { dc2hostFolder };
     PropertyFilterSpec pfSpec = new PropertyFilterSpec();
     pfSpec.propSet = new PropertySpec[] { pSpec };
     pfSpec.objectSet = new ObjectSpec[] { oSpec };
     return _service.RetrieveProperties(
           _sic.propertyCollector,
              new PropertyFilterSpec[] { pfSpec });
 }
Beispiel #20
0
        private ObjectContent[] GetObjectProperties(string objectType, string[] properties, ManagedObjectReference o)
        {
            // Create a Filter Spec to Retrieve Contents for...
            TraversalSpec rpToVm = new TraversalSpec();

            rpToVm.name = "rpToVm";
            rpToVm.type = "ResourcePool";
            rpToVm.path = "vm";
            rpToVm.skip = false;

            // Recurse through all ResourcePools
            TraversalSpec rpToRp = new TraversalSpec();

            rpToRp.name = "rpToRp";
            rpToRp.type = "ResourcePool";
            rpToRp.path = "resourcePool";
            rpToRp.skip = false;

            rpToRp.selectSet         = new SelectionSpec[] { new SelectionSpec(), new SelectionSpec() };
            rpToRp.selectSet[0].name = "rpToRp";
            rpToRp.selectSet[1].name = "rpToVm";

            // Traversal through ResourcePool branch
            TraversalSpec crToRp = new TraversalSpec();

            crToRp.name              = "crToRp";
            crToRp.type              = "ComputeResource";
            crToRp.path              = "resourcePool";
            crToRp.skip              = false;
            crToRp.selectSet         = new SelectionSpec[] { new SelectionSpec(), new SelectionSpec() };
            crToRp.selectSet[0].name = "rpToRp";
            crToRp.selectSet[1].name = "rpToVm";

            // Traversal through host branch
            TraversalSpec crToH = new TraversalSpec();

            crToH.name = "crToH";
            crToH.type = "ComputeResource";
            crToH.path = "host";
            crToH.skip = false;

            // Traversal through hostFolder branch
            TraversalSpec dcToHf = new TraversalSpec();

            dcToHf.name              = "dcToHf";
            dcToHf.type              = "Datacenter";
            dcToHf.path              = "hostFolder";
            dcToHf.skip              = false;
            dcToHf.selectSet         = new SelectionSpec[] { new SelectionSpec() };
            dcToHf.selectSet[0].name = "visitFolders";

            // Traversal through vmFolder branch
            TraversalSpec dcToVmf = new TraversalSpec();

            dcToVmf.name              = "dcToVmf";
            dcToVmf.type              = "Datacenter";
            dcToVmf.path              = "vmFolder";
            dcToVmf.skip              = false;
            dcToVmf.selectSet         = new SelectionSpec[] { new SelectionSpec() };
            dcToVmf.selectSet[0].name = "visitFolders";

            // Recurse through all Hosts
            TraversalSpec HToVm = new TraversalSpec();

            HToVm.name              = "HToVm";
            HToVm.type              = "HostSystem";
            HToVm.path              = "vm";
            HToVm.skip              = false;
            HToVm.selectSet         = new SelectionSpec[] { new SelectionSpec() };
            HToVm.selectSet[0].name = "visitFolders";

            // Recurse thriugh the folders
            TraversalSpec visitFolders = new TraversalSpec();

            visitFolders.name              = "visitFolders";
            visitFolders.type              = "Folder";
            visitFolders.path              = "childEntity";
            visitFolders.skip              = false;
            visitFolders.selectSet         = new SelectionSpec[] { new SelectionSpec(), new SelectionSpec(), new SelectionSpec(), new SelectionSpec(), new SelectionSpec(), new SelectionSpec(), new SelectionSpec() };
            visitFolders.selectSet[0].name = "visitFolders";
            visitFolders.selectSet[1].name = "dcToHf";
            visitFolders.selectSet[2].name = "dcToVmf";
            visitFolders.selectSet[3].name = "crToH";
            visitFolders.selectSet[4].name = "crToRp";
            visitFolders.selectSet[5].name = "HToVm";
            visitFolders.selectSet[6].name = "rpToVm";
            SelectionSpec[] selectionSpecs = new SelectionSpec[] { visitFolders, dcToVmf, dcToHf, crToH, crToRp, rpToRp, HToVm, rpToVm };

            PropertySpec[] propspecary = new PropertySpec[] { new PropertySpec() };
            propspecary[0].all          = false;
            propspecary[0].allSpecified = true;
            //propspecary[0].pathSet = new string[] { "name" };
            // propspecary[0].type = "ManagedEntity";
            propspecary[0].pathSet = properties;
            propspecary[0].type    = objectType;

            PropertyFilterSpec spec = new PropertyFilterSpec();

            spec.propSet   = propspecary;
            spec.objectSet = new ObjectSpec[] { new ObjectSpec() };
            if (o == null)
            {
                spec.objectSet[0].obj = rootF;
            }
            else
            {
                spec.objectSet[0].obj = o;
            }
            spec.objectSet[0].skip      = false;
            spec.objectSet[0].selectSet = selectionSpecs;


            ObjectContent[] content = null;
            //try{
            content = service.RetrieveProperties(propertiesCollector, new PropertyFilterSpec[] { spec });
            //}
            //catch(Exception e){
            //Logger.Append("HUBRN", Severity.ERROR, "Error retrieving Vmware properties : "+e.ToString());
            //}
            return(content);
        }
Beispiel #21
0
 public static CursorLoader NewInstance(Context context, SelectionSpec selectionSpec)
 {
     return(new AlbumLoader(context, MediaStore.Images.Media.ExternalContentUri, PROJECTION, IS_LARGE_SIZE + BUCKET_GROUP_BY, new string[] { selectionSpec.MinPixels + "" }, BUCKET_ORDER_BY, selectionSpec));
 }