projects
/
ganeti-local
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add --force-join option to gnt-node add
[ganeti-local]
/
lib
/
ssconf.py
diff --git
a/lib/ssconf.py
b/lib/ssconf.py
index
0449f80
..
2eccc59
100644
(file)
--- a/
lib/ssconf.py
+++ b/
lib/ssconf.py
@@
-29,6
+29,7
@@
configuration data, which is mostly static and available to all nodes.
import sys
import re
import os
import sys
import re
import os
+import errno
from ganeti import errors
from ganeti import constants
from ganeti import errors
from ganeti import constants
@@
-287,6
+288,7
@@
class SimpleStore(object):
constants.SS_HYPERVISOR_LIST,
constants.SS_MAINTAIN_NODE_HEALTH,
constants.SS_UID_POOL,
constants.SS_HYPERVISOR_LIST,
constants.SS_MAINTAIN_NODE_HEALTH,
constants.SS_UID_POOL,
+ constants.SS_NODEGROUPS,
)
_MAX_SIZE = 131072
)
_MAX_SIZE = 131072
@@
-307,7
+309,7
@@
class SimpleStore(object):
filename = self._cfg_dir + '/' + self._SS_FILEPREFIX + key
return filename
filename = self._cfg_dir + '/' + self._SS_FILEPREFIX + key
return filename
- def _ReadFile(self, key):
+ def _ReadFile(self, key, default=None):
"""Generic routine to read keys.
This will read the file which holds the value requested. Errors
"""Generic routine to read keys.
This will read the file which holds the value requested. Errors
@@
-318,6
+320,8
@@
class SimpleStore(object):
try:
data = utils.ReadFile(filename, size=self._MAX_SIZE)
except EnvironmentError, err:
try:
data = utils.ReadFile(filename, size=self._MAX_SIZE)
except EnvironmentError, err:
+ if err.errno == errno.ENOENT and default is not None:
+ return default
raise errors.ConfigurationError("Can't read from the ssconf file:"
" '%s'" % str(err))
data = data.rstrip('\n')
raise errors.ConfigurationError("Can't read from the ssconf file:"
" '%s'" % str(err))
data = data.rstrip('\n')
@@
-423,6
+427,14
@@
class SimpleStore(object):
nl = data.splitlines(False)
return nl
nl = data.splitlines(False)
return nl
+ def GetNodegroupList(self):
+ """Return the list of nodegroups.
+
+ """
+ data = self._ReadFile(constants.SS_NODEGROUPS)
+ nl = data.splitlines(False)
+ return nl
+
def GetClusterTags(self):
"""Return the cluster tags.
def GetClusterTags(self):
"""Return the cluster tags.
@@
-466,7
+478,8
@@
class SimpleStore(object):
"""
try:
"""
try:
- return int(self._ReadFile(constants.SS_PRIMARY_IP_FAMILY))
+ return int(self._ReadFile(constants.SS_PRIMARY_IP_FAMILY,
+ default=netutils.IP4Address.family))
except (ValueError, TypeError), err:
raise errors.ConfigurationError("Error while trying to parse primary ip"
" family: %s" % err)
except (ValueError, TypeError), err:
raise errors.ConfigurationError("Error while trying to parse primary ip"
" family: %s" % err)