Exemple #1
0
 def usage(self, cmdname):
     BaseClient.usage(self, cmdname)
     print "    add_nodes         serviceid count [cloud] # add the specified number of scalaris nodes."
     print "                                              # Set \'cloud\' to \'auto\' to automatically place nodes across multiple clouds."
     print "    remove_nodes      serviceid count [cloud] # remove the specified number of scalaris nodes"
     print "    list_nodes        serviceid               # list all nodes"
     print "    get_node_info     serviceid nodeid        # get information about the specified node"
Exemple #2
0
 def usage(self, aid, sid ):
     BaseClient.usage(self, aid, sid)
     print ""
     print "    ----Service specific commands-------"
     print ""
     print "    get_helloworld appid serviceid"
     print "    add_nodes      appid serviceid count [cloud]"
     print "    remove_nodes   appid serviceid count"
Exemple #3
0
 def usage(self, cmdname):
     BaseClient.usage(self, cmdname)
     print "    add_nodes         serviceid count [cloud] # add the specified number of osd nodes"
     print "    remove_nodes      serviceid count [cloud] # remove the specified number of osd nodes"
     print "    list_volumes      serviceid"
     print "    create_volume     serviceid vol_name"
     print "    delete_volume     serviceid vol_name"
     print "    list_policies     serviceid policy_type # [ osd_sel | replica_sel | replication ]"
     print "    set_policy        serviceid policy_type vol_name policy [factor]"
Exemple #4
0
 def usage(self, cmdname):
     BaseClient.usage(self, cmdname)
     print "    set_password      serviceid password"
     print "    add_nodes         serviceid count [cloud]"
     print "    add_glb_nodes     serviceid count [cloud]"
     print "    remove_nodes      serviceid count"
     print "    remove_glb_nodes  serviceid count"
     print "    sqldump           serviceid"
     print "    load_dump         serviceid filename"
     print "    migrate_nodes     serviceid origin_cloud:node_id:dest_cloud[,o_cloud:node_id:d_cloud]* [delay]"
Exemple #5
0
 def usage(self, cmdname):
     BaseClient.usage(self, cmdname)
     print "    add_nodes         serviceid b w p [cloud]     # add    b backend, w web and p proxy nodes"
     print "    remove_nodes      serviceid b w p     # remove b backend, w web and p proxy nodes"
     print "    list_keys         serviceid           # list authorized SSH keys"
     print "    upload_key        serviceid filename  # upload an SSH key"
     print "    list_uploads      serviceid           # list uploaded code versions"
     print "    upload_code       serviceid filename  # upload a new code version"
     print "    download_code     serviceid version   # download a specific code version"
     # implemented in {php,java}.py
     print "    enable_code       serviceid version   # set a specific code version active" 
Exemple #6
0
 def usage(self, cmdname):
     BaseClient.usage(self, cmdname)
     print "    add_nodes         serviceid count [cloud] # add the specified number of osd nodes"
     print "    remove_nodes      serviceid count [cloud] # remove the specified number of osd nodes"
     print "    list_volumes      serviceid"
     print "    create_volume     serviceid vol_name"
     print "    delete_volume     serviceid vol_name"
     print "    list_policies     serviceid policy_type # [ osd_sel | replica_sel | replication ]"
     print "    set_policy        serviceid policy_type vol_name policy [factor]"
     print "    toggle_persistent serviceid"
     print "    set_osd_size      serviceid vol_size"
Exemple #7
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)

        print 'persistent:', service['persistent']
        print 'osd_volume_size:', service['osd_volume_size']

        nodes = self.callmanager(service['sid'], "list_nodes", False, {})
        if 'error' in nodes:
            return

        print nodes

        for role in ( 'dir', 'mrc', 'osd' ):
            print "\n", role.upper(), "nodes:"

            for node in nodes[role]:
                params = { 'serviceNodeId': node }
                details = self.callmanager(service['sid'], "get_node_info", False, params)

                if 'error' in details:
                    print node, details['error']
                    continue

                if role == 'dir':
                    port = 30638

                if role == 'osd':
                    port = 30640
                    
                if role == 'mrc':
                    port = 30636

                print "http://%s:%s" % (details['serviceNode']['ip'], port)
Exemple #8
0
 def usage(self, cmdname):
     BaseClient.usage(self, cmdname)
     print " == HTC specific commands == "
     print "    hosts            serviceid "
     print "    create_job       serviceid   bot_file"
     print "    upload_file      serviceid   file"
     #print "    create_worker    serviceid    type [cloud]"
     print "    create_worker    serviceid   [cloud]"
     print "    remove_worker    serviceid   worker_id"
     print "    configuration    serviceid"
     print "    throughput       serviceid"
     print "    add              serviceid   job_id   bot_file"
     print "    remove           serviceid   job_id   bot_file"
     print "    sample           serviceid   job_id"
     print "    submit           serviceid   job_id"
     print "    stat             serviceid"
