static int openvzAssignUUIDs(void) { DIR *dp; struct dirent *dent; char *conf_dir; int vpsid; char *ext; int ret = 0; conf_dir = openvzLocateConfDir(); if (conf_dir == NULL) return -1; dp = opendir(conf_dir); if (dp == NULL) { VIR_FREE(conf_dir); return 0; } while ((ret = virDirRead(dp, &dent, conf_dir)) > 0) { if (virStrToLong_i(dent->d_name, &ext, 10, &vpsid) < 0 || *ext++ != '.' || STRNEQ(ext, "conf")) continue; if (vpsid > 0) /* '0.conf' belongs to the host, ignore it */ openvzSetUUID(vpsid); } closedir(dp); VIR_FREE(conf_dir); return ret; }
/* * Copy the default config to the VE conf file * return: -1 - error * 0 - OK */ int openvzCopyDefaultConfig(int vpsid) { char *confdir = NULL; char *default_conf_file = NULL; char *configfile_value = NULL; char *conf_file = NULL; int ret = -1; if (openvzReadConfigParam(VZ_CONF_FILE, "CONFIGFILE", &configfile_value) < 0) goto cleanup; confdir = openvzLocateConfDir(); if (confdir == NULL) goto cleanup; if (virAsprintf(&default_conf_file, "%s/ve-%s.conf-sample", confdir, configfile_value) < 0) goto cleanup; if (openvzLocateConfFile(vpsid, &conf_file, "conf") < 0) goto cleanup; if (openvz_copyfile(default_conf_file, conf_file)<0) goto cleanup; ret = 0; cleanup: VIR_FREE(confdir); VIR_FREE(default_conf_file); VIR_FREE(configfile_value); VIR_FREE(conf_file); return ret; }
/* Locate config file of container * return -1 - error * 0 - OK */ static int openvzLocateConfFileDefault(int vpsid, char **conffile, const char *ext) { char *confdir; int ret = 0; confdir = openvzLocateConfDir(); if (confdir == NULL) return -1; if (virAsprintf(conffile, "%s/%d.%s", confdir, vpsid, ext ? ext : "conf") < 0) ret = -1; VIR_FREE(confdir); return ret; }
static int openvzAssignUUIDs(void) { DIR *dp; struct dirent *dent; char *conf_dir; int vpsid; char *ext; int ret = 0; conf_dir = openvzLocateConfDir(); if (conf_dir == NULL) return -1; dp = opendir(conf_dir); if (dp == NULL) { VIR_FREE(conf_dir); return 0; } errno = 0; while ((dent = readdir(dp))) { if (virStrToLong_i(dent->d_name, &ext, 10, &vpsid) < 0 || *ext++ != '.' || STRNEQ(ext, "conf")) continue; if (vpsid > 0) /* '0.conf' belongs to the host, ignore it */ openvzSetUUID(vpsid); errno = 0; } if (errno) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Failed to scan configuration directory")); ret = -1; } closedir(dp); VIR_FREE(conf_dir); return ret; }