diff options
author | ying.yunlong <ying.yunlong@zte.com.cn> | 2017-08-22 19:16:07 +0800 |
---|---|---|
committer | ying.yunlong <ying.yunlong@zte.com.cn> | 2017-08-22 19:35:40 +0800 |
commit | cdb2b13b1330aca1b85d19cbd0e95c7adfa38073 (patch) | |
tree | 843537744f5559aa2de8512d8c0d074ddea85e3e /lcm | |
parent | b36aa03116722a2b5b81dfe8da8b82b580155bcd (diff) |
Implement vserver operation function
Add new create_vserver、delete_vserver、
query_vserver function to operate resource
to aai.
Change-Id: Id7ca8e8b35e3a937d900eccb435f0092bb16a600
Issue-ID: VFC-105
Signed-off-by: ying.yunlong <ying.yunlong@zte.com.cn>
Diffstat (limited to 'lcm')
-rw-r--r-- | lcm/lcm/pub/aaiapi/aai.py | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/lcm/lcm/pub/aaiapi/aai.py b/lcm/lcm/pub/aaiapi/aai.py index d97f1594..f92ca2d4 100644 --- a/lcm/lcm/pub/aaiapi/aai.py +++ b/lcm/lcm/pub/aaiapi/aai.py @@ -11,8 +11,13 @@ # 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.
+import json
import logging
+from lcm.pub.config.config import AAI_BASE_URL, AAI_USER, AAI_PASSWORD
+from lcm.pub.exceptions import NFLCMException
+from lcm.pub.utils.restcall import call_req_aai, rest_no_auth
+
logger = logging.getLogger(__name__)
@@ -25,4 +30,31 @@ def create_vnf(vnf_id, data): def create_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data):
- pass
+ resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \
+ "%s/tenants/tenant/%s/vservers/vserver/%s" % \
+ (cloud_owner, cloud_region_id, tenant_id, vserver_id)
+ ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data)
+ if ret[0] != 0:
+ logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
+ raise NFLCMException("Vserver creation exception in AAI")
+ return json.JSONDecoder().decode(ret[1])
+
+def delete_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data):
+ resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \
+ "%s/tenants/tenant/%s/vservers/vserver/%s" % \
+ (cloud_owner, cloud_region_id, tenant_id, vserver_id)
+ ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data)
+ if ret[0] != 0:
+ logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
+ raise NFLCMException("Vserver delete exception in AAI")
+ return json.JSONDecoder().decode(ret[1])
+
+def query_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data):
+ resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \
+ "%s/tenants/tenant/%s/vservers/vserver/%s" % \
+ (cloud_owner, cloud_region_id, tenant_id, vserver_id)
+ ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "GET", data)
+ if ret[0] != 0:
+ logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
+ raise NFLCMException("Vserver query exception in AAI")
+ return json.JSONDecoder().decode(ret[1])
|