Exemple #9
0
 def usage(self, cmdname):
     BaseClient.usage(self, cmdname)
     print " == HTC specific commands == "
     print "    hosts            serviceid "
     print "    create_job       serviceid   bot_file"
     print "    upload_file      serviceid   file"
     #print "    create_worker    serviceid    type [cloud]"
     print "    create_worker    serviceid   [cloud]"
     print "    remove_worker    serviceid   worker_id"
     print "    configuration    serviceid"
     print "    throughput       serviceid"
     print "    add              serviceid   job_id   bot_file"
     print "    remove           serviceid   job_id   bot_file"
     print "    sample           serviceid   job_id"
     print "    submit           serviceid   job_id"
     print "    stat             serviceid"
Exemple #10
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)

        print 'persistent:', service['persistent']
        print 'osd_volume_size:', service['osd_volume_size']

        nodes = self.callmanager(service['sid'], "list_nodes", False, {})
        if 'error' in nodes:
            return

        print nodes

        for role in ('dir', 'mrc', 'osd'):
            print "\n", role.upper(), "nodes:"

            for node in nodes[role]:
                params = {'serviceNodeId': node}
                details = self.callmanager(service['sid'], "get_node_info",
                                           False, params)

                if 'error' in details:
                    print node, details['error']
                    continue

                if role == 'dir':
                    port = 30638

                if role == 'osd':
                    port = 30640

                if role == 'mrc':
                    port = 30636

                print "http://%s:%s" % (details['serviceNode']['ip'], port)
Exemple #11
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)

        nodes = self.callmanager(service['sid'], "list_nodes", False, {})
        if not 'error' in nodes:
            for node in nodes['helloworld']:
                params = { 'serviceNodeId': node }
                details = self.callmanager(service['sid'], "get_node_info", False, params)
                print "helloworld agent:", details['serviceNode']['ip']
Exemple #12
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)
        nodes = self.callmanager(service['sid'], "list_nodes", False, {})
    	print type(nodes)    
        for n in nodes:
            print n + "	:	" +str(nodes[n])

        if 'dict' in service:
            print service['dict']
Exemple #13
0
 def info(self, service_id):
     service = BaseClient.info(self, service_id)
     
     nodes = self.callmanager(service['sid'], "list_nodes", False, {})
     if 'node' in nodes:
         # Multiple nodes
         for node in nodes['node']:
             params = { 'serviceNodeId': node }
             details = self.callmanager(service['sid'], "get_node_info", False, params)
             print "node url:", "http://%s:3306" % details['serviceNode']['ip']
Exemple #14
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)

        nodes = self.callmanager(service['sid'], "list_nodes", False, {})
        if not 'error' in nodes:
            for node in nodes['helloworld']:
                params = {'serviceNodeId': node}
                details = self.callmanager(service['sid'], "get_node_info",
                                           False, params)
                print "helloworld agent:", details['serviceNode']['ip']
Exemple #15
0
 def usage(self, cmdname):
     BaseClient.usage(self, cmdname)
     print "    add_nodes         serviceid count [cloud] # add the specified number of nodes"
     print "    remove_nodes      serviceid count     # remove the specified number of nodes"
     print "    upload_code       serviceid filename  # upload a new code version"
     print "    list_keys         serviceid           # list authorized SSH keys"
     print "    upload_key        serviceid filename  # upload an SSH key"
     print "    list_uploads      serviceid           # list uploaded code versions"
     print "    download_code     serviceid version   # download a specific code version"
     print "    enable_code       serviceid version   # set a specific code version active"
     print "    delete_code       serviceid version   # delete a specific code version"
     print "    list_volumes      serviceid           # list the volumes in use by the Generic agents"
     print "    create_volume     serviceid vol_name size(MB) agent_id # create a volume and attatch it to a Generic agent"
     print "    delete_volume     serviceid vol_name  # detach and delete a volume"
     print "    run               serviceid [param]   # execute the run.sh script"
     print "    interrupt         serviceid [param]   # execute the interrupt.sh script"
     print "    cleanup           serviceid [param]   # execute the cleanup.sh script"
     print "    get_script_status serviceid           # get the status of the scripts for each Generic agent"
     print "    get_agent_log     serviceid agent_id [filename] # get the agent logs"
