user_defined_data = ignore_case_get(data, "userDefinedData")
     vnfPkgId = str(uuid.uuid4())
     VnfPackageModel.objects.create(
-        vnfPackageId=vnfPkgId
+        vnfPackageId=vnfPkgId,
+        onboardingState="CREATED",
+        operationalState="DISABLED",
+        usageState="NOT_IN_USE",
+        userDefinedData=user_defined_data
     )
     data = {
         "id": vnfPkgId,
     return data
 
 
+def query_multiple():
+    # TODO
+    data = {
+        "id": "1",
+        "onboardingState": "CREATED",
+        "operationalState": "DISABLED",
+        "usageState": "NOT_IN_USE",
+        "userDefinedData": "1",
+        "_links": None
+    }
+    return data
+
+
 class NfDistributeThread(threading.Thread):
     """
     Sdc NF Package Distribute
 
 from catalog.packages.serializers.upload_vnf_pkg_from_uri_req import UploadVnfPackageFromUriRequestSerializer\r
 from catalog.packages.serializers.create_vnf_pkg_info_req import CreateVnfPkgInfoRequestSerializer\r
 from catalog.packages.serializers.vnf_pkg_info import VnfPkgInfoSerializer\r
-from catalog.packages.biz.nf_package import create_vnf_pkg\r
+from catalog.packages.biz.nf_package import create_vnf_pkg, query_multiple\r
 \r
 logger = logging.getLogger(__name__)\r
 \r
 class vnf_packages(APIView):\r
     @swagger_auto_schema(\r
         responses={\r
-            # status.HTTP_200_OK: Serializer(),\r
+            status.HTTP_200_OK: VnfPkgInfoSerializer(),\r
             status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error"\r
         }\r
     )\r
     def get(self, request):\r
-        # TODO\r
-        return None\r
+        logger.debug("Query VNF Packages> %s" % request.data)\r
+        try:\r
+            res = query_multiple()\r
+            query_serializer = VnfPkgInfoSerializer(data=res)\r
+            if not query_serializer.is_valid():\r
+                raise CatalogException\r
+            return Response(data=query_serializer.data, status=status.HTTP_200_OK)\r
+        except CatalogException:\r
+            logger.error(traceback.format_exc())\r
+            return Response(data={'error': 'Querying vnfPkg failed.'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)\r
+        except Exception as e:\r
+            logger.error(e.message)\r
+            logger.error(traceback.format_exc())\r
+            return Response(data={'error': 'unexpected exception'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)\r
 \r
     @swagger_auto_schema(\r
         request_body=CreateVnfPkgInfoRequestSerializer(),\r
         except CatalogException:\r
             logger.error(traceback.format_exc())\r
             return Response(data={'error': 'Creating vnfPkg failed.'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)\r
+        except Exception as e:\r
+            logger.error(e.message)\r
+            logger.error(traceback.format_exc())\r
+            return Response(data={'error': 'unexpected exception'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)\r
 \r
 \r
 class vnf_package(APIView):\r
 
     nsPackageUri = models.CharField(db_column='NSPACKAGEURI', max_length=300, null=True, blank=True)
     checksum = models.CharField(db_column='CHECKSUM', max_length=50, null=True, blank=True)  # checksum
     sdcCsarId = models.CharField(db_column='SDCCSARID', max_length=50, null=True, blank=True)  # SdcCSARUri
-    onboardingState = models.CharField(db_column='ONBOARDINGSTATE', max_length=20, blank=True, null=True)
     operationalState = models.CharField(db_column='OPERATIONALSTATE', max_length=20, blank=True, null=True)  # operationalState
     usageState = models.CharField(db_column='USAGESTATE', max_length=20, blank=True, null=True)  # usageState
     deletionPending = models.CharField(db_column='DELETIONPENDING', max_length=20, blank=True, null=True)  # deletionPending
     vnfPackageUri = models.CharField(db_column='VNFPACKAGEURI', max_length=300, null=True, blank=True)  # downloadUri
     SdcCSARUri = models.CharField(db_column='SDCCSARURI', max_length=300, null=True, blank=True)  # SdcCSARUri
     checksum = models.CharField(db_column='CHECKSUM', max_length=50, null=True, blank=True)  # checksum
+    onboardingState = models.CharField(db_column='ONBOARDINGSTATE', max_length=20, blank=True, null=True)
     operationalState = models.CharField(db_column='OPERATIONALSTATE', max_length=20, blank=True, null=True)  # operationalState
     usageState = models.CharField(db_column='USAGESTATE', max_length=20, blank=True, null=True)  # usageState
     deletionPending = models.CharField(db_column='DELETIONPENDING', max_length=20, blank=True, null=True)  # deletionPending