You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by mt...@apache.org on 2015/09/19 03:31:45 UTC

[39/50] git commit: updated refs/heads/sf-plugins to 157efc3

Add and use an API to retrieve the virtual networks of a particular cluster


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d8154cce
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d8154cce
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d8154cce

Branch: refs/heads/sf-plugins
Commit: d8154ccea5f366ffa20fb26592d97a10ff2937fd
Parents: c716155
Author: Mike Tutkowski <mi...@solidfire.com>
Authored: Mon Jul 20 15:39:58 2015 -0600
Committer: Mike Tutkowski <mi...@solidfire.com>
Committed: Fri Sep 18 19:28:22 2015 -0600

----------------------------------------------------------------------
 .../ListSolidFireVirtualNetworksCmd.java        |  8 ++++-
 .../solidfire/ApiSolidFireService2.java         |  4 ++-
 .../solidfire/ApiSolidFireServiceImpl2.java     | 31 ++++++++++++++++++--
 ui/plugins/sfAdministration/sfAdministration.js |  4 +--
 4 files changed, 41 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d8154cce/plugins/api/solidfire/src/org/apache/cloudstack/api/command/user/solidfire/ListSolidFireVirtualNetworksCmd.java
----------------------------------------------------------------------
diff --git a/plugins/api/solidfire/src/org/apache/cloudstack/api/command/user/solidfire/ListSolidFireVirtualNetworksCmd.java b/plugins/api/solidfire/src/org/apache/cloudstack/api/command/user/solidfire/ListSolidFireVirtualNetworksCmd.java
index 358dfe6..2f380e7 100644
--- a/plugins/api/solidfire/src/org/apache/cloudstack/api/command/user/solidfire/ListSolidFireVirtualNetworksCmd.java
+++ b/plugins/api/solidfire/src/org/apache/cloudstack/api/command/user/solidfire/ListSolidFireVirtualNetworksCmd.java
@@ -49,6 +49,9 @@ public class ListSolidFireVirtualNetworksCmd extends BaseListCmd {
     @Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = ApiSolidFireVirtualNetworkResponse.class, description = ApiHelper.VIRTUAL_NETWORK_ID_DESC)
     private Long _id;
 
+    @Parameter(name = ApiHelper.CLUSTER_NAME, type = CommandType.STRING, description = ApiHelper.SOLIDFIRE_CLUSTER_NAME_DESC, required = true)
+    private String _clusterName;
+
     @Parameter(name = ApiConstants.ZONE_ID, type = CommandType.UUID, entityType = ZoneResponse.class, description = ApiHelper.ZONE_ID_DESC)
     private Long _zoneId;
 