Exemple #16
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)

        nodes = self.callmanager(service['sid'], "list_nodes", False, {})
        if 'scalaris' in nodes:
            for node in nodes['scalaris']:
                params = {'serviceNodeId': node}
                details = self.callmanager(service['sid'], "get_node_info",
                                           False, params)

                print "management server url:",
                print "http://%s:8000" % details['serviceNode']['ip']
Exemple #17
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)

        nodes = self.callmanager(service['sid'], "list_nodes", False, {})
        if 'scalaris' in nodes:
            for node in nodes['scalaris']:
                params = { 'serviceNodeId': node }
                details = self.callmanager(service['sid'], 
                    "get_node_info", False, params)

                print "management server url:",
                print "http://%s:8000" % details['serviceNode']['ip']
Exemple #18
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)
        
        nodes = self.callmanager(service['sid'], "list_nodes", False, {})

        for node in nodes['masters']:
            params = { 'serviceNodeId': node }
            details = self.callmanager(service['sid'], "get_node_info", False, params)
            print "master url:", "mysql://%s:3306" % details['serviceNode']['ip']

        for node in nodes['slaves']:
            params = { 'serviceNodeId': node }
            details = self.callmanager(service['sid'], "get_node_info", False, params)
            print "slave url: ", "mysql://%s:3306" % details['serviceNode']['ip']
Exemple #19
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)

        nodes = self.callmanager(service['sid'], "list_nodes", False, {})
        if 'error' in nodes:
            return 

        for what in 'proxy', 'web', 'backend':
            print what,
            for proxy in nodes[what]:
                params = { 'serviceNodeId': proxy }
                details = self.callmanager(service['sid'], "get_node_info", False, params)
                print details['serviceNode']['ip'],

            print
Exemple #20
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)

        nodes = self.callmanager(service["sid"], "list_nodes", False, {})

        for node in nodes["nodes"]:
            params = {"serviceNodeId": node}
            details = self.callmanager(service["sid"], "get_node_info", False, params)
            node_info = details["serviceNode"]
            print "node: ip=%s cloud=%s vmid=%s" % (node_info["ip"], node_info["cloud"], node_info["vmid"])

        for node in nodes["glb_nodes"]:
            params = {"serviceNodeId": node}
            details = self.callmanager(service["sid"], "get_node_info", False, params)
            node_info = details["serviceNode"]
            print "glb node: ip=%s cloud=%s vmid=%s" % (node_info["ip"], node_info["cloud"], node_info["vmid"])
Exemple #21
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)

        nodes = self.callmanager(service['sid'], "list_nodes", False, {})
        if 'master' in nodes and nodes['master']:
            # Only one master
            master = nodes['master'][0]
            params = { 'serviceNodeId': master }
            details = self.callmanager(service['sid'], "get_node_info", False, params)
            print "master:", details['serviceNode']['ip']

        if 'node' in nodes:
            # Multiple nodes
            for node in nodes['node']:
                params = { 'serviceNodeId': node }
                details = self.callmanager(service['sid'], "get_node_info", False, params)
                print "node:", details['serviceNode']['ip']
Exemple #22
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)

        nodes = self.callmanager(service['sid'], "list_nodes", False, {})
        if 'masters' in nodes:
            for master in nodes['masters']:
                params = { 'serviceNodeId': master }
                details = self.callmanager(service['sid'], 
                    "get_node_info", False, params)

                print "master namenode url:", 
                print "http://%s:50070" % details['serviceNode']['ip']

                print "master job tracker url:", 
                print "http://%s:50030" % details['serviceNode']['ip']

                print "master HUE url:", 
                print "http://%s:8088" % details['serviceNode']['ip']
Exemple #23
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)
        
        nodes = self.callmanager(service['sid'], "list_nodes", False, {})
        if 'hub' in nodes and nodes['hub']:
            # Only one HUB
            hub = nodes['hub'][0]
            params = { 'serviceNodeId': hub }
            details = self.callmanager(service['sid'], "get_node_info", False, params)
            print "hub url: ", "http://%s:4444" % details['serviceNode']['ip'], "\tVMid: %s" % details['serviceNode']['id'] 
            print "node url:", "http://%s:3306" % details['serviceNode']['ip'], "\tVMid: %s" % details['serviceNode']['id']

        if 'node' in nodes:
            # Multiple nodes
            for node in nodes['node']:
                params = { 'serviceNodeId': node }
                details = self.callmanager(service['sid'], "get_node_info", False, params)
                print "node url:", "http://%s:3306" % details['serviceNode']['ip'], "\tVMid: %s" % details['serviceNode']['id']
