[IANA #483358] Application for port-number: matahari (Assigned)
by Pearl Liang via RT
Dear Zane Bitter:
Your request has been processed. We have assigned the following
TCP port to Matahari Project with you as the point of contact:
matahari49000tcpMatahari Broker[Matahari_Project][Zane_Bitter]2011-08-31
See:
http://www.iana.org/assignments/service-names-port-numbers/service-names-...
Please notify IANA if there is any change in contact information by
completing the following template:
http://www.iana.org/cgi-bin/mod_portno.pl
This ticket [IANA #483358] is considered resolved.
Regards,
Pearl Liang
IANA
***************************************************************
Internet Assigned Numbers Authority (IANA)
4676 Admiralty Way, Suite 330
Marina del Rey, California 90292
Voice: (310) 823-9358
FAX: (310) 823-8649
email: iana-ports(a)iana.org
***************************************************************
12 years, 8 months
Matahari 0.4.3 Released
by Russell Bryant
Greetings,
Matahari 0.4.3 has been released. You can download it here:
http://github.com/matahari/matahari/downloads/matahari-0.4.3.tar.gz
The current documentation is included with the release and can be found in:
matahari-0.4.3/doc/Matahari/tmp/en-US/html/
This release contains everything done so far. The 0.4 release series
now has its own branch, which will be maintained with bug files for some
period of time while we continue additional feature development in
master for a future release. Releases will continue on a monthly basis.
Thanks,
--
Russell Bryant
12 years, 8 months
[PATCH] - Comment on flags argument for sysconfig's schema
by Adam Stokes
- Describe the flags argument and a small example of
its use.
Signed-off-by: Adam Stokes <astokes(a)fedoraproject.org>
---
src/sysconfig/schema.xml | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/src/sysconfig/schema.xml b/src/sysconfig/schema.xml
index b03cc25..fec878b 100644
--- a/src/sysconfig/schema.xml
+++ b/src/sysconfig/schema.xml
@@ -18,6 +18,11 @@
<method name="run_uri" desc="Send configure uri method">
<arg name="uri" dir="I" type="sstr" />
+ <!--
+ Give the ability to override existing keys so that you may perform
+ and updated puppet/augeas routine. For example, pass '1' as a flag
+ will force the Sysconfig agent to re-perform the specified task.
+ -->
<arg name="flags" dir="I" type="uint32" />
<arg name="scheme" dir="I" type="sstr" />
<arg name="key" dir="I" type="sstr" />
@@ -26,6 +31,11 @@
<method name="run_string" desc="Send configure text method">
<arg name="text" dir="I" type="sstr" />
+ <!--
+ Give the ability to override existing keys so that you may perform
+ and updated puppet/augeas routine. For example, pass '1' as a flag
+ will force the Sysconfig agent to re-perform the specified task.
+ -->
<arg name="flags" dir="I" type="uint32" />
<arg name="scheme" dir="I" type="sstr" />
<arg name="key" dir="I" type="sstr" />
@@ -34,6 +44,11 @@
<method name="query" desc="Perform query lookup">
<arg name="text" dir="I" type="sstr" />
+ <!--
+ Give the ability to override existing keys so that you may perform
+ and updated puppet/augeas routine. For example, pass '1' as a flag
+ will force the Sysconfig agent to re-perform the specified task.
+ -->
<arg name="flags" dir="I" type="uint32" />
<arg name="scheme" dir="I" type="sstr" />
<arg name="data" dir="O" type="sstr" />
--
1.7.6
12 years, 8 months
[PATCH] - Add run_string test to sysconfig unittest
by Adam Stokes
- Force the override of existing key's to make
sure we are performing our tests as if from
scratch
Signed-off-by: Adam Stokes <astokes(a)fedoraproject.org>
---
src/tests/mh_api_sysconfig.h | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/src/tests/mh_api_sysconfig.h b/src/tests/mh_api_sysconfig.h
index 73c1d76..11711cc 100644
--- a/src/tests/mh_api_sysconfig.h
+++ b/src/tests/mh_api_sysconfig.h
@@ -26,14 +26,16 @@ class MhApiSysconfigSuite : public CxxTest::TestSuite
void testIsConfigured(void)
{
const char *uri = "http://matahariproject.org/atom.xml"; // Test if download succeeds
- const char flags = 0;
+ const char flags = MH_SYSCONFIG_FLAG_FORCE;
const char key[] = "org.matahariproject.test.unittest"; // Unimportant key defined
+ const char run_string[] = "file { \"/etc/sudoers\":\n owner => root, group => root, mode => 440\n}";
mh_sysconfig_keys_dir_set("/tmp/");
TS_ASSERT((mh_sysconfig_set_configured(key, "OK")) == TRUE);
TS_ASSERT((mh_sysconfig_is_configured(key)) != NULL);
TS_ASSERT((mh_sysconfig_run_uri(uri, flags, "puppet", key)) != -1);
+ TS_ASSERT((mh_sysconfig_run_string(run_string, flags, "puppet", key)) != -1);
}
};
--
1.7.6
12 years, 8 months
[PATCH] core: rhbz#731858 - Use dnsdomainname in automatic SRV lookups.
by Russell Bryant
When an agent is run without a specific broker specified (no --broker
provided), it does some magic to try to figure out where it should
connect. The first thing it does is try to do an SRV lookup against the
local domain. The previous code was using the "domainname" as opposed
to the "dnsdomainname", which is more correct for what is being done.
This implementation addresses the issue at hand on Linux. It leaves the
behavior unchanged on Windows, but I left a note in there as its
possible that there is a similar differentiation on Windows, but that's
not clear to me yet.
Signed-off-by: Russell Bryant <rbryant(a)redhat.com>
---
src/include/matahari/utilities.h | 7 ++++
src/lib/CMakeLists.txt | 2 +-
src/lib/mh_agent.cpp | 2 +-
src/lib/utilities.c | 12 +++++++
src/lib/utilities_linux.c | 65 ++++++++++++++++++++++++++++++++++++++
src/lib/utilities_private.h | 39 ++++++++++++++++++++++
src/lib/utilities_windows.c | 34 ++++++++++++++++++++
7 files changed, 159 insertions(+), 2 deletions(-)
create mode 100644 src/lib/utilities_linux.c
create mode 100644 src/lib/utilities_private.h
create mode 100644 src/lib/utilities_windows.c
diff --git a/src/include/matahari/utilities.h b/src/include/matahari/utilities.h
index 5eed276..89b9db7 100644
--- a/src/include/matahari/utilities.h
+++ b/src/include/matahari/utilities.h
@@ -34,6 +34,13 @@
extern const char *mh_uuid(void);
extern const char *mh_hostname(void);
extern const char *mh_domainname(void);
+
+/**
+ * Get the local dnsdomainname.
+ */
+extern const char *
+mh_dnsdomainname(void);
+
extern char *mh_file_first_line(const char *file);
extern void mh_abort(const char *file, const char *function, int line,
const char *assert_condition, int do_core, int do_fork);
diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt
index e130995..1cd41d4 100644
--- a/src/lib/CMakeLists.txt
+++ b/src/lib/CMakeLists.txt
@@ -6,7 +6,7 @@ include_directories(${pcre_INCLUDE_DIRS})
# See http://sourceware.org/autobook/autobook/autobook_91.html for
# how to set the library version appropriately
-add_library (mcommon SHARED utilities.c mainloop.c dnssrv.c dnssrv_${VARIANT}.c)
+add_library (mcommon SHARED utilities.c utilities_${VARIANT}.c mainloop.c dnssrv.c dnssrv_${VARIANT}.c)
set_target_properties(mcommon PROPERTIES SOVERSION 1.0.0)
target_link_libraries(mcommon ${SIGAR} ${glib_LIBRARIES})
diff --git a/src/lib/mh_agent.cpp b/src/lib/mh_agent.cpp
index 0b8fe7d..0724456 100644
--- a/src/lib/mh_agent.cpp
+++ b/src/lib/mh_agent.cpp
@@ -259,7 +259,7 @@ mh_connect(OptionsMap mh_options, OptionsMap amqp_options, int retry)
if (mh_options.count("servername")) {
fqdn << "_matahari._tcp." << mh_options["servername"];
} else {
- fqdn << "_matahari._tcp." << mh_domainname();
+ fqdn << "_matahari._tcp." << mh_dnsdomainname();
}
target = mh_dnssrv_lookup(fqdn.str().c_str());
diff --git a/src/lib/utilities.c b/src/lib/utilities.c
index 4f2ae67..abfcc35 100644
--- a/src/lib/utilities.c
+++ b/src/lib/utilities.c
@@ -369,6 +369,18 @@ mh_domainname(void)
}
const char *
+mh_dnsdomainname(void)
+{
+ char *res;
+
+ res = mh_os_dnsdomainname();
+
+ mh_trace("Got dnsdomainname: '%s'", res);
+
+ return res;
+}
+
+const char *
mh_hostname(void)
{
static char *hostname = NULL;
diff --git a/src/lib/utilities_linux.c b/src/lib/utilities_linux.c
new file mode 100644
index 0000000..c848802
--- /dev/null
+++ b/src/lib/utilities_linux.c
@@ -0,0 +1,65 @@
+/* utilities_linux.c - Copyright (C) 2011, Red Hat, Inc.
+ * Written by Russell Bryant <rbryant(a)redhat.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netdb.h>
+
+#include "matahari/logging.h"
+#include "utilities_private.h"
+
+const char *
+mh_os_dnsdomainname(void)
+{
+ static char *dnsdomainname = NULL;
+ int res;
+ char *c;
+ struct addrinfo *ai = NULL;
+ struct addrinfo hints = {
+ hints.ai_socktype = SOCK_DGRAM,
+ hints.ai_flags = AI_CANONNAME,
+ };
+
+ /**
+ * \todo It would be good to eventually add this as a feature in sigar
+ * since we use that for most related things.
+ */
+
+ if (dnsdomainname) {
+ return dnsdomainname;
+ }
+
+ if ((res = getaddrinfo(mh_hostname(), NULL, &hints, &ai))) {
+ mh_notice("Unable to determine dnsdomainname: (%d) %s\n", errno, strerror(errno));
+ return "";
+ }
+
+ if (!ai) {
+ return "";
+ }
+
+ if ((c = strchr(ai->ai_canonname, '.'))) {
+ dnsdomainname = strdup(++c);
+ }
+
+ return dnsdomainname ? dnsdomainname : "";
+}
diff --git a/src/lib/utilities_private.h b/src/lib/utilities_private.h
new file mode 100644
index 0000000..e39d22c
--- /dev/null
+++ b/src/lib/utilities_private.h
@@ -0,0 +1,39 @@
+/* utilities_private.h - Copyright (C) 2011, Red Hat, Inc.
+ * Written by Russell Bryant <rbryant(a)redhat.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/**
+ * \file
+ * \brief Platform specific function prototypes.
+ *
+ * The functions in this header must be implemented by the platform
+ * specific utilities code.
+ * - utilities_linux.c
+ * - utilities_windows.c
+ */
+
+
+#ifndef __MH_UTILITIES_PRIVATE_H__
+#define __MH_UTILITIES_PRIVATE_H__
+
+/**
+ * Get the local dnsdomainname.
+ */
+const char *
+mh_os_dnsdomainname(void);
+
+#endif /* __MH_UTILITIES_PRIVATE_H__ */
diff --git a/src/lib/utilities_windows.c b/src/lib/utilities_windows.c
new file mode 100644
index 0000000..26a3679
--- /dev/null
+++ b/src/lib/utilities_windows.c
@@ -0,0 +1,34 @@
+/* utilities_linux.c - Copyright (C) 2011, Red Hat, Inc.
+ * Written by Russell Bryant <rbryant(a)redhat.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include "config.h"
+
+#include "matahari/utilities.h"
+#include "utilities_private.h"
+
+const char *
+mh_os_dnsdomainname(void)
+{
+ /*
+ * Just use the standard domain name that sigar provides.
+ *
+ * XXX Is there a separate dnsdomainname for Windows?
+ */
+
+ return mh_domainname();
+}
--
1.7.6
12 years, 8 months
[IANA #483358] Application for port-number: matahari
by Pearl Liang via RT
Thank you. Please see below comment and questions:
------
> A couple of clarifications may help here:
> 1) The purpose of matahari is not to configure QMF/Qpid, but to
> configure the entire system. For example, starting and stopping
> network
> interfaces, services, virtual machines or entire boxes.
> 2) QMF does not run atop matahari. Matahari runs atop QMF, which
> itself
> runs atop Apache Qpid (which is the AMQP implementation).
>
> The reason for a separate port is that end users may want to run a
> vanilla AMQP service on their hosts which is logically separate from
> the
> matahari AMQP bus. We cannot force generic users of AMQP to have their
> services coexist with ours (for instance, they may require a different
> implementation of AMQP), so we request a separate port so that our
> specific usage of AMQP can remain logically separate.
Thanks for the clarification. My question; how often should IANA expect
such requests? Is a discovery mechanism in order in the baseline AMQP
protocol? If someone else comes out with some other function that runs
atop AMQP but needs a different implementation, are we going to see
another request?
Also, there exist protocols to manage device configuration, such as
NETCONF[1]. Have you considered making use of it?
[1] RFC 6241 <http://tools.ietf.org/html/rfc6241>
---
If we do not receive the information from you within 30 days, your request
will be closed without prejudice, as a matter of administrative procedure.
Thank you,
Pearl Liang
IANA
On Fri Aug 26 07:02:05 2011, zbitter(a)redhat.com wrote:
> On 25/08/11 22:58, Pearl Liang via RT wrote:
> > The Port Experts Team has review your application (included below).
> > The team has the following questions with respect to your request:
> >
> > -----
> >
> > I'd like to summarize what I understand of the application, and then
> ask
> > a question or two:
> >
> > This application is for an additional TCP port 49000 for a service
> > called "matahari", to be used for configuration management of
> QMF/QPid
> > implementations. Justification for this port assignment seems to be
> > that privileged communications must be separated from normal
> operations,
> > and that QMF will run atop Matahari. Given this, aren't we really
> > talking about a newer version of AMQP? Could not the AMQP version be
> > bumped? We seek more information as to why precisely different ports
> > should be used.
>
> A couple of clarifications may help here:
> 1) The purpose of matahari is not to configure QMF/Qpid, but to
> configure the entire system. For example, starting and stopping
> network
> interfaces, services, virtual machines or entire boxes.
> 2) QMF does not run atop matahari. Matahari runs atop QMF, which
> itself
> runs atop Apache Qpid (which is the AMQP implementation).
>
> The reason for a separate port is that end users may want to run a
> vanilla AMQP service on their hosts which is logically separate from
> the
> matahari AMQP bus. We cannot force generic users of AMQP to have their
> services coexist with ours (for instance, they may require a different
> implementation of AMQP), so we request a separate port so that our
> specific usage of AMQP can remain logically separate.
>
> > Also, there is an inconsistency in the application:
> >
> > The applicant has stated that multicast may be used, and yet the
> > application is only for TCP. This is generally inadvisable and
> > impracticable, given the state machine that TCP uses.
>
> Yes, the information in the multicast section is erroneous - please
> disregard it. There is no multicast or broadcast used on the matahari
> port.
>
> thanks,
> Zane.
>
> > -----
> >
> > Please resolve the above questions. If we do not receive the
> information
> > from you within 30 days, your request will be closed without
> prejudice, as
> > a matter of administrative procedure.
> >
> > Thank you,
> >
> > Pearl Liang
> > IANA
> >
> >
> >
> > On Wed Aug 24 09:22:44 2011, zbitter(a)redhat.com wrote:
> >> On 24/08/11 18:04, Pearl Liang via RT wrote:
> >>> Thank you for the reply.
> >>>
> >>>> Assignee Name (REQUIRED): Matahari Project
> >>>> Assignee E-mail (REQUIRED): matahari(a)lists.fedorahosted.org
> >>>
> >>> Please confirm if http://matahariproject.org/ is the
> organization's
> >>> website.
> >>
> >> Yes, that is correct.
> >>
> >>> On Wed Aug 24 06:07:57 2011, zbitter(a)redhat.com wrote:
> >>>> Assignee Name (REQUIRED): Matahari Project
> >>>> Assignee E-mail (REQUIRED): matahari(a)lists.fedorahosted.org
> >>>> (The Assignee is the organization, company or individual person
> >>>> responsible
> >>>> for the initial assignment. )
> >>>> Contact Name (REQUIRED): Zane Bitter
> >>>> Contact E-mail (REQUIRED): zbitter(a)redhat.com
> >>>>
> >>>> Transport Protocol(s) (REQUIRED): (Please indicate which
> protocols
> >> are
> >>>> currently required.)
> >>>> [ X ] TCP [ ] UDP [ ] SCTP [ ] DCCP
> >>>>
> >>>> Service Code (REQUIRED for DCCP only)
> >>>>
> >>>> A: ____________________________
> >>>>
> >>>> Service Name (REQUIRED, 15 character maximum):
> >>>>
> >>>> A: matahari
> >>>>
> >>>> Desired Port Number (OPTIONAL, for Port Number only)
> >>>>
> >>>> A: 49000
> >>>> NOTE: It is *inappropriate* to use a port number until your
> >>>> application has
> >>>> been approved for assignment. Leave it blank if no number
> >> preference.
> >>>>
> >>>> Description (REQUIRED) (For example: Super User Messaging)
> >>>>
> >>>> A: Matahari Broker
> >>>>
> >>>> Reference (REQUIRED): Please provide a brief and basic technical
> >>>> description
> >>>> of the protocol that will use the service name or port number,
> >>>> including
> >>>> message
> >>>> formats, types, sequences, functionalities, of your protocol.
> In
> >>>> addition,
> >>>> please address the specific questions included below to the
> extent
> >>>> possible.
> >>>>
> >>>> A: The Matahari server is an implementation of an Advanced
> Message
> >>>> Queuing Protocol (AMQP) broker. Matahari uses a subset of the
> Qpid
> >>>> Management Framework (QMF), which sits on top of AMQP (Apache
> Qpid
> >> is
> >>>> an
> >>>> implementation of AMQP). AMQP is an open standard which is
> >> documented
> >>>> here:
> >>>>
> http://www.amqp.org/confluence/download/attachments/720900/amqp.0-
> >>>> 10.pdf
> >>>>
> >>>> In short, AMQP is a generic protocol for handling message queues.
> >>>> Client
> >>>> applications can create and subscribe to queues and publish
> >> messages
> >>>> to
> >>>> them.
> >>>>
> >>>> Matahari (http://www.matahariproject.org/) is a service to
> provide
> >>>> remote access to system management APIs over QMF. Existing APIs
> >>>> support
> >>>> system configuration and querying of system parameters for
> virtual
> >>>> servers, however the protocol is extensible so users can add
> their
> >> own
> >>>> custom APIs.
> >>>>
> >>>> Q: If broadcast/multicast is used, how and what for?
> >>>>
> >>>> A: Multicast may optionally be used to efficiently combine
> multiple
> >>>> brokers into a high-availability cluster.
> >>>>
> >>>> Q: If UDP is requested, please explain how traffic is limited,
> and
> >>>> whether the protocol reacts to congestion.
> >>>>
> >>>> A:
> >>>>
> >>
> ___________________________________________________________________________
> >>>>
> >>>> Q: If UDP is requested, please indicate whether the service is
> >> solely
> >>>> for the discovery of hosts supporting this protocol.
> >>>>
> >>>> A:
> >>>>
> >>
> ___________________________________________________________________________
> >>>>
> >>>> Q: Please explain how your protocol supports versioning.
> >>>>
> >>>> A: All AMQP messages begin with a version field, and AMQP defines
> a
> >>>> method for the client and server to negotiate a mutually
> compatible
> >>>> protocol version. QMF objects have a schema which can be queried
> >> over
> >>>> the protocol.
> >>>>
> >>>> Q: If your request is for more than one transport, please explain
> >> in
> >>>> detail how the protocol differs over each transport.
> >>>>
> >>>> A:
> >>>>
> >>
> __________________________________________________________________________
> >>>>
> >>>> Q: Please describe how your protocol supports security. Please
> note
> >>>> that
> >>>> there is current debate as to whether additional future ports
> will
> >> be
> >>>> allocated for newly assigned services that lack security, e.g.,
> >> solely
> >>>> for the addition of a secure variant. Applicants are strongly
> >> advised
> >>>> to
> >>>> address this issue as early as possible in the design of their
> >>>> protocols.
> >>>>
> >>>>
> >>>> A: The protocol may optionally be tunnelled over SSL.
> >>>>
> >>>>
> >>>> Q: Please explain the state of development of your protocol.
> >>>>
> >>>> A: AMQP is a published open standard with four published versions
> >>>> since
> >>>> 2006 and multiple available implementations. QMF has undergone a
> >> major
> >>>> revision and is now considered stable.
> >>>>
> >>>> Q: If SCTP is requested, please describe the following: Is there
> an
> >>>> existing TCP and/or UDP service name or port number assignment?
> >>>> If so, please indicate the details below:
> >>>>
> >>>> Service Name: _______________; Port number: _______________
> >>>>
> >>>> What specific SCTP capability is used by the application such
> that
> >> a
> >>>> user who has the choice of both TCP (and/or UDP) and SCTP ports
> for
> >>>> this application would choose SCTP? See [RFC4960 section 7.1]
> >>>> (http://tools.ietf.org/html/rfc4960#section-7.1)
> >>>>
> >>>> A:
> >>>>
> >>
> _____________________________________________________________________________
> >>>>
> >>>>
> >>
> ________________________________________________________________________________
> >>>>
> >>>>
> >>>> Please provide any other information that would be helpful in
> >>>> understanding how this protocol differs from existing assigned
> >>>> services.
> >>>>
> >>>> A: Matahari differs from a generic AMQP broker in that it
> requires
> >> the
> >>>> QMF protocol running on top, so only the Apache Qpid
> implementation
> >> of
> >>>> AMQP can be used. Since Matahari is designed for system
> >> configuration,
> >>>> for security reasons it places a tighter than usual set of
> >>>> restrictions
> >>>> on how the connection can be used, and thus must be segregated
> from
> >>>> regular applications' AMQP traffic.
> >>>>
> >>>
> >>
> >> On Wed Aug 24 06:07:57 2011, zbitter(a)redhat.com wrote:
> >> Application for User Registered Port Number
> >>
> >> Name :
> >> Zane Bitter
> >>
> >> E-mail :
> >> zbitter(a)redhat.com
> >>
> >> Protocol Number :
> >> TCP
> >>
> >> Message Formats :
> >> Protocol version, type, channel, size, payload
> >>
> >> Message Types :
> >> Method, Header, Body, Heartbeat
> >>
> >> Message opcodes :
> >> Channel: Open, Open-Ok, Close, Close-Ok
> >> Exchange: Declare, Delete
> >> Queue: Declare, Declare-Ok, Bind, Bind-Ok
> >> Basic: Publish, Consume, Cancel, Deliver, Return, Ack, Reject, Get
> >> Transaction: Select, Publish, Ack, Commit, Roll-back
> >>
> >> Message Sequences :
> >> See:
> https://www.amqp.org/confluence/download/attachments/720900/amqp0-9-
> 1.pdf
> >>
> >> Protocol functions :
> >> Queuing and routing of messages for applications.
> >>
> >> Broadcast or Multicast used ?
> >> yes
> >>
> >> How and what for Broadcast and Multicast is used (if used):
> >> Multicast may optionally be used to efficiently combine multiple
> brokers into a high-availability cluster.
> >>
> >> Description :
> >> Matahari (http://www.matahariproject.org/) is a service to provide
> remote access to system management APIs. Existing APIs
> >> support system configuration and querying of system parameters for
> virtual servers, however the protocol is extensible so users
> >> can add their own custom APIs.
> >>
> >> The server is an implementation of an Advanced Message Queuing
> Protocol (AMQP) broker. AMQP is an existing open standard
> >> (http://www.ampq.org/). On a Matahari server, communication occurs
> through the Qpid Management Framework which sits on
> >> top of AMQP. (Apache Qpid is an implementation of AMQP.)
> >>
> >> Name of the port :
> >> Matahari Broker
> >>
> >> Short name of the port :
> >> matahari
> >>
>
12 years, 8 months
[PATCH] sysconfig: rhbz#733150 remove is_postboot_configured property.
by Russell Bryant
This bug reported a sysconfig agent crash due to an unhandled exception
when the is_postboot_configured property was set to an incompatible
value (string instead of an int).
In my opinion, this property should just be removed. Any intended usage
of this flag should be replaced with using the is_configured method.
Signed-off-by: Russell Bryant <rbryant(a)redhat.com>
---
src/sysconfig/schema.xml | 1 -
src/sysconfig/sysconfig-qmf.cpp | 2 --
2 files changed, 0 insertions(+), 3 deletions(-)
diff --git a/src/sysconfig/schema.xml b/src/sysconfig/schema.xml
index 24197c6..7f11043 100644
--- a/src/sysconfig/schema.xml
+++ b/src/sysconfig/schema.xml
@@ -4,7 +4,6 @@
<class name="Sysconfig">
<property name="uuid" type="sstr" access="RO" desc="Host UUID" />
<property name="hostname" type="sstr" access="RO" desc="Hostname" index="y"/>
- <property name="is_postboot_configured" type="uint32" access="RO" desc="Check if agent is configured." />
<statistic name="qmf-gen-no-crash" type="absTime" desc="Dummy stat to stop qmf-gen from crashing." />
diff --git a/src/sysconfig/sysconfig-qmf.cpp b/src/sysconfig/sysconfig-qmf.cpp
index 442d27a..6cbe54b 100644
--- a/src/sysconfig/sysconfig-qmf.cpp
+++ b/src/sysconfig/sysconfig-qmf.cpp
@@ -69,7 +69,6 @@ ConfigAgent::setup(qmf::AgentSession session)
_instance.setProperty("hostname", mh_hostname());
_instance.setProperty("uuid", mh_uuid());
- _instance.setProperty("is_postboot_configured", 0);
session.addData(_instance, SYSCONFIG_NAME);
return 0;
@@ -109,7 +108,6 @@ ConfigAgent::invoke(qmf::AgentSession session, qmf::AgentEvent event, gpointer u
event.addReturnArgument("query", data);
} else if (methodName == "is_configured") {
status = mh_sysconfig_is_configured(args["key"].asString().c_str());
- _instance.setProperty("is_postboot_configured", status);
event.addReturnArgument("status", status);
} else {
session.raiseException(event, MH_NOT_IMPLEMENTED);
--
1.7.6
12 years, 8 months