diff --git a/data.go b/data.go
index 7c98dc2..1b3182f 100644
--- a/data.go
+++ b/data.go
@@ -91,35 +91,22 @@
 }
 
 // getUnreadyDeployments() returns array of resources that are not yet to be processed
-// TODO make it work with new schema
 func (dbc *dbManager) getUnreadyBlobs() (ids []string, err error) {
 
-	// get unready blob id
 	rows, err := dbc.getDb().Query(`
-	SELECT a.bean_blob_id
-		FROM metadata_runtime_entity_metadata as a
-		LEFT JOIN apid_blob_available as b
-		ON a.bean_blob_id = b.id
-		WHERE b.id IS NULL;
-	`)
-	if err != nil {
-		log.Errorf("DB Query for project_runtime_blob_metadata failed %v", err)
-		return
-	}
-	defer rows.Close()
-	for rows.Next() {
-		var id string
-		rows.Scan(&id)
-		ids = append(ids, id)
-	}
-
-	// get unready resource id
-	rows, err = dbc.getDb().Query(`
-	SELECT a.resource_blob_id
-		FROM metadata_runtime_entity_metadata as a
-		LEFT JOIN apid_blob_available as b
-		ON a.resource_blob_id = b.id
-		WHERE (b.id IS NULL AND a.resource_blob_id IS NOT NULL AND a.resource_blob_id != '');
+	SELECT id FROM (
+			SELECT a.bean_blob_id as id
+			FROM metadata_runtime_entity_metadata as a
+			WHERE a.bean_blob_id NOT IN
+			(SELECT b.id FROM apid_blob_available as b)
+		UNION
+			SELECT a.resource_blob_id as id
+			FROM metadata_runtime_entity_metadata as a
+			WHERE a.resource_blob_id NOT IN
+			(SELECT b.id FROM apid_blob_available as b)
+	)
+	WHERE id != ''
+	;
 	`)
 	if err != nil {
 		log.Errorf("DB Query for project_runtime_blob_metadata failed %v", err)
diff --git a/data_test.go b/data_test.go
index be876af..6be7da7 100644
--- a/data_test.go
+++ b/data_test.go
@@ -25,14 +25,15 @@
 )
 
 const (
-	readyBlobId      = "gcs:SHA-512:39ca7ae89bb9468af34df8bc873748b4035210c91bcc01359c092c1d51364b5f3df06bc69a40621acfaa46791af9ea41bc0f3429a84738ba1a7c8d394859601a"
-	readyblobLocalFs = "/tmp/tmpapid/gcs:SHA-512:39ca7ae89bb9468af34df8bc873748b4035210c91bcc01359c092c1d51364b5f3df06bc69a40621acfaa46791af9ea41bc0f3429a84738ba1a7c8d394859601a"
+	testBlobLocalFsPrefix = "/tmp/tmpapid/"
+	readyBlobId           = "gcs:SHA-512:39ca7ae89bb9468af34df8bc873748b4035210c91bcc01359c092c1d51364b5f3df06bc69a40621acfaa46791af9ea41bc0f3429a84738ba1a7c8d394859601a"
+	readyResourceId       = "gcs:SHA-512:ddd64d03c365dde4bb175cabb7d84beeb81dae11f1e326b30c9035b74be3ecb537187bdf35568647aa1b2adb341499516ca2faf2d73b78b1b98cba038f2a9e3c"
 )
 
 var (
 	unreadyBlobIds = map[string]bool{
 		"gcs:SHA-512:8fcc902465ccb32ceff25fa9f6fb28e3b314dbc2874c0f8add02f4e29c9e2798d344c51807aa1af56035cf09d39c800cf605d627ba65723f26d8b9c83c82d2f2": true,
-		"gcs:SHA-512:9938d075b8c8925e118a61c047d330a6ba852c2b3ccb2fd2c4ecf6f444482ef3a24ef2e7cd3b8a01be771135d78db370518debce244a33289c1bb3d7f325d4a2": true,
+		"gcs:SHA-512:0c648779da035bfe0ac21f6268049aa0ae74d9d6411dadefaec33991e55c2d66c807e06f7ef84e0947f7c7d63b8c9e97cf0684cbef9e0a86b947d73c74ae7455": true,
 	}
 )
 
@@ -85,7 +86,7 @@
 			for rows.Next() {
 				rows.Scan(&count)
 			}
-			Expect(count).Should(Equal(3))
+			Expect(count).Should(Equal(6))
 		})
 
 		It("should get empty slice if no deployments are ready", func() {
@@ -96,7 +97,7 @@
 
 		It("should succefully update local FS location", func() {
 
-			err := testDbMan.updateLocalFsLocation(readyBlobId, readyblobLocalFs)
+			err := testDbMan.updateLocalFsLocation(testBlobId, testBlobLocalFsPrefix+testBlobId)
 			Expect(err).Should(Succeed())
 			// apid_blob_available
 			rows, err := testDbMan.getDb().Query(`
@@ -113,29 +114,40 @@
 
 		It("should succefully get local FS location", func() {
 
-			err := testDbMan.updateLocalFsLocation(readyBlobId, readyblobLocalFs)
+			err := testDbMan.updateLocalFsLocation(testBlobId, testBlobLocalFsPrefix+testBlobId)
 			Expect(err).Should(Succeed())
 
 			// apid_blob_available
-			location, err := testDbMan.getLocalFSLocation(readyBlobId)
+			location, err := testDbMan.getLocalFSLocation(testBlobId)
 			Expect(err).Should(Succeed())
-			Expect(location).Should(Equal(readyblobLocalFs))
+			Expect(location).Should(Equal(testBlobLocalFsPrefix + testBlobId))
 		})
 
-		It("should succefully get ready deployments", func() {
+		It("should succefully get all ready deployments", func() {
 
-			err := testDbMan.updateLocalFsLocation(readyBlobId, readyblobLocalFs)
+			err := testDbMan.updateLocalFsLocation(readyBlobId, testBlobLocalFsPrefix+readyBlobId)
 			Expect(err).Should(Succeed())
+			err = testDbMan.updateLocalFsLocation(readyResourceId, testBlobLocalFsPrefix+readyResourceId)
+			Expect(err).Should(Succeed())
+
 			deps, err := testDbMan.getReadyDeployments()
 			Expect(err).Should(Succeed())
-			Expect(len(deps)).Should(Equal(1))
-			Expect(deps[0].BlobID).Should(Equal(readyBlobId))
+			Expect(len(deps)).Should(Equal(2))
+			for _, dep := range deps {
+				Expect(dep.BlobID).Should(Equal(readyBlobId))
+				if dep.BlobResourceID != "" {
+					Expect(dep.BlobResourceID).Should(Equal(readyResourceId))
+				}
+			}
 		})
 
-		It("should succefully get unready blob ids", func() {
+		It("should succefully get all unready blob ids", func() {
 
-			err := testDbMan.updateLocalFsLocation(readyBlobId, readyblobLocalFs)
+			err := testDbMan.updateLocalFsLocation(readyBlobId, testBlobLocalFsPrefix+readyBlobId)
 			Expect(err).Should(Succeed())
+			err = testDbMan.updateLocalFsLocation(readyResourceId, testBlobLocalFsPrefix+readyResourceId)
+			Expect(err).Should(Succeed())
+
 			ids, err := testDbMan.getUnreadyBlobs()
 			Expect(err).Should(Succeed())
 			Expect(len(ids)).Should(Equal(2))
@@ -170,6 +182,7 @@
 	`)
 	Expect(err).Should(Succeed())
 
+	// ready blob, empty resource
 	_, err = db.Exec(`
 		INSERT INTO "metadata_runtime_entity_metadata" VALUES(
 		'1dc4895e-6494-4b59-979f-5f4c89c073b4',
@@ -190,9 +203,52 @@
 	`)
 	Expect(err).Should(Succeed())
 
+	// ready blob, ready resource
 	_, err = db.Exec(`
 		INSERT INTO "metadata_runtime_entity_metadata" VALUES(
-		'ada76573-68e3-4f1a-a0f9-cbc201a97e80',
+		'319963ff-217e-4ecc-8d6e-c3665e962d1e',
+		'73fcac6c-5d9f-44c1-8db0-333efda3e6e8',
+		'',
+		'gcs:SHA-512:39ca7ae89bb9468af34df8bc873748b4035210c91bcc01359c092c1d51364b5f3df06bc69a40621acfaa46791af9ea41bc0f3429a84738ba1a7c8d394859601a',
+		'gcs:SHA-512:ddd64d03c365dde4bb175cabb7d84beeb81dae11f1e326b30c9035b74be3ecb537187bdf35568647aa1b2adb341499516ca2faf2d73b78b1b98cba038f2a9e3c',
+		'ORGANIZATION',
+		'Org1',
+		'',
+		'/organizations/Org1/',
+		'2017-06-27 03:14:45.748+00:00',
+		'defaultUser',
+		'2017-06-27 03:15:03.557+00:00',
+		'defaultUser',
+		'73fcac6c-5d9f-44c1-8db0-333efda3e6e8'
+		);
+	`)
+	Expect(err).Should(Succeed())
+
+	// ready blob, unready resource
+	_, err = db.Exec(`
+		INSERT INTO "metadata_runtime_entity_metadata" VALUES(
+		'3af44bb7-0a74-4283-860c-3561e6c19132',
+		'73fcac6c-5d9f-44c1-8db0-333efda3e6e8',
+		'',
+		'gcs:SHA-512:39ca7ae89bb9468af34df8bc873748b4035210c91bcc01359c092c1d51364b5f3df06bc69a40621acfaa46791af9ea41bc0f3429a84738ba1a7c8d394859601a',
+		'gcs:SHA-512:0c648779da035bfe0ac21f6268049aa0ae74d9d6411dadefaec33991e55c2d66c807e06f7ef84e0947f7c7d63b8c9e97cf0684cbef9e0a86b947d73c74ae7455',
+		'ORGANIZATION',
+		'Org1',
+		'',
+		'/organizations/Org1/',
+		'2017-06-27 03:14:45.748+00:00',
+		'defaultUser',
+		'2017-06-27 03:15:03.557+00:00',
+		'defaultUser',
+		'73fcac6c-5d9f-44c1-8db0-333efda3e6e8'
+		);
+	`)
+	Expect(err).Should(Succeed())
+
+	// unready blob, empty resource
+	_, err = db.Exec(`
+		INSERT INTO "metadata_runtime_entity_metadata" VALUES(
+		'd5ffd9db-4795-43eb-b645-d2a0b6c8ac6a',
 		'73fcac6c-5d9f-44c1-8db0-333efda3e6e8',
 		'ada76573-68e3-4f1a-a0f9-cbc201a97e80',
 		'gcs:SHA-512:8fcc902465ccb32ceff25fa9f6fb28e3b314dbc2874c0f8add02f4e29c9e2798d344c51807aa1af56035cf09d39c800cf605d627ba65723f26d8b9c83c82d2f2',
@@ -210,21 +266,43 @@
 	`)
 	Expect(err).Should(Succeed())
 
+	// unready blob, ready resource
 	_, err = db.Exec(`
 		INSERT INTO "metadata_runtime_entity_metadata" VALUES(
-		'65e7c3d3-9ef7-4e41-84ae-6cc385178e9d',
+		'84ac8d68-b3d1-4bcc-ad0d-c6a0ed67e16c',
 		'73fcac6c-5d9f-44c1-8db0-333efda3e6e8',
 		'ada76573-68e3-4f1a-a0f9-cbc201a97e80',
-		'gcs:SHA-512:9938d075b8c8925e118a61c047d330a6ba852c2b3ccb2fd2c4ecf6f444482ef3a24ef2e7cd3b8a01be771135d78db370518debce244a33289c1bb3d7f325d4a2',
+		'gcs:SHA-512:8fcc902465ccb32ceff25fa9f6fb28e3b314dbc2874c0f8add02f4e29c9e2798d344c51807aa1af56035cf09d39c800cf605d627ba65723f26d8b9c83c82d2f2',
+		'gcs:SHA-512:ddd64d03c365dde4bb175cabb7d84beeb81dae11f1e326b30c9035b74be3ecb537187bdf35568647aa1b2adb341499516ca2faf2d73b78b1b98cba038f2a9e3c',
+		'ENVIRONMENT',
+		'test',
 		'',
-		'VIRTUAL_HOST',
-		'default',
+		'/organizations/Org1//environments/test/',
+		'2017-06-27 03:14:46.018+00:00',
+		'defaultUser',
+		'2017-06-27 03:14:46.018+00:00',
+		'defaultUser',
+		'ada76573-68e3-4f1a-a0f9-cbc201a97e80'
+		);
+	`)
+	Expect(err).Should(Succeed())
+
+	// unready blob, unready resource
+	_, err = db.Exec(`
+		INSERT INTO "metadata_runtime_entity_metadata" VALUES(
+		'3ecd351c-1173-40bf-b830-c194e5ef9038',
+		'73fcac6c-5d9f-44c1-8db0-333efda3e6e8',
+		'ada76573-68e3-4f1a-a0f9-cbc201a97e80',
+		'gcs:SHA-512:8fcc902465ccb32ceff25fa9f6fb28e3b314dbc2874c0f8add02f4e29c9e2798d344c51807aa1af56035cf09d39c800cf605d627ba65723f26d8b9c83c82d2f2',
+		'gcs:SHA-512:0c648779da035bfe0ac21f6268049aa0ae74d9d6411dadefaec33991e55c2d66c807e06f7ef84e0947f7c7d63b8c9e97cf0684cbef9e0a86b947d73c74ae7455',
+		'ENVIRONMENT',
+		'test',
 		'',
-		'/organizations/Org1/environments/test/virtualhosts/default',
-		'2017-06-27 03:48:18.284+00:00',
-		'-NA-',
-		'2017-06-27 03:48:18.284+00:00',
-		'-NA-',
+		'/organizations/Org1//environments/test/',
+		'2017-06-27 03:14:46.018+00:00',
+		'defaultUser',
+		'2017-06-27 03:14:46.018+00:00',
+		'defaultUser',
 		'ada76573-68e3-4f1a-a0f9-cbc201a97e80'
 		);
 	`)
