You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by fr...@apache.org on 2013/02/27 01:27:10 UTC

git commit: refs/heads/4.1 - CloudStack CLOUDSTACK-723 Enhanced baremetal servers support on Cisco UCS

Updated Branches:
  refs/heads/4.1 ba0d8c67b -> 696b4ed8e


CloudStack CLOUDSTACK-723
Enhanced baremetal servers support on Cisco UCS

change API response in line with new API response convention


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

Branch: refs/heads/4.1
Commit: 696b4ed8ea8ad5d24df96df56034c6ca908e9cf7
Parents: ba0d8c6
Author: frank <fr...@citrix.com>
Authored: Tue Feb 26 16:30:58 2013 -0800
Committer: frank <fr...@citrix.com>
Committed: Tue Feb 26 16:31:26 2013 -0800

----------------------------------------------------------------------
 .../org/apache/cloudstack/api/ApiConstants.java    |    4 +
 .../ucs/src/com/cloud/ucs/database/UcsBladeVO.java |    6 +-
 .../com/cloud/ucs/manager/AddUcsManagerCmd.java    |   13 +-
 .../cloud/ucs/manager/AddUcsManagerResponse.java   |   69 ----------
 .../ucs/manager/AssociateUcsProfileToBladeCmd.java |   11 +-
 .../AssociateUcsProfileToBladeResponse.java        |   22 +++
 ...sociateUcsProfileToBladesInClusterResponse.java |   22 ---
 .../src/com/cloud/ucs/manager/ListUcsBladeCmd.java |   70 ++++++++++
 .../com/cloud/ucs/manager/ListUcsManagerCmd.java   |    4 +-
 .../cloud/ucs/manager/ListUcsManagerResponse.java  |   58 --------
 .../com/cloud/ucs/manager/ListUcsProfileCmd.java   |    4 +-
 .../cloud/ucs/manager/ListUcsProfileResponse.java  |   36 -----
 .../com/cloud/ucs/manager/UcsBladeResponse.java    |   56 ++++++++
 .../ucs/src/com/cloud/ucs/manager/UcsManager.java  |   10 +-
 .../src/com/cloud/ucs/manager/UcsManagerImpl.java  |  101 ++++++++++----
 .../com/cloud/ucs/manager/UcsManagerResponse.java  |   72 ++++++++++
 .../com/cloud/ucs/manager/UcsProfileResponse.java  |   36 +++++
 17 files changed, 360 insertions(+), 234 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/696b4ed8/api/src/org/apache/cloudstack/api/ApiConstants.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/ApiConstants.java b/api/src/org/apache/cloudstack/api/ApiConstants.java
