Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
asapo
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Terraform modules
Analyze
Contributor analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Joao Alvim Oliveira Dias De Almeida
asapo
Commits
afd89936
Commit
afd89936
authored
4 years ago
by
Sergey Yakubov
Browse files
Options
Downloads
Patches
Plain Diff
refactor
parent
c94c826c
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
broker/src/asapo_broker/database/mongodb.go
+8
-47
8 additions, 47 deletions
broker/src/asapo_broker/database/mongodb.go
broker/src/asapo_broker/database/mongodb_test.go
+0
-1
0 additions, 1 deletion
broker/src/asapo_broker/database/mongodb_test.go
with
8 additions
and
48 deletions
broker/src/asapo_broker/database/mongodb.go
+
8
−
47
View file @
afd89936
...
...
@@ -60,7 +60,6 @@ type Mongodb struct {
client
*
mongo
.
Client
timeout
time
.
Duration
parent_db
*
Mongodb
db_pointers_created
map
[
string
]
bool
}
func
(
db
*
Mongodb
)
Ping
()
(
err
error
)
{
...
...
@@ -152,31 +151,23 @@ func (db *Mongodb) getMaxIndex(dbname string, collection_name string, dataset bo
return
result
.
ID
,
err
}
func
(
db
*
Mongodb
)
createLocationPointers
(
dbname
string
,
collection_name
string
,
group_id
string
)
(
err
error
)
{
opts
:=
options
.
Update
()
.
SetUpsert
(
true
)
update
:=
bson
.
M
{
"$inc"
:
bson
.
M
{
pointer_field_name
:
0
}}
q
:=
bson
.
M
{
"_id"
:
group_id
+
"_"
+
collection_name
}
c
:=
db
.
client
.
Database
(
dbname
)
.
Collection
(
pointer_collection_name
)
_
,
err
=
c
.
UpdateOne
(
context
.
TODO
(),
q
,
update
,
opts
)
return
func
duplicateError
(
err
error
)
bool
{
command_error
,
ok
:=
err
.
(
mongo
.
CommandError
)
if
(
!
ok
)
{
return
false
}
return
command_error
.
Name
==
"DuplicateKey"
}
func
(
db
*
Mongodb
)
setCounter
(
dbname
string
,
collection_name
string
,
group_id
string
,
ind
int
)
(
err
error
)
{
update
:=
bson
.
M
{
"$set"
:
bson
.
M
{
pointer_field_name
:
ind
}}
opts
:=
options
.
Update
()
.
SetUpsert
(
true
)
c
:=
db
.
client
.
Database
(
dbname
)
.
Collection
(
pointer_collection_name
)
q
:=
bson
.
M
{
"_id"
:
group_id
+
"_"
+
collection_name
}
_
,
err
=
c
.
UpdateOne
(
context
.
TODO
(),
q
,
update
,
opt
ions
.
Update
()
)
_
,
err
=
c
.
UpdateOne
(
context
.
TODO
(),
q
,
update
,
opt
s
)
return
}
func
duplicateError
(
err
error
)
bool
{
command_error
,
ok
:=
err
.
(
mongo
.
CommandError
)
if
(
!
ok
)
{
return
false
}
return
command_error
.
Name
==
"DuplicateKey"
}
func
(
db
*
Mongodb
)
incrementField
(
dbname
string
,
collection_name
string
,
group_id
string
,
max_ind
int
,
res
interface
{})
(
err
error
)
{
update
:=
bson
.
M
{
"$inc"
:
bson
.
M
{
pointer_field_name
:
1
}}
opts
:=
options
.
FindOneAndUpdate
()
.
SetUpsert
(
true
)
.
SetReturnDocument
(
options
.
After
)
...
...
@@ -244,29 +235,6 @@ func (db *Mongodb) getRecordByID(dbname string, collection_name string, group_id
}
func
(
db
*
Mongodb
)
needCreateLocationPointersInDb
(
collection_name
string
,
group_id
string
)
bool
{
dbPointersLock
.
RLock
()
needCreate
:=
!
db
.
db_pointers_created
[
group_id
+
"_"
+
collection_name
]
dbPointersLock
.
RUnlock
()
return
needCreate
}
func
(
db
*
Mongodb
)
setLocationPointersCreateFlag
(
collection_name
string
,
group_id
string
)
{
dbPointersLock
.
Lock
()
if
db
.
db_pointers_created
==
nil
{
db
.
db_pointers_created
=
make
(
map
[
string
]
bool
)
}
db
.
db_pointers_created
[
group_id
+
"_"
+
collection_name
]
=
true
dbPointersLock
.
Unlock
()
}
func
(
db
*
Mongodb
)
generateLocationPointersInDbIfNeeded
(
db_name
string
,
collection_name
string
,
group_id
string
)
{
if
db
.
needCreateLocationPointersInDb
(
collection_name
,
group_id
)
{
db
.
createLocationPointers
(
db_name
,
collection_name
,
group_id
)
db
.
setLocationPointersCreateFlag
(
collection_name
,
group_id
)
}
}
func
(
db
*
Mongodb
)
getParentDB
()
*
Mongodb
{
if
db
.
parent_db
==
nil
{
return
db
...
...
@@ -284,13 +252,6 @@ func (db *Mongodb) checkDatabaseOperationPrerequisites(db_name string, collectio
return
&
DBError
{
utils
.
StatusWrongInput
,
"beamtime_id ans substream must be set"
}
}
// if err := db.getParentDB().dataBaseExist(db_name); err != nil {
// return err
// }
if
len
(
group_id
)
>
0
{
db
.
getParentDB
()
.
generateLocationPointersInDbIfNeeded
(
db_name
,
collection_name
,
group_id
)
}
return
nil
}
...
...
This diff is collapsed.
Click to expand it.
broker/src/asapo_broker/database/mongodb_test.go
+
0
−
1
View file @
afd89936
...
...
@@ -53,7 +53,6 @@ func cleanup() {
return
}
db
.
dropDatabase
(
dbname
)
db
.
db_pointers_created
=
nil
db
.
Close
()
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment