Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gsutil commands to async #164

Closed
wants to merge 1,486 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1486 commits
Select commit Hold shift + click to select a range
4b3230b
big query and dpms refactor
Jeyaprakash-NK Apr 8, 2024
eff430a
ID:221-Toast message timer fix
aditee-accenture Apr 8, 2024
b09da1c
Merge branch 'sprint19-dataset-explorer-changes' of https://github.co…
aditee-accenture Apr 8, 2024
390d21a
Multiple projects handling in dataset tree view
Jeyaprakash-NK Apr 8, 2024
f16f461
Merge pull request #136 from Shubha-accenture/sprint19-dataset-explor…
harsha-accenture Apr 8, 2024
9ed25a7
Empty schema info page handled
Jeyaprakash-NK Apr 10, 2024
9b9bfc3
search functionality code commented out
Jeyaprakash-NK Apr 12, 2024
f5113fd
Height css changes
Jeyaprakash-NK Apr 12, 2024
12060ef
Merge pull request #137 from Shubha-accenture/sprint19-dataset-explor…
harsha-accenture Apr 12, 2024
9302162
schema empty error message added
Jeyaprakash-NK Apr 15, 2024
fb6497c
Merge branch 'sprint19-bigquery-launcher-changes' of https://github.c…
Jeyaprakash-NK Apr 15, 2024
b6a7b7c
Merge pull request #138 from Shubha-accenture/sprint19-dataset-explor…
harsha-accenture Apr 15, 2024
1e30c16
schema page minor UI fixes scroll
Jeyaprakash-NK Apr 17, 2024
578964a
Network configuration Error messages style change
Jeyaprakash-NK Apr 17, 2024
dc38839
No cluster available handled for create pages
Jeyaprakash-NK Apr 17, 2024
b883428
Merge branch 'sprint19-bigquery-launcher-changes' of https://github.c…
Jeyaprakash-NK Apr 17, 2024
799f604
search code enabled
Jeyaprakash-NK Apr 17, 2024
0844b26
ipynb file removed
Jeyaprakash-NK Apr 17, 2024
b40eab7
Revert "search code enabled"
Jeyaprakash-NK Apr 17, 2024
835ce47
Revert "ipynb file removed"
Jeyaprakash-NK Apr 17, 2024
b56dd1b
Delete ipynb file
Jeyaprakash-NK Apr 17, 2024
0a38df3
History server cluster no data message added
Jeyaprakash-NK Apr 18, 2024
2e1580d
Merge pull request #139 from Shubha-accenture/sprint19-dataset-explor…
harsha-accenture Apr 18, 2024
eb6ba34
Big Query search changes FE and BE
Jeyaprakash-NK Apr 18, 2024
10dc1a3
Merge branch 'sprint19-bigquery-launcher-changes' of https://github.c…
Jeyaprakash-NK Apr 18, 2024
521a808
code cleanup changes
Jeyaprakash-NK Apr 18, 2024
1688e45
commented code removed
Jeyaprakash-NK Apr 18, 2024
c170dcd
Fetching all the records in backend
harsha-accenture Apr 19, 2024
9a1bb4d
Incorporated review comments
harsha-accenture Apr 19, 2024
c796f98
Merge pull request #140 from Shubha-accenture/sprint19-dataset-explor…
harsha-accenture Apr 19, 2024
49a7ec3
code formatting
saranyaloganathan23 Apr 22, 2024
c4e4556
removed utitlities
saranyaloganathan23 Apr 22, 2024
61adaca
Merge branch 'sprint19-bigquery-launcher-changes' of https://github.c…
Jeyaprakash-NK Apr 22, 2024
6c86835
Merge pull request #141 from Shubha-accenture/sprint19-dataset-explor…
harsha-accenture Apr 22, 2024
43c34e9
By default display BigQuery tree in panel
Jeyaprakash-NK Apr 22, 2024
b6db989
Merge branch 'sprint19-bigquery-launcher-changes' of https://github.c…
Jeyaprakash-NK Apr 22, 2024
6e0b8d6
Merge pull request #142 from Shubha-accenture/sprint19-dataset-explor…
harsha-accenture Apr 22, 2024
091eaa7
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
Jeyaprakash-NK Apr 23, 2024
7258d02
BQ search FE search removed and handled in BE
Jeyaprakash-NK Apr 23, 2024
0f03146
Merge remote-tracking branch 'upstream/main'
Jeyaprakash-NK Apr 23, 2024
990bb1f
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
Jeyaprakash-NK Apr 23, 2024
0412e09
big query tree loader icon size reduced
Jeyaprakash-NK Apr 23, 2024
28ced98
No dataset - Toast removed
Jeyaprakash-NK Apr 23, 2024
d92a4b5
search loader size reduced
Jeyaprakash-NK Apr 23, 2024
6f70a1a
Handled dataset empty condition
Jeyaprakash-NK Apr 23, 2024
2c111f4
handled text overflow for big query tree data
Jeyaprakash-NK Apr 23, 2024
441899c
Merge pull request #143 from Shubha-accenture/sprint19-dataset-explor…
harsha-accenture Apr 23, 2024
944bb4d
ID:231, 233 bugs fixed
aditee-accenture Apr 23, 2024
b9de0b7
css fixes
Jeyaprakash-NK Apr 23, 2024
cf289dd
Dataset explorer reload after project/region change
Jeyaprakash-NK Apr 24, 2024
8e5a5f5
code cleanup
aditee-accenture Apr 24, 2024
10adfae
name change
Jeyaprakash-NK Apr 24, 2024
6f80633
license year change
Jeyaprakash-NK Apr 24, 2024
d6867ab
Merge pull request #144 from Shubha-accenture/sprint19-dataset-explor…
harsha-accenture Apr 24, 2024
fd088b4
toast errors changes
aditee-accenture Apr 25, 2024
d3da2ac
active toast fix
aditee-accenture Apr 25, 2024
21c0fb2
bug tracker fixes - 235, 238, 241
Jeyaprakash-NK Apr 25, 2024
77ab4e5
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
Jeyaprakash-NK Apr 25, 2024
12921b9
console log fix
aditee-accenture Apr 25, 2024
b85be52
pull from main and conflict resolved
aditee-accenture Apr 25, 2024
17a385c
Bug tracker ID 237 fix
Jeyaprakash-NK Apr 25, 2024
be08feb
code cleanuo
aditee-accenture Apr 25, 2024
cc9636a
code cleanup
aditee-accenture Apr 25, 2024
8344979
Merge pull request #145 from Shubha-accenture/sprint19-toast-errors-fix
harsha-accenture Apr 25, 2024
afb8452
Bug tracker ID - 243 fix
Jeyaprakash-NK Apr 26, 2024
cd13101
Merge remote-tracking branch 'upstream/main'
Jeyaprakash-NK Apr 26, 2024
6c543aa
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
Jeyaprakash-NK Apr 26, 2024
fc8f3bc
Preview scroll fix
aditee-accenture Apr 26, 2024
27a7f6b
minor css fix
aditee-accenture Apr 26, 2024
98abf50
Preview page pagination server side changes
Jeyaprakash-NK Apr 26, 2024
c4ba796
license year change
Jeyaprakash-NK Apr 26, 2024
fc5e128
Merge pull request #146 from Shubha-accenture/sprint19-dataset-explor…
harsha-accenture Apr 26, 2024
2a24a7e
Preview data object type handled
Jeyaprakash-NK Apr 26, 2024
b4afe90
Merge pull request #147 from Shubha-accenture/sprint19-dataset-explor…
Jeyaprakash-NK Apr 26, 2024
ca3ddd9
Big Query dataset explorer new panel created
Jeyaprakash-NK Apr 29, 2024
695db9c
Loader changes and pagination changes
saranyaloganathan23 Apr 29, 2024
bc3296d
class name changes - BigQueryWidget
Jeyaprakash-NK Apr 29, 2024
465497d
Dataset explorer refresh icon added
Jeyaprakash-NK Apr 29, 2024
e706a99
Merge pull request #148 from Shubha-accenture/sprint19-dataset-explor…
harsha-accenture Apr 29, 2024
2c969bb
Refresh Icon moved to top level
Jeyaprakash-NK Apr 30, 2024
9bfce38
icon changes
saranyaloganathan23 Apr 30, 2024
ec68c6e
handling loader
saranyaloganathan23 Apr 30, 2024
f90f809
Merge remote-tracking branch 'upstream/main'
Jeyaprakash-NK Apr 30, 2024
b5dbc42
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
Jeyaprakash-NK Apr 30, 2024
aab1a81
removed commented
saranyaloganathan23 Apr 30, 2024
2de3c12
configure gateway name change
Jeyaprakash-NK Apr 30, 2024
ee0b754
get cached credentials added in utils
Jeyaprakash-NK Apr 30, 2024
64c9717
Merge branch 'sprint19-dataset-explorer-fixes' of https://github.com/…
saranyaloganathan23 Apr 30, 2024
ed0d7e0
Credentials cache added
Jeyaprakash-NK Apr 30, 2024
b6855a3
Merge branch 'sprint19-dataset-explorer-fixes' of https://github.com/…
saranyaloganathan23 Apr 30, 2024
27c1f62
token expiry fetch changes
saranyaloganathan23 Apr 30, 2024
d317dc3
Merge pull request #149 from Shubha-accenture/sprint19-dataset-explor…
harsha-accenture Apr 30, 2024
4005a71
Tooltip added for custom created panels
Jeyaprakash-NK May 2, 2024
b75222d
Linear progress bar added for calendar load
Jeyaprakash-NK May 2, 2024
2865c6d
UI fixes and Loader added for tree all levels
Jeyaprakash-NK May 2, 2024
8099134
remove cache
saranyaloganathan23 May 2, 2024
24307d7
code formatting
saranyaloganathan23 May 2, 2024
a971132
loader padding changes
saranyaloganathan23 May 2, 2024
2d36efd
prettier fix
Jeyaprakash-NK May 2, 2024
9ca3e86
Merge pull request #150 from Shubha-accenture/sprint19-dataset-explor…
harsha-accenture May 2, 2024
e3480c6
Tooltip added for tree
Jeyaprakash-NK May 3, 2024
8d23000
bug fix
aditee-accenture May 3, 2024
6be9885
code cleanup
aditee-accenture May 3, 2024
7322f12
Merge pull request #151 from Shubha-accenture/sprint19-dataset-explor…
Shubha-accenture May 3, 2024
9fb9b79
execution history height changes
aditee-accenture May 6, 2024
adac948
Merge pull request #152 from Shubha-accenture/sprint19-dataset-explor…
harsha-accenture May 7, 2024
6c62887
Backend file, folder name changes
Jeyaprakash-NK May 9, 2024
a1fb2c1
controller name fix
Jeyaprakash-NK May 9, 2024
da5f62e
Merge pull request #153 from Shubha-accenture/sprint19-dataset-explor…
harsha-accenture May 9, 2024
22cd3af
Big Query code separation - FE
Jeyaprakash-NK May 9, 2024
b715c51
Dpms service file separation changes
Jeyaprakash-NK May 9, 2024
0aa6fac
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
Jeyaprakash-NK May 9, 2024
0e01388
Merge pull request #154 from Shubha-accenture/sprint19-dataset-explor…
harsha-accenture May 9, 2024
137003d
Height resize handled on window height change
Jeyaprakash-NK May 10, 2024
0a2d0f1
Merge pull request #155 from Shubha-accenture/sprint19-dataset-explor…
harsha-accenture May 13, 2024
6bda1c3
version updated to 0.1.77
Jeyaprakash-NK May 17, 2024
9f41368
ID 249- BQ preview pagination fixes
Jeyaprakash-NK May 20, 2024
08ac40c
ID 341324879 - Buganizer P4 fix
Jeyaprakash-NK May 20, 2024
aa4997a
ID 341318983 - P3 BQ region settings fixes
Jeyaprakash-NK May 20, 2024
7a99cff
Bug Tracker Id - 251 and Buganiser id 341323620 fix
saranyaloganathan23 May 20, 2024
e0315de
toast handling in dag list
saranyaloganathan23 May 20, 2024
bc0fe7c
Merge pull request #156 from Shubha-accenture/sprint20-client-bug-tra…
harsha-accenture May 20, 2024
882ba1f
Merge remote-tracking branch 'upstream/main'
Jeyaprakash-NK May 21, 2024
8f000c2
Buganizer 341324188 and ID - 227 fixes
Jeyaprakash-NK May 21, 2024
b1cead7
code fix
Jeyaprakash-NK May 21, 2024
6f99f95
Merge pull request #157 from Shubha-accenture/sprint20-client-bug-tra…
harsha-accenture May 21, 2024
8d3e8fd
Merge remote-tracking branch 'upstream/main'
Jeyaprakash-NK May 23, 2024
0485880
BQ preview page loader added for page switch
Jeyaprakash-NK May 23, 2024
0f609f9
version updated to 0.1.78
Jeyaprakash-NK May 23, 2024
f868f97
Merge pull request #158 from Shubha-accenture/sprint20-client-bug-tra…
harsha-accenture May 23, 2024
1f5a5dc
debounce added
aditee-accenture May 23, 2024
847148a
page size increased and year change
Jeyaprakash-NK May 23, 2024
6f405bf
Merge pull request #159 from Shubha-accenture/sprint20-client-bug-tra…
harsha-accenture May 23, 2024
0764616
Changed all the credentials API to async await
harsha-accenture May 23, 2024
4784793
Moved a method from urls to gcpUrlService
harsha-accenture May 23, 2024
8e67788
List jobs API call stop after unmounting the page
Jeyaprakash-NK May 24, 2024
da69bfc
Moving the gcp_service_url back to urls file
harsha-accenture May 24, 2024
94399c5
Review comments
aditee-accenture May 24, 2024
dbfee0c
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
Jeyaprakash-NK May 24, 2024
f9867df
Merge branch 'sprint20-client-bug-tracker-fixes' of https://github.co…
Jeyaprakash-NK May 24, 2024
0bbe5ec
Create batch - Network & SubNetwork fixes
Jeyaprakash-NK May 24, 2024
76bff01
internal bug fix
aditee-accenture May 24, 2024
df77f91
internal bug fix ID-1
aditee-accenture May 24, 2024
4c87971
Refactored backend code as per review comments
harsha-accenture May 24, 2024
2c3eb09
removed unwanted code
harsha-accenture May 24, 2024
6b1e278
Merge pull request #161 from Shubha-accenture/origin/sprint20-backend…
harsha-accenture May 24, 2024
349e7ac
Merge pull request #160 from Shubha-accenture/sprint20-client-bug-tra…
Jeyaprakash-NK May 24, 2024
48b258a
Bug fix for the prepare_dag
harsha-accenture May 24, 2024
5c078fb
Merge pull request #162 from Shubha-accenture/origin/sprint20-backend…
harsha-accenture May 24, 2024
3f486ed
Internal bug fixes
aditee-accenture May 24, 2024
fa8249b
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
Jeyaprakash-NK May 24, 2024
036d92c
handling filter undefined
saranyaloganathan23 May 27, 2024
2c21158
Dag output download fix
aditee-accenture May 27, 2024
395ca35
Removing unused input file download and papermill name change
saranyaloganathan23 May 27, 2024
68eccbe
Merge branch 'sprint20-client-bug-tracker-fixes' of https://github.co…
saranyaloganathan23 May 27, 2024
61e2ebe
removing dag input file download code
saranyaloganathan23 May 27, 2024
34744ea
black code formatting
saranyaloganathan23 May 27, 2024
904412c
internal bug fix ID: 5
aditee-accenture May 27, 2024
f2aeb15
Internal bug ID-1
aditee-accenture May 27, 2024
66ec96f
Internal bug fix ID: 2
aditee-accenture May 27, 2024
01497e8
Merge pull request #163 from Shubha-accenture/sprint20-client-bug-tra…
harsha-accenture May 27, 2024
68dacd4
Storing dag file in scheduled-jobs folder
saranyaloganathan23 May 28, 2024
10200e7
var name change
saranyaloganathan23 May 28, 2024
b2a3f0d
Merge pull request #164 from Shubha-accenture/sprint20-client-bug-tra…
harsha-accenture May 28, 2024
0a5e65d
creating subfolder for dag and papermill
saranyaloganathan23 May 29, 2024
a9dae7b
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
Jeyaprakash-NK May 29, 2024
469b5a1
Settings page FE changes
Jeyaprakash-NK May 29, 2024
f1f973c
unit test cases
saranyaloganathan23 May 29, 2024
a8b2b9f
Merge pull request #165 from Shubha-accenture/sprint20-client-bug-tra…
harsha-accenture May 29, 2024
ab780ee
Submit job small fix "Spark"
Jeyaprakash-NK May 29, 2024
8288bf9
multiple toast fix
aditee-accenture May 29, 2024
f60b2ba
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
Jeyaprakash-NK May 29, 2024
9d78f39
toast id change
aditee-accenture May 29, 2024
312277d
Merge branch 'sprint20-client-bug-tracker-fixes' of https://github.co…
aditee-accenture May 29, 2024
051cd01
Merge pull request #166 from Shubha-accenture/sprint20-client-bug-tra…
harsha-accenture May 29, 2024
7daa528
Settings name modified in test cases
Jeyaprakash-NK May 30, 2024
ffd8815
import order and commented code removal
saranyaloganathan23 May 30, 2024
14854ca
black code formatter
saranyaloganathan23 May 30, 2024
8a7923e
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
Jeyaprakash-NK May 30, 2024
1e7ab4c
isort import ordering
saranyaloganathan23 May 30, 2024
322a6fa
Merge branch 'sprint20-client-bug-tracker-fixes' of https://github.co…
saranyaloganathan23 May 30, 2024
4018073
black code formatting
saranyaloganathan23 May 30, 2024
a48be2b
removing string format in unsed places
saranyaloganathan23 May 30, 2024
a707a6d
Merge pull request #167 from Shubha-accenture/sprint20-client-bug-tra…
harsha-accenture May 30, 2024
ff0f9ec
removing unused imports
saranyaloganathan23 May 30, 2024
d4e20d6
Merge pull request #168 from Shubha-accenture/sprint20-client-bug-tra…
harsha-accenture May 30, 2024
319ec62
Merge remote-tracking branch 'upstream/main'
Jeyaprakash-NK May 31, 2024
28b09f8
request to aiohttp changes
saranyaloganathan23 May 31, 2024
513ae71
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
saranyaloganathan23 May 31, 2024
d7bbf7f
isort imports
saranyaloganathan23 May 31, 2024
eb97e05
code formatting
saranyaloganathan23 May 31, 2024
3316b0b
code clean
saranyaloganathan23 Jun 6, 2024
944046b
creating client session
saranyaloganathan23 Jun 6, 2024
2172a8e
black code formatting
saranyaloganathan23 Jun 6, 2024
3aedfdc
remove file
saranyaloganathan23 Jun 6, 2024
8d4e279
adding llicense and constant
saranyaloganathan23 Jun 7, 2024
693eaa6
class function for aiohttp session
saranyaloganathan23 Jun 11, 2024
1c3da3d
aiohttp client class var changes
saranyaloganathan23 Jun 11, 2024
42ac832
code formatting
saranyaloganathan23 Jun 11, 2024
c3a7eb4
remove unused code
saranyaloganathan23 Jun 11, 2024
ace7055
Merge pull request #169 from Shubha-accenture/sprint20-aiohttp-backen…
harsha-accenture Jun 11, 2024
774ec36
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
Jeyaprakash-NK Jun 12, 2024
6e34fdc
Create Runtime - Spark properties changes
Jeyaprakash-NK Jun 13, 2024
082a941
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
saranyaloganathan23 Jun 13, 2024
edf8c3d
spark properties key hover added
Jeyaprakash-NK Jun 13, 2024
fadf8d5
playwright test case
saranyaloganathan23 Jun 13, 2024
b7ba707
GPU expand handle based on checkbox
Jeyaprakash-NK Jun 13, 2024
4d42739
Runtime spark properties UI changes
Jeyaprakash-NK Jun 14, 2024
6a89318
Select and Input handled based on property key
Jeyaprakash-NK Jun 14, 2024
95c2ff0
code cleanup in spark properties
Jeyaprakash-NK Jun 14, 2024
1f01ec4
Select with label added and basic validations
Jeyaprakash-NK Jun 14, 2024
48c6f98
Merge remote-tracking branch 'upstream/main'
Jeyaprakash-NK Jun 14, 2024
bb1175a
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
Jeyaprakash-NK Jun 14, 2024
d19a36f
clone GPU check handle and validation changes
Jeyaprakash-NK Jun 14, 2024
ff47ecf
all validations for spark properties
Jeyaprakash-NK Jun 14, 2024
b9c68d2
Merge pull request #170 from Shubha-accenture/sprint20-playwright-tes…
harsha-accenture Jun 14, 2024
6f65eac
premium tier - feedback changes
Jeyaprakash-NK Jun 17, 2024
1294319
moved default values to const
Jeyaprakash-NK Jun 17, 2024
3a17d5c
review comments fixes
saranyaloganathan23 Jun 17, 2024
d58694c
review comments fixes
saranyaloganathan23 Jun 17, 2024
59eb91b
black code formatting
saranyaloganathan23 Jun 17, 2024
38c6167
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
Jeyaprakash-NK Jun 17, 2024
7e078a8
Spark properties const moved to utils
Jeyaprakash-NK Jun 17, 2024
5e99e5b
GPU uncheck for disk tier standard
Jeyaprakash-NK Jun 17, 2024
26b958b
Merge pull request #172 from Shubha-accenture/sprint20-playwright-tes…
harsha-accenture Jun 17, 2024
f57e378
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
Jeyaprakash-NK Jun 18, 2024
f238fe2
error message and validation changes
Jeyaprakash-NK Jun 18, 2024
4b4d8b8
latest changes and conflict resolved
Jeyaprakash-NK Jun 19, 2024
11b0329
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
Jeyaprakash-NK Jun 19, 2024
c02abcd
playwright notebook test case
saranyaloganathan23 Jun 19, 2024
3578fd8
Internal bug fixes for multi error scenario
Jeyaprakash-NK Jun 19, 2024
4763bf6
zero handle for core properties
Jeyaprakash-NK Jun 19, 2024
eca4ef3
Merge pull request #171 from Shubha-accenture/sprint20-runtime-additi…
harsha-accenture Jun 19, 2024
78108ea
Regex check for zero and non editable field added
Jeyaprakash-NK Jun 20, 2024
239e6c5
Bug Fix: runtimeTemplate default version
aditee-accenture Jun 20, 2024
de9ff06
notebook scheduler handling timeout and cluster list
saranyaloganathan23 Jun 20, 2024
19919ba
Merge pull request #173 from Shubha-accenture/sprint20-runtime-additi…
harsha-accenture Jun 20, 2024
02d2030
scheduler test file removed
Jeyaprakash-NK Jun 21, 2024
87516e1
Bug Fix : Batch default version change
aditee-accenture Jun 21, 2024
54c5392
Merge branch 'sprint20-runtime-additional-properties' of https://gith…
aditee-accenture Jun 21, 2024
e9f7818
Merge pull request #174 from Shubha-accenture/sprint20-runtime-additi…
harsha-accenture Jun 21, 2024
f53a320
Pull from google main and conflicts resolved
Jeyaprakash-NK Jun 27, 2024
f1a747c
google main pull and conflicts resolved
Jeyaprakash-NK Jul 9, 2024
b579d7d
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
saranyaloganathan23 Jul 10, 2024
3d6b07a
gsutil async changes
saranyaloganathan23 Jul 10, 2024
b8d20c5
Merge remote-tracking branch 'upstream/main'
Jeyaprakash-NK Jul 11, 2024
1f52562
Merge branch 'main' of https://github.com/Shubha-accenture/dataproc-j…
saranyaloganathan23 Jul 11, 2024
8be71a3
test case fixes
saranyaloganathan23 Jul 11, 2024
65d979d
updating error msg
saranyaloganathan23 Jul 16, 2024
b08edc5
Merge pull request #176 from Shubha-accenture/sprint21-gsutil-async-c…
Shubha-accenture Jul 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions dataproc_jupyter_plugin/commons/commands.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Copyright 2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


