this.inputs.add(input);
     }
 
+    public void setType(String type) {
+        this.type = type;
+    }
+
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;
 
 
 import org.onap.usecaseui.server.bean.lcm.ServiceTemplateInput;
 import org.onap.usecaseui.server.service.lcm.ServiceTemplateService;
+import org.onap.usecaseui.server.service.lcm.domain.aai.bean.SDNCController;
 import org.onap.usecaseui.server.service.lcm.domain.aai.bean.VimInfo;
 import org.onap.usecaseui.server.service.lcm.domain.sdc.bean.SDCServiceTemplate;
 import org.slf4j.Logger;
     public List<VimInfo> getLocations(){
         return serviceTemplateService.listVim();
     }
+
+    @ResponseBody
+    @RequestMapping(value = {"/uui-lcm/sdnc-controllers/"}, method = RequestMethod.GET , produces = "application/json")
+    public List<SDNCController> getSDNCControllers(){
+        return serviceTemplateService.listSDNCControllers();
+    }
 }
 
 package org.onap.usecaseui.server.service.lcm;
 
 import org.onap.usecaseui.server.bean.lcm.ServiceTemplateInput;
+import org.onap.usecaseui.server.service.lcm.domain.aai.bean.SDNCController;
 import org.onap.usecaseui.server.service.lcm.domain.aai.bean.VimInfo;
 import org.onap.usecaseui.server.service.lcm.domain.sdc.bean.SDCServiceTemplate;
 
     ServiceTemplateInput fetchServiceTemplateInput(String uuid, String toscaModelPath);
 
     List<VimInfo> listVim();
+
+    List<SDNCController> listSDNCControllers();
 }
\ No newline at end of file
 
 import retrofit2.http.Headers;
 import retrofit2.http.Path;
 
-import java.util.List;
-
 public interface AAIService {
 
     @Headers({
 //    @GET("/api/aai-business/v11/customers/customer/{global-customer-id}/service-subscriptions")
     @GET("/api/aai-business/v11/customers/customer/{global-customer-id}/service-subscriptions")
     Call<ServiceSubscriptionRsp> listServiceSubscriptions(@Path("global-customer-id") String customerId);
+
+    @Headers({
+            "X-TransactionId: 7777",
+            "X-FromAppId: uui",
+            "Authorization: Basic QUFJOkFBSQ==",
+            "Accept: application/json"
+    })
+    @GET("/api/aai-externalSystem/v11/esr-thirdparty-sdnc-list")
+    Call<SDNCControllerRsp> listSdncControllers();
 }
 
--- /dev/null
+/**
+ * Copyright 2016-2017 ZTE Corporation.
+ *
+ * Licensed 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 org.onap.usecaseui.server.service.lcm.domain.aai.bean;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(ignoreUnknown=true)
+public class SDNCController {
+
+    private String sdncId;
+
+    private String location;
+
+    @JsonProperty("thirdparty-sdnc-id")
+    public String getSdncId() {
+        return sdncId;
+    }
+
+    @JsonProperty("thirdparty-sdnc-id")
+    public void setSdncId(String sdncId) {
+        this.sdncId = sdncId;
+    }
+
+    @JsonProperty("location")
+    public String getLocation() {
+        return location;
+    }
+
+    @JsonProperty("location")
+    public void setLocation(String location) {
+        this.location = location;
+    }
+}
 
--- /dev/null
+/**
+ * Copyright 2016-2017 ZTE Corporation.
+ *
+ * Licensed 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 org.onap.usecaseui.server.service.lcm.domain.aai.bean;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import java.util.List;
+
+public class SDNCControllerRsp {
+
+    private List<SDNCController> esrThirdpartySdncList;
+
+    @JsonProperty("esr-thirdparty-sdnc-list")
+    public List<SDNCController> getEsrThirdpartySdncList() {
+        return esrThirdpartySdncList;
+    }
+
+    @JsonProperty("esr-thirdparty-sdnc-list")
+    public void setEsrThirdpartySdncList(List<SDNCController> esrThirdpartySdncList) {
+        this.esrThirdpartySdncList = esrThirdpartySdncList;
+    }
+}
 
 import org.onap.usecaseui.server.bean.lcm.TemplateInput;
 import org.onap.usecaseui.server.service.lcm.ServiceTemplateService;
 import org.onap.usecaseui.server.service.lcm.domain.aai.AAIService;
+import org.onap.usecaseui.server.service.lcm.domain.aai.bean.SDNCController;
+import org.onap.usecaseui.server.service.lcm.domain.aai.bean.SDNCControllerRsp;
 import org.onap.usecaseui.server.service.lcm.domain.aai.bean.VimInfo;
 import org.onap.usecaseui.server.service.lcm.domain.aai.bean.VimInfoRsp;
 import org.onap.usecaseui.server.service.lcm.domain.aai.exceptions.AAIException;
         List<TemplateInput> serviceInputs = getServiceInputs(inputsMap.values());
         serviceTemplateInput.addInputs(serviceInputs);
         if (isVF) {
+            serviceTemplateInput.setType("VF");
             appendLocationParameters(serviceTemplateInput, tosca);
             appendSdnControllerParameter(serviceTemplateInput);
         }
     private void appendLocationParameters(ServiceTemplateInput serviceTemplateInput, ToscaTemplate tosca) {
         for (NodeTemplate nodeTemplate : tosca.getNodeTemplates()) {
             String type = nodeTemplate.getMetaData().getValue("type");
+            String uuid = nodeTemplate.getMetaData().getValue("UUID");
             if ("VF".equals(type)) {
                 serviceTemplateInput.addInput(
                         new TemplateInput(
-                                nodeTemplate.getName() + "_location",
+                                uuid,
                                 "vf_location",
-                                "location for the service",
+                                "location for the service " + uuid,
                                 "true",
                                 ""
                         )
             throw new AAIException("AAI is not available.", e);
         }
     }
+
+    @Override
+    public List<SDNCController> listSDNCControllers() {
+        try {
+            Response<SDNCControllerRsp> response = aaiService.listSdncControllers().execute();
+            if (response.isSuccessful()) {
+                return response.body().getEsrThirdpartySdncList();
+            } else {
+                logger.info(String.format("Can not get sdnc controllers[code=%s, message=%s]", response.code(), response.message()));
+                return Collections.emptyList();
+            }
+        } catch (IOException e) {
+            logger.error("Visit AAI occur exception");
+            throw new AAIException("AAI is not available.", e);
+        }
+    }
 }