def create_datastore(sync_job, task_metadata, task_status):
    name = store_name(sync_job)
    try:
        d_gs = gs.get_store(name)
    except:
        d_gs = gs.create_datastore(name, sync_job["workspace"])

    d_gs.connection_parameters = dict(GEOSERVER_PGSQL_CONNECTION_DEFAULTS)
    d_gs.connection_parameters.update(
        {"schema": sync_job["schema"], "namespace": GEOSERVER_WORKSPACE_NAMESPACE.format(sync_job["workspace"])}
    )
    gs.save(d_gs)
    d_gs = gs.get_store(name)
    if not d_gs:
        raise Exception("Create data store for workspace({0}) in geoserver failed.".format(sync_job["workspace"]))
def create_datastore(sync_job, task_metadata, task_status):
    name = store_name(sync_job)
    try:
        d_gs = gs.get_store(name)
    except:
        d_gs = gs.create_datastore(name, sync_job["workspace"])

    d_gs.connection_parameters = dict(GEOSERVER_PGSQL_CONNECTION_DEFAULTS)

    for k in d_gs.connection_parameters.iterkeys():
        if k in sync_job:
            d_gs.connection_parameters[k] = str(sync_job[k])

    d_gs.connection_parameters["namespace"] = GEOSERVER_WORKSPACE_NAMESPACE.format(sync_job["workspace"])

    if "geoserver_setting" in sync_job:
        for k, v in sync_job["geoserver_setting"].iteritems():
            d_gs.connection_parameters[k] = str(v)
    gs.save(d_gs)
    d_gs = gs.get_store(name)
    if not d_gs:
        raise Exception("Create data store for workspace({0}) in geoserver failed.".format(sync_job["workspace"]))