def get_logs(username, password, project_name, service_name): cip = database_update.machine_ip(username, password, project_name, service_name) if cip == '-': return 'no such project or service' cli = Client(base_url=cip, version=config.c_version) full_name = username + config.split_mark + project_name + config.split_mark + service_name if container_exists(cli, full_name): logs = cli.logs(container=full_name) return logs else: return 'no such container'
def get_port(username, password, project_name, service_name): cip = database_update.machine_ip(username, password, project_name, service_name) if cip == '-': return 'no such project or service' cli = Client(base_url=cip, version=config.c_version) full_name = username + config.split_mark + project_name + config.split_mark + service_name if container_exists(cli, full_name): detail = cli.inspect_container(full_name) return detail['NetworkSettings']['Ports'] else: return 'no such container'
def destroy_project(username, password, project_name): # if os.path.exists('%s/%s/%s' % (config.project_path, username, project_name)): # shutil.rmtree('%s/%s/%s' % (config.project_path, username, project_name)) data = database_update.service_list(username, password, project_name) if data: for service_name in data: url = str(database_update.machine_ip(username, password, project_name, service_name)) if url == '-': continue cli = Client(base_url=url, version=config.c_version) full_name = username + config.split_mark + project_name + config.split_mark + service_name if container_exists(cli, full_name): cli.stop(container=full_name) cli.remove_container(container=full_name) database_update.delete_project(username, password, project_name) database_update.delete_service(username, password, project_name) return True, 'Destroy project: %s success' % project_name
def service_list(username, password, project_name): name_list = database_update.service_list(username, password, project_name) if name_list == None: return '-' srv_list = [] for service_name in name_list: url = database_update.machine_ip(username, password, project_name, service_name) cli = Client(base_url=url, version=config.c_version) full_name = username + config.split_mark + project_name + config.split_mark + service_name if not container_exists(cli, full_name): print 'no container: %s in hosts' % full_name continue srv_dict = {} srv_dict['name'] = service_name srv_dict['ip'] = str(url).split(":")[0] srv_dict['status'] = get_status(username, password, project_name, service_name) ports = get_port(username, password, project_name, service_name) if ports == None: srv_dict['port'] = '-' srv_dict['shell'] = '-' elif not len(ports): srv_dict['port'] = '-' srv_dict['shell'] = '-' else: expose_port = [] for key in ports: if not ports[key] == None: if key == '4200/tcp': srv_dict['shell'] = ports[key][0]['HostPort'] else: expose_port.append(ports[key][0]['HostPort']) else: expose_port.append('-') srv_dict['port'] = expose_port srv_list.append(srv_dict) return srv_list
from orchestration.database import database_update #print database_update.machine_ip('wangwy', 'wangwy', 'cdh', 'slave1') #print database_update.machine_ip('wangwy', 'wangwy', 'cdh', 'master') #print database_update.machine_ip('wangwy', 'wangwy', 'cdh', 'cloudera_manager') print database_update.machine_ip('mongo', 'mongo', 'test', 'web')