mirror of https://gitee.com/openkylin/libvirt.git
storage: Use virStoragePoolObjGetDef accessor for ZFS backend
In preparation for privatizing the object, use the accessor.
This commit is contained in:
parent
159f691fae
commit
121cf746b2
|
@ -86,10 +86,11 @@ static int
|
||||||
virStorageBackendZFSCheckPool(virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
virStorageBackendZFSCheckPool(virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
||||||
bool *isActive)
|
bool *isActive)
|
||||||
{
|
{
|
||||||
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
char *devpath;
|
char *devpath;
|
||||||
|
|
||||||
if (virAsprintf(&devpath, "/dev/zvol/%s",
|
if (virAsprintf(&devpath, "/dev/zvol/%s",
|
||||||
pool->def->source.name) < 0)
|
def->source.name) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
*isActive = virFileIsDir(devpath);
|
*isActive = virFileIsDir(devpath);
|
||||||
VIR_FREE(devpath);
|
VIR_FREE(devpath);
|
||||||
|
@ -109,6 +110,7 @@ virStorageBackendZFSParseVol(virStoragePoolObjPtr pool,
|
||||||
char *vol_name;
|
char *vol_name;
|
||||||
bool is_new_vol = false;
|
bool is_new_vol = false;
|
||||||
virStorageVolDefPtr volume = NULL;
|
virStorageVolDefPtr volume = NULL;
|
||||||
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
|
|
||||||
if (!(tokens = virStringSplitCount(volume_string, "\t", 0, &count)))
|
if (!(tokens = virStringSplitCount(volume_string, "\t", 0, &count)))
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -142,7 +144,7 @@ virStorageBackendZFSParseVol(virStoragePoolObjPtr pool,
|
||||||
|
|
||||||
if (volume->target.path == NULL) {
|
if (volume->target.path == NULL) {
|
||||||
if (virAsprintf(&volume->target.path, "%s/%s",
|
if (virAsprintf(&volume->target.path, "%s/%s",
|
||||||
pool->def->target.path, volume->name) < 0)
|
def->target.path, volume->name) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,6 +180,7 @@ static int
|
||||||
virStorageBackendZFSFindVols(virStoragePoolObjPtr pool,
|
virStorageBackendZFSFindVols(virStoragePoolObjPtr pool,
|
||||||
virStorageVolDefPtr vol)
|
virStorageVolDefPtr vol)
|
||||||
{
|
{
|
||||||
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
virCommandPtr cmd = NULL;
|
virCommandPtr cmd = NULL;
|
||||||
char *volumes_list = NULL;
|
char *volumes_list = NULL;
|
||||||
char **lines = NULL;
|
char **lines = NULL;
|
||||||
|
@ -199,7 +202,7 @@ virStorageBackendZFSFindVols(virStoragePoolObjPtr pool,
|
||||||
"list", "-Hp",
|
"list", "-Hp",
|
||||||
"-t", "volume", "-r",
|
"-t", "volume", "-r",
|
||||||
"-o", "name,volsize,refreservation",
|
"-o", "name,volsize,refreservation",
|
||||||
pool->def->source.name,
|
def->source.name,
|
||||||
NULL);
|
NULL);
|
||||||
virCommandSetOutputBuffer(cmd, &volumes_list);
|
virCommandSetOutputBuffer(cmd, &volumes_list);
|
||||||
if (virCommandRun(cmd, NULL) < 0)
|
if (virCommandRun(cmd, NULL) < 0)
|
||||||
|
@ -228,6 +231,7 @@ static int
|
||||||
virStorageBackendZFSRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendZFSRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||||
virStoragePoolObjPtr pool ATTRIBUTE_UNUSED)
|
virStoragePoolObjPtr pool ATTRIBUTE_UNUSED)
|
||||||
{
|
{
|
||||||
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
virCommandPtr cmd = NULL;
|
virCommandPtr cmd = NULL;
|
||||||
char *zpool_props = NULL;
|
char *zpool_props = NULL;
|
||||||
char **lines = NULL;
|
char **lines = NULL;
|
||||||
|
@ -247,7 +251,7 @@ virStorageBackendZFSRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||||
cmd = virCommandNewArgList(ZPOOL,
|
cmd = virCommandNewArgList(ZPOOL,
|
||||||
"get", "-Hp",
|
"get", "-Hp",
|
||||||
"health,size,free,allocated",
|
"health,size,free,allocated",
|
||||||
pool->def->source.name,
|
def->source.name,
|
||||||
NULL);
|
NULL);
|
||||||
virCommandSetOutputBuffer(cmd, &zpool_props);
|
virCommandSetOutputBuffer(cmd, &zpool_props);
|
||||||
if (virCommandRun(cmd, NULL) < 0)
|
if (virCommandRun(cmd, NULL) < 0)
|
||||||
|
@ -279,11 +283,11 @@ virStorageBackendZFSRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (STREQ(prop_name, "free"))
|
if (STREQ(prop_name, "free"))
|
||||||
pool->def->available = value;
|
def->available = value;
|
||||||
else if (STREQ(prop_name, "size"))
|
else if (STREQ(prop_name, "size"))
|
||||||
pool->def->capacity = value;
|
def->capacity = value;
|
||||||
else if (STREQ(prop_name, "allocated"))
|
else if (STREQ(prop_name, "allocated"))
|
||||||
pool->def->allocation = value;
|
def->allocation = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -305,6 +309,7 @@ virStorageBackendZFSCreateVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||||
virStoragePoolObjPtr pool,
|
virStoragePoolObjPtr pool,
|
||||||
virStorageVolDefPtr vol)
|
virStorageVolDefPtr vol)
|
||||||
{
|
{
|
||||||
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
virCommandPtr cmd = NULL;
|
virCommandPtr cmd = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
int volmode_needed = -1;
|
int volmode_needed = -1;
|
||||||
|
@ -320,7 +325,7 @@ virStorageBackendZFSCreateVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||||
|
|
||||||
VIR_FREE(vol->target.path);
|
VIR_FREE(vol->target.path);
|
||||||
if (virAsprintf(&vol->target.path, "%s/%s",
|
if (virAsprintf(&vol->target.path, "%s/%s",
|
||||||
pool->def->target.path, vol->name) < 0)
|
def->target.path, vol->name) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (VIR_STRDUP(vol->key, vol->target.path) < 0)
|
if (VIR_STRDUP(vol->key, vol->target.path) < 0)
|
||||||
|
@ -356,8 +361,7 @@ virStorageBackendZFSCreateVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||||
virCommandAddArg(cmd, "-V");
|
virCommandAddArg(cmd, "-V");
|
||||||
virCommandAddArgFormat(cmd, "%lluK",
|
virCommandAddArgFormat(cmd, "%lluK",
|
||||||
VIR_DIV_UP(vol->target.capacity, 1024));
|
VIR_DIV_UP(vol->target.capacity, 1024));
|
||||||
virCommandAddArgFormat(cmd, "%s/%s",
|
virCommandAddArgFormat(cmd, "%s/%s", def->source.name, vol->name);
|
||||||
pool->def->source.name, vol->name);
|
|
||||||
|
|
||||||
if (virCommandRun(cmd, NULL) < 0)
|
if (virCommandRun(cmd, NULL) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
@ -379,6 +383,7 @@ virStorageBackendZFSDeleteVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
virCommandPtr destroy_cmd = NULL;
|
virCommandPtr destroy_cmd = NULL;
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
|
@ -386,7 +391,7 @@ virStorageBackendZFSDeleteVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||||
destroy_cmd = virCommandNewArgList(ZFS, "destroy", NULL);
|
destroy_cmd = virCommandNewArgList(ZFS, "destroy", NULL);
|
||||||
|
|
||||||
virCommandAddArgFormat(destroy_cmd, "%s/%s",
|
virCommandAddArgFormat(destroy_cmd, "%s/%s",
|
||||||
pool->def->source.name, vol->name);
|
def->source.name, vol->name);
|
||||||
|
|
||||||
if (virCommandRun(destroy_cmd, NULL) < 0)
|
if (virCommandRun(destroy_cmd, NULL) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
@ -402,23 +407,24 @@ virStorageBackendZFSBuildPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||||
virStoragePoolObjPtr pool,
|
virStoragePoolObjPtr pool,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
virCommandPtr cmd = NULL;
|
virCommandPtr cmd = NULL;
|
||||||
size_t i;
|
size_t i;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
|
|
||||||
if (pool->def->source.ndevice == 0) {
|
if (def->source.ndevice == 0) {
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
"%s", _("missing source devices"));
|
"%s", _("missing source devices"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd = virCommandNewArgList(ZPOOL, "create",
|
cmd = virCommandNewArgList(ZPOOL, "create",
|
||||||
pool->def->source.name, NULL);
|
def->source.name, NULL);
|
||||||
|
|
||||||
for (i = 0; i < pool->def->source.ndevice; i++)
|
for (i = 0; i < def->source.ndevice; i++)
|
||||||
virCommandAddArg(cmd, pool->def->source.devices[i].path);
|
virCommandAddArg(cmd, def->source.devices[i].path);
|
||||||
|
|
||||||
if (virCommandRun(cmd, NULL) < 0)
|
if (virCommandRun(cmd, NULL) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
@ -435,13 +441,14 @@ virStorageBackendZFSDeletePool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||||
virStoragePoolObjPtr pool,
|
virStoragePoolObjPtr pool,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
virCommandPtr cmd = NULL;
|
virCommandPtr cmd = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
|
|
||||||
cmd = virCommandNewArgList(ZPOOL, "destroy",
|
cmd = virCommandNewArgList(ZPOOL, "destroy",
|
||||||
pool->def->source.name, NULL);
|
def->source.name, NULL);
|
||||||
|
|
||||||
if (virCommandRun(cmd, NULL) < 0)
|
if (virCommandRun(cmd, NULL) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
Loading…
Reference in New Issue