Statistics
| Branch: | Tag: | Revision:

root / lib / ssconf.py @ 11e90588

History | View | Annotate | Download (11.5 kB)

# Date Author Comment
b8028dcf 12/19/2012 06:29 pm Michael Hanselmann

Replace frozenset with compat.UniqueFrozenset

This is not a trivial s/frozenset/compat.UniqueFrozenset/, but rather
only replaces “frozenset” where appropriate. Most of the places are
“static” information that doesn't change after the module has been
loaded....

9b4329e9 12/03/2012 03:04 pm Michael Hanselmann

Add ssconf function to read all files

Configuring a node daemon on a newly added node will need all ssconf
values.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

cc7f5bfc 12/03/2012 03:03 pm Michael Hanselmann

ssconf: Add dry-run support for writing files

A new utility for configuring the node daemon will support a dry-run
mode. This patch adds the necessary functionality to
“ssconf.SimpleStore” and provides comprehensive tests for
“SimpleStore.WriteFiles”. To enable the latter, a testing-only parameter...

29a32ce5 12/03/2012 03:03 pm Michael Hanselmann

ssconf: Add function to verify keys

The new utility for configuring the node daemon will have to check
whether it received valid ssconf names.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

dffa96d6 11/28/2012 01:48 pm Michael Hanselmann

Move cluster verification out of prepare-node-join

A new tool for configuring the node daemon will also have to verify the
cluster name, so it's better to have this function in a central place.
In the process of moving it to ssconf it is also changed to use...

911dfc49 11/28/2012 01:48 pm Michael Hanselmann

ssconf: Verify file size when reading, add some tests

Until now ssconf would limit the amount read from files to 128 KiB and
silently ignored files larger than that. With this patch a check is
added by using fstat(2) on the file descriptor while it's being read....

fb486969 11/28/2012 09:45 am Michael Hanselmann

ssconf: Move class-level constants to module

There is no good reason why these two constants should be inside the
class. This patch moves them to the module so they can be used without
“self”.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

f35111c0 11/28/2012 09:45 am Michael Hanselmann

Remove ssconf.SimpleConfigReader

Commit b0dcdc1 removed the last user of this class.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

c5ac51bb 11/28/2012 09:45 am Michael Hanselmann

ssconf: Small error message fixes

- Include filename in error message
- s/ip/IP/
- Stop using superfluous variable

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

1ea0e8a8 11/27/2012 02:12 pm Michael Hanselmann

ssconf: Remove unused regular expression

RE_VALID_SSCONF_NAME is not used anywhere.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Michele Tartara <>

f2bd89b3 11/20/2012 07:51 pm Apollon Oikonomopoulos

ss_conf support for networks

Signed-off-by: Apollon Oikonomopoulos <>
Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

5506d7a9 10/04/2012 04:58 am Michael Hanselmann

ssconf: Fix mistake made in commit ee501db

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

ee501db1 10/04/2012 04:38 am Michael Hanselmann

Move a function from backend to ssconf

The “WriteSsconfFiles” function is used to write ssconf files. By moving
it we can avoid importing backend into bootstrap. The latter is imported
by CLI programs and backend doesn't have much to do with them.

Signed-off-by: Michael Hanselmann <>...

f45c5c09 09/18/2012 06:09 pm Michael Hanselmann

Migrate lib/ssconf.py from constants to pathutils

File system paths moved from constants to pathutils.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

c09254c2 06/08/2012 02:02 pm Iustin Pop

Move the ssconf file prefix constant to constants.py

This way, it can be reused in the Haskell code too.

Signed-off-by: Iustin Pop <>
Reviewed-by: Guido Trotter <>

186c03b3 11/04/2011 04:22 pm Andrea Spadaccini

Fix cluster start failure due to missing netmask

If the cluster version is upgraded from a version before commit
5a8648eb609f7e3a8d7ad7f82e93cfdd467a8fb5 to a version after that commit,
the master startup will fail because the ssconf file with the master...

5a8648eb 10/05/2011 12:05 pm Andrea Spadaccini

Add cluster netmask parameter

Add the master_netmask cluster parameter, that represents the netmask of
the master IP, encoded as a CIDR suffix.

This parameter can be set via the --master-netmask of gnt-cluster init
and gnt-cluster modify. The default behaviour is to be consistent with...

cd57bab6 08/17/2011 05:57 pm Michael Hanselmann

ensure-dirs: Set correct permissions on ssconf files

