quattor / aquilon Goto Github PK
View Code? Open in Web Editor NEWConfiguration Management Database (3rd Generation)
Home Page: www.quattor.org
License: Apache License 2.0
Configuration Management Database (3rd Generation)
Home Page: www.quattor.org
License: Apache License 2.0
domains
directory (containing the domain git repositories) is the only directory not created by the broker if it is missing. It would be good to have the broker creating it as it is the case for cfg
, templates
...
Issue opened to track progress and know issues regarding Python 3 readiness
Hi,
I'm trying to install Aquilon using "yum -y install aquilon-postgresql" as stated here; http://www.quattor.org/documentation/2012/10/31/install-aquilon.html
Unfortunately, The download of http://yum.quattor.org/aquilon/aquilon-protocols-1.10-1.noarch.rpm fails with the following error : [Errno -1] Package does not match intended download
I've tried cleaning yum's cache but without success.
Is there a problem with the repository?
Julien
As discussed at the Grenoble workshop we would like a way to associate "users/principals" with hosts and other objects and use that information to restrict permission for aq manage
and aq make
for hosts.
It should also allow for super-users to make
and manage
any host.
This could be extended to personalities and features later.
Hi,
I still have an issue while setting up aquilon :
[root@aqd ~]# aq.py status
Error: BadStatusLine("''",): knc[6149]: gstd_initiate: continuation failed
Error log :
[root@aqd ~]# tailf /var/log/aquilon/aqd.log
2015-10-14 12:47:31+0200 [-] Starting aqd version Unknown
2015-10-14 12:47:31+0200 [-] KNCSite starting on '/var/quattor/run/sockets/kncsock'
2015-10-14 12:47:31+0200 [-] Starting factory <aquilon.worker.knc_protocol.KNCSite instance at 0x57413f8>
2015-10-14 12:47:31+0200 [-] AQDSite starting on 6901
2015-10-14 12:47:31+0200 [-] Starting factory <aquilon.worker.base_protocol.AQDSite instance at 0x489eef0>
2015-10-14 12:47:44+0200 [-] [knc] /usr/local/bin/knc[6408]: gstd_error: gss_accept_sec_context: Key table entry not found
2015-10-14 12:47:44+0200 [-] [knc] /usr/local/bin/knc[6408]: do_work: handshake with peer failed
I added the aqd service in freeIPA and I think everythink is setup :
[root@aqd ~]# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: [email protected]
Valid starting Expires Service principal
10/13/2015 16:51:10 10/14/2015 16:44:56 aqd/[email protected]
10/13/2015 16:47:18 10/14/2015 16:44:56 ldap/[email protected]
10/13/2015 16:44:58 10/14/2015 16:44:56 krbtgt/[email protected]
[root@aqd ~]# klist -t -k /etc/krb5.keytab
Keytab name: FILE:/etc/krb5.keytab
KVNO Timestamp Principal
---- ------------------- ------------------------------------------------------
2 10/13/2015 16:47:18 aqd/[email protected]
2 10/13/2015 16:47:18 aqd/[email protected]
2 10/13/2015 16:47:18 aqd/[email protected]
2 10/13/2015 16:47:18 aqd/[email protected]
4 10/13/2015 16:56:34 host/[email protected]
4 10/13/2015 16:56:34 host/[email protected]
4 10/13/2015 16:56:34 host/[email protected]
4 10/13/2015 16:56:34 host/[email protected]
3 10/14/2015 12:41:35 aqd/[email protected]
3 10/14/2015 12:41:35 aqd/[email protected]
3 10/14/2015 12:41:35 aqd/[email protected]
3 10/14/2015 12:41:35 aqd/[email protected]
I'm stuck, so if someone could help, that would be great !
Hi,
yum installation of aquilon using yum -y install aquilon-postgresql
fails with:
http://yum.quattor.org/aquilon/aquilon-protocols-1.10-1.noarch.rpm: [Errno -1] Package does not match intended download. Suggestion: run yum --enablerepo=aquilon clean metadata Trying other mirror. Error Downloading Packages: aquilon-protocols-1.10-1.noarch: failure: aquilon-protocols-1.10-1.noarch.rpm from aquilon: [Errno 256] No more mirrors to try.
I suspect createrepo command needs to be run in the repo because in primary.xml the checksum is
252c56f7707140b93c18c260b35b063e665b2f39
but
sha1sum aquilon-protocols-1.10-1.noarch.rpm
5aa885de61ab12819030d3841addf2fbd57fa6c2 aquilon-protocols-1.10-1.noarch.rpm
build_db.py
initializes the Aquilon database with a prod
domain whose content matches what is expected for running unit tests. But if unit tests are not run, the corresponding Git branch is not created in the template_king
repository and aq add_domain --domain prod
cannot create it as the domain already exists in the database. The only workaround is to create the branch manually in the Git repository.
2 actions are probably needed:
build_db.py
should not create a prod
domain by default. Such a creation should be done only if a specific option is given.aq add_domain
should have an option to fix the missing Git branch if the domain already exists in the databaseWhen running : aq.py status
I've got this error
Error: NotConnected(): knc: invalid option -- 'o'
usage:
server: knc -l [opts] <port> prog [args]
server: knc -il [opts] <prog> [args]
server: knc -lS <path> [opts] <port>
server: knc -ilS <path>
client: knc [opts] <service>@<host> <port>
client: knc [opts] -N<fd> <service>@<host>
-a <bindaddr> bind to address <bindaddr>
-c <num> in listener mode, limit the number of children to <num>
-d increment debug level
-f in listener mode, don't fork after accept
useful for debugging
-i set ``inetd''mode
-l listener (server) mode
-n no DNS
-w set ``inetd wait'' mode
-M <num> in server mode, maximum number of connexions to process
-N <num> use fd <num> as network file descriptor (in client mode)
-P <sprinc> in client mode specify Kerberos principal for server
-S <path> connect to Unix domain socket (server mode)
-T <max_time> In server mode, maximum time to process requests
-? this usage
Following documentation, aquilon user need git-shell shell but git is not installed as dependency of aquilon.
Regards,
aqd
service should be released with a systemd
integration script to replace the current initd
script that doesn't support chkconfig --add
.
The strategic long-term solution is to renovate the protobuf formatter based on version 3 of the protobuf specification, which does include a canonical translation from protobuf to JSON. Ideally, the broker would only produce protobuf 3 data; all translation to human-readable format would happen on the client side.
@jrha has volunteered an intern to do the coding work if someone can provide a design and reference implementation of one command.
Object names like rooms, buildings... are not allowed to start with a digit. Is there a good reason for this restriction? A typical naming of rooms at our site is like 206-1-001
meaning the room 001 on the first floor of building 206. It would good if we could enter this "standard" name rather than rewrite it for Aquilon.
notifyd
is started by aqd
but without specifying an explicit interpreter. As a result the default system interpreter is used (the one returned by env python
) and this breaks the support for virtualenv. Instead aqd
should start notify
using its current interpreter (sys.executable
).
Hi Folks,
I am currently configuring all examples of a particular model in our DC to use 4 network links bonded via LACP. The approach I decided to take was to create a hardware feature and bind it to the model in question. So far, so good.
However, when I compile the profile, the compiler fails with an evaluation error:
evaluation error [/var/quattor/cfg/plenary/ral-tier1/personality/ceph-gw/pre_feature.tpl:?]
path'/hardware/template_name'
does not have an associated value
When I add the key /hardware/template_name
and a value for it to the machine template, the compiler fails with a validation error:
validation error [/var/quattor/cfg/domains/nic-bonding/profiles/$fqdn.tpl]
record definition contains unexpected field(s): template_name
element path: '/hardware'
Is there a reason for using the path /hardware/template_name
instead of /hardware/model
as I would have expected the use of /hardware/model
?
Best wishes,
Bruno
One would have to add the following in aqd.conf:
[broker]
version = 1.11.24_rc1
It's related to the following method:
For more information, check issue #25
I tried to delete the prod
domain after archiving it: This results in a strange Git error:
[aquilon@vm-79119 /]$ aq del domain --domain prod --justification emergency --reason "remove domain created for unit tests"
Bad Request:
Cloning into 'trash'...
fatal: Remote branch trash not found in upstream origin
fatal: The remote end hung up unexpectedly
Attempt to create the trash
branch (does not really make sense) triggers another error referring to missing identity configuration in Git which is also strange (as it is done and not reported for other commands):
[aquilon@vm-79119 /]$ aq del domain --domain prod --justification emergency --reason "remove domain created for unit tests"
Bad Request:
error: duplicate parent 705efacbfcc749cf681f618c9f9cbf3230b2ba0d ignored
*** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: empty ident name (for <[email protected]>) not allowed
Hi Folks,
So I have a feature
of type hardware
in aquilon called network/bonding-mode4
. I expect the associated template file to be: ~/$sandbox> $archetype/features/hardware/network/bonding-mode4/config.pan
.
However, when I bind the feature to a given model, the include statement created in the pre_feature template does not appear to have the correct path:
include {
if ((value("/hardware/manufacturer") == "dell") &&
(value("/hardware/template_name") == "r430-2015-cephgw")){
return("features/hardware/network/bonding-mode4")
} else{ return(undef); };
};
"/metadata/features"={
if ((value("/hardware/manufacturer") == "dell") &&
(value("/hardware/template_name") == "r430-2015-cephgw")){
append("features/hardware/network/bonding-mode4/config");
} else { SELF; };
};
I would expect line 4 to read return("features/hardware/network/bonding-mode4/config")
not return("features/hardware/network/bonding-mode4")
. Is this a bug?
Best wishes,
Bruno
I've started getting the unit tests to run on a stock(-ish) EL7 host, the first big failure is requiring --no-patch
which appears to have been introduced in 1.8.4
(EL7 ships 1.8.3.1
๐), however the release notes indicate that it was added as a synonym for existing functionality...
- "git show -s" was less discoverable than it should have been. It
now has a natural synonym "git show --no-patch".
So switching this to -s
should allow the stock git to work (I will test and report back).
FAIL: test_110_verifydeploylog (broker.test_deploy_domain.TestDeployDomain)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/tkk76468/aquilon/tests/broker/test_deploy_domain.py", line 58, in test_110_verifydeploylog
out, _ = self.gitcommand(command, cwd=kingdir)
File "/home/tkk76468/aquilon/tests/broker/brokertest.py", line 566, in gitcommand
% (command, out, err))
AssertionError: Non-zero return code for ['show', '--no-patch', '--pretty=full', 'deployable'], STDOUT:
@@@
''
@@@
STDERR:
@@@
'fatal: unrecognized argument: --no-patch
'
@@@
This issue is based on a new feature request I raised in email on the quattor-discuss mailing list last week. It touches many different components, e.g. Aquilon, cdp-listend, ncm-cdispd, ncm-ncd, CAF and lots of NCM components. However, I am creating this umbrella issue to describe the high-level request from which sub-issues may be readily created.
The ultimate goal is: we need rock solid test deployments and rock solid back-outs. More specifically, to provide a way to allow an operator who is managing hundreds or thousands of hosts in a domain to:
This can be broken down into the following requirements:
aq deploy --source <sandbox> --target <domain> --compile
should atomically deploy git changes from a sandbox to a domain and compile the domain. If the compile fails, the git changes are removed. If it succeeds, when host profiles are sent across to each host, the fact that this is a deploy and the change ID involved must be communicated with ncm-cdispd
. The command returns a unique change ID.aq undeploy --change <id> --compile
should atomically remove the git changes identified by the change ID and compile the domain. Not allowed without the --compile
option. When host profiles are sent across to each host, the fact that this is an undeploy and the change ID involved must be communicated with ncm-cdispd
. If this is not the last deploy made to a domain, the command will fail listing the other change IDs that have been subsequently applied. An additional flag --redeploy
may be provided, which indicates that all change IDs subsequently applied must be undeployed and then re-deployed again once the selected change ID has been removed.aq deploy --compile
and aq undeploy --compile
must support a --test
option. This option requests a test deployment. This deploys to (or undeploys from) a copy of the domain, not the live domain. The profiles are compiled and shipped out to every host in the domain with a new flag indicating to ncm-cdispd
that this is a test profile only. What the host does when it receives a test profile is discussed below.ncm-cdispd
receives a test profile, as described above, it puts it in a different cache than it would normally use for live profiles. Then it runs all NCM components with --noaction
(only NCM components that support NoAction
), logging output to a test log -- not the normal log. Then it deletes the test profile.CAF::Executor
object. The object encapsulates each individual task involved, with the change ID that links them all together, as well as the actions required to undo the change and a human friendly description. This object becomes a key part of information recorded by CAF::History
but is also used by the component to execute a change. We should also have a CAF::Evaluate
object in which we can enclose arbitrary code that makes a change but that cannot be expressed by another CAF method. See example CAF::Executor
object below.CAF::Executor
also takes a human friendly description of the change being made, as well as the steps required to undo the change. CAF::Process
will additionally need to capture the command needed to undo the change in order to inform CAF::Executor
of the same. CAF::FileWriter
and CAF::FileEditor
can automatically ensure that CAF::Executor
has an undo capability by backing up the file before and after it makes any changes (see also point 10 below). If there is no way to undo a change, there should be a way to flag this up the framework. See below for an example visual representation of a CAF::Executor
object.aq show testlog --change <id>
or similar command that collects the output of all of the test profile runs from every host that ran --noaction
as a result of item 4 above, with a succinct but user readable list of tasks performed by each component (the CAF::Executor
objects). With the --undo
flag will show the undo commands from the CAF::Executor
objects instead. By succinct, this means one line per task across all CAF::Executor
objects in scope (see example CAF::Executor
object below), but with the ability to drill down into more detail if needed (e.g. a --verbose
option).ncm-cdispd
receives a new profile, it records whether this is a live profile or a test profile, and the associated change ID. It passes this information onto ncm-ncd
.ncm-ncd
executes components, it records the exact order in which each component is run with the change ID. Each CAF::Executor
or CAF::History
object created during a deploy or undeploy is logged. If doing an undeploy, it computes the appropriate order to undo changes based on the CAF::Executor
objects that were created during the deploy.CAF::Executor
objects to wrap every change they make. If a file is being changed, the original file and a copy of the new file are stashed in a different directory. This is used by CAF::FileWriter
or CAF::FileEditor
to check and compute an appropriate rollback during an undeploy.ncm-cdispd
or ncm-ncd
will play rollback commands logged in CAF::Executor
objects. It will not expect the NCM component to understand how to revert the state. This is because an NCM component is only good at handling what it thinks is currently in scope. Its view of the world changes as conditional logic within the Perl code routes down different code paths, and as new versions of NCM components are delivered. By recording an exact list of undo commands at the time that the change is made, it can be guaranteed that changes can be successfully reversed even if the NCM component code has been subsequently modified or removed. See the CAF::Executor
example below, note that in many cases recording which CAF
method was used and the arguments are enough for the history. After a successful undeploy, re-running ncm-ncd
with the rolled back (now current) profile should be the same as a no-op.Here is an example visual representation of a CAF::Executor
object for a component that wants to change a file and then send a HUP signal to a process. You'll see it essentially groups together a bunch of other CAF
methods:
CAF::Executor
- Change ID #123
- Task #1 => {
- execute => {
- object => CAF::FileWriter(<config_file>, <backup_file>)
- desc => "Add <new_item> to <config_file>"
- }
- undo => {
- object => same CAF::FileWriter (restore <backup_file>)
- desc => "Restore <backup_file> to <config_file>"
- }
- }
- Task #2 => {
- execute => {
- object => CAF::Process(["pkill", "-HUP", "<process>"])
- desc => "Send HUP signal to <process>"
- }
- undo => {
- # same as execute
- }
-
- }
- Task #3 => {
- execute => {
- object => CAF::Evaluate(sub {<arbitrary code>})
- desc => "Some custom description"
- }
- undo => {
- object => CAF::Evaluate(sub {<arbitrary code>})
- desc => "Some custom reverse description"
- reverse => 1 # When undoing, tasks marked with this flag are executed
- # in reverse order
- }
- }
For example...
# aq add sandbox --sandbox --help
Succeeds in creating the records of the sandbox, but then passes the --help
to git clone and...
usage: git clone [options] [--] <repo> [<dir>]
-v, --verbose be more verbose
-q, --quiet be more quiet
--progress force progress reporting
-n, --no-checkout don't create a checkout
--bare create a bare repository
--mirror create a mirror repository (implies bare)
-l, --local to clone from a local repository
--no-hardlinks don't use local hardlinks, always copy
-s, --shared setup as shared repository
--recursive initialize submodules in the clone
--template <path> path the template repository
--reference <repo> reference repository
-o, --origin <branch>
use <branch> instead of 'origin' to track upstream
-b, --branch <branch>
checkout <branch> instead of the remote's HEAD
-u, --upload-pack <path>
path to git-upload-pack on the remote
--depth <depth> create a shallow clone of that depth
Which is just odd.
# aq show sandbox --sandbox --help
Sandbox: --help [autosync]
Validated: True
Owner: jrha
Compiler: /var/quattor/panc/panc-10.0-jar-with-dependencies.jar
Base Commit: ccc77d8bc9289296cdfae6b1def46e8c2046827a
Currently, Aquilon documentation is spread between this repository (README.md
describing the installation) and the web site (describing Aquilon DB configuration). I think that we should have on the documentation on one side, either this repo or the web site repo. I see pro and cons for both solutions:
So I would probably support moving everything to the web site.
In addition, after everything has been moved into one repo, I suggest that we process it as part of the Quattor release documentation that we put on ReadTheDocs.
It would be very useful to be able to add additional disks to a model rather than having to do it individually at the machine level with aq add_disk
In profile templates, pan/units
provided by the template library is included before archetype/base
used to add the template library to the LOADPATH., resulting in compilation failures This should be the opposite.
Test out end-to-end install of Aquilon broker for RHEL7/Fedora and/or CentOS. Create either detail step guide or automated script to deploy Aquilon broker.
Is the README file of the repo still of value?
There is also a README.dev in the etc folder, with instructions to install a dev broker, but the link is broken
In the etc/aqd.conf.noms
default configuration file for non MS Aquilon users, ant_home
is defined to the empty string to override the MS-specific definition in aqd.conf.defaults
. Unfortunately this has the result of defining ant_home
in the java
command used by the compiler to /
instead of /usr/share\ant
, leading to the error Could not find or load main class org.apache.tools.ant.launch.Launcher
While discussing #34 at the workshop, we agreed that adding support for aq deploy
to both deploy and compile a change while holding locks would be a good idea.
There are 2 differents described way to start with aquilon : the README file of the github repo and the quattor website.
Which one is the correct to follow (I guess the website one) ?
I think we should just point the README to the official website documentation
In aq show network
date lines have columns misaligned with the header line, if the network name is longer than Network
.
The aquilon-postgresql
rpm doesn't depend on postgresql
as it should.
I'm opening a different ticket since the problem is not the same.
Upon starting aqd, I now have the following error message:
2015-04-17 11:22:16+0200 [-] Starting aqd version Unknown
2015-04-17 11:22:16+0200 [-] Traceback (most recent call last):
2015-04-17 11:22:16+0200 [-] File "/usr/bin/aqd.py", line 30, in <module>
2015-04-17 11:22:16+0200 [-] twistd.run()
2015-04-17 11:22:16+0200 [-] File "/usr/lib64/python2.6/site-packages/twisted/scripts/twistd.py", line 27, in run
2015-04-17 11:22:16+0200 [-] app.run(runApp, ServerOptions)
2015-04-17 11:22:16+0200 [-] File "/usr/lib64/python2.6/site-packages/twisted/application/app.py", line 652, in run
2015-04-17 11:22:16+0200 [-] runApp(config)
2015-04-17 11:22:16+0200 [-] File "/usr/lib64/python2.6/site-packages/twisted/scripts/twistd.py", line 23, in runApp
2015-04-17 11:22:16+0200 [-] _SomeApplicationRunner(config).run()
2015-04-17 11:22:16+0200 [-] File "/usr/lib/python2.6/site-packages/aquilon/twisted_patches.py", line 176, in updated_application_run
2015-04-17 11:22:16+0200 [-] self.application = self.createOrGetApplication()
2015-04-17 11:22:16+0200 [-] File "/usr/lib64/python2.6/site-packages/twisted/application/app.py", line 446, in createOrGetApplication
2015-04-17 11:22:16+0200 [-] ser = plg.makeService(self.config.subOptions)
2015-04-17 11:22:16+0200 [-] File "/usr/lib/python2.6/site-packages/twisted/plugins/aqd.py", line 157, in makeService
2015-04-17 11:22:16+0200 [-] registry = ResourcesCommandRegistry(restServer)
2015-04-17 11:22:16+0200 [-] File "/usr/lib/python2.6/site-packages/aquilon/worker/resources.py", line 515, in __init__
2015-04-17 11:22:16+0200 [-] super(ResourcesCommandRegistry, self).__init__()
2015-04-17 11:22:16+0200 [-] File "/usr/lib/python2.6/site-packages/aquilon/worker/resources.py", line 405, in __init__
2015-04-17 11:22:16+0200 [-] entry.add_format(format, style)
2015-04-17 11:22:16+0200 [-] File "/usr/lib/python2.6/site-packages/aquilon/worker/resources.py", line 507, in add_format
2015-04-17 11:22:16+0200 [-] meth(format, self.broker_command.command)
2015-04-17 11:22:16+0200 [-] File "/usr/lib/python2.6/site-packages/aquilon/worker/formats/formatters.py", line 76, in config_proto
2015-04-17 11:22:16+0200 [-] raise ProtocolError("Protocol %s: %s" % (module, err))
2015-04-17 11:22:16+0200 [-] aquilon.exceptions_.ProtocolError: Protocol aqdsystems_pb2: No module named aqdsystems_pb2
I've found aqdsystems_pb2.py, but in /usr/local/lib/python2.7/dist-packages and not in python2.6.
Is there a problem related to python versions between aquilon modules? Is there a workarount?
Currently the broker created profiles where the last line is include { "archetype/final" };
. I can imagine that the this template is not necessarily needed and rather than creating it empty, I'd suggest that this line is replaced by:
include if_exists('archetype/final');
Note that an optional template is still part of the dependency information, so if it is added later, it will cause the profiles to be recompliled.
When installing aquilon-postgresql, this triggers a lot of 'unneeded' dependencies :
Dependencies Resolved
=============================================================================================================================================================================
Package Arch Version Repository Size
=============================================================================================================================================================================
Installing:
aquilon-postgresql noarch 1.0.0-1 aquilon 1.7 k
Installing for dependencies:
GConf2 x86_64 3.2.6-8.el7 el7x_x86_64 1.0 M
PyQt4 x86_64 4.10.1-13.el7 el7x_x86_64 2.9 M
PyYAML x86_64 3.10-11.el7 el7x_x86_64 152 k
SDL x86_64 1.2.15-14.el7 el7x_x86_64 203 k
agg x86_64 2.5-18.el7 el7x_x86_64 144 k
ant noarch 1.9.2-9.el7 el7x_x86_64 1.9 M
ant-apache-regexp noarch 1.9.2-9.el7 el7x_x86_64 33 k
ant-contrib noarch 1.0-0.23.b3.el7 el7x_x86_64 253 k
aquilon noarch 1.12.17_rc2-1.el7 aquilon 1.2 M
aquilon-protocols noarch 1.10-1.el7 aquilon 143 k
atk x86_64 2.14.0-1.el7 el7x_x86_64 250 k
atlas x86_64 3.10.1-10.el7 el7x_x86_64 4.3 M
blas x86_64 3.4.2-5.el7 el7x_x86_64 398 k
cairo x86_64 1.14.2-1.el7 el7x_x86_64 710 k
cdparanoia-libs x86_64 10.2-17.el7 el7x_x86_64 55 k
dejavu-fonts-common noarch 2.33-6.el7 el7x_x86_64 63 k
dejavu-sans-fonts noarch 2.33-6.el7 el7x_x86_64 1.4 M
easymock2 noarch 2.5.2-12.el7 el7x_x86_64 91 k
flac-libs x86_64 1.3.0-5.el7_1 el7x_x86_64 168 k
fontconfig x86_64 2.10.95-7.el7 el7x_x86_64 227 k
fontpackages-filesystem noarch 1.44-8.el7 el7x_x86_64 9.0 k
gd x86_64 2.0.35-26.el7 el7x_x86_64 145 k
giflib x86_64 4.1.6-9.el7 el7x_x86_64 39 k
glib-networking x86_64 2.42.0-1.el7 el7x_x86_64 123 k
gnutls x86_64 3.3.8-14.el7_2 el7x_x86_64_errata 661 k
graphite2 x86_64 1.3.6-1.el7_2 el7x_x86_64_errata 111 k
gsettings-desktop-schemas x86_64 3.14.2-1.el7 el7x_x86_64 475 k
gsm x86_64 1.0.13-11.el7 el7x_x86_64 29 k
gstreamer x86_64 0.10.36-7.el7 el7x_x86_64 957 k
gstreamer-plugins-base x86_64 0.10.36-10.el7 el7x_x86_64 1.2 M
gstreamer-plugins-good x86_64 0.10.31-11.el7 el7x_x86_64 1.5 M
gstreamer-tools x86_64 0.10.36-7.el7 el7x_x86_64 26 k
gtk2 x86_64 2.24.28-8.el7 el7x_x86_64 3.4 M
hamcrest noarch 1.3-6.el7 el7x_x86_64 124 k
harfbuzz x86_64 0.9.36-1.el7 el7x_x86_64 155 k
hicolor-icon-theme noarch 0.12-7.el7 el7x_x86_64 42 k
iso-codes noarch 3.46-2.el7 el7x_x86_64 2.7 M
java-1.7.0-openjdk x86_64 1:1.7.0.101-2.6.6.1.el7_2 el7x_x86_64_errata 208 k
java-1.7.0-openjdk-devel x86_64 1:1.7.0.101-2.6.6.1.el7_2 el7x_x86_64_errata 9.2 M
java-1.7.0-openjdk-headless x86_64 1:1.7.0.101-2.6.6.1.el7_2 el7x_x86_64_errata 25 M
java-1.8.0-openjdk x86_64 1:1.8.0.91-0.b14.el7_2 el7x_x86_64_errata 218 k
java-1.8.0-openjdk-headless x86_64 1:1.8.0.91-0.b14.el7_2 el7x_x86_64_errata 31 M
javapackages-tools noarch 3.4.1-11.el7 el7x_x86_64 72 k
junit noarch 4.11-8.el7 el7x_x86_64 260 k
kde-filesystem x86_64 4-47.el7 el7x_x86_64 47 k
knc x86_64 1.7.1-2.el7.centos quattor_externals_x86_64 26 k
lapack x86_64 3.4.2-5.el7 el7x_x86_64 5.4 M
libXcomposite x86_64 0.4.4-4.1.el7 el7x_x86_64 21 k
libXdamage x86_64 1.1.4-4.1.el7 el7x_x86_64 20 k
libXfont x86_64 1.5.1-2.el7 el7x_x86_64 150 k
libXft x86_64 2.3.2-2.el7 el7x_x86_64 57 k
libXpm x86_64 3.5.11-3.el7 el7x_x86_64 53 k
libXtst x86_64 1.2.2-2.1.el7 el7x_x86_64 19 k
libXv x86_64 1.0.10-2.el7 el7x_x86_64 17 k
libasyncns x86_64 0.8-7.el7 el7x_x86_64 25 k
libavc1394 x86_64 0.5.3-14.el7 el7x_x86_64 50 k
libdv x86_64 1.0.0-17.el7 el7x_x86_64 77 k
libfontenc x86_64 1.1.2-3.el7 el7x_x86_64 29 k
libgfortran x86_64 4.8.5-4.el7 el7x_x86_64 292 k
libiec61883 x86_64 1.2.0-10.el7 el7x_x86_64 36 k
libmng x86_64 1.0.10-14.el7 el7x_x86_64 170 k
libogg x86_64 2:1.3.0-7.el7 el7x_x86_64 23 k
libquadmath x86_64 4.8.5-4.el7 el7x_x86_64 182 k
libraw1394 x86_64 2.1.0-2.el7 el7x_x86_64 63 k
libshout x86_64 2.2.2-11.el7 el7x_x86_64 42 k
libsndfile x86_64 1.0.25-10.el7 el7x_x86_64 148 k
libsoup x86_64 2.48.1-3.el7 el7x_x86_64 347 k
libthai x86_64 0.1.14-9.el7 el7x_x86_64 186 k
libtheora x86_64 1:1.1.1-8.el7 el7x_x86_64 135 k
libv4l x86_64 0.9.5-4.el7 el7x_x86_64 194 k
libvisual x86_64 0.4.0-16.el7 el7x_x86_64 137 k
libvorbis x86_64 1:1.3.3-8.el7 el7x_x86_64 204 k
libwebp x86_64 0.3.0-3.el7 el7x_x86_64 169 k
libxshmfence x86_64 1.2-1.el7 el7x_x86_64 6.2 k
libyaml x86_64 0.1.4-11.el7_0 el7x_x86_64 54 k
lksctp-tools x86_64 1.0.13-3.el7 el7x_x86_64 86 k
mesa-libEGL x86_64 10.6.5-3.20150824.el7 el7x_x86_64 73 k
mesa-libGL x86_64 10.6.5-3.20150824.el7 el7x_x86_64 183 k
mesa-libgbm x86_64 10.6.5-3.20150824.el7 el7x_x86_64 40 k
mesa-libglapi x86_64 10.6.5-3.20150824.el7 el7x_x86_64 39 k
nettle x86_64 2.7.1-4.el7 el7x_x86_64 326 k
numpy x86_64 1:1.7.1-11.el7 el7x_x86_64 2.8 M
openpgm x86_64 5.2.122-2.el7 el7_epel 171 k
orc x86_64 0.4.22-5.el7 el7x_x86_64 164 k
pango x86_64 1.36.8-2.el7 el7x_x86_64 286 k
pcsc-lite-libs x86_64 1.8.8-6.el7 el7x_x86_64 33 k
pexpect noarch 2.3-11.el7 el7x_x86_64 141 k
phonon x86_64 4.6.0-10.el7 el7x_x86_64 204 k
phonon-backend-gstreamer x86_64 2:4.6.3-3.el7 el7x_x86_64 139 k
pixman x86_64 0.32.6-3.el7 el7x_x86_64 253 k
protobuf-python x86_64 2.5.0-8.el7 el7x_x86_64 129 k
pulseaudio-libs x86_64 6.0-7.el7 el7x_x86_64 575 k
pulseaudio-libs-glib2 x86_64 6.0-7.el7 el7x_x86_64 26 k
pycairo x86_64 1.8.10-8.el7 el7x_x86_64 156 k
pygtk2 x86_64 2.24.0-9.el7 el7x_x86_64 914 k
pyparsing noarch 1.5.6-9.el7 el7x_x86_64 93 k
pyserial noarch 2.6-5.el7 el7x_x86_64 123 k
python-beaker noarch 1.5.4-10.el7 el7x_x86_64 79 k
python-cdb x86_64 0.35-1 quattor_externals_x86_64 25 k
python-coverage x86_64 3.6-0.5.b3.el7 el7x_x86_64 152 k
python-ipaddr noarch 2.1.9-5.el7 el7x_x86_64 35 k
python-ipython noarch 3.2.1-1.el7 el7_epel 13 k
python-ipython-console noarch 3.2.1-1.el7 el7_epel 1.6 M
python-ipython-gui noarch 3.2.1-1.el7 el7_epel 177 k
python-javapackages noarch 3.4.1-11.el7 el7x_x86_64 30 k
python-jsonschema noarch 2.3.0-1.el7 el7_epel 60 k
python-mako noarch 0.8.1-2.el7 el7x_x86_64 306 k
python-markupsafe x86_64 0.11-10.el7 el7x_x86_64 24 k
python-matplotlib x86_64 1.2.0-15.el7 el7x_x86_64 26 M
python-mistune x86_64 0.5.1-1.el7 el7_epel 129 k
python-nose noarch 1.3.0-3.el7 el7x_x86_64 271 k
python-paste noarch 1.7.5.1-9.20111221hg1498.el7 el7x_x86_64 865 k
python-path noarch 5.2-1.el7 el7_epel 47 k
python-pillow x86_64 2.0.0-19.gitd1c6db8.el7 el7x_x86_64 437 k
python-psycopg2 x86_64 2.5.1-3.el7 el7x_x86_64 131 k
python-pygments noarch 1.4-9.el7 el7x_x86_64 598 k
python-simplegeneric noarch 0.8-7.el7 el7_epel 12 k
python-sqlalchemy x86_64 0.9.8-1.el7 el7x_x86_64 2.9 M
python-tempita noarch 0.5.1-6.el7 el7x_x86_64 32 k
python-twisted-core x86_64 12.2.0-4.el7 el7x_x86_64 2.5 M
python-twisted-runner x86_64 12.2.0-4.el7.centos quattor_externals_x86_64 34 k
python-zmq x86_64 14.3.1-1.el7 el7_epel 468 k
python-zope-interface x86_64 4.0.5-4.el7 el7x_x86_64 138 k
pytz noarch 2012d-5.el7 el7x_x86_64 37 k
qdox noarch 1.12.1-9.el7 el7x_x86_64 169 k
qt x86_64 1:4.8.5-11.el7 el7x_x86_64 4.5 M
qt-settings noarch 19-23.5.el7 el7x_x86_64 16 k
qt-x11 x86_64 1:4.8.5-11.el7 el7x_x86_64 13 M
regexp noarch 1.5-13.el7 el7x_x86_64 46 k
sip x86_64 4.14.6-4.el7 el7x_x86_64 121 k
speex x86_64 1.2-0.19.rc1.el7 el7x_x86_64 97 k
stix-fonts noarch 1.1.0-5.el7 el7x_x86_64 1.3 M
t1lib x86_64 5.1.2-14.el7 el7x_x86_64 165 k
taglib x86_64 1.8-7.20130218git.el7 el7x_x86_64 309 k
texlive-base noarch 2:2012-38.20130427_r30134.el7 el7x_x86_64 324 k
texlive-dvipng noarch 2:svn26689.1.14-38.el7 el7x_x86_64 43 k
texlive-dvipng-bin x86_64 2:svn26509.0-38.20130427_r30134.el7 el7x_x86_64 62 k
texlive-kpathsea noarch 2:svn28792.0-38.el7 el7x_x86_64 139 k
texlive-kpathsea-bin x86_64 2:svn27347.0-38.20130427_r30134.el7 el7x_x86_64 39 k
texlive-kpathsea-lib x86_64 2:2012-38.20130427_r30134.el7 el7x_x86_64 77 k
trousers x86_64 0.3.13-1.el7 el7x_x86_64 288 k
ttmkfdir x86_64 3.0.9-42.el7 el7x_x86_64 47 k
tzdata-java noarch 2016c-1.el7 el7x_x86_64_errata 177 k
wavpack x86_64 4.60.1-9.el7 el7x_x86_64 130 k
xalan-j2 noarch 2.7.1-23.el7 el7x_x86_64 1.9 M
xerces-j2 noarch 2.11.0-17.el7_0 el7x_x86_64 1.1 M
xml-common noarch 0.6.3-39.el7 el7x_x86_64 25 k
xml-commons-apis noarch 1.4.01-16.el7 el7x_x86_64 226 k
xml-commons-resolver noarch 1.2-15.el7 el7x_x86_64 107 k
xorg-x11-font-utils x86_64 1:7.5-20.el7 el7x_x86_64 86 k
xorg-x11-fonts-Type1 noarch 7.5-9.el7 el7x_x86_64 520 k
zeromq3 x86_64 3.2.5-1.el7 el7_epel 344 k
Transaction Summary
=============================================================================================================================================================================
Install 1 Package (+152 Dependent packages)
Rather than a System-V style init script.
In the meantime the init script is unusable with EL7 because it doesn't have the proper chkconfig
support and is thus ignored by the chkconfig
wrapper on EL7. Lines to add are something like:
# chkconfig: 2345 99 1
# description: Aquilon Broker
If aq add_domain
fails after the corresponding Git branch is created, it is left in the repository making creating the domain impossible until the branch has been removed manually. Aquilon should remove the created branch in such a case.
In particular add_network
will not accept anything other than an IPv4 address.
adq.conf.defaults
provided in the source is opened by aqd
in addition to the system aqd.conf
to avoid having to write a full aqd.conf
. But currently this file contains a lot of options with MS-specific values that prevent aqd
to run successfully outside MS. This file should really be site-agnostic and MS-specific defaults should be moved somewhere else.
When using autocompletion of some values (eg. aq add_cluster --cluster [TAB]): it complains about not finding sqlite3 :
-bash: /ms/dist/fsf/PROJ/sqlite/3.8.2-1/bin/sqlite3: No such file or directory
It is hardcoded in the autocompletion template (https://github.com/quattor/aquilon/blob/upstream/etc/templates/bash.tmpl#L22).
We should disable this completion if the DB is not found.
I am wondering why ncm-ncd (13.3) behaves unexpected when I use --nodeps.
I would like to run only one single component (e.g. accounts).
Accounts has a post dependency requiring filecopy.
If I run "ncm-ncd --configure accounts --verbose --nodeps --autodeps=0 --debug 9" I get this:
ncm-ncd --configure accounts --verbose --nodeps --autodeps=0 --debug 9
[INFO] NCM-NCD version 13.3.0 started by root at: Fri Mar 22 14:21:11 2013
[VERB] accessing CCM cache manager..
[VERB] getting locked CCM configuration..
[VERB] checking for ncm-ncd locks...
[INFO] Ignoring broken pre/post dependencies (--nodeps flag set)
[DEBUG] pre dependencies for component accounts spma
[DEBUG] post dependencies for component accounts filecopy
[INFO] executing configure on components....[ERROR] post-requisite for component "accounts" does not exist: filecopy
[ERROR] cannot sort components according to dependencies[INFO] Errors while configuring
[ERROR] 1 errors, 0 warnings executing configure
"--nodeps" ignores the pre dependency (spma) as expected, but the post dependency causes an error.
If I look into NCD::ComponentProxyList, I find this in _sortComponents():
foreach (@post) {
unless (defined
$comps{$ }) {
unless ($this_app->option('nodeps')) {
$self->error('pre-requisite for component "'.$name.'" does not exist: '.$);
return undef;
}
$self->error('post-requisite for component "'.$name.'" does not exist: '.$);
return undef;
}
$after->{$name}->{$}=1;
}
This looks strange. "--nodeps" does not have any effect on post dependencies.
But the help says: "--nodeps: ignore broken (pre/post) dependencies in configure"
This problem is not new, also older versions of ncm-ncd show this behaviour.
When starting aqd for the first time, it complains because it cannot write to /var/log/aquilon/aqd.log :
-bash-4.1# service aqd start
Starting aquilon broker: Traceback (most recent call last):
File "/usr/bin/aqd.py", line 30, in <module>
twistd.run()
File "/usr/lib64/python2.6/site-packages/twisted/scripts/twistd.py", line 27, in run
app.run(runApp, ServerOptions)
File "/usr/lib64/python2.6/site-packages/twisted/application/app.py", line 652, in run
runApp(config)
File "/usr/lib64/python2.6/site-packages/twisted/scripts/twistd.py", line 23, in runApp
_SomeApplicationRunner(config).run()
File "/usr/lib/python2.6/site-packages/aquilon/twisted_patches.py", line 172, in updated_application_run
start=False)
File "/usr/lib/python2.6/site-packages/aquilon/twisted_patches.py", line 116, in set_log_file
log_file = logfile.LogFile.fromFullPath(logFile, rotateLength=0)
File "/usr/lib64/python2.6/site-packages/twisted/python/logfile.py", line 48, in fromFullPath
os.path.dirname(logPath), *args, **kwargs)
File "/usr/lib64/python2.6/site-packages/twisted/python/logfile.py", line 161, in __init__
BaseLogFile.__init__(self, name, directory, defaultMode)
File "/usr/lib64/python2.6/site-packages/twisted/python/logfile.py", line 40, in __init__
self._openFile()
File "/usr/lib64/python2.6/site-packages/twisted/python/logfile.py", line 166, in _openFile
BaseLogFile._openFile(self)
File "/usr/lib64/python2.6/site-packages/twisted/python/logfile.py", line 75, in _openFile
self._file = file(self.path, "w+", 1)
IOError: [Errno 2] No such file or directory: '/var/log/aquilon/aqd.log'
the folder should be created upon installation and writable by the "aquilon" user.
As discussed at workshop, LAL use Active Directory so it would be useful if the experience and setup was written down for others to reference.
Hi,
After installing aquilon-protocol by the hand (issue #16 ), when I try to install aquilon I ve got the following error [1].
Regards;
[1]
Installing : aquilon-1.11.24_rc1-1.noarch 72/74
Unhandled Error
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib64/python2.6/site-packages/twisted/plugin.py", line 209, in getPlugins
allDropins = getCache(package)
--- ---
File "/usr/lib64/python2.6/site-packages/twisted/plugin.py", line 167, in getCache
provider = pluginModule.load()
File "/usr/lib64/python2.6/site-packages/twisted/python/modules.py", line 383, in load
return self.pathEntry.pythonPath.moduleLoader(self.name)
File "/usr/lib64/python2.6/site-packages/twisted/python/reflect.py", line 506, in namedAny
topLevelPackage = _importAndCheckStack(trialname)
File "/usr/lib/python2.6/site-packages/twisted/plugins/aqd.py", line 34, in
from aquilon.worker.knc_protocol import KNCSite
File "/usr/lib/python2.6/site-packages/aquilon/worker/knc_protocol.py", line 19, in
from twisted.web import http
exceptions.ImportError: No module named web
Installing : aquilon-postgresql-1.0.0-1.noarch
build_db.py
in 1.12.58 has been modified to support both IPv4 and IPv6. Network CIDR constraint has been defined with a condition on the IP version and the syntax used doesn't seem to work with Postgres, leading to a failure to initialize the DB. The problem is https://github.com/quattor/aquilon/blob/upstream/lib/aquilon/aqdb/model/network.py#L147 in 1.12.58.
The versions used in my case were Postgres 9.6 (but I guess that the CentOS-provided 9.2 will exhibit the same problem) and SQLAlchemy 1.2.7.
A workaround is to remove the condition and define CIDR to be 32 bit but this breaks the IPv6 support. A clean solution is needed.
This issue seems somewhat related to #42.
Being able to ship aqd with its dependencies in a Docker container may be easier than making rpms for all the dependencies.
One challenge to overcome would be how to make the client available to users - that would probably still need to be an rpm.
Hi,
I can't find a way to make aqd work properly after running the tutorial and trying to debug here and there. Here are the symptoms:
2015-04-22 16:07:37+0200 [-] run_command: git describe (CWD: /usr/lib/python2.6)
2015-04-22 16:07:37+0200 [-] fatal: Not a git repository (or any of the parent directories): .git
2015-04-22 16:07:37+0200 [-] command `git describe` exited with return code 128
2015-04-22 16:07:37+0200 [-] command `git describe` stderr: fatal: Not a git repository (or any of the parent directories): .git
2015-04-22 16:07:37+0200 [-] Could not run git describe to get version: Command 'git describe' failed with return code '128' and stderr:
fatal: Not a git repository (or any of the parent directories): .git
2015-04-22 16:07:37+0200 [-] Starting aqd version Unknown
I don't like the CWD value and 'not a git repository' error
-bash-4.1# aq.py show_archetype --all
Error: BadStatusLine('',): knc[23938]: gstd_error: gss_init_sec_context: Credentials cache file '/tmp/krb5cc_0' not found
Do you know where I've made a mistake in the configuration ?
Originally opened by @ajf8 as quattor/release#263
The current latest el6 RPMs do not work because Aquilon now requires python 2.7. As discussed at the workshop we should probably just kill the el6 repositories and focus on el7, and update the documentation (in a separate issue).
The knc and python-twisted-runner RPMs were added during the workshop to get the current version in the el7 repository to install. Here are two additional RPMs (and SRPMs) which are needed to get the latest version of Aquilon to build and run on el7:
aquilon-protocols-1.29 - built from 1.29 tag but needed the setup.py from master for bdist_rpm to work. we will look at fixing the setup.py in upstream.
python-sqlalchemy-1.0.14 - built from a Fedora SRPM.
On the rpm installation of the aquilon
rpm, the following error is thrown:
Installing : aquilon-1.12.17_rc2-1.el7.noarch 151/153
Unhandled Error
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib64/python2.7/site-packages/twisted/plugin.py", line 209, in getPlugins
allDropins = getCache(package)
--- <exception caught here> ---
File "/usr/lib64/python2.7/site-packages/twisted/plugin.py", line 167, in getCache
provider = pluginModule.load()
File "/usr/lib64/python2.7/site-packages/twisted/python/modules.py", line 383, in load
return self.pathEntry.pythonPath.moduleLoader(self.name)
File "/usr/lib64/python2.7/site-packages/twisted/python/reflect.py", line 506, in namedAny
topLevelPackage = _importAndCheckStack(trialname)
File "/usr/lib/python2.7/site-packages/twisted/plugins/aqd.py", line 33, in <module>
from aquilon.worker.knc_protocol import KNCSite
File "/usr/lib/python2.7/site-packages/aquilon/worker/knc_protocol.py", line 20, in <module>
from twisted.web import http
exceptions.ImportError: No module named web
Installing : aquilon-postgresql-1.0.0-1.noarch
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.