Class: Libvirt::NodeDevice

Inherits:
Object
  • Object
show all
Defined in:
ext/libvirt/nodedevice.c

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#connectionObject (readonly)

Instance Method Details

#destroynil

Call virNodeDeviceDestroy to shutdown the node device.

Returns:

  • (nil)


219
220
221
222
223
224
# File 'ext/libvirt/nodedevice.c', line 219

static VALUE libvirt_nodedevice_destroy(VALUE n)
{
    ruby_libvirt_generate_call_nil(virNodeDeviceDestroy,
                                   ruby_libvirt_connect_get(n),
                                   nodedevice_get(n));
}

#detach(driver = nil, flags = 0) ⇒ nil

Call virNodeDeviceDettach to detach the node device from the node.

Returns:

  • (nil)


156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
# File 'ext/libvirt/nodedevice.c', line 156

static VALUE libvirt_nodedevice_detach(int argc, VALUE *argv, VALUE n)
{
    VALUE driver, flags;

    rb_scan_args(argc, argv, "02", &driver, &flags);

#if HAVE_VIRNODEDEVICEDETACHFLAGS
    ruby_libvirt_generate_call_nil(virNodeDeviceDetachFlags,
                                   ruby_libvirt_connect_get(n),
                                   nodedevice_get(n),
                                   ruby_libvirt_get_cstring_or_null(driver),
                                   ruby_libvirt_value_to_uint(flags));
#else
    if (ruby_libvirt_value_to_uint(flags) != 0) {
        rb_raise(e_NoSupportError, "Non-zero flags not supported");
    }

    if (ruby_libvirt_get_cstring_or_null(driver) != NULL) {
        rb_raise(e_NoSupportError, "Non-NULL driver not supported");
    }

    ruby_libvirt_generate_call_nil(virNodeDeviceDettach,
                                   ruby_libvirt_connect_get(n),
                                   nodedevice_get(n));
#endif
}

#freenil

Call virNodeDeviceFree to free the node device object. After this call the node device object is no longer valid.

Returns:

  • (nil)


235
236
237
238
# File 'ext/libvirt/nodedevice.c', line 235

static VALUE libvirt_nodedevice_free(VALUE n)
{
    ruby_libvirt_generate_call_free(NodeDevice, n);
}

#list_capsObject

Call virNodeDeviceListCaps to retrieve a list of capabilities of the node device.



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'ext/libvirt/nodedevice.c', line 107

static VALUE libvirt_nodedevice_list_caps(VALUE c)
{
    int r, num;
    char **names;

    num = virNodeDeviceNumOfCaps(nodedevice_get(c));
    ruby_libvirt_raise_error_if(num < 0, e_RetrieveError,
                                "virNodeDeviceNumOfCaps",
                                ruby_libvirt_connect_get(c));
    if (num == 0) {
        /* if num is 0, don't call virNodeDeviceListCaps function */
        return rb_ary_new2(num);
    }

    names = alloca(sizeof(char *) * num);
    r = virNodeDeviceListCaps(nodedevice_get(c), names, num);
    ruby_libvirt_raise_error_if(r < 0, e_RetrieveError,
                                "virNodeDeviceListCaps",
                                ruby_libvirt_connect_get(c));

    return ruby_libvirt_generate_list(r, names);
}

#lookup_scsi_host_by_wwn(wwnn, wwpn, flags = 0) ⇒ Libvirt::NodeDevice

Call virNodeDeviceLookupSCSIHostByWWN to look up a SCSI host by its WWNN and WWPN.

Returns:



248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
# File 'ext/libvirt/nodedevice.c', line 248

static VALUE libvirt_nodedevice_lookup_scsi_host_by_wwn(int argc, VALUE *argv,
                                                        VALUE n)
{
    VALUE wwnn, wwpn, flags;
    virNodeDevicePtr nd;

    rb_scan_args(argc, argv, "21", &wwnn, &wwpn, &flags);

    nd = virNodeDeviceLookupSCSIHostByWWN(ruby_libvirt_connect_get(n),
                                          StringValueCStr(wwnn),
                                          StringValueCStr(wwpn),
                                          ruby_libvirt_value_to_uint(flags));
    if (nd == NULL) {
        return Qnil;
    }

    return ruby_libvirt_nodedevice_new(nd, ruby_libvirt_conn_attr(n));
}

#nameString

Call virNodeDeviceGetName to retrieve the name of the node device.

Returns:

  • (String)


54
55
56
57
58
59
# File 'ext/libvirt/nodedevice.c', line 54

static VALUE libvirt_nodedevice_name(VALUE c)
{
    ruby_libvirt_generate_call_string(virNodeDeviceGetName,
                                      ruby_libvirt_connect_get(c), 0,
                                      nodedevice_get(c));
}

#num_of_capsFixnum

Call virNodeDeviceNumOfCaps to retrieve the number of capabilities of the node device.

Returns:

  • (Fixnum)


93
94
95
96
97
98
# File 'ext/libvirt/nodedevice.c', line 93

static VALUE libvirt_nodedevice_num_of_caps(VALUE c)
{
    ruby_libvirt_generate_call_int(virNodeDeviceNumOfCaps,
                                   ruby_libvirt_connect_get(c),
                                   nodedevice_get(c));
}

#parentString

Call virNodeDeviceGetParent to retrieve the parent of the node device.

Returns:

  • (String)


68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'ext/libvirt/nodedevice.c', line 68

static VALUE libvirt_nodedevice_parent(VALUE c)
{
    /* unfortunately we can't use ruby_libvirt_generate_call_string() here
     * because virNodeDeviceGetParent() returns NULL as a valid value (when this
     * device has no parent).  Hand-code it instead
     */

    const char *str;

    str = virNodeDeviceGetParent(nodedevice_get(c));
    if (str == NULL) {
        return Qnil;
    }
    else {
        return rb_str_new2(str);
    }
}

#reattachnil

Call virNodeDeviceReAttach to reattach the node device to the node.

Returns:

  • (nil)


190
191
192
193
194
195
# File 'ext/libvirt/nodedevice.c', line 190

static VALUE libvirt_nodedevice_reattach(VALUE n)
{
    ruby_libvirt_generate_call_nil(virNodeDeviceReAttach,
                                   ruby_libvirt_connect_get(n),
                                   nodedevice_get(n));
}

#resetnil

Call virNodeDeviceReset to reset the node device.

Returns:

  • (nil)


204
205
206
207
208
209
# File 'ext/libvirt/nodedevice.c', line 204

static VALUE libvirt_nodedevice_reset(VALUE n)
{
    ruby_libvirt_generate_call_nil(virNodeDeviceReset,
                                   ruby_libvirt_connect_get(n),
                                   nodedevice_get(n));
}

#xml_desc(flags = 0) ⇒ String

Call virNodeDeviceGetXMLDesc to retrieve the XML for the node device.

Returns:

  • (String)


137
138
139
140
141
142
143
144
145
146
147
# File 'ext/libvirt/nodedevice.c', line 137

static VALUE libvirt_nodedevice_xml_desc(int argc, VALUE *argv, VALUE n)
{
    VALUE flags;

    rb_scan_args(argc, argv, "01", &flags);

    ruby_libvirt_generate_call_string(virNodeDeviceGetXMLDesc,
                                      ruby_libvirt_connect_get(n),
                                      1, nodedevice_get(n),
                                      ruby_libvirt_value_to_uint(flags));
}