import asyncio
import subprocess
import sys
import tempfile


async def async_command_executor(cmd):
"""Run a specified command and return its output."""
with tempfile.TemporaryFile() as t:
p = await asyncio.create_subprocess_shell(
f"{cmd}",
stdin=subprocess.DEVNULL,
stderr=sys.stderr,
stdout=t,
)
await p.wait()
if p.returncode != 0:
raise subprocess.CalledProcessError(p.returncode, None, None, None)
t.seek(0)
return t.read().decode("UTF-8").strip()
2 changes: 1 addition & 1 deletion dataproc_jupyter_plugin/controllers/executor.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ async def get(self):
bucket_name = self.get_argument("bucket_name")
dag_id = self.get_argument("dag_id")
dag_run_id = self.get_argument("dag_run_id")
download_status = client.download_dag_output(
download_status = await client.download_dag_output(
bucket_name, dag_id, dag_run_id
)
self.finish(json.dumps({"status": download_status}))
Expand Down
12 changes: 5 additions & 7 deletions dataproc_jupyter_plugin/services/airflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import urllib

from dataproc_jupyter_plugin import urls
from dataproc_jupyter_plugin.commons.commands import async_command_executor
from dataproc_jupyter_plugin.commons.constants import (
COMPOSER_SERVICE_NAME,
CONTENT_TYPE,
Expand Down Expand Up @@ -94,14 +95,11 @@ async def delete_job(self, composer_name, dag_id, from_page):
api_endpoint, headers=self.create_headers()
) as response:
self.log.info(response)
cmd = f"gsutil rm gs://{bucket}/dags/dag_{dag_id}.py"
process = subprocess.Popen(
cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True
)
output, _ = process.communicate()
if process.returncode == 0:
try:
cmd = f"gsutil rm gs://{bucket}/dags/dag_{dag_id}.py"
await async_command_executor(cmd)
return 0
else:
except subprocess.CalledProcessError as error:
self.log.exception("Error deleting dag")
raise Exception(
f"Error getting airflow uri: {response.reason} {await response.text()}"
Expand Down
1 change: 0 additions & 1 deletion dataproc_jupyter_plugin/services/bigquery.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ async def list_datasets(self, page_token, project_id):
try:
bigquery_url = await urls.gcp_service_url(BIGQUERY_SERVICE_NAME)
api_endpoint = f"{bigquery_url}bigquery/v2/projects/{project_id}/datasets?pageToken={page_token}"

async with self.client_session.get(
api_endpoint, headers=self.create_headers()
) as response:
Expand Down
93 changes: 36 additions & 57 deletions dataproc_jupyter_plugin/services/executor.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
from jinja2 import Environment, PackageLoader, select_autoescape

from dataproc_jupyter_plugin import urls
from dataproc_jupyter_plugin.commons.commands import async_command_executor
from dataproc_jupyter_plugin.commons.constants import (
COMPOSER_SERVICE_NAME,
CONTENT_TYPE,
Expand Down Expand Up @@ -83,51 +84,37 @@ async def get_bucket(self, runtime_env):
self.log.exception(f"Error getting bucket name: {str(e)}")
raise Exception(f"Error getting composer bucket: {str(e)}")

def check_file_exists(self, bucket, file_path):
cmd = f"gsutil ls gs://{bucket}/dataproc-notebooks/{file_path}"
process = subprocess.Popen(
cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True
)
output, error = process.communicate()
if process.returncode == 0:
async def check_file_exists(self, bucket, file_path):
try:
cmd = f"gsutil ls gs://{bucket}/dataproc-notebooks/{file_path}"
await async_command_executor(cmd)
return True
else:
if "matched no objects" in error.decode():
return False
else:
self.log.exception(f"Error cheking file existence: {error.decode()}")
raise FileNotFoundError(error.decode)
except subprocess.CalledProcessError as error:
self.log.exception(f"Error checking papermill file: {error.decode()}")
raise IOError(error.decode)

def upload_papermill_to_gcs(self, gcs_dag_bucket):
async def upload_papermill_to_gcs(self, gcs_dag_bucket):
env = Environment(
loader=PackageLoader(PACKAGE_NAME, "dagTemplates"),
autoescape=select_autoescape(["py"]),
)
wrapper_papermill_path = env.get_template("wrapper_papermill.py").filename
cmd = f"gsutil cp '{wrapper_papermill_path}' gs://{gcs_dag_bucket}/dataproc-notebooks/"
process = subprocess.Popen(
cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True
)
output, error = process.communicate()
print(process.returncode, error, output)
if process.returncode == 0:
try:
cmd = f"gsutil cp '{wrapper_papermill_path}' gs://{gcs_dag_bucket}/dataproc-notebooks/"
await async_command_executor(cmd)
self.log.info("Papermill file uploaded to gcs successfully")
print(process.returncode, error, output)
else:
except subprocess.CalledProcessError as error:
self.log.exception(
f"Error uploading papermill file to gcs: {error.decode()}"
)
raise IOError(error.decode)

def upload_input_file_to_gcs(self, input, gcs_dag_bucket, job_name):
cmd = f"gsutil cp './{input}' gs://{gcs_dag_bucket}/dataproc-notebooks/{job_name}/input_notebooks/"
process = subprocess.Popen(
cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True
)
output, error = process.communicate()
if process.returncode == 0:
async def upload_input_file_to_gcs(self, input, gcs_dag_bucket, job_name):
try:
cmd = f"gsutil cp './{input}' gs://{gcs_dag_bucket}/dataproc-notebooks/{job_name}/input_notebooks/"
await async_command_executor(cmd)
self.log.info("Input file uploaded to gcs successfully")
else:
except subprocess.CalledProcessError as error:
self.log.exception(f"Error uploading input file to gcs: {error.decode()}")
raise IOError(error.decode)

Expand Down Expand Up @@ -247,18 +234,14 @@ def prepare_dag(self, job, gcs_dag_bucket, dag_file):
wrapper_papermill_path = env.get_template("wrapper_papermill.py").filename
shutil.copy2(wrapper_papermill_path, LOCAL_DAG_FILE_LOCATION)

def upload_dag_to_gcs(self, job, dag_file, gcs_dag_bucket):
async def upload_dag_to_gcs(self, job, dag_file, gcs_dag_bucket):
LOCAL_DAG_FILE_LOCATION = f"./scheduled-jobs/{job.name}"
file_path = os.path.join(LOCAL_DAG_FILE_LOCATION, dag_file)
cmd = f"gsutil cp '{file_path}' gs://{gcs_dag_bucket}/dags/"
process = subprocess.Popen(
cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True
)
output, error = process.communicate()
if process.returncode == 0:
try:
cmd = f"gsutil cp '{file_path}' gs://{gcs_dag_bucket}/dags/"
await async_command_executor(cmd)
self.log.info("Dag file uploaded to gcs successfully")

if process.returncode != 0:
except subprocess.CalledProcessError as error:
self.log.exception(f"Error uploading dag file to gcs: {error.decode()}")
raise IOError(error.decode)

Expand All @@ -273,37 +256,33 @@ async def execute(self, input_data):
gcs_dag_bucket = await self.get_bucket(job.composer_environment_name)
wrapper_pappermill_file_path = WRAPPER_PAPPERMILL_FILE

if self.check_file_exists(gcs_dag_bucket, wrapper_pappermill_file_path):
if await self.check_file_exists(
gcs_dag_bucket, wrapper_pappermill_file_path
):
print(
f"The file gs://{gcs_dag_bucket}/{wrapper_pappermill_file_path} exists."
)
else:
self.upload_papermill_to_gcs(gcs_dag_bucket)
await self.upload_papermill_to_gcs(gcs_dag_bucket)
print(
f"The file gs://{gcs_dag_bucket}/{wrapper_pappermill_file_path} does not exist."
)
if not job.input_filename.startswith(GCS):
self.upload_input_file_to_gcs(
await self.upload_input_file_to_gcs(
job.input_filename, gcs_dag_bucket, job_name
)
self.prepare_dag(job, gcs_dag_bucket, dag_file)
self.upload_dag_to_gcs(job, dag_file, gcs_dag_bucket)
await self.upload_dag_to_gcs(job, dag_file, gcs_dag_bucket)
return {"status": 0}
except Exception as e:
return {"error": str(e)}

def download_dag_output(self, bucket_name, dag_id, dag_run_id):
async def download_dag_output(self, bucket_name, dag_id, dag_run_id):
try:
cmd = f"gsutil cp 'gs://{bucket_name}/dataproc-output/{dag_id}/output-notebooks/{dag_id}_{dag_run_id}.ipynb' ./"
process = subprocess.Popen(
cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True
)
output, _ = process.communicate()
if process.returncode == 0:
return 0
else:
self.log.exception("Error downloading output notebook file")
return 1
except Exception as e:
self.log.exception(f"Error downloading output notebook file: {str(e)}")
return {"error": str(e)}
await async_command_executor(cmd)
self.log.info("Output notebook file downloaded successfully")
return 0
except subprocess.CalledProcessError as error:
self.log.exception(f"Error downloading output notebook file: {str(error)}")
return {"error": str(error)}
26 changes: 14 additions & 12 deletions dataproc_jupyter_plugin/tests/test_airflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@

from dataproc_jupyter_plugin.tests import mocks

from unittest.mock import Mock

import pytest
from google.cloud import jupyter_config

Expand Down Expand Up @@ -85,19 +83,20 @@ async def mock_credentials():

@pytest.mark.parametrize("returncode, expected_result", [(0, 0)])
async def test_delete_job(monkeypatch, returncode, expected_result, jp_fetch):
def mock_popen(returncode=0):
def _mock_popen(*args, **kwargs):
mock_process = Mock()
mock_process.communicate.return_value = (b"output", b"")
mock_process.returncode = returncode
return mock_process

return _mock_popen
async def mock_async_command_executor(cmd):
if cmd is None:
raise ValueError("Received None for cmd parameter")
if returncode == 0:
return b"output", b""
else:
raise subprocess.CalledProcessError(
returncode, cmd, output=b"output", stderr=b"error in executing command"
)

mocks.patch_mocks(monkeypatch)
monkeypatch.setattr(airflow.Client, "get_airflow_uri", mock_get_airflow_uri)
monkeypatch.setattr(subprocess, "Popen", mock_popen(returncode))

monkeypatch.setattr(airflow, "async_command_executor", mock_async_command_executor)
monkeypatch.setattr(aiohttp, "ClientSession", MockClientSession)
mock_composer = "mock_composer"
mock_dag_id = "mock_dag_id"
mock_from_page = "mock_from_page"
Expand Down Expand Up @@ -130,6 +129,9 @@ def patch(self, api_endpoint, json, headers=None):
def get(self, api_endpoint, headers=None):
return mocks.MockResponse(None, text="mock log content")

def delete(self, api_endpoint, headers=None):
return mocks.MockResponse({})


async def test_update_job(monkeypatch, jp_fetch):
async def mock_config(config_field):
Expand Down
36 changes: 19 additions & 17 deletions dataproc_jupyter_plugin/tests/test_executor.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@
import unittest
from unittest.mock import AsyncMock, MagicMock, Mock, patch

import aiohttp
import pytest
import requests
from google.cloud import jupyter_config

from dataproc_jupyter_plugin import credentials
from dataproc_jupyter_plugin.commons import commands
from dataproc_jupyter_plugin.services import executor
from dataproc_jupyter_plugin.tests.test_airflow import MockClientSession


async def mock_credentials():
Expand Down Expand Up @@ -93,23 +93,25 @@ async def test_execute_success(


@pytest.mark.parametrize("returncode, expected_result", [(0, 0)])
async def test_downlaod_output(monkeypatch, returncode, expected_result, jp_fetch):
def mock_popen(returncode=0):
def _mock_popen(*args, **kwargs):
mock_process = Mock()
mock_process.communicate.return_value = (b"output", b"")
mock_process.returncode = returncode
return mock_process

return _mock_popen

monkeypatch.setattr(credentials, "get_cached", mock_credentials)
monkeypatch.setattr(jupyter_config, "async_get_gcloud_config", mock_config)
monkeypatch.setattr(requests, "get", mock_get)
monkeypatch.setattr(subprocess, "Popen", mock_popen(returncode))
async def test_download_dag_output(monkeypatch, returncode, expected_result, jp_fetch):

async def mock_async_command_executor(cmd):
if cmd is None:
raise ValueError("Received None for cmd parameter")
if returncode == 0:
return b"output", b""
else:
raise subprocess.CalledProcessError(
returncode, cmd, output=b"output", stderr=b"error in executing command"
)

monkeypatch.setattr(executor, "async_command_executor", mock_async_command_executor)
monkeypatch.setattr(aiohttp, "ClientSession", MockClientSession)

mock_bucket_name = "mock_bucekt"
mock_dag_id = "mock_dag_id"
mock_dag_run_id = "mock_dag_run_id"
command = f"gsutil cp 'gs://{mock_bucket_name}/dataproc-output/{mock_dag_id}/output-notebooks/{mock_dag_id}_{mock_dag_run_id}.ipynb' ./"
response = await jp_fetch(
"dataproc-plugin",
"downloadOutput",
Expand Down
Loading