modify file range 81/86481/1
authorhewei-cmss <hewei@cmss.chinamobile.com>
Mon, 29 Apr 2019 01:52:12 +0000 (09:52 +0800)
committerhewei-cmss <hewei@cmss.chinamobile.com>
Mon, 29 Apr 2019 01:52:12 +0000 (09:52 +0800)
Support file range the format of '4-'.

Issue-ID: VFC-1369

Change-Id: I95db6217b6218ffa92ae484ccdae7ebd07531492
Signed-off-by: hewei-cmss <hewei@cmss.chinamobile.com>
catalog/packages/biz/common.py
catalog/packages/tests/test_vnf_package.py

index c4205fb..ce77a41 100644 (file)
@@ -45,7 +45,7 @@ def read(file_path, start, end):
 def parse_file_range(file_path, file_range):
     start, end = 0, os.path.getsize(file_path)
     if file_range:
-        [start, end] = file_range.split('-')
-        start, end = start.strip(), end.strip()
-        start, end = int(start), int(end)
+        [start, range_end] = file_range.split('-')
+        range_end = range_end.strip() if range_end.strip() else end
+        start, end = int(start.strip()), int(range_end)
     return start, end
index 07486cd..8def3ba 100644 (file)
@@ -261,6 +261,22 @@ class TestVnfPackage(TestCase):
         self.assertEqual('BBB', partial_file_content)
         os.remove("vnfPackage.csar")
 
+    def test_fetch_last_partical_vnf_pkg(self):
+        with open("vnfPackage.csar", "wb") as fp:
+            fp.writelines("AAAABBBBCCCCDDDD")
+        VnfPackageModel.objects.create(
+            vnfPackageId="222",
+            onboardingState="ONBOARDED",
+            localFilePath="vnfPackage.csar"
+        )
+        response = self.client.get("/api/vnfpkgm/v1/vnf_packages/222/package_content", HTTP_RANGE=" 4-")
+        partial_file_content = ''
+        for data in response.streaming_content:
+            partial_file_content = partial_file_content + data
+        self.assertEqual(response.status_code, status.HTTP_200_OK)
+        self.assertEqual('BBBBCCCCDDDD', partial_file_content)
+        os.remove("vnfPackage.csar")
+
     def test_fetch_vnf_pkg_when_pkg_not_exist(self):
         response = self.client.get("/api/vnfpkgm/v1/vnf_packages/222/package_content")
         self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)