// GetProxy returns a given proxy object by container name
func GetProxy(dbConn *sql.DB, containername string) (types.Proxy, error) {
	var rows *sql.Rows
	proxy := types.Proxy{}
	var err error

	queryStr := fmt.Sprintf("select p.usename , p.passwd, p.port, p.host, p.databasename from proxy p, container c where p.containerid = c.id and c.name = '%s'", containername)

	logit.Info.Println("GetProxy:" + queryStr)
	rows, err = dbConn.Query(queryStr)
	if err != nil {
		return proxy, err
	}
	defer rows.Close()
	for rows.Next() {
		if err = rows.Scan(&proxy.Usename, &proxy.Passwd,
			&proxy.Port, &proxy.Host, &proxy.Database); err != nil {
			return proxy, err
		}
	}

	proxy.ContainerName = containername

	if err = rows.Err(); err != nil {
		return proxy, err
	}
	var unencrypted string
	unencrypted, err = sec.DecryptPassword(proxy.Passwd)
	if err != nil {
		return proxy, err
	}
	proxy.Passwd = unencrypted
	return proxy, nil
}