Example #1
0
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
Example #2
0
    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
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
    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")