@@ -76,12 +79,15 @@ public class ListSolidFireVirtualNetworksCmd extends BaseListCmd {
             if (_id != null) {
                 sfVirtualNetworks = new ArrayList<>();
 
-                SfVirtualNetwork sfVirtualNetwork = _apiSolidFireService2.listSolidFireVirtualNetwork(_id);
+                SfVirtualNetwork sfVirtualNetwork = _apiSolidFireService2.listSolidFireVirtualNetworkById(_id);
 
                 if (sfVirtualNetwork != null) {
                     sfVirtualNetworks.add(sfVirtualNetwork);
                 }
             }
+            else if (_clusterName != null) {
+                sfVirtualNetworks = _apiSolidFireService2.listSolidFireVirtualNetworkByClusterName(_clusterName);
+            }
             else {
                 sfVirtualNetworks = _apiSolidFireService2.listSolidFireVirtualNetworks(_zoneId, _accountId);
             }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d8154cce/plugins/api/solidfire/src/org/apache/cloudstack/solidfire/ApiSolidFireService2.java
----------------------------------------------------------------------
diff --git a/plugins/api/solidfire/src/org/apache/cloudstack/solidfire/ApiSolidFireService2.java b/plugins/api/solidfire/src/org/apache/cloudstack/solidfire/ApiSolidFireService2.java
index 07f200a..e6ed7d2 100644
--- a/plugins/api/solidfire/src/org/apache/cloudstack/solidfire/ApiSolidFireService2.java
+++ b/plugins/api/solidfire/src/org/apache/cloudstack/solidfire/ApiSolidFireService2.java
@@ -42,7 +42,9 @@ public interface ApiSolidFireService2 extends PluggableService, Configurable {
 
     // ********** VLAN-related commands **********
 
-    SfVirtualNetwork listSolidFireVirtualNetwork(long id);
+    SfVirtualNetwork listSolidFireVirtualNetworkById(long id);
+
+    List<SfVirtualNetwork> listSolidFireVirtualNetworkByClusterName(String clusterName);
 
     // Long (instead of long) for both zoneId and accountId because they're optional and null is used to indicate that they're not present
     // zoneId and accountId are not dependent upon one another (i.e. either one can be null, both can be null, or both can be not be null)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d8154cce/plugins/api/solidfire/src/org/apache/cloudstack/solidfire/ApiSolidFireServiceImpl2.java
----------------------------------------------------------------------
diff --git a/plugins/api/solidfire/src/org/apache/cloudstack/solidfire/ApiSolidFireServiceImpl2.java b/plugins/api/solidfire/src/org/apache/cloudstack/solidfire/ApiSolidFireServiceImpl2.java
index b626c67..208e62a 100644
--- a/plugins/api/solidfire/src/org/apache/cloudstack/solidfire/ApiSolidFireServiceImpl2.java
+++ b/plugins/api/solidfire/src/org/apache/cloudstack/solidfire/ApiSolidFireServiceImpl2.java
@@ -244,8 +244,8 @@ public class ApiSolidFireServiceImpl2 extends AdapterBase implements APIChecker,
     }
 
     @Override
-    public SfVirtualNetwork listSolidFireVirtualNetwork(long id) {
-        s_logger.info("listSolidFireVirtualNetwork invoked");
+    public SfVirtualNetwork listSolidFireVirtualNetworkById(long id) {
+        s_logger.info("listSolidFireVirtualNetworkById invoked");
 
         SfVirtualNetwork sfVirtualNetwork = getSfVirtualNetwork(id);
 
@@ -255,6 +255,17 @@ public class ApiSolidFireServiceImpl2 extends AdapterBase implements APIChecker,
     }
 
     @Override
+    public List<SfVirtualNetwork> listSolidFireVirtualNetworkByClusterName(String clusterName) {
+        s_logger.info("listSolidFireVirtualNetworkByClusterName invoked");
+
+        verifyRootAdmin();
+
+        SfCluster sfCluster = getSfCluster(clusterName);
+
+        return filterVirtualNetworksByCluster(_sfVirtualNetworkDao.listAll(), sfCluster.getId());
+    }
+
+    @Override
     public List<SfVirtualNetwork> listSolidFireVirtualNetworks(Long zoneId, Long accountId) {
         s_logger.info("listSolidFireVirtualNetworks invoked");
 
@@ -979,6 +990,22 @@ public class ApiSolidFireServiceImpl2 extends AdapterBase implements APIChecker,
         _accountDetailsDao.persist(accountDetail);
     }
 
+    private List<SfVirtualNetwork> filterVirtualNetworksByCluster(List<SfVirtualNetworkVO> sfVirtualNetworkVOs, long clusterId) {
+        List<SfVirtualNetwork> sfVirtualNetworkVOsToReturn = new ArrayList<>();
+
+        if (sfVirtualNetworkVOs != null) {
+            for (SfVirtualNetworkVO sfVirtualNetworkVO : sfVirtualNetworkVOs) {
+                long sfClusterId = sfVirtualNetworkVO.getSfClusterId();
+
+                if (sfClusterId == clusterId) {
+                    sfVirtualNetworkVOsToReturn.add(sfVirtualNetworkVO);
+                }
+            }
+        }
+
+        return sfVirtualNetworkVOsToReturn;
+    }
+
     private List<SfVirtualNetworkVO> filterVirtualNetworksByZone(List<SfVirtualNetworkVO> sfVirtualNetworkVOs, long zoneId) {
         List<SfVirtualNetworkVO> sfVirtualNetworkVOsToReturn = new ArrayList<>();
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d8154cce/ui/plugins/sfAdministration/sfAdministration.js
----------------------------------------------------------------------
diff --git a/ui/plugins/sfAdministration/sfAdministration.js b/ui/plugins/sfAdministration/sfAdministration.js
index be1be98..46ac7f2 100644
--- a/ui/plugins/sfAdministration/sfAdministration.js
+++ b/ui/plugins/sfAdministration/sfAdministration.js
@@ -310,9 +310,9 @@
               account: { label: 'label.account' }
             },
             dataProvider: function(args) {
-              var virtualnetworkid = args.context.virtualnetwork[0].id;
+              var clustername = args.context.sfAdministration[0].name;
 
-              plugin.ui.apiCall('listSolidFireVirtualNetworks&' + virtualnetworkid, {
+              plugin.ui.apiCall('listSolidFireVirtualNetworks&clustername=' + clustername, {
                 success: function(json) {
                   var sfvirtualnetworksfiltered = [];
                   var sfvirtualnetworks = json.listsolidfirevirtualnetworksresponse.sfvirtualnetwork;