def __enter__(self):
        mongo_host = str(CONF.get("DB", "MONGODB_HOST"))
        #logger.info('*** Connecting to Database...')
        #logger.info("Host: %s", mongo_host)

        self.conn = pymongo.MongoClient(host=mongo_host)
        self.db = self.conn.orchestrator
        return  self.db
def __do_deploy(os_deployment_id, cf_domain, project, deployment_id, nfs_server_network, is_neutron, public_net_id,ftp_host):
    os_deployment = get_openstack_deployment(os_deployment_id)
    uaa_urls = "\"uaa.%s\", \"\login.%s\"" % (cf_domain, cf_domain)
    ccdb_type = "pgsql"
    ntp_server = os_deployment["ntp_server"][0]
    monitor_ip = os_deployment["monitor_server_ip"]
    orchestrator_ip = CONF.get("ProcessController","endpoint").split(":")[0]
    dns_nameservers = os_deployment["tor_dns"]
    heat_auth_url = "http://%s:5000/v2.0" % os_deployment["controller_ip"]
    openstack_username = "******"
    openstack_password = os_deployment["admin_password"]
    is_neutron_str = str(is_neutron)
    mco_client_ip = CONF.get("MCO","MCO_Client_IP")
    mco_client_username = CONF.get("MCO","MCO_Client_Username")
    mco_client_password = CONF.get("MCO","MCO_Client_Password")
    
    headers = {'content-type': 'application/json'}
    parameter_data = {}
    parameter_data["cf_domain"] = cf_domain
    parameter_data["deployment_id"] = deployment_id
    parameter_data["uaa_urls"] = uaa_urls
    parameter_data["ccdb_type"] = ccdb_type
    parameter_data["ntp_server"] = ntp_server
    parameter_data["monitor_ip"] = monitor_ip
    parameter_data["orchestrator_ip"] = orchestrator_ip
    parameter_data["nfs_server_network"] = nfs_server_network
    parameter_data["dns_nameservers"] = dns_nameservers
    parameter_data["heat_auth_url"] = heat_auth_url
    parameter_data["openstack_username"] = openstack_username
    parameter_data["openstack_password"] = openstack_password
    parameter_data["neutron"] = is_neutron_str
    parameter_data["mco_client_ip"] = mco_client_ip
    parameter_data["mco_client_username"] = mco_client_username
    parameter_data["mco_client_password"] = mco_client_password
    parameter_data["public_net_id"] = public_net_id
    parameter_data["ftp_host"] = ftp_host

    data = {}
    data["parameters"] = parameter_data
    data["timeout_mins"] = time_out_to_install_cloudfoundry

    process_controller("/contrib/CFV2InstallProcess/create_cf_cluster/%s/%s" % (project, deployment_id), "post", pay_load=json.dumps(data), headers=headers)
def __do_scaleup(task_id, deployment_id, mac_table):
    create_task(task_id)
    __append_nodes_to_node_assigner_deployment(task_id, deployment_id, mac_table)
    deployment_parameters = __get_openstack_process(task_id, deployment_id)
    append_data_to_task(task_id, deployment_id=deployment_id)

    #__apply_ips(task_id, deployment_id, mac_table)

    tag_id = __update_razor_tags(task_id, mac_table, deployment_id)
    append_data_to_task(task_id, razor_tag_id=tag_id)

    policy_id = __create_razor_policies(task_id, tag_id, CONF.get("NodeAssigner","endpoint"), deployment_id)
    append_data_to_task(task_id, razor_policy_id=policy_id)

    __create_metadata_to_nodes(deployment_id, mac_table, deployment_parameters)

    __install_operation_system(task_id, mac_table)

    __scaleup_openstack(task_id, deployment_id)
'''
Created on July 9th, 2013

@author: Layne
'''
from flask import Flask
from orchestrator.common.config import CONF


app = Flask('orchestrator')

if(CONF.getboolean("Default","debug")):
    app.debug = True

# Import APIs
import orchestrator.api

orchestrator.api.load_module()
def scan_macs(subnet = CONF.get('Default', 'local_net')):
    try:
        ans,unans = srp(Ether(dst="FF:FF:FF:FF:FF:FF")/ARP(pdst=subnet),timeout=2,verbose=False)
    except Exception,e:
        LOG.error(str(e))
def node_assigner(service_api, action, pay_load = {}, headers = {}, files = {}):
    end_point = CONF.get("NodeAssigner","endpoint")
    return __do_request(action, end_point + service_api, pay_load, headers, files)
def razor(service_api, action, pay_load = {}, headers = {}, files = {}):
    end_point = CONF.get("Razor","endpoint")
    return __do_request(action, end_point + service_api, pay_load, headers, files)
def process_controller(service_api, action, pay_load = {}, headers = {}, files = {}):
    end_point = CONF.get("ProcessController","endpoint")
    return __do_request(action, end_point + service_api, pay_load, headers, files)