02
Feb
10

Latest RHQ Build:l 3.0.0 Build 2

The second community build for RHQ has landed. You can download it from http://rhq-project.org/display/RHQ/Download and check out the release notes at http://rhq-project.org/display/RHQ/Release+Notes+3.0.0.B02. There is lots of goodness here including better content management, better alerting, and other stuff you will have to play with to see. Come on bye, and check it out. Better yet… contributions are welcome.

25
Jan
10

Check out OpenSource.com

Red Hat has just put out a new community service, opensource.com. The goal is get together and discuss how the open source principals can be applied not only to technology but to business, education, and government. Come on bye.. and check out the conversation.

07
Jan
10

Installing Oracle 10-xe on Fedora 11 x86_64

I had to install Oracle XE on a Fedora 11 machine, and had lots of trouble. This blog post:

http://remcodeblok.blogspot.com/2009/07/install-oracle-xe-on-fedora-11-x8664.html

provided the help to get it running. A couple of other things to note:

1) You have to install xterm. The rpm does not force that depdency for you.
2) If you do not have glibc installed, there is no visible error message. No log, and the rpm does not enfore the dependency.

22
Dec
09

Cobbler Settings Lens for Augeas

After much help from David Lutterkort, I have a first cut of an Augeas lens for Cobbler . The settings file is basically a single YAML document, so this lens could be used to do generic yaml processing, but I would assume it would need some tweaks before then.

I figure it is best to get the first cut out there though. So here it is.

