qapi-schema: Rename GlusterServer to SocketAddressFlat
As its documentation says, it's not specific to Gluster. Rename it, as I'm going to use it for something else. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
85a82e852d
commit
2b733709d7
@ -321,7 +321,7 @@ static int parse_volume_options(BlockdevOptionsGluster *gconf, char *path)
|
|||||||
static int qemu_gluster_parse_uri(BlockdevOptionsGluster *gconf,
|
static int qemu_gluster_parse_uri(BlockdevOptionsGluster *gconf,
|
||||||
const char *filename)
|
const char *filename)
|
||||||
{
|
{
|
||||||
GlusterServer *gsconf;
|
SocketAddressFlat *gsconf;
|
||||||
URI *uri;
|
URI *uri;
|
||||||
QueryParams *qp = NULL;
|
QueryParams *qp = NULL;
|
||||||
bool is_unix = false;
|
bool is_unix = false;
|
||||||
@ -332,19 +332,19 @@ static int qemu_gluster_parse_uri(BlockdevOptionsGluster *gconf,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
gconf->server = g_new0(GlusterServerList, 1);
|
gconf->server = g_new0(SocketAddressFlatList, 1);
|
||||||
gconf->server->value = gsconf = g_new0(GlusterServer, 1);
|
gconf->server->value = gsconf = g_new0(SocketAddressFlat, 1);
|
||||||
|
|
||||||
/* transport */
|
/* transport */
|
||||||
if (!uri->scheme || !strcmp(uri->scheme, "gluster")) {
|
if (!uri->scheme || !strcmp(uri->scheme, "gluster")) {
|
||||||
gsconf->type = GLUSTER_TRANSPORT_TCP;
|
gsconf->type = SOCKET_ADDRESS_FLAT_TYPE_TCP;
|
||||||
} else if (!strcmp(uri->scheme, "gluster+tcp")) {
|
} else if (!strcmp(uri->scheme, "gluster+tcp")) {
|
||||||
gsconf->type = GLUSTER_TRANSPORT_TCP;
|
gsconf->type = SOCKET_ADDRESS_FLAT_TYPE_TCP;
|
||||||
} else if (!strcmp(uri->scheme, "gluster+unix")) {
|
} else if (!strcmp(uri->scheme, "gluster+unix")) {
|
||||||
gsconf->type = GLUSTER_TRANSPORT_UNIX;
|
gsconf->type = SOCKET_ADDRESS_FLAT_TYPE_UNIX;
|
||||||
is_unix = true;
|
is_unix = true;
|
||||||
} else if (!strcmp(uri->scheme, "gluster+rdma")) {
|
} else if (!strcmp(uri->scheme, "gluster+rdma")) {
|
||||||
gsconf->type = GLUSTER_TRANSPORT_TCP;
|
gsconf->type = SOCKET_ADDRESS_FLAT_TYPE_TCP;
|
||||||
error_report("Warning: rdma feature is not supported, falling "
|
error_report("Warning: rdma feature is not supported, falling "
|
||||||
"back to tcp");
|
"back to tcp");
|
||||||
} else {
|
} else {
|
||||||
@ -396,7 +396,7 @@ static struct glfs *qemu_gluster_glfs_init(BlockdevOptionsGluster *gconf,
|
|||||||
struct glfs *glfs;
|
struct glfs *glfs;
|
||||||
int ret;
|
int ret;
|
||||||
int old_errno;
|
int old_errno;
|
||||||
GlusterServerList *server;
|
SocketAddressFlatList *server;
|
||||||
unsigned long long port;
|
unsigned long long port;
|
||||||
|
|
||||||
glfs = glfs_find_preopened(gconf->volume);
|
glfs = glfs_find_preopened(gconf->volume);
|
||||||
@ -412,7 +412,7 @@ static struct glfs *qemu_gluster_glfs_init(BlockdevOptionsGluster *gconf,
|
|||||||
glfs_set_preopened(gconf->volume, glfs);
|
glfs_set_preopened(gconf->volume, glfs);
|
||||||
|
|
||||||
for (server = gconf->server; server; server = server->next) {
|
for (server = gconf->server; server; server = server->next) {
|
||||||
if (server->value->type == GLUSTER_TRANSPORT_UNIX) {
|
if (server->value->type == SOCKET_ADDRESS_FLAT_TYPE_UNIX) {
|
||||||
ret = glfs_set_volfile_server(glfs, "unix",
|
ret = glfs_set_volfile_server(glfs, "unix",
|
||||||
server->value->u.q_unix.path, 0);
|
server->value->u.q_unix.path, 0);
|
||||||
} else {
|
} else {
|
||||||
@ -443,7 +443,7 @@ static struct glfs *qemu_gluster_glfs_init(BlockdevOptionsGluster *gconf,
|
|||||||
error_setg(errp, "Gluster connection for volume %s, path %s failed"
|
error_setg(errp, "Gluster connection for volume %s, path %s failed"
|
||||||
" to connect", gconf->volume, gconf->path);
|
" to connect", gconf->volume, gconf->path);
|
||||||
for (server = gconf->server; server; server = server->next) {
|
for (server = gconf->server; server; server = server->next) {
|
||||||
if (server->value->type == GLUSTER_TRANSPORT_UNIX) {
|
if (server->value->type == SOCKET_ADDRESS_FLAT_TYPE_UNIX) {
|
||||||
error_append_hint(errp, "hint: failed on socket %s ",
|
error_append_hint(errp, "hint: failed on socket %s ",
|
||||||
server->value->u.q_unix.path);
|
server->value->u.q_unix.path);
|
||||||
} else {
|
} else {
|
||||||
@ -480,8 +480,8 @@ static int qemu_gluster_parse_json(BlockdevOptionsGluster *gconf,
|
|||||||
QDict *options, Error **errp)
|
QDict *options, Error **errp)
|
||||||
{
|
{
|
||||||
QemuOpts *opts;
|
QemuOpts *opts;
|
||||||
GlusterServer *gsconf = NULL;
|
SocketAddressFlat *gsconf = NULL;
|
||||||
GlusterServerList *curr = NULL;
|
SocketAddressFlatList *curr = NULL;
|
||||||
QDict *backing_options = NULL;
|
QDict *backing_options = NULL;
|
||||||
Error *local_err = NULL;
|
Error *local_err = NULL;
|
||||||
char *str = NULL;
|
char *str = NULL;
|
||||||
@ -535,9 +535,9 @@ static int qemu_gluster_parse_json(BlockdevOptionsGluster *gconf,
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
}
|
}
|
||||||
gsconf = g_new0(GlusterServer, 1);
|
gsconf = g_new0(SocketAddressFlat, 1);
|
||||||
gsconf->type = qapi_enum_parse(GlusterTransport_lookup, ptr,
|
gsconf->type = qapi_enum_parse(SocketAddressFlatType_lookup, ptr,
|
||||||
GLUSTER_TRANSPORT__MAX, -1,
|
SOCKET_ADDRESS_FLAT_TYPE__MAX, -1,
|
||||||
&local_err);
|
&local_err);
|
||||||
if (local_err) {
|
if (local_err) {
|
||||||
error_append_hint(&local_err,
|
error_append_hint(&local_err,
|
||||||
@ -548,7 +548,7 @@ static int qemu_gluster_parse_json(BlockdevOptionsGluster *gconf,
|
|||||||
}
|
}
|
||||||
qemu_opts_del(opts);
|
qemu_opts_del(opts);
|
||||||
|
|
||||||
if (gsconf->type == GLUSTER_TRANSPORT_TCP) {
|
if (gsconf->type == SOCKET_ADDRESS_FLAT_TYPE_TCP) {
|
||||||
/* create opts info from runtime_tcp_opts list */
|
/* create opts info from runtime_tcp_opts list */
|
||||||
opts = qemu_opts_create(&runtime_tcp_opts, NULL, 0, &error_abort);
|
opts = qemu_opts_create(&runtime_tcp_opts, NULL, 0, &error_abort);
|
||||||
qemu_opts_absorb_qdict(opts, backing_options, &local_err);
|
qemu_opts_absorb_qdict(opts, backing_options, &local_err);
|
||||||
@ -617,11 +617,11 @@ static int qemu_gluster_parse_json(BlockdevOptionsGluster *gconf,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (gconf->server == NULL) {
|
if (gconf->server == NULL) {
|
||||||
gconf->server = g_new0(GlusterServerList, 1);
|
gconf->server = g_new0(SocketAddressFlatList, 1);
|
||||||
gconf->server->value = gsconf;
|
gconf->server->value = gsconf;
|
||||||
curr = gconf->server;
|
curr = gconf->server;
|
||||||
} else {
|
} else {
|
||||||
curr->next = g_new0(GlusterServerList, 1);
|
curr->next = g_new0(SocketAddressFlatList, 1);
|
||||||
curr->next->value = gsconf;
|
curr->next->value = gsconf;
|
||||||
curr = curr->next;
|
curr = curr->next;
|
||||||
}
|
}
|
||||||
@ -637,7 +637,7 @@ static int qemu_gluster_parse_json(BlockdevOptionsGluster *gconf,
|
|||||||
|
|
||||||
out:
|
out:
|
||||||
error_propagate(errp, local_err);
|
error_propagate(errp, local_err);
|
||||||
qapi_free_GlusterServer(gsconf);
|
qapi_free_SocketAddressFlat(gsconf);
|
||||||
qemu_opts_del(opts);
|
qemu_opts_del(opts);
|
||||||
g_free(str);
|
g_free(str);
|
||||||
QDECREF(backing_options);
|
QDECREF(backing_options);
|
||||||
|
@ -4100,6 +4100,44 @@
|
|||||||
'vsock': 'VsockSocketAddress',
|
'vsock': 'VsockSocketAddress',
|
||||||
'fd': 'String' } }
|
'fd': 'String' } }
|
||||||
|
|
||||||
|
##
|
||||||
|
# @SocketAddressFlatType:
|
||||||
|
#
|
||||||
|
# Available SocketAddressFlat types
|
||||||
|
#
|
||||||
|
# @tcp: Internet address
|
||||||
|
#
|
||||||
|
# @unix: Unix domain socket
|
||||||
|
#
|
||||||
|
# Since: 2.9
|
||||||
|
##
|
||||||
|
{ 'enum': 'SocketAddressFlatType',
|
||||||
|
'data': [ 'unix', 'tcp' ] }
|
||||||
|
|
||||||
|
##
|
||||||
|
# @SocketAddressFlat:
|
||||||
|
#
|
||||||
|
# Captures the address of a socket
|
||||||
|
#
|
||||||
|
# @type: Transport type
|
||||||
|
#
|
||||||
|
# This is similar to SocketAddress, only distinction:
|
||||||
|
#
|
||||||
|
# 1. SocketAddressFlat is a flat union, SocketAddress is a simple union.
|
||||||
|
# A flat union is nicer than simple because it avoids nesting
|
||||||
|
# (i.e. more {}) on the wire.
|
||||||
|
#
|
||||||
|
# 2. SocketAddressFlat supports only types 'unix' and 'tcp', because
|
||||||
|
# that's what its current users need.
|
||||||
|
#
|
||||||
|
# Since: 2.9
|
||||||
|
##
|
||||||
|
{ 'union': 'SocketAddressFlat',
|
||||||
|
'base': { 'type': 'SocketAddressFlatType' },
|
||||||
|
'discriminator': 'type',
|
||||||
|
'data': { 'unix': 'UnixSocketAddress',
|
||||||
|
'tcp': 'InetSocketAddress' } }
|
||||||
|
|
||||||
##
|
##
|
||||||
# @getfd:
|
# @getfd:
|
||||||
#
|
#
|
||||||
|
@ -2545,50 +2545,6 @@
|
|||||||
'*rewrite-corrupted': 'bool',
|
'*rewrite-corrupted': 'bool',
|
||||||
'*read-pattern': 'QuorumReadPattern' } }
|
'*read-pattern': 'QuorumReadPattern' } }
|
||||||
|
|
||||||
##
|
|
||||||
# @GlusterTransport:
|
|
||||||
#
|
|
||||||
# An enumeration of Gluster transport types
|
|
||||||
#
|
|
||||||
# @tcp: TCP - Transmission Control Protocol
|
|
||||||
#
|
|
||||||
# @unix: UNIX - Unix domain socket
|
|
||||||
#
|
|
||||||
# Since: 2.7
|
|
||||||
##
|
|
||||||
{ 'enum': 'GlusterTransport',
|
|
||||||
'data': [ 'unix', 'tcp' ] }
|
|
||||||
|
|
||||||
|
|
||||||
##
|
|
||||||
# @GlusterServer:
|
|
||||||
#
|
|
||||||
# Captures the address of a socket
|
|
||||||
#
|
|
||||||
# Details for connecting to a gluster server
|
|
||||||
#
|
|
||||||
# @type: Transport type used for gluster connection
|
|
||||||
#
|
|
||||||
# This is similar to SocketAddress, only distinction:
|
|
||||||
#
|
|
||||||
# 1. GlusterServer is a flat union, SocketAddress is a simple union.
|
|
||||||
# A flat union is nicer than simple because it avoids nesting
|
|
||||||
# (i.e. more {}) on the wire.
|
|
||||||
#
|
|
||||||
# 2. GlusterServer lacks case 'fd', since gluster doesn't let you
|
|
||||||
# pass in a file descriptor.
|
|
||||||
#
|
|
||||||
# GlusterServer is actually not Gluster-specific, its a
|
|
||||||
# compatibility evolved into an alternate for SocketAddress.
|
|
||||||
#
|
|
||||||
# Since: 2.7
|
|
||||||
##
|
|
||||||
{ 'union': 'GlusterServer',
|
|
||||||
'base': { 'type': 'GlusterTransport' },
|
|
||||||
'discriminator': 'type',
|
|
||||||
'data': { 'unix': 'UnixSocketAddress',
|
|
||||||
'tcp': 'InetSocketAddress' } }
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# @BlockdevOptionsGluster:
|
# @BlockdevOptionsGluster:
|
||||||
#
|
#
|
||||||
@ -2610,7 +2566,7 @@
|
|||||||
{ 'struct': 'BlockdevOptionsGluster',
|
{ 'struct': 'BlockdevOptionsGluster',
|
||||||
'data': { 'volume': 'str',
|
'data': { 'volume': 'str',
|
||||||
'path': 'str',
|
'path': 'str',
|
||||||
'server': ['GlusterServer'],
|
'server': ['SocketAddressFlat'],
|
||||||
'*debug': 'int',
|
'*debug': 'int',
|
||||||
'*logfile': 'str' } }
|
'*logfile': 'str' } }
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user