Exemple #24
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)

        nodes = self.callmanager(service['sid'], "list_nodes", False, {})
        if 'masters' in nodes:
            for master in nodes['masters']:
                params = {'serviceNodeId': master}
                details = self.callmanager(service['sid'], "get_node_info",
                                           False, params)

                print "master namenode url:",
                print "http://%s:50070" % details['serviceNode']['ip']

                print "master job tracker url:",
                print "http://%s:50030" % details['serviceNode']['ip']

                print "master HUE url:",
                print "http://%s:8088" % details['serviceNode']['ip']
Exemple #25
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)

        # This call gives a urllib2.URLError "Connection reset by peer" quite
        # often...
        res = self.callmanager(service['sid'], "get_service_info", False, {})

        #data = simplejson.dumps(res);
        # print "data:", data 
        print "mode:", res['mode']
        print "phase:", res['phase']
        print "total tasks:", res['noTotalTasks']
        print "completed tasks:", res['noCompletedTasks']
        print "money spent sampling:", res['moneySpentSampling']
        print "money spent:", res['moneySpent']
        if res['noCompletedTasks'] > 0:     # 
            if res['state'] != 'RUNNING':
                print "Busy %s, please wait..." % res['phase']
                return
            sres = self.callmanager(service_id, "get_sampling_results", False, {}) # in json format
            sdata = simplejson.loads(sres)
            if 'timestamp' in sdata:        # Sampling is ready, check if bag is ready, or if we have to choose a schedule
                ts = sdata['timestamp']
                print strftime("Bag sampled on %a %d %b %Y at %H:%M:%S %Z", localtime(ts/1000))
                if 'schedules' in sdata:
                    #sch = sdata['schedules']
                    #ss = simplejson.dumps(sch)
                    # print "schedules: ", ss
                    if len(sdata['schedules']) == 0:
                        print "Bag finished during sampling phase"
                        return
                    if res['noTotalTasks'] == res['noCompletedTasks']:
                        print "Taskfarm finished"
                        return
                    count = 0
                    print "Schedules to choose from:"
                    print "%s\t%6.6s\t%6.6s" % ('Sched#','Time', 'Cost')
                    for sched in sdata['schedules']:
                        count = count + 1
                        print "%s:\t%6.6s\t%6.6s" % ( count, sched['time'], sched['cost'] )
                return
            print "error in samplingresults: ", sdata 
Exemple #26
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)

        # This call gives a urllib2.URLError "Connection reset by peer" quite
        # often...
        res = self.callmanager(service['sid'], "get_service_info", False, {})

        #data = simplejson.dumps(res);
        # print "data:", data 
        print "mode:", res['mode']
        print "phase:", res['phase']
        print "total tasks:", res['noTotalTasks']
        print "completed tasks:", res['noCompletedTasks']
        print "money spent sampling:", res['moneySpentSampling']
        print "money spent:", res['moneySpent']
        if res['noCompletedTasks'] > 0:     # 
            if res['state'] != 'RUNNING':
                print "Busy %s, please wait..." % res['phase']
                return
            sres = self.callmanager(service_id, "get_sampling_results", False, {}) # in json format
            sdata = simplejson.loads(sres)
            if 'timestamp' in sdata:        # Sampling is ready, check if bag is ready, or if we have to choose a schedule
                ts = sdata['timestamp']
                print strftime("Bag sampled on %a %d %b %Y at %H:%M:%S %Z", localtime(ts/1000))
                if 'schedules' in sdata:
                    #sch = sdata['schedules']
                    #ss = simplejson.dumps(sch)
                    # print "schedules: ", ss
                    if len(sdata['schedules']) == 0:
                        print "Bag finished during sampling phase"
                        return
                    if res['noTotalTasks'] == res['noCompletedTasks']:
                        print "Taskfarm finished"
                        return
                    count = 0
                    print "Schedules to choose from:"
                    print "%s\t%6.6s\t%6.6s" % ('Sched#','Time', 'Cost')
                    for sched in sdata['schedules']:
                        count = count + 1
                        print "%s:\t%6.6s\t%6.6s" % ( count, sched['time'], sched['cost'] )
                return
            print "error in samplingresults: ", sdata 