index 1d6199c..7efb7fe 100755
--- a/api/src/org/apache/cloudstack/api/ApiConstants.java
+++ b/api/src/org/apache/cloudstack/api/ApiConstants.java
@@ -440,6 +440,10 @@ public class ApiConstants {
     public static final String AUTOSCALE_USER_ID = "autoscaleuserid";
     public static final String BAREMETAL_DISCOVER_NAME = "baremetaldiscovername";
     public static final String UCS_DN = "ucsdn";
+    public static final String UCS_MANAGER_ID = "ucsmanagerid";
+    public static final String UCS_PROFILE_DN = "profiledn";
+    public static final String UCS_BLADE_DN = "bladedn";
+    public static final String UCS_BLADE_ID = "bladeid";
 
     public enum HostDetails {
         all, capacity, events, stats, min;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/696b4ed8/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeVO.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeVO.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeVO.java
old mode 100644
new mode 100755
index 527bc27..712f446
--- a/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeVO.java
+++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeVO.java
@@ -41,8 +41,8 @@ public class UcsBladeVO {
     private Long hostId;
     
     @Column(name="dn")
-    private String dn;
-
+    private String dn;
+    
     public long getId() {
         return id;
     }
@@ -81,5 +81,5 @@ public class UcsBladeVO {
 
     public void setUuid(String uuid) {
         this.uuid = uuid;
-    }
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/696b4ed8/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AddUcsManagerCmd.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AddUcsManagerCmd.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AddUcsManagerCmd.java
old mode 100644
new mode 100755
index 078add9..9348a72
--- a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AddUcsManagerCmd.java
+++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AddUcsManagerCmd.java
@@ -25,6 +25,7 @@ import org.apache.cloudstack.api.BaseCmd;
 import org.apache.cloudstack.api.BaseCmd.CommandType;
 import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.api.response.ZoneResponse;
 import org.apache.log4j.Logger;
 
 import com.cloud.exception.ConcurrentOperationException;
@@ -35,33 +36,33 @@ import com.cloud.exception.ResourceUnavailableException;
 import com.cloud.server.ManagementService;
 import com.cloud.user.Account;
 
-@APICommand(description="Adds a Ucs manager", responseObject=AddUcsManagerResponse.class)
+@APICommand(name="addUcsManager", description="Adds a Ucs manager", responseObject=UcsManagerResponse.class)
 public class AddUcsManagerCmd extends BaseCmd {
     public static final Logger s_logger = Logger.getLogger(AddUcsManagerCmd.class);
     
     @Inject
     private UcsManager mgr;
     
-    @Parameter(name=ApiConstants.ZONE_ID, type=CommandType.LONG, description="the Zone id for the ucs manager", required=true)
+    @Parameter(name=ApiConstants.ZONE_ID, type=CommandType.UUID, description="the Zone id for the ucs manager", entityType=ZoneResponse.class, required=true)
     private Long zoneId;
     
     @Parameter(name=ApiConstants.NAME, type=CommandType.STRING, description="the name of UCS manager")
     private String name;
     
-    @Parameter(name=ApiConstants.URL, type=CommandType.STRING, description="the name of UCS url")
+    @Parameter(name=ApiConstants.URL, type=CommandType.STRING, description="the name of UCS url", required=true)
     private String url;
     
-    @Parameter(name=ApiConstants.USERNAME, type=CommandType.STRING, description="the username of UCS")
+    @Parameter(name=ApiConstants.USERNAME, type=CommandType.STRING, description="the username of UCS", required=true)
     private String username;
     
-    @Parameter(name=ApiConstants.PASSWORD, type=CommandType.STRING, description="the password of UCS")
+    @Parameter(name=ApiConstants.PASSWORD, type=CommandType.STRING, description="the password of UCS", required=true)
     private String password;
     
     @Override
     public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException,
             ResourceAllocationException, NetworkRuleConflictException {
         try {
-            AddUcsManagerResponse rsp = mgr.addUcsManager(this);
+            UcsManagerResponse rsp = mgr.addUcsManager(this);
             rsp.setObjectName("ucsmanager");
             rsp.setResponseName(getCommandName());
             this.setResponseObject(rsp);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/696b4ed8/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AddUcsManagerResponse.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AddUcsManagerResponse.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AddUcsManagerResponse.java
deleted file mode 100644
index 98dfd04..0000000
--- a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AddUcsManagerResponse.java
+++ /dev/null
@@ -1,69 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.ucs.manager;
-
-import org.apache.cloudstack.api.ApiConstants;
-import org.apache.cloudstack.api.BaseResponse;
-
-import com.cloud.serializer.Param;
-import com.google.gson.annotations.SerializedName;
-
-public class AddUcsManagerResponse extends BaseResponse {
-    @SerializedName(ApiConstants.ID) @Param(description="the ID of the ucs manager")
-    private String id;
-    
-    @SerializedName(ApiConstants.NAME) @Param(description="the name of ucs manager")
-    private String name;
-    
-    @SerializedName(ApiConstants.URL) @Param(description="the url of ucs manager")
-    private String url;
-    
-    @SerializedName(ApiConstants.ZONE_ID) @Param(description="the zone ID of ucs manager")
-    private String zoneId;
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getUrl() {
-        return url;
-    }
-
-    public void setUrl(String url) {
-        this.url = url;
-    }
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getZoneId() {
-        return zoneId;
-    }
-
-    public void setZoneId(String zoneId) {
-        this.zoneId = zoneId;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/696b4ed8/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AssociateUcsProfileToBladeCmd.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AssociateUcsProfileToBladeCmd.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AssociateUcsProfileToBladeCmd.java
old mode 100644
new mode 100755
index cc59e42..5c65def
--- a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AssociateUcsProfileToBladeCmd.java
+++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AssociateUcsProfileToBladeCmd.java
@@ -19,8 +19,10 @@ package com.cloud.ucs.manager;
 import javax.inject.Inject;
 
 import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiConstants;
 import org.apache.cloudstack.api.ApiErrorCode;
 import org.apache.cloudstack.api.BaseCmd;
+import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.log4j.Logger;
 
@@ -30,15 +32,18 @@ import com.cloud.exception.NetworkRuleConflictException;
 import com.cloud.exception.ResourceAllocationException;
 import com.cloud.exception.ResourceUnavailableException;
 import com.cloud.user.Account;
-@APICommand(description="associate a profile to a blade", responseObject=AssociateUcsProfileToBladesInClusterResponse.class)
+@APICommand(name="associatesUscProfileToBlade", description="associate a profile to a blade", responseObject=AssociateUcsProfileToBladeResponse.class)
 public class AssociateUcsProfileToBladeCmd extends BaseCmd {
     public static final Logger s_logger = Logger.getLogger(AssociateUcsProfileToBladeCmd.class);
     
     @Inject
     private UcsManager mgr;
-    
+    
+    @Parameter(name=ApiConstants.UCS_MANAGER_ID, type=CommandType.UUID, description="ucs manager id", entityType=UcsManagerResponse.class, required=true)
     private Long ucsManagerId;
+    @Parameter(name=ApiConstants.UCS_PROFILE_DN, type=CommandType.STRING, description="profile dn", required=true)
     private String profileDn;
+    @Parameter(name=ApiConstants.UCS_BLADE_ID, type=CommandType.UUID, description="blade id", required=true)
     private Long bladeId;
     
     @Override
@@ -46,7 +51,7 @@ public class AssociateUcsProfileToBladeCmd extends BaseCmd {
             ResourceAllocationException, NetworkRuleConflictException {
         try {
             mgr.associateProfileToBlade(this);
-            AssociateUcsProfileToBladesInClusterResponse rsp = new AssociateUcsProfileToBladesInClusterResponse();
+            AssociateUcsProfileToBladeResponse rsp = new AssociateUcsProfileToBladeResponse();
             rsp.setResponseName(getCommandName());
             rsp.setObjectName("associateucsprofiletobalde");
             this.setResponseObject(rsp);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/696b4ed8/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AssociateUcsProfileToBladeResponse.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AssociateUcsProfileToBladeResponse.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AssociateUcsProfileToBladeResponse.java
new file mode 100755
index 0000000..bd6ebdd
--- /dev/null
+++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AssociateUcsProfileToBladeResponse.java
@@ -0,0 +1,22 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.ucs.manager;
+
+import org.apache.cloudstack.api.BaseResponse;
+
+public class AssociateUcsProfileToBladeResponse extends BaseResponse {
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/696b4ed8/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AssociateUcsProfileToBladesInClusterResponse.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AssociateUcsProfileToBladesInClusterResponse.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AssociateUcsProfileToBladesInClusterResponse.java
deleted file mode 100644
index f6cb0a6..0000000
--- a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/AssociateUcsProfileToBladesInClusterResponse.java
+++ /dev/null
@@ -1,22 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.ucs.manager;
-
-import org.apache.cloudstack.api.BaseResponse;
-
-public class AssociateUcsProfileToBladesInClusterResponse extends BaseResponse {
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/696b4ed8/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsBladeCmd.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsBladeCmd.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsBladeCmd.java
new file mode 100755
index 0000000..5061a44
--- /dev/null
+++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsBladeCmd.java
@@ -0,0 +1,70 @@
+package com.cloud.ucs.manager;
+
+import javax.inject.Inject;
+
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.ApiErrorCode;
+import org.apache.cloudstack.api.BaseCmd;
+import org.apache.cloudstack.api.Parameter;
+import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.api.response.ListResponse;
+import org.apache.log4j.Logger;
+
+import com.cloud.exception.ConcurrentOperationException;
+import com.cloud.exception.InsufficientCapacityException;
+import com.cloud.exception.NetworkRuleConflictException;
+import com.cloud.exception.ResourceAllocationException;
+import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.user.Account;
+
+@APICommand(name="listUcsBlade", description="List ucs blades", responseObject=UcsBladeResponse.class)    
+public class ListUcsBladeCmd extends BaseCmd {
+    public static final Logger s_logger = Logger.getLogger(ListUcsBladeCmd.class);
+    
+    @Inject
+    private UcsManager mgr;
+    
+    @Parameter(name=ApiConstants.UCS_MANAGER_ID, type=CommandType.UUID, description="ucs manager id", entityType=UcsManagerResponse.class, required=true)
+    private Long ucsManagerId;
+
+    public UcsManager getMgr() {
+        return mgr;
+    }
+
+    public void setMgr(UcsManager mgr) {
+        this.mgr = mgr;
+    }
+
+    public Long getUcsManagerId() {
+        return ucsManagerId;
+    }
+
+    public void setUcsManagerId(Long ucsManagerId) {
+        this.ucsManagerId = ucsManagerId;
+    }
+
+    @Override
+    public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException,
+            ResourceAllocationException, NetworkRuleConflictException {
+        try {
+            ListResponse<UcsBladeResponse> response = mgr.listUcsBlades(this);
+            response.setResponseName(getCommandName());
+            response.setObjectName("ucsblade");
+            this.setResponseObject(response);
+        } catch (Exception e) {
+            s_logger.warn(e.getMessage(), e);
+            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage());
+        }
+    }
+
+    @Override
+    public String getCommandName() {
+        return "listucsbladeresponse";
+    }
+
+    @Override
+    public long getEntityOwnerId() {
+        return Account.ACCOUNT_ID_SYSTEM;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/696b4ed8/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsManagerCmd.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsManagerCmd.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsManagerCmd.java
old mode 100644
new mode 100755
index 31662d9..f8cb702
--- a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsManagerCmd.java
+++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsManagerCmd.java
@@ -34,7 +34,7 @@ import com.cloud.exception.ResourceAllocationException;
 import com.cloud.exception.ResourceUnavailableException;
 import com.cloud.server.ManagementService;
 import com.cloud.user.Account;
-@APICommand(description="List ucs manager", responseObject=ListUcsManagerResponse.class)
+@APICommand(description="List ucs manager", responseObject=UcsManagerResponse.class)
 public class ListUcsManagerCmd extends BaseCmd {
     public static final Logger s_logger = Logger.getLogger(ListUcsManagerCmd.class);
     
@@ -48,7 +48,7 @@ public class ListUcsManagerCmd extends BaseCmd {
     public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException,
             ResourceAllocationException, NetworkRuleConflictException {
         try {
-            ListResponse<ListUcsManagerResponse> response  = mgr.listUcsManager(this);            
+            ListResponse<UcsManagerResponse> response  = mgr.listUcsManager(this);            
             response.setResponseName(getCommandName());
             response.setObjectName("ucsmanager");
             this.setResponseObject(response);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/696b4ed8/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsManagerResponse.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsManagerResponse.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsManagerResponse.java
deleted file mode 100644
index 450d59c..0000000
--- a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsManagerResponse.java
+++ /dev/null
@@ -1,58 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.ucs.manager;
-
-import org.apache.cloudstack.api.ApiConstants;
-import org.apache.cloudstack.api.BaseResponse;
-
-import com.cloud.serializer.Param;
-import com.google.gson.annotations.SerializedName;
-
-public class ListUcsManagerResponse extends BaseResponse {
-    @SerializedName(ApiConstants.ID) @Param(description="id of ucs manager")
-    private String id;
-    
-    @SerializedName(ApiConstants.NAME) @Param(description="name of ucs manager")
-    private String name;
-    
-    @SerializedName(ApiConstants.ZONE_ID) @Param(description="zone id the ucs manager belongs to")
-    private String zoneId;
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getZoneId() {
-        return zoneId;
-    }
-
-    public void setZoneId(String zoneId) {
-        this.zoneId = zoneId;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/696b4ed8/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsProfileCmd.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsProfileCmd.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsProfileCmd.java
old mode 100644
new mode 100755
index 7cbbe14..53d3289
--- a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsProfileCmd.java
+++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsProfileCmd.java
@@ -35,7 +35,7 @@ import com.cloud.exception.ResourceAllocationException;
 import com.cloud.exception.ResourceUnavailableException;
 import com.cloud.server.ManagementService;
 import com.cloud.user.Account;
-@APICommand(description="List profile in ucs manager", responseObject=ListUcsProfileResponse.class)
+@APICommand(description="List profile in ucs manager", responseObject=UcsProfileResponse.class)
 public class ListUcsProfileCmd extends BaseCmd {
     public static final Logger s_logger = Logger.getLogger(ListUcsProfileCmd.class);
     
@@ -56,7 +56,7 @@ public class ListUcsProfileCmd extends BaseCmd {
     public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException,
             ResourceAllocationException, NetworkRuleConflictException {
         try {
-            ListResponse<ListUcsProfileResponse> response = mgr.listUcsProfiles(this);
+            ListResponse<UcsProfileResponse> response = mgr.listUcsProfiles(this);
             response.setResponseName(getCommandName());
             response.setObjectName("ucsprofile");
             this.setResponseObject(response);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/696b4ed8/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsProfileResponse.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsProfileResponse.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsProfileResponse.java
deleted file mode 100644
index c29d1d0..0000000
--- a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/ListUcsProfileResponse.java
+++ /dev/null
@@ -1,36 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.ucs.manager;
-
-import org.apache.cloudstack.api.ApiConstants;
-import org.apache.cloudstack.api.BaseResponse;
-
-import com.cloud.serializer.Param;
-import com.google.gson.annotations.SerializedName;
-
-public class ListUcsProfileResponse extends BaseResponse {
-    @SerializedName(ApiConstants.UCS_DN) @Param(description="the dn of ucs profile")
-    private String dn;
-
-    public String getDn() {
-        return dn;
-    }
-
-    public void setDn(String dn) {
-        this.dn = dn;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/696b4ed8/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsBladeResponse.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsBladeResponse.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsBladeResponse.java
new file mode 100755
index 0000000..2dd20c7
--- /dev/null
+++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsBladeResponse.java
@@ -0,0 +1,56 @@
+package com.cloud.ucs.manager;
+
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.BaseResponse;
+import org.apache.cloudstack.api.EntityReference;
+
+import com.cloud.serializer.Param;
+import com.cloud.ucs.database.UcsBladeVO;
+import com.google.gson.annotations.SerializedName;
+@EntityReference(value=UcsBladeVO.class)
+public class UcsBladeResponse extends BaseResponse {
+    @SerializedName(ApiConstants.ID)
+    @Param(description = "ucs blade id")
+    private String id;
+    @SerializedName(ApiConstants.UCS_MANAGER_ID)
+    @Param(description = "ucs manager id")
+    private String ucsManagerId;
+    @SerializedName(ApiConstants.HOST_ID)
+    @Param(description = "cloudstack host id this blade associates to")
+    private String hostId;
+    @SerializedName(ApiConstants.UCS_BLADE_DN)
+    @Param(description = "ucs blade dn")
+    private String dn;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+    
+    public String getUcsManagerId() {
+        return ucsManagerId;
+    }
+
+    public void setUcsManagerId(String ucsManagerId) {
+        this.ucsManagerId = ucsManagerId;
+    }
+
+    public String getHostId() {
+        return hostId;
+    }
+
+    public void setHostId(String hostId) {
+        this.hostId = hostId;
+    }
+
+    public String getDn() {
+        return dn;
+    }
+
+    public void setDn(String dn) {
+        this.dn = dn;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/696b4ed8/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManager.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManager.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManager.java
old mode 100644
new mode 100755
index 2e8040a..a999637
--- a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManager.java
+++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManager.java
@@ -21,11 +21,13 @@ import org.apache.cloudstack.api.response.ListResponse;
 import com.cloud.utils.component.Manager;
 
 public interface UcsManager extends Manager {
-    AddUcsManagerResponse addUcsManager(AddUcsManagerCmd cmd);
+    UcsManagerResponse addUcsManager(AddUcsManagerCmd cmd);
     
-    ListResponse<ListUcsProfileResponse> listUcsProfiles(ListUcsProfileCmd cmd);
+    ListResponse<UcsProfileResponse> listUcsProfiles(ListUcsProfileCmd cmd);
     
-    ListResponse<ListUcsManagerResponse> listUcsManager(ListUcsManagerCmd cmd);
+    ListResponse<UcsManagerResponse> listUcsManager(ListUcsManagerCmd cmd);
 
-    void associateProfileToBlade(AssociateUcsProfileToBladeCmd cmd);
+    void associateProfileToBlade(AssociateUcsProfileToBladeCmd cmd);
+    
+    ListResponse<UcsBladeResponse> listUcsBlades(ListUcsBladeCmd cmd);
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/696b4ed8/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerImpl.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerImpl.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerImpl.java
old mode 100644
new mode 100755
index 356113d..18d3475
--- a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerImpl.java
+++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerImpl.java
@@ -42,8 +42,11 @@ import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
 import com.cloud.dc.ClusterDetailsDao;
+import com.cloud.dc.DataCenterVO;
 import com.cloud.dc.dao.ClusterDao;
+import com.cloud.dc.dao.DataCenterDao;
 import com.cloud.host.HostVO;
+import com.cloud.host.dao.HostDao;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
 import com.cloud.org.Cluster;
 import com.cloud.resource.ResourceService;
@@ -78,8 +81,15 @@ public class UcsManagerImpl implements UcsManager {
     private ClusterDetailsDao clusterDetailsDao;
     @Inject
     private UcsBladeDao bladeDao;
+    @Inject
+    private HostDao hostDao;
+    @Inject
+    private DataCenterDao dcDao;
 
-    private Map<Long, String> cookies = new HashMap<Long, String>();
+    private Map<Long, String> cookies = new HashMap<Long, String>();
+    private String name;
+    private int runLevel;
+    private Map<String, Object> params;
 
     @Override
     public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
@@ -98,7 +108,7 @@ public class UcsManagerImpl implements UcsManager {
 
     @Override
     public String getName() {
-        return "UcsManager";
+        return name;
     }
 
     private void discoverBlades(UcsManagerVO ucsMgrVo) {
@@ -114,7 +124,7 @@ public class UcsManagerImpl implements UcsManager {
     
     @Override
     @DB
-    public AddUcsManagerResponse addUcsManager(AddUcsManagerCmd cmd) {
+    public UcsManagerResponse addUcsManager(AddUcsManagerCmd cmd) {
         UcsManagerVO vo = new UcsManagerVO();
         vo.setUuid(UUID.randomUUID().toString());
         vo.setPassword(cmd.getPassword());
@@ -127,7 +137,7 @@ public class UcsManagerImpl implements UcsManager {
         txn.start();
         ucsDao.persist(vo);
         txn.commit();
-        AddUcsManagerResponse rsp = new AddUcsManagerResponse();
+        UcsManagerResponse rsp = new UcsManagerResponse();
         rsp.setId(String.valueOf(vo.getId()));
         rsp.setName(vo.getName());
         rsp.setUrl(vo.getUrl());
@@ -175,12 +185,12 @@ public class UcsManagerImpl implements UcsManager {
     }
 
     @Override
-    public ListResponse<ListUcsProfileResponse> listUcsProfiles(ListUcsProfileCmd cmd) {
+    public ListResponse<UcsProfileResponse> listUcsProfiles(ListUcsProfileCmd cmd) {
         List<UcsProfile> profiles = getUcsProfiles(cmd.getUcsManagerId());
-        ListResponse<ListUcsProfileResponse> response = new ListResponse<ListUcsProfileResponse>();
-        List<ListUcsProfileResponse> rs = new ArrayList<ListUcsProfileResponse>();
+        ListResponse<UcsProfileResponse> response = new ListResponse<UcsProfileResponse>();
+        List<UcsProfileResponse> rs = new ArrayList<UcsProfileResponse>();
         for (UcsProfile p : profiles) {
-            ListUcsProfileResponse r = new ListUcsProfileResponse();
+            UcsProfileResponse r = new UcsProfileResponse();
             r.setObjectName("ucsprofile");
             r.setDn(p.getDn());
             rs.add(r);
@@ -250,55 +260,88 @@ public class UcsManagerImpl implements UcsManager {
         }
         
         s_logger.debug(String.format("successfully associated profile[%s] to blade[%s]", pdn, bvo.getDn()));
-    }
+    }
+    
+    private String hostIdToUuid(Long hostId) {
+        HostVO vo = hostDao.findById(hostId);
+        return vo.getUuid();
+    }
+    
+    private String zoneIdToUuid(Long zoneId) {
+        DataCenterVO vo = dcDao.findById(zoneId);
+        return vo.getUuid();
+    }
+    
+    private String ucsManagerIdToUuid(Long ucsMgrId) {
+        UcsManagerVO vo = ucsDao.findById(ucsMgrId); 
+        return vo.getUuid();
+    }
 
     @Override
-    public ListResponse<ListUcsManagerResponse> listUcsManager(ListUcsManagerCmd cmd) {
+    public ListResponse<UcsManagerResponse> listUcsManager(ListUcsManagerCmd cmd) {
         SearchCriteriaService<UcsManagerVO, UcsManagerVO> serv = SearchCriteria2.create(UcsManagerVO.class);
         serv.addAnd(serv.getEntity().getZoneId(), Op.EQ, cmd.getZoneId());
         List<UcsManagerVO> vos = serv.list();
 
-        List<ListUcsManagerResponse> rsps = new ArrayList<ListUcsManagerResponse>(vos.size());
+        List<UcsManagerResponse> rsps = new ArrayList<UcsManagerResponse>(vos.size());
         for (UcsManagerVO vo : vos) {
-            ListUcsManagerResponse rsp = new ListUcsManagerResponse();
+            UcsManagerResponse rsp = new UcsManagerResponse();
             rsp.setObjectName("ucsmanager");
-            rsp.setId(String.valueOf(vo.getId()));
-            rsp.setName(vo.getName());
-            rsp.setZoneId(String.valueOf(vo.getZoneId()));
+            rsp.setId(vo.getUuid());
+            rsp.setName(vo.getName());
+            rsp.setUrl(vo.getUrl());
+            rsp.setZoneId(zoneIdToUuid(vo.getZoneId()));
             rsps.add(rsp);
         }
-        ListResponse<ListUcsManagerResponse> response = new ListResponse<ListUcsManagerResponse>();
+        ListResponse<UcsManagerResponse> response = new ListResponse<UcsManagerResponse>();
         response.setResponses(rsps);
         return response;
+    }
+    
+    public ListResponse<UcsBladeResponse> listUcsBlades(ListUcsBladeCmd cmd) {
+        SearchCriteriaService<UcsBladeVO, UcsBladeVO> serv = SearchCriteria2.create(UcsBladeVO.class);
+        serv.addAnd(serv.getEntity().getUcsManagerId(), Op.EQ, cmd.getUcsManagerId());
+        List<UcsBladeVO> vos = serv.list();
+        
+        List<UcsBladeResponse> rsps = new ArrayList<UcsBladeResponse>(vos.size());
+        for (UcsBladeVO vo : vos) {
+            UcsBladeResponse rsp = new UcsBladeResponse();
+            rsp.setObjectName("ucsblade");
+            rsp.setId(vo.getUuid());
+            rsp.setDn(vo.getDn());
+            rsp.setHostId(hostIdToUuid(vo.getHostId()));
+            rsp.setUcsManagerId(ucsManagerIdToUuid(vo.getUcsManagerId()));
+            rsps.add(rsp);
+        }
+        
+        ListResponse<UcsBladeResponse> response = new ListResponse<UcsBladeResponse>();
+        response.setResponses(rsps);
+        
+        return response;
     }
 
     @Override
-    public void setName(String name) {
-        // TODO Auto-generated method stub
-        
+    public void setName(String name) {
+        this.name = name;
     }
 
     @Override
-    public void setConfigParams(Map<String, Object> params) {
-        // TODO Auto-generated method stub
-        
+    public void setConfigParams(Map<String, Object> params) {
+        this.params = params;
     }
 
     @Override
     public Map<String, Object> getConfigParams() {
-        // TODO Auto-generated method stub
-        return null;
+        return this.params;
     }
 
     @Override
     public int getRunLevel() {
-        // TODO Auto-generated method stub
-        return 0;
+        return runLevel;
     }
 
     @Override
-    public void setRunLevel(int level) {
-        // TODO Auto-generated method stub
-        
+    public void setRunLevel(int level) {
+        this.runLevel = level;
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/696b4ed8/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerResponse.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerResponse.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerResponse.java
new file mode 100755
index 0000000..634ee81
--- /dev/null
+++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerResponse.java
@@ -0,0 +1,72 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.ucs.manager;
+
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.EntityReference;
+
+import org.apache.cloudstack.api.BaseResponse;
+
+import com.cloud.serializer.Param;
+import com.cloud.ucs.database.UcsManagerVO;
+import com.google.gson.annotations.SerializedName;
+@EntityReference(value=UcsManagerVO.class)
+public class UcsManagerResponse extends BaseResponse {
+    @SerializedName(ApiConstants.ID) @Param(description="the ID of the ucs manager")
+    private String id;
+    
+    @SerializedName(ApiConstants.NAME) @Param(description="the name of ucs manager")
+    private String name;
+    
+    @SerializedName(ApiConstants.URL) @Param(description="the url of ucs manager")
+    private String url;
+    
+    @SerializedName(ApiConstants.ZONE_ID) @Param(description="the zone ID of ucs manager")
+    private String zoneId;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getZoneId() {
+        return zoneId;
+    }
+
+    public void setZoneId(String zoneId) {
+        this.zoneId = zoneId;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/696b4ed8/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsProfileResponse.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsProfileResponse.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsProfileResponse.java
new file mode 100755
index 0000000..1bbd2ca
--- /dev/null
+++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsProfileResponse.java
@@ -0,0 +1,36 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.ucs.manager;
+
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.BaseResponse;
+
+import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
+
+public class UcsProfileResponse extends BaseResponse {
+    @SerializedName(ApiConstants.UCS_DN) @Param(description="ucs profile dn")
+    private String dn;
+
+    public String getDn() {
+        return dn;
+    }
+
+    public void setDn(String dn) {
+        this.dn = dn;
+    }
+}