コード例 #1
0
def child_group_of_parent_check_by_id(parent_id, child_id):
	sql = """
WITH RECURSIVE
  t(group_id)
AS (
  SELECT
    parent_id AS group_id
  FROM
    myemsl.subgroups AS s
  WHERE
    s.child_id = %(child_id)s
UNION ALL
  SELECT
    myemsl.subgroups.parent_id AS group_id
  FROM
    myemsl.subgroups, t
  WHERE
    myemsl.subgroups.child_id = t.group_id
)
SELECT
  true
FROM
  t
WHERE
  t.group_id = %(parent_id)s
GROUP BY
  g.type, g.name;
"""
	rows = do_sql_select(sql, True, myemsl_schema_versions=['1.0'], params={'parent_id':parent_id, 'child_id':child_id})
	try:
		return rows[0][0]
	except:
		return False
コード例 #2
0
def get_group_id(grp_name, grp_type):
	sql = """
SELECT
  group_id
FROM
  myemsl.groups
WHERE
  name = %(name)s and type = %(type)s;
"""
	rows = do_sql_select(sql, True, myemsl_schema_versions=['1.0'], params={'name':str(grp_name), 'type':str(grp_type)})
	return rows[0][0]
コード例 #3
0
def get_proposal_gid(prop):
	sql = """
SELECT
  group_id
FROM
  eus.proposals
WHERE
  eus.proposals.proposal_id = %(proposal)s;
"""
	rows = do_sql_select(sql, True, myemsl_schema_versions=['1.0'], params={'proposal':str(prop)})
	return rows[0][0]
コード例 #4
0
def update_transaction_stime(trans):
	sql = """
UPDATE
  myemsl.transactions
SET
  stime=now()
WHERE
  transaction=%(trans)s
RETURNING
  stime AT TIME ZONE current_setting('TIMEZONE');
"""
	res = do_sql_select(sql, True, myemsl_schema_versions=['1.0'], params={'trans':str(trans)});
	if res and len(res) > 0 and len(res[0]) > 0:
		res = res[0][0]
	return res
コード例 #5
0
            | stat.S_IWGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
        os.chmod(
            "%s/.." % (bundledir),
            stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP
            | stat.S_IWGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
        os.rmdir(bundledir)
        cnx.commit()
    except Exception, e:
        cnx.rollback()
        cnx.close()
        raise Exception('Unable to insert file metadata (%s).' % (str(e)))
    sql = """
        select myemsl.fill_item_time_cache_by_transaction(%(trans)d);
        """
    do_sql_select(sql,
                  0,
                  myemsl_schema_versions=['1.12'],
                  params={'trans': int(transaction)})
    cnx.close()


def get_transaction(user):
    transxml = call_curl(
        "%s/%s" % (config.get('metadata', 'transaction_base_url'), user),
        capath=None,
        cainfo='/etc/myemsl/keys/server/local.crt',
        sslcert='/etc/myemsl/keys/server/local.pem',
        sslcerttype='PEM')
    dom = xml.dom.minidom.parseString(transxml)
    transaction = -1
    found = False
    for x in dom.firstChild.childNodes:
コード例 #6
0
ファイル: __init__.py プロジェクト: EMSL-MSC/pacifica-2.0
		bundledir = "%s/%s/bundle/%s" %(prefix, username, transaction)
		for (root, dirs, files) in os.walk(bundledir, topdown=False):
			for d in dirs:
				os.rmdir("%s/%s" %(root, d))
		os.chmod("%s" %(bundledir), stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
		os.chmod("%s/.." %(bundledir), stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
		os.rmdir(bundledir)
		cnx.commit()
	except Exception, e:
		cnx.rollback()
		cnx.close()
		raise Exception('Unable to insert file metadata (%s).'%(str(e)))
        sql = """
        select myemsl.fill_item_time_cache_by_transaction(%(trans)d);
        """
        do_sql_select(sql, 0, myemsl_schema_versions=['1.12'], params={'trans':int(transaction)})
	cnx.close()

def get_transaction(user):
	transxml = call_curl(
		"%s/%s" %(config.get('metadata', 'transaction_base_url'), user), 
		capath=None,
		cainfo='/etc/myemsl/keys/server/local.crt',
		sslcert='/etc/myemsl/keys/server/local.pem',
		sslcerttype='PEM'
	)
	dom = xml.dom.minidom.parseString(transxml)
	transaction = -1
	found = False
	for x in dom.firstChild.childNodes:
		if x.nodeType == x.ELEMENT_NODE and (x.nodeName == 'transaction'):