Ejemplo n.º 1
0
def connect_to_wallaby(broker_addr='127.0.0.1', port=5672, username='', passwd='', mechanisms='ANONYMOUS PLAIN GSSAPI'):
    global supported_api_versions

    # set up session for wallaby
    session = Session()

    if username != '' and passwd != '':
        broker_str = '%s/%s@%s:%d' % (username, passwd, broker_addr, port)
    elif username != '':
        broker_str = '%s@%s:%d' % (username, broker_addr, port)
    else:
        broker_str = '%s:%d' % (broker_addr, port)

    sys.stdout.write("Connecting to broker %s:\n" % (broker_str))

    try:
        broker = session.addBroker('amqp://%s' % broker_str, mechanisms=mechanisms)
    except:
        sys.stderr.write('Unable to connect to broker "%s"\n' % broker_str)
        raise

    # Retrieve the config store object
    sys.stdout.write("Connecting to wallaby store:\n")
    try:
        (store_agent, config_store) = WallabyHelpers.get_store_objs(session)
    except WallabyStoreError, error:
        sys.stderr.write('Error: %s\n' % error.error_str)
        session.delBroker(broker)
        raise
Ejemplo n.º 2
0
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
from qmf.console import Session
from sys import exit, argv, stdin
import time

jobid = len(argv) > 1 and argv[1]
attr_name = len(argv) > 2 and argv[2]
attr_value = len(argv) > 3 and argv[3]
url = len(argv) > 4 and argv[4] or "amqp://localhost:5672"

try:
    session = Session()
    broker = session.addBroker(url)
    schedulers = session.getObjects(_class="scheduler",
                                    _package="com.redhat.grid")
except Exception, e:
    print "unable to access broker or scheduler"
    print e
    exit(1)

result = schedulers[0].SetJobAttribute(jobid, attr_name, attr_value)

if result.status:
    print result.text
    session.delBroker(broker)
    exit(1)
Ejemplo n.º 3
0
 def __init__(self, broker):
     self.__session = Session()
     self.__broker = self.__session.addBroker("amqp://localhost:%d"%broker.port())
Ejemplo n.º 4
0
        self.count += 1
        condition.notify()
        condition.release()


#        print broker, seq, response

url = len(argv) > 1 and argv[1] or "amqp://localhost:5672"
count = len(argv) > 2 and int(argv[2]) or 10000
submission = len(argv) > 3 and argv[3] or "submission"
klass = "JobServer"
package = "com.redhat.grid"

console = EmptyConsole()

session = Session(console)
broker = session.addBroker(url)
servers = session.getObjects(_class=klass, _package=package)
server = servers[0]

print "Found server:", server
print "Iteractions:", count
print "Submission:", submission

start = time.time()

print "Start:", start

for i in xrange(count):
    r = session._sendMethodRequest(server.getBroker(), server.getClassKey(),
                                   server.getObjectId(), "GetJobAds",
Ejemplo n.º 5
0
ad["CopyToSpool"] = "False"

vars = list()
vars.append("_CONDOR_DAGMAN_LOG=%s.out" % dag_file)
vars.append("_CONDOR_MAX_DAGMAN_LOG=0")

# do this in case script is run in dev env
for param in os.environ.keys():
	if ("CONDOR" in param) or ("PATH" in param):
		vars.append("%s=%s" % (param,os.environ[param]))
ad["Environment"] = " ".join(vars)

for attr in sorted(ad):
	print attr,"=",ad[attr]

session = Session(); broker = session.addBroker(url)
schedulers = session.getObjects(_class="scheduler", _package="com.redhat.grid")
result = schedulers[0].SubmitJob(ad)

if result.status:
    print "Error submitting:", result.text
    session.delBroker(broker)
    exit(1)

print "Submitted job:", result.Id
time.sleep(5)

submissions = session.getObjects(_class="submission", _package="com.redhat.grid")
submission = reduce(lambda x,y: x or (y.Name == result.Id and y), submissions, False)
if not submission:
    print "Did not find submission... is the schedd or jobserver publishing submissions?"