static void ovirt_api_class_init(OvirtApiClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); OvirtResourceClass *resource_class = OVIRT_RESOURCE_CLASS(klass); g_type_class_add_private(klass, sizeof(OvirtApiPrivate)); object_class->dispose = ovirt_api_dispose; resource_class->init_from_xml = ovirt_api_init_from_xml; }
static gboolean ovirt_vm_pool_init_from_xml(OvirtResource *resource, RestXmlNode *node, GError **error) { gboolean parsed_ok; OvirtResourceClass *parent_class; parsed_ok = ovirt_vm_pool_refresh_from_xml(OVIRT_VM_POOL(resource), node); if (!parsed_ok) { return FALSE; } parent_class = OVIRT_RESOURCE_CLASS(ovirt_vm_pool_parent_class); return parent_class->init_from_xml(resource, node, error); }
static gboolean ovirt_api_init_from_xml(OvirtResource *resource, RestXmlNode *node, GError **error) { OvirtResourceClass *parent_class; #if 0 gboolean parsed_ok; parsed_ok = ovirt_api_refresh_from_xml(OVIRT_API(resource), node); if (!parsed_ok) { return FALSE; } #endif parent_class = OVIRT_RESOURCE_CLASS(ovirt_api_parent_class); return parent_class->init_from_xml(resource, node, error); }
static void ovirt_vm_pool_class_init(OvirtVmPoolClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); OvirtResourceClass *resource_class = OVIRT_RESOURCE_CLASS(klass); g_type_class_add_private(klass, sizeof(OvirtVmPoolPrivate)); resource_class->init_from_xml = ovirt_vm_pool_init_from_xml; object_class->dispose = ovirt_vm_pool_dispose; object_class->get_property = ovirt_vm_pool_get_property; object_class->set_property = ovirt_vm_pool_set_property; g_object_class_install_property(object_class, PROP_SIZE, g_param_spec_uint("size", "Size of pool", "The number of VMs in the pool", 0, G_MAXUINT, 0, G_PARAM_READWRITE)); g_object_class_install_property(object_class, PROP_PRESTARTED_VMS, g_param_spec_uint("prestarted_vms", "Prestarted VMs", "The number of VMs prestarted in the pool", 0, G_MAXUINT, 0, G_PARAM_READWRITE)); g_object_class_install_property(object_class, PROP_MAX_USER_VMS, g_param_spec_uint("max_user_vms", "Max VMs per user", "The number of VMs a user can allocate from the pool", 0, G_MAXUINT, 0, G_PARAM_READWRITE)); }
static gboolean ovirt_cdrom_init_from_xml(OvirtResource *resource, RestXmlNode *node, GError **error) { char *name; OvirtResourceClass *parent_class; OvirtXmlElement cdrom_elements[] = { { .prop_name = "file", .xml_path = "file", .xml_attr = "id", }, { NULL , }, }; parent_class = OVIRT_RESOURCE_CLASS(ovirt_cdrom_parent_class); if (!parent_class->init_from_xml(resource, node, error)) return FALSE; ovirt_rest_xml_node_parse(node, G_OBJECT(resource), cdrom_elements); g_object_get(G_OBJECT(resource), "name", &name, NULL); if (name == NULL) { /* Build up fake name as ovirt_collection_refresh_from_xml() * expects it to be set (it uses it as a hash table key), but * it's not set in oVirt XML as of 3.2. There can only be * one cdrom node in an oVirt VM so this should be good * enough for now */ g_debug("Setting fake 'name' for cdrom resource");