(*
	Parse the /etc/cobbler/settings file  which is in
	YAML 1.0 format.

	The lens can handle the following contructs
	* key: value
	* key: "value"
	* key: 'value'
	* key: [value1, value2]
	* key:
	   - value1
	   - value2
	* key:
	   key2: value1
	   key3: value2 

	Author: Bryan Kearney

	About: License
	  This file is licensed under the LGPLv2+, like the rest of Augeas.
*)
module CobblerSettings =
	autoload xfm

	let kw = /[a-zA-Z0-9_]+/
	(* TODO Would be better if this stripped off the " and ' chracters *)
	let kv = /([^]['", \t\n#:@-]+|"[^"\n]*"|'[^'\n]*')/ 

	let lbr = del /\[/ "["
	let rbr = del /\]/ "]"
	let colon = del /:[ \t]*/ ": "
	let dash = del /-[ \t]*/ "- "
	(* let comma = del /,[ \t]*(\n[ \t]+)?/ ", " *)
	let comma = del /[ \t]*,[ \t]*/ ", "

	let eol_only = del /\n/ "\n"

	(* TODO Would be better to make items a child of a document *)
	let docmarker = /-{3}/

	let eol   = Util.eol
	let comment = Util.comment
	let empty   = Util.empty
	let indent = del /[ \t]+/ "\t"
	let ws = del /[ \t]*/ " "

	let value_list = Build.opt_list [label "item" . store kv] comma
	let setting = [key kw . colon . store kv] . eol
	let simple_setting_suffix = store kv . eol
	let setting_list_suffix =  [label "sequence" . lbr . ws . (value_list . ws)? . rbr ] . eol
	let indendented_setting_list_suffix =  eol_only . (indent . setting)+
    let indented_list_suffix =  [label "list" . eol_only . ([ label "value" . indent . dash  . store kv] . eol)+]

    (* Break out setting because of a current bug in augeas *)
	let nested_setting = [key kw . colon . (
											(* simple_setting_suffix | *)
											setting_list_suffix |
											indendented_setting_list_suffix |
											indented_list_suffix
											)
						]

	let document = [label "---" . store docmarker] . eol    

	let lns = (document | comment | empty | setting | nested_setting )*
    (* let lns = (setting)* *)

	let xfm = transform lns (incl "/etc/cobbler/settings") 

	(*
	test lns  get "" = ?
	test lns  get "Simple_Setting: Value \n" = ?
	test lns  get "Simple_Setting2: 'Value2@acme.com' \n" = ?
	test lns  get "Simple_Setting3: ''\n" = ?
	test lns  get "Simple_Setting4: \"\"\n" = ?
	test lns  get "Setting_List:[Value1, Value2, Value3]\n" = ?
	test lns  get "Empty_Setting_List: []\n" = ?
	test lns  get "# Commented_Out_Setting: 'some value'\n" = ?
	test lns  get "---\n" = ?
	test lns  get "Nested_Setting:\n Test: Value\n" = ?
	test lns  get "Nested_Setting:\n - Test \n" = ?
	let  cset = Sys.read_file "/etc/cobbler/settings"
	test lns  get cset = ?
    *)
(* Local Variables: *)
(* mode: caml *)
(* End: *)

My next steps will be to clean this up, and to submit it along with some tests.

11
Dec
09

RHQ Build 1.4.0.B01

My new project at work put out it’s latest open source release. You can learn about it in this here If folks are looking to contribute to a very successful open source Java management project I suggest coming over and taking a look.

15
Sep
09

Happy Cucumber is Happy!

Veggies are fun!

27
Aug
09

Stupid Error Messages

On Fedora 11, If you get this error message:


gconf-sanity-check-2 exit status 256

When you log in. Check that your /tmp file is not write protected. If it is write protected, or the disk is full, you will get this error. Save yourself a few hours of installing/unintsalling and check the /tmp directory.

09
Jul
09

Speeding up git-svn for several users

Git-svn is a wonderful tool if you need to access an svn repo. Reading the docs, it discusses how slow the initial clone is and that you should do one clone, check it into git, and have others clone from you. I tried this, doing the following:


$ git svn clone svn://some/project
$ git push git+ssh://mygit.repo

All was good. I then attempted to clone this, and I saw the following:


$ git clone git+ssh://mygit.repo
$ git svn init svn://some/project
$ git svn rebase
Unable to determine upstream SVN information from working tree history

And worse then this, if I did a git-svn fetch it pulled down the entire repo again (4 hours). I am trying to find where in the code the issue is, but here is the workaroung. You need to add one file into the .git repo which points to the current commit’s hash.


# clone the git repo
$ git clone git+ssh://mygit.repo

# Attach it to the svn repo:
$ git svn init svn://some/project

# get the latest commit hash
$ cd mygit.repo
$ git log

# The latest hash will bet the first thing you see (commit [HASH])
# Copy it, and add it as a single line to the git-svn file
$ vi .git/refs/remotes/git-svn

# Now you can fetch the latest from subversion, and begin working
$ git svn fetch
$ git svn rebase 
07
Jul
09

QMF#4: Ruby accessing EJBs running in JBoss

This is the latest in a series of posts on using qmf consoles in various languages to connect to EJBs running in a JBoss 5 container. There hass been python, C#, and Java. Now, lets add ruby to the list. Steps for building and deploy the Java agent can be found in the Java article. I will assume you have a running agent, a running broker, the latest qpid code, and would like to use the rby console now.

The current ruby console uses some native ruby extensions, so you first need to build those. Make sure you have ruby and rake installed


cd qpid/qpid/ruby/
rake build
export RUBYLIB=[QPID_SOURCE_LOCATION]/qpid/ruby/lib:[QPID_SOURCE_LOCATION]/qpid/qpid/ruby/ext/sasl/ 

Assuming you have the latest version of the git example code cloned from github, you can now run the following:


cd qmfExample/rubyConsole
ruby qmfExample.rb

You will see the same method calls, and XML Schema generated as from the earlier languages. A very easy way to expose your java code to many different languages.

26
Jun
09

QMF # 3: Java to Java over QMF

Here is the next post in the series. Java to Java over QMF. Granted, this is a pretty dumb way to actually connect to an EJB.. since Java provides many ways to do it natively. But, it does show a different console technology accessing the same backend. As before, you can read up on QMF and then build these examples. I will republish the directions from the earlier post to limit the number of times you need to scroll down.

To get started, you will need the gcc tools, ant, and jboss5 installed. Next.. get the code:


# Get the latest QPID Code
svn co http://svn.apache.org/repos/asf/qpid/trunk
# Get my example Code:
git clone git://github.com/bkearney/qmfExample.git

Build the latest qpidd broker and java code


cd trunk/qpid/cpp
./bootstrap
./configure --prefix ~/qpidlocal
make install
cp ../java
ant

Once this is done, you should be able to launch the most current qpidd


export LD_LIBRARY_PATH=~/qpidlocal/lib
~/qpidlocal/sbin/qpidd

Now…. build the java agent which has the EJB we are going to expose


cd ~/qmfExample/javaAgent
# Edit the build.properties file to point to your local
# installation
ant install

Now that we have that… we will build the Java Console to talk to the agent. As with the C# console earlier, the Java example code has 2 versions. One is using the raw QMF Session interface, and is the most similar to the python code. This is located in the qmfExample/javaConsole/generic directory. The second has some classes which were generated off of the example schema. This code is located in qmfExample/javaConsole/generated. The same logic can be used to generate either one.


cd qmfExample/javaConsole/generic
# edit your build.properties and set the property qpid.home and jboss.home
ant build
ant run

VIOLA! You see the EJB being accessed, and the schema being created. This is the third technology to access the example… next week.. ruby.




bk on Identi.ca (via twitter)