Exemple #27
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)

        nodes = self.callmanager(service['sid'], "list_nodes", False, {})
        if 'hub' in nodes and nodes['hub']:
            # Only one HUB
            hub = nodes['hub'][0]
            params = {'serviceNodeId': hub}
            details = self.callmanager(service['sid'], "get_node_info", False,
                                       params)
            print "hub url: ", "http://%s:4444" % details['serviceNode']['ip']
            print "node url:", "http://%s:3306" % details['serviceNode']['ip']

        if 'node' in nodes:
            # Multiple nodes
            for node in nodes['node']:
                params = {'serviceNodeId': node}
                details = self.callmanager(service['sid'], "get_node_info",
                                           False, params)
                print "node url:", "http://%s:3306" % details['serviceNode'][
                    'ip']
Exemple #28
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)

        nodes = self.callmanager(service["sid"], "list_nodes", False, {})
        if "error" in nodes:
            return

        errmsg = ""

        for what in "proxy", "web", "backend":
            print what,
            for proxy in nodes[what]:
                params = {"serviceNodeId": proxy}
                details = self.callmanager(service["sid"], "get_node_info", False, params)
                if "error" in details:
                    errmsg = errmsg + details["error"] + "\n"
                else:
                    print details["serviceNode"]["ip"],

            print

        if errmsg:
            print "WARNING: %s" % errmsg
Exemple #29
0
    def info(self, service_id):
        service = BaseClient.info(self, service_id)

        nodes = self.callmanager(service['sid'], "list_nodes", False, {})
        if 'error' in nodes:
            return 

        errmsg = ''

        for what in 'proxy', 'web', 'backend':
            print what,
            for proxy in nodes[what]:
                params = { 'serviceNodeId': proxy }
                details = self.callmanager(service['sid'], "get_node_info", False, params)
                if 'error' in details:
                    errmsg = errmsg + details['error'] + "\n"
                else:
                    print details['serviceNode']['ip'],

            print

        if errmsg:
            print 'WARNING: %s' % errmsg
Exemple #30
0
 def usage(self, cmdname):
     BaseClient.usage(self, cmdname)
     print "    set_mode   serviceid [ DEMO | REAL ]         # select run mode"
     print "    upload_bot serviceid filename xtreemfs_loc   # upload bag of tasks and set file location "
     print "    select_schedule serviceid schedule_number    # select one of the available schedules "
Exemple #31
0
 def usage(self, cmdname):
     BaseClient.usage(self, cmdname)
     print "    get_helloworld serviceid"
     print "    add_nodes      serviceid count [cloud]"
     print "    remove_nodes   serviceid count"
Exemple #32
0
#!/usr/bin/env python

import sys

from cps.base import BaseClient

if __name__ == "__main__":
    BaseClient().main(sys.argv)
Exemple #33
0
 def usage(self, cmdname):
     BaseClient.usage(self, cmdname)
Exemple #34
0
 def usage(self, cmdname):
     BaseClient.usage(self, cmdname)
     print "    set_password      serviceid password"
     print "    add_nodes         serviceid count [cloud]"
     print "    remove_nodes      serviceid count"
     print "    sqldump           serviceid"
Exemple #35
0
 def usage(self, cmdname):
     BaseClient.usage(self, cmdname)
     print "    add_nodes         serviceid count"
     print "    remove_nodes      serviceid count"
Exemple #36
0
 def usage(self, cmdname):
     BaseClient.usage(self, cmdname)
     print "    set_password      serviceid password"
     print "    add_nodes         serviceid count [cloud]"
     print "    remove_nodes      serviceid count"
Exemple #37
0
 def usage(self, cmdname):
     BaseClient.usage(self, cmdname)
     print "    add_nodes    serviceid count"
     print "    remove_nodes serviceid count"
Exemple #38
0
 def usage(self, cmdname):
     BaseClient.usage(self, cmdname)
     print "    set_mode   serviceid [ DEMO | REAL ]         # select run mode"
     print "    upload_bot serviceid filename xtreemfs_loc   # upload bag of tasks and set file location "
     print "    select_schedule serviceid schedule_number    # select one of the available schedules "
Exemple #39
0
 def create(self, service_type, application_id=None):
     # TaskFarm's initial state is not INIT but RUNNING 
     BaseClient.create(self, service_type, application_id, 
         initial_state='RUNNING')
Exemple #40
0
 def create(self, service_type, application_id=None):
     # TaskFarm's initial state is not INIT but RUNNING
     BaseClient.create(self,
                       service_type,
                       application_id,
                       initial_state='RUNNING')
Exemple #41
0
 def info(self, service_id):
     service = BaseClient.info(self, service_id)
     nodes = self.callmanager(service['sid'], "list_nodes", False, {})
     print type(nodes)
     for n in nodes:
         print n + "	:	" + str(nodes[n])
Exemple #42
0
 def usage(self, cmdname):
     BaseClient.usage(self, cmdname)