def create_db_test_cluster_model_object(context, **kw): """Create test Cluster DB model object. :param kw: kwargs with overriding values for cluster's attributes. :returns: Test Cluster DB model object. """ test_cluster = get_test_cluster(**kw) cluster_parameters = { 'name': test_cluster['name'], 'network_id': test_cluster['network_id'], 'flavor': test_cluster['flavor'], 'size': test_cluster['size'], 'volume_size': test_cluster['volume_size'], 'id': test_cluster['id'], 'project_id': test_cluster['project_id'], 'status': test_cluster['status'], 'deleted': test_cluster['deleted'], 'created_at': test_cluster['created_at'], 'updated_at': test_cluster['updated_at'], 'deleted_at': test_cluster['deleted_at'], } new_cluster = models.Cluster() new_cluster.update(cluster_parameters) return new_cluster
def create_cluster(self, context, cluster_values): if not cluster_values.get('id'): cluster_values['id'] = str(uuid.uuid4()) cluster_values['status'] = models.Status.BUILDING cluster = models.Cluster() cluster.update(cluster_values) node_values = { 'cluster_id': cluster_values['id'], 'flavor': cluster_values['flavor'], 'status': models.Status.BUILDING, } db_session = get_session() with db_session.begin(): cluster.save(db_session) db_session.flush() for i in range(cluster_values['size']): node = models.Node() node_id = str(uuid.uuid4()) node_values['id'] = node_id node.update(node_values) node.save(db_session) return cluster
def test_from_db_object_to_cluster_object(self): """test conversion of database object to Cluster object.""" cluster = self.get_test_cluster() cue_cluster = objects.Cluster() db_cluster = models.Cluster() db_cluster.update(cluster) objects.Cluster._from_db_object(cue_cluster, db_cluster) test_utils.validate_cluster_values(self, cluster, cue_cluster)
def test_from_db_object_to_cluster_object_invalid_field(self): """test conversion of database object to Cluster object with an invalid field. """ cluster = self.get_test_cluster() cluster['endpoint'] = '10.0.0.4:5672' db_cluster = models.Cluster() db_cluster.update(cluster) cue_cluster = objects.Cluster() objects.Cluster._from_db_object(cue_cluster, db_cluster) self.assertRaises(AttributeError, lambda: cue_cluster.endpoint)
def test_cluster_db_to_object_to_db(self): """Tests Cluster db object conversion to Cluster object and back to db object. """ db_cluster_object = func_utils.create_db_test_cluster_model_object( self.context, deleted_at=timeutils.utcnow(), deleted=True) object_cluster = objects.Cluster._from_db_object( objects.Cluster(), db_cluster_object) test_utils.validate_cluster_values(self, db_cluster_object, object_cluster) self.validate_cluster_deleted_fields(db_cluster_object, object_cluster) cluster_changes = object_cluster.obj_get_changes() db_cluster_object_2 = models.Cluster() db_cluster_object_2.update(cluster_changes) test_utils.validate_cluster_values(self, db_cluster_object, db_cluster_object_2) self.validate_cluster_deleted_fields(db_cluster_object, db_cluster_object_2)
def test_create_cluster_model(self): """Verifies a new cluster record is created in DB.""" cluster_values = { "id": UUID1, "network_id": UUID3, "project_id": self.context.project_id, "name": "Cluster test", "status": models.Status.BUILDING, "flavor": "medium", "size": 3, "volume_size": 250, "deleted": False, "created_at": timeutils.utcnow(), "updated_at": timeutils.utcnow(), "deleted_at": timeutils.utcnow(), "error_detail": "My cluster's error(s) detail", "group_id": UUID4, } cluster = models.Cluster() cluster.update(cluster_values) self.assertEqual(cluster_values["id"], cluster.id, "Invalid ID value") self.assertEqual(cluster_values["project_id"], cluster.project_id, "Invalid project_id value") self.assertEqual(cluster_values["network_id"], cluster.network_id, "Invalid network_id value") self.assertEqual(cluster_values["name"], cluster.name, "Invalid name" "value") self.assertEqual(cluster_values["status"], cluster.status, "Invalid " "status" "value") self.assertEqual(cluster_values["flavor"], cluster.flavor, "Invalid flavor value") self.assertEqual(cluster_values["size"], cluster.size, "Invalid size value") self.assertEqual(cluster_values["volume_size"], cluster.volume_size, "Invalid volume_size value") self.assertEqual(cluster_values["deleted"], cluster.deleted, "Invalid deleted value") self.assertEqual(cluster_values["created_at"], cluster.created_at, "Invalid created_at value") self.assertEqual(cluster_values["updated_at"], cluster.updated_at, "Invalid updated_at value") self.assertEqual(cluster_values["deleted_at"], cluster.deleted_at, "Invalid deleted_at value") self.assertEqual(cluster_values["error_detail"], cluster.error_detail, "Invalid error_detail value") self.assertEqual(cluster_values["group_id"], cluster.group_id, "Invalid group_id value") db_session = sql_api.get_session() cluster.save(db_session) dbapi = db_api.get_instance() cluster_db = dbapi.get_cluster_by_id(self.context, cluster_values["id"]) self.assertEqual(cluster_values["id"], cluster_db.id, "Invalid ID " "value") self.assertEqual(cluster_values["project_id"], cluster_db.project_id, "Invalid project_id value") self.assertEqual(cluster_values["network_id"], cluster_db.network_id, "Invalid network_id value") self.assertEqual(cluster_values["name"], cluster_db.name, "Invalid " "name value") self.assertEqual(cluster_values["status"], cluster_db.status, "Invalid status value") self.assertEqual(cluster_values["flavor"], cluster_db.flavor, "Invalid flavor value") self.assertEqual(cluster_values["size"], cluster_db.size, "Invalid size value") self.assertEqual(cluster_values["volume_size"], cluster_db.volume_size, "Invalid volume_size value") self.assertEqual(cluster_values["deleted"], cluster_db.deleted, "Invalid deleted value") self.assertEqual(cluster_values["created_at"], cluster_db.created_at, "Invalid created_at value") self.assertEqual(cluster_values["updated_at"], cluster_db.updated_at, "Invalid updated_at value") self.assertEqual(cluster_values["deleted_at"], cluster_db.deleted_at, "Invalid deleted_at value") self.assertEqual(cluster_values["error_detail"], cluster_db.error_detail, "Invalid error_detail value") self.assertEqual(cluster_values["group_id"], cluster_db.group_id, "Invalid group_id value")