The files should be 0444, not 0400. This was a regression from 2.4.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: René Nussbaumer <>

d0c8c01d 07/25/2011 04:55 pm Iustin Pop

Most boring patch ever

s/'/"/ in (hopefully) the right places.

Signed-off-by: Iustin Pop <>
Reviewed-by: Michael Hanselmann <>

4b97f902 03/01/2011 07:11 pm Apollon Oikonomopoulos

Core shared file storage support

This patch introduces core file storage support, consisting of the following:

A configure-time switch for enabling/disabling shared file storage
support and controlling the shared file storage location:
--with-shared-file-storage-dir=. Shared file storage configuration is then...

6f076453 09/14/2010 07:49 pm Guido Trotter

Export nodegroups list (names/uuids) via ssconf

Signed-off-by: Guido Trotter <>
Reviewed-by: Iustin Pop <>

7dd999fc 08/27/2010 03:44 pm Manuel Franceschini

Handle ENOENT case in ssconf.GetPrimaryIPFamily

This patch adds an optional default parameter to SimpleStore._ReadFile. This
can be used to default the return value of this method in case the ssconf file
is not present.

In this particular case it is used to return AF_INET in case...

868a98ca 08/19/2010 12:43 pm Manuel Franceschini

Add primary_ip_family to ssconf

Since this parameter will be used on all daemon startups, it needs to be
available on all nodes. This is achieved by querying it via ssconf. This
patch additionally adds a getter method to readily retrieve the primary
ip family from a ConfigWriter object....

b705c7a6 08/18/2010 11:27 am Manuel Franceschini

Support for resolving hostnames to IPv6 addresses

This patch enables IPv6 name resolution by using socket.getaddrinfo
instead of socket.gethostbyname_ex.

It renames the HostInfo class to Hostname and unifies its use throughout
the code. This is achieved by using static calls where no object is...

a744b676 07/09/2010 04:37 pm Manuel Franceschini

Introduce lib/netutils.py

This patch moves network utility functions to a dedicated module.

Signed-off-by: Manuel Franceschini <>
Reviewed-by: Iustin Pop <>

999847c8 06/01/2010 12:08 pm Guido Trotter

ssconf: error out when writing oversized files

Since we impose a maximum limit when reading ssconf files, let's error
out when trying to write them too big, so we don't pretend everything is
ok, and make mistakes when we actually read partial files.

Signed-off-by: Guido Trotter <>...

1c69ad80 04/28/2010 02:57 pm Guido Trotter

Remove "ssconf.CheckMasterCandidate"

This function is not used anymore, so there's no point in keeping it
around.

This reverts commit 3f71b464ad5cdd1f1b53f2a31a4eef4e2a5550cc, apart from
a one empty line conflict in ssconf.py

Signed-off-by: Guido Trotter <>...

d3b790bb 04/19/2010 03:32 pm Balazs Lecz

Fix a couple of pydoc syntax problems

Signed-off-by: Balazs Lecz <>
Reviewed-by: Michael Hanselmann <>

0fbae49a 04/16/2010 04:11 pm Balazs Lecz

Add uid_pool to ssconf

Signed-off-by: Balazs Lecz <>
Reviewed-by: Guido Trotter <>

5c465a95 04/08/2010 06:50 pm Iustin Pop

Export the maintain_node_health option in ssconf

Signed-off-by: Iustin Pop <>
Reviewed-by: Guido Trotter <>

4f7a6a10 03/23/2010 12:21 pm Iustin Pop

Distribute list of enabled hypervisors in ssconf

This can be used by nodes to know which hypervisors they are supposed to
support.

Signed-off-by: Iustin Pop <>
Reviewed-by: René Nussbaumer <>

9d099698 03/18/2010 04:29 pm Guido Trotter

SimpleConfigReader: add docstrings

All non-oneliner functions, after this patch, have their docstring.

Signed-off-by: Guido Trotter <>
Reviewed-by: Iustin Pop <>

b4478d34 03/08/2010 05:15 pm Michael Hanselmann

Support passing in file object in utils.FileLock

This way we can re-use file objects opened in other places. Also add more
unittests.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>
Reviewed-by: Iustin Pop <>

099c52ad 11/03/2009 04:31 pm Iustin Pop

Another round of pylint-related style fixes

A newer version of pylint, more warnings…

Signed-off-by: Iustin Pop <>
Reviewed-by: Michael Hanselmann <>

cd195419 10/26/2009 04:48 pm Guido Trotter

