Quantcast
Viewing all articles
Browse latest Browse all 240675

Re: Updating Inventory list on left side of the screen

Hi Laurent,

     

      Please see the attached code snippets of Plugin.xml , UI layer , Service layer.  

 

 

Plugin_Snippet.xml

             

        <?xml version="1.0" encoding="UTF-8"?>

                ...

                ...

                <plugin

   moduleUri="ClusterApp.swf" defaultBundle="com.vmware.samples">

             

                <extension>

      <extendedPoint>vise.navigator.nodespecs</extendedPoint>

      <object>

         <title>#{clusterAppCategory}</title>

         <parentUid>com.vmware.samples.ClusterAppHomevi</parentUid>      

      </object>

     </extension>

 

     <!--cluster List -->

    <templateInstance>

       <templateId>vsphere.core.inventorylist.objectCollectionTemplate</templateId>

       <variable value="com.vmware.samples.clusterCollection"/>

       <variable value="#{clusterLabel}"/>

       <variable value="#{cluster}"/>

       <variable value="samples:cluster"/>

       <variable value="com.vmware.samples.cluster.list"/>

       <variable value="com.vmware.samples.clusterAppCategory"/>

    </templateInstance>

             

     <!--Virtual Machine List -->

    <templateInstance>

       <templateId>vsphere.core.inventorylist.objectCollectionTemplate</templateId>

       <variable value="com.vmware.samples.virtualmachineCollection"/>

       <variable value="#{vmLabel}"/>

       <variable value="#{vm}"/>

       <variable value="samples:VirtualMachine"/>

       <variable value="com.vmware.samples.virtualmachine.list"/>

       <variable value="com.vmware.samples.clusterAppCategory"/>

    </templateInstance>

             

       <!--Backup List -->

      <templateInstance>

       <templateId>vsphere.core.inventorylist.objectCollectionTemplate</templateId>

       <variable value="com.vmware.samples.backupCollection"/>

       <variable value="#{backupLabel}"/>

       <variable value="#{snapshot}"/>

       <variable value="samples:Backup"/>

       <variable value="com.vmware.samples.backup.list"/>

       <variable value="com.vmware.samples.clusterAppCategory"/>

     </templateInstance>

                ..

                ..

    </plugin>

             

   UI Layer Call:

 

                _backupProxy.setBackup(_view.backUpDetails,onSetBackupResult);

 

                _backupProxy = ServiceProxy.as

                setBackup = remote method on service layer

                _view.backUpDetails = BackupDetails (Remote Object)

                onSetBackupResult = Method Return Event

 

                //Result Event Handler Code

                private function onSetBackupResult(event:MethodReturnEvent):void

                {

                                                var result:BackupDetails;

                                                result = event.result as BackupDetails;

                                                if (event.error != null) {

                                                                Alert.show("Error calling setSettings: " + event.error.message);

                                                                return;

                                                }

                                                else

                                                {

                                                                // IReference object received from service layer after successful backup operation

                                                                objectVar= result.backupResourceId;

                                                             

                                                                //Dispatch Event invocation of Backup entity

                                                                var mce:ModelChangeEvent = ModelChangeEvent.newSingleObjectChangeEvent(

                                                                                objectVar,

                                                                                OperationType.ADD);

                                                                var dispatched:Boolean;

                                                                dispatched = dispatchEvent(mce);

                                                }

                }

 

             

Service Layer Call:

 

                public BackupDetails setBackup(BackupDetails settings) {

                                String result = Constants.EMPTY_STRING;

                                // Check for the relevant model object

                                ModelObject object = (ModelObject) EntityResolver.getEntity(settings.resourceId, _objectStore,RESOURCE_RESOLVER);

                             

                                BackupDAO backupDAOObject = new BackupDAO();

                                ServiceStub serviceStub = ServiceInstance

                                                                .get_ServiceStub_Instance();

                                try

                                {

                                                if (object instanceof VirtualMachine) {

                                                                VirtualMachine virtualMachine = (VirtualMachine) object;

                                                                result = backupDAOObject.backupVM(serviceStub, virtualMachine, settings);

                                                }

                                              

                                                //Here we are updating data store entities by calling server and getting the latest data for each entities

                                                refreshDataStore();

                                             

                                } catch (Exception ex)

                                {

                                                //Here we are updating data store entities by calling server and getting the latest data for each entities

                                                refreshDataStore();

                                }

                                ModelObject[] modelObjects = new ModelObject[_objectStore.values().size()];

                                _objectStore.values().toArray(modelObjects);

                                Backup backup = null;

                                URI objectUri = null;

                                StringBuilder backupNameSubStr = new StringBuilder(settings.backupName);

                                backupNameSubStr.append(Constants.UNDER_SCORE);

                                for(int count = 0 ; count < modelObjects.length ; count++)

                                {

                                                if(modelObjects[count] instanceof Backup)

                                                {

                                                                backup = (Backup)modelObjects[count];

                                                                if(backup.getSnapshotName().contains(backupNameSubStr.toString()))

                                                                {

                                                                                objectUri = backup.getUtil().getUri(RESOURCE_RESOLVER);

                                                                                break;

                                                                }

                                                }

                                }

                                // IReference object of backup is being sent back to service layer

                                settings.backupResourceId = objectUri;

                              

                                settings.backupResponse = result;

                                return settings;

                }


Viewing all articles
Browse latest Browse all 240675

Trending Articles