SimpleConfigReader: ips are partitioned by link

We were already half-doing it, but this completes the process.

1) We don't maintain a list of ips or an ip->instance map
2) We add a new link,ip->instance map (link->ips list we had)
3) We add the link parameter to GetInstanceByIp (making it...

47a626b0 10/26/2009 12:17 pm Guido Trotter

SimpleConfigReader: queries for default nicparams

GetDefaultNicParams returns the default nic parameters.
GetDefaultNicLink returns the default nic link.

Signed-off-by: Guido Trotter <>
Reviewed-by: Michael Hanselmann <>

69b99987 10/12/2009 01:48 pm Michael Hanselmann

Code and docstring style fixes

Found using pylint and epydoc.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

23824641 09/30/2009 05:49 pm Luca Bigliardi

Extend confd instances ips query

The query now accepts a link parameter.

Signed-off-by: Luca Bigliardi <>
Reviewed-by: Guido Trotter <>

d01ae714 09/22/2009 05:35 pm Luca Bigliardi

Confd: add instances IPs query

Extend confd to answer queries about instances IPs.

Signed-off-by: Luca Bigliardi <>
Reviewed-by: Iustin Pop <>

efbb4fd2 09/16/2009 04:55 pm Luca Bigliardi

Confd: add primary IPs queries

Extend confd to answer queries about nodes primary IPs and master candidates
primary IPs.

Signed-off-by: Luca Bigliardi <>
Reviewed-by: Michael Hanselmann <>

4d4a651d 09/11/2009 05:33 pm Michael Hanselmann

Wrap lines over 80 characters

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Luca Bigliardi <>

73a465ee 08/31/2009 06:43 pm Guido Trotter

Remove SimpleConfigReader.GetHypervisorType

We haven't had that config file entry for a while.

Signed-off-by: Guido Trotter <>
Reviewed-by: Michael Hanselmann <>

d4c1bd12 08/28/2009 02:06 pm Guido Trotter

SimpleConfigReader: handle stat() errors

Also, catch EnvironmentError, rather than IOError, when trying to read
the file.

Signed-off-by: Guido Trotter <>
Reviewed-by: Michael Hanselmann <>

ae130c81 08/12/2009 01:02 pm Guido Trotter

SimpleConfigReader: add IP address lookup helpers

Add the following functions to SimpleConfigReader:
GetInstanceByIp, nic ip -> instance name
GetNodePrimaryIp, node name -> node primary ip
GetInstancePrimaryNode, instance name -> primary node

For the first one we precalculate the _ip_to_instance, so we don't have...

e843991b 08/12/2009 12:54 pm Guido Trotter

SimpleConfigReader.GetNodeStatusFlags

Adding a way to retrieve the three node status flags, all in one go,
from SimpleConfigReader. Non-existing nodes are handled by returning
"None".

Signed-off-by: Guido Trotter <>
Reviewed-by: Iustin Pop <>

ad8b2f9b 08/10/2009 03:56 pm Guido Trotter

SimpleConfigReader: s/Reload/_Load/

Since we use it also to load the config file initially we rename the
Reload function to _Load. Then we re-export it as Reload to clients
(since for them it's a reload).

Signed-off-by: Guido Trotter <>...

7bcc78e4 08/10/2009 03:56 pm Guido Trotter

SimpleConfigReader.Reload, avoid double reloads

If for some reason we try to call Reload twice but the config file
hasn't changed, we don't want to load it again. Use stat() on the file
to cheaply avoid that situation.

We also return a boolean value, according to whether we have reloaded...

a0c26bdb 08/07/2009 02:32 pm Guido Trotter

SimpleConfigReader: add serial numbers reading

GetConfigSerialNo and GetClusterSerialNo return respectively the serial
number for the config and for the cluster object.

Signed-off-by: Guido Trotter <>
Reviewed-by: Michael Hanselmann <>

1fe93c75 08/07/2009 12:24 pm Guido Trotter

SimpleConfigReader.Reload()

Rather than initializing the config statically at class creation time,
we load it every time Reload() is called.

Signed-off-by: Guido Trotter <>
Reviewed-by: Iustin Pop <>

01cf7dbe 08/06/2009 08:41 pm Guido Trotter

SimpleConfigReader: Handle errors when loading

Handling both IOErrors and ValueErrors (thrown by the simplejson loader)

Signed-off-by: Guido Trotter <>
Reviewed-by: Iustin Pop <>

3f71b464 08/06/2009 07:36 pm Guido Trotter

ssconf.CheckMasterCandidate

This function checks that the current node is a master candidate, and
terminates otherwise. It will be used upon ganeti-confd startup.

Signed-off-by: Guido Trotter <>
Reviewed-by: Iustin Pop <>

8113a52e 08/05/2009 08:05 pm Luca Bigliardi

Add master candidates IPs informations to ssconf

This will be used when querying confd, in order not to rely on DNS being
available.

Signed-off-by: Luca Bigliardi <>
Signed-off-by: Guido Trotter <>
Reviewed-by: Guido Trotter <>

f9780ccd 08/05/2009 05:55 pm Luca Bigliardi

Add nodes IPs informations to ssconf

Having a list of primary/secondary IPs of all the nodes in ssconf can be useful
for scripts/hooks which need to automatically configure network properties for
the whole cluster (e.g.: ipsec/netfilter rules) without relying on a...

a33848a5 07/16/2009 01:57 pm Guido Trotter

Simplify InitConfig and remove SimpleConfigWriter

InitConfig currently creates the cluster config_data, then puts it into
a dict, passes it to SimpleConfigWriter to load it from a dict (which
just reuses the dict value) and then saves it. The SimpleConfigWriter is...

d393737d 07/14/2009 06:18 pm Guido Trotter

Merge branch 'next' into branch-2.1

  • next:
    Remove SimpleConfigWriter.SetMasterNode
    _GenerateDiskTemplate: use base_index in the name
    ganeti-masterd: avoid SimpleConfigReader
    cmdlib: Fix typo in LUQueryClusterInfo

Conflicts:

daemons/ganeti-masterd...
48c8887b 07/14/2009 06:07 pm Guido Trotter

Remove SimpleConfigWriter.SetMasterNode

This function is not used.

Signed-off-by: Guido Trotter <>
Reviewed-by: Michael Hanselmann <>

920b5878 06/24/2009 06:17 pm Guido Trotter

Convert ssconf._ReadFile to utils.ReadFile

Making ssconf._ReadFile a wrapper over utils.ReadFile

Signed-off-by: Guido Trotter <>

25e39bfa 05/25/2009 12:14 pm Iustin Pop

rapi: make tags query not use jobs

Currently the rapi tags query implementation is similar to the command
line one: it submits OpGetTags jobs. This not good, since this being an
API it can be used a lot and can pollute the job queue with many such
trivial jobs....

5d60b3bd 04/06/2009 11:20 am Iustin Pop

Add a new ssconf file with the cluster tags

Since the cluster tags are/should be more-or-less static, add them as an
ssconf key, so that querying them is possible without creating a
job/requiring the masterd to be running.

Reviewed-by: imsnah

81a49123 02/04/2009 12:31 pm Iustin Pop

ssconf: add some more keys and some fixes

This patch adds the online node list and instance list to the ssconf
keys. In order to do distribute correctly the instance list, we need to
update the cluster serial number on instance additions and removals.

The patch also changes the permissions on the ssconf files to be 0444:...

8a113c7a 01/09/2009 06:24 pm Iustin Pop

Add a new ssconf file with the ganeti version

The patch adds a new ssconf file containing the ganeti version.

Reviewed-by: imsnah

a3316e4a 12/05/2008 12:12 pm Iustin Pop

Add the offline node list to ssconf

The patch also changes the various node list generation to be more
consistent.

Reviewed-by: imsnah

02b31f32 12/05/2008 04:42 am Iustin Pop

ssconf: empty files should not add a newline

Currently we add a newline in the ssconf writeout process, even if the
file is empty. We chage this case so that lists of values (e.g. offline
nodes) are correct (not a list of one empty element).

Reviewed-by: imsnah

8135a2db 12/02/2008 07:05 am Iustin Pop

Prevent master failover to a non candidate node

Reviewed-by: imsnah

f56618e0 12/02/2008 07:05 am Iustin Pop

Add the list of master candidates to ssconf

Reviewed-by: imsnah

89b14f05 12/02/2008 07:04 am Iustin Pop

Simplify a little the ssconf update

We have (again) the KeyToFilename function, so we move the writing of
the files to a method under SimpleStore.

Reviewed-by: imsnah

93384844 12/02/2008 07:03 am Iustin Pop

Revert "Get rid of ssconf"

This partially reverts the "Get rid of ssconf" patch.

It adds back a simpler version of the SimpleStore class, and drops the
WritableSimpleStore class. The new version of the class also has
node_list as a new key, and increases the size of the keys so that big...

03d1dba2 11/25/2008 02:37 pm Michael Hanselmann

Pass ssconf values from master to node

Instead of parsing the configuration on the node, we pass the ssconf
values from the master.

Reviewed-by: iustinp

0c223ea9 11/20/2008 02:50 pm Michael Hanselmann

ganeti.ssconf: Add function to write ssconf files

This function will be used to write ssconf files from the node daemon.
By creating a lock file, we synchronize different child processes of
ganeti-noded to not overwrite each other's changes. Also, external...

02f99608 10/08/2008 04:04 pm Oleksiy Mishchenko

Fix for gnt-cluster init.

Reviewed-by: iustinp

06dc5b44 10/05/2008 12:16 pm Iustin Pop

Fix ssconf.GetMasterAndMyself

The ssconf migration left this out.

Reviwed-by: imsnah,ultrotter

c259ce64 10/01/2008 08:37 pm Michael Hanselmann

Get rid of ssconf

Remove leftovers from ssconf.

Reviewed-by: iustinp

856c67e1 10/01/2008 08:33 pm Michael Hanselmann

Add simple configuration reader/writer classes

This will be used to read the configuration file in the node daemon.
The write functionality is needed for master failover.

Reviewed-by: iustinp

b33e986b 07/30/2008 06:06 pm Iustin Pop

Make gnt-* commands fail nicely on non-masters

This patch adds a check that we are on the master after failing to
connect to the socket, and log nicely the master name.

Reviewed-by: ultrotter

5675cd1f 07/30/2008 11:33 am Iustin Pop

Implement checking for the master role in rapi

This patch moves the CheckMaster function from ganeti-masterd to ssconf
(most logical place, it cannot go in utils since we would have recursive
imports between ssconf and utils) and changes ganeti-rapi to also call...

05f86716 06/16/2008 05:32 pm Guido Trotter

Move SetKey to WritableSimpleStore and use it

Before we used to be able to update SimpleStore by just calling SetKey, this
feature is now moved to an external class, which inherits from it. In this
patch the new WritableSimpleStore class is also put to use, in the LUs that...

c9673d92 06/11/2008 01:12 pm Guido Trotter

Remove SimpleStore cache

SimpleStore is instantiated anew most of the times it's used, so having
a cache inside it serves no purpose. Removing it.

Reviewed-by: iustinp

8498462b 05/02/2008 12:36 pm Guido Trotter

ssconf: update the SetKey docstring

SetKey is used, other than for adding new nodes, in another few cases. Update
the docstring to reflect this, so we don't mislead people reading it.

Reviewed-by: iustinp

742f39ac 04/29/2008 05:27 pm Michael Hanselmann

Support config version in ssconf

Reviewed-by: iustinp

17dfc522 03/19/2008 12:46 pm Manuel Franceschini

Add SS_FILE_STORAGE_DIR to ssconf

Author: manuel.franceschini
Reviewed-by: iustinp

41a57aab 03/05/2008 06:48 pm Michael Hanselmann

Replace custom file writing code with utils.WriteFile

Reviewed-by: ultrotter

2f31098c 10/10/2007 01:00 pm Iustin Pop

Remove the shebang from modules

Since modules are not directly executables, remove the shebang from
them. This helps with lintian warnings.

Also make the autogenerated _autoconf.py contain two comment lines at
the beginning, like the other modules.

Reviewed-by: ultrotter

3ecf6786 08/14/2007 06:17 pm Iustin Pop

Style changes for pep-8 and python-3000 compliance.

This changes the raising of exceptions from:
raise Exception, value
to
raise Exception(value)

as the first form will be removed in python-3000 and the second form is
preferred now.

The changes also involve a few cases of changing from raising standard...

5fcdc80d 07/27/2007 10:41 am Iustin Pop

Move the cluster name from ConfigWriter to SimpleStore.

Reason: if left ConfigWriter, nodes don't know to which cluster they belong.
This will bite us later when we'll revisit node join operation.

Cons: we lose the cluster name from the config file, which means a...

880478f8 07/23/2007 05:38 pm Iustin Pop

Big change/cleanup in relation to the master startup:
- move the master node name from the ConfigWriter to SimpleStore (all
nodes need this, and it was the only thing pulled in from the
ConfigWriter on nodes)
- fix mcpu.py and the testing w.r.t. this change; for testing, rename...

a8083063 07/16/2007 04:39 pm Iustin Pop

Initial commit.