René's URL Explorer Experiment


Title: Handle console session in multiple management servers by GutoVeronezi · Pull Request #7094 · apache/cloudstack · GitHub

Open Graph Title: Handle console session in multiple management servers by GutoVeronezi · Pull Request #7094 · apache/cloudstack

X Title: Handle console session in multiple management servers by GutoVeronezi · Pull Request #7094 · apache/cloudstack

Description: Description PR #6577 introduced a new mechanism of validation of console sessions, which makes the access tokens one time usable in order to avoid reply attacks and prevent access to the console in case of data leak. When generating the console token, the management server (MS) that processed the request saves it in memory for further validation. When using the token, a request is sent to the CPVM that will validate it (the token) against the MS. In an environment that has more than one MS, the CPVM will establish communication with the first available MS that it founds. In this case, if the CPVM communicates with MS A and the console token is generated by MS A, the token will work; however, if the CPVM communicates with MS A and the console token is generated by MS B, the token will not work because the token is being validated against MS A and the information is in the memory of MS B. This PR intends to handle this situation by temporally saving the console token in the database instead of saving it in the memory of the MS that generated it. This way, independently of which MS generated the token or which MS the CPVM communicates with, the token will be validated. After using the token, it is removed from the database and also from the CPVM. Types of changes Breaking change (fix or feature that would cause existing functionality to change) New feature (non-breaking change which adds functionality) Bug fix (non-breaking change which fixes an issue) Enhancement (improves an existing feature and functionality) Cleanup (Code refactoring and cleanup, that may add test cases) Feature/Enhancement Scale or Bug Severity Bug Severity BLOCKER Critical Major Minor Trivial Screenshots (if appropriate): How Has This Been Tested? I created an environment with 2 MS (A and B) and started only A. I enabled the zone in order to create the CPVM. After that, guaranting that the CPVM was communicating with MS A, I started MS B. Previous to the changes, I executed two test cases: generated a new console access URL (with the API createConsoleEndpoint) through MS A and used it. As the CPVM was communicating with MS A, it worked. generated a new console access URL (with the API createConsoleEndpoint) through MS B and used it. As the CPVM was communicating with MS A, it did not worked, presenting the message Failed to connect to server / access token has expired With the changes, I executed again the two test cases: generated a new console access URL (with the API createConsoleEndpoint) through MS A and used it. As the CPVM was communicating with MS A, it worked. generated a new console access URL (with the API createConsoleEndpoint) through MS B and used it. As the CPVM was communicating with MS A, it worked too, because the session was being stored in the database. After using the URLs, I checked the database and verified that there were no entries in cloud.allowed_console_session, as expected.

Open Graph Description: Description PR #6577 introduced a new mechanism of validation of console sessions, which makes the access tokens one time usable in order to avoid reply attacks and prevent access to the console in...

X Description: Description PR #6577 introduced a new mechanism of validation of console sessions, which makes the access tokens one time usable in order to avoid reply attacks and prevent access to the console in...

Opengraph URL: https://github.com/apache/cloudstack/pull/7094

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:59c8d8ac-6c85-a9cd-ed79-73f60dfbff25
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idC2E6:655D8:E78E1D:139BCD5:6A4D8071
html-safe-nonce13dca0a2e2768e7c8202be8ccea871d55ff6e00793d26f8a31bffe4a09990872
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDMkU2OjY1NUQ4OkU3OEUxRDoxMzlCQ0Q1OjZBNEQ4MDcxIiwidmlzaXRvcl9pZCI6IjIyNjQyODIwNDI2OTc4NzU1NjkiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmacfe9546d4788b5d24477a40be396fe28abb02765035c9aaf191c68f91882fa92b
hovercard-subject-tagpull_request:1196826340
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/apache/cloudstack/pull/7094/files
twitter:imagehttps://avatars.githubusercontent.com/u/38945620?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/38945620?s=400&v=4
og:image:altDescription PR #6577 introduced a new mechanism of validation of console sessions, which makes the access tokens one time usable in order to avoid reply attacks and prevent access to the console in...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Nonec6bf61c909482ec3072ef5d7a5a28f2a9d214788c9a44793eca1960048cb05ae
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/apache/cloudstack git https://github.com/apache/cloudstack.git
octolytics-dimension-user_id47359
octolytics-dimension-user_loginapache
octolytics-dimension-repository_id9759448
octolytics-dimension-repository_nwoapache/cloudstack
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id9759448
octolytics-dimension-repository_network_root_nwoapache/cloudstack
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release6702a58b419a792226bd21ef0fb1bcb318bbcaa3
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/apache/cloudstack/pull/7094/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fapache%2Fcloudstack%2Fpull%2F7094%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fapache%2Fcloudstack%2Fpull%2F7094%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=apache%2Fcloudstack
Reloadhttps://github.com/apache/cloudstack/pull/7094/files
Reloadhttps://github.com/apache/cloudstack/pull/7094/files
Reloadhttps://github.com/apache/cloudstack/pull/7094/files
Please reload this pagehttps://github.com/apache/cloudstack/pull/7094/files
apache https://github.com/apache
cloudstackhttps://github.com/apache/cloudstack
Notifications https://github.com/login?return_to=%2Fapache%2Fcloudstack
Fork 1.3k https://github.com/login?return_to=%2Fapache%2Fcloudstack
Star 3k https://github.com/login?return_to=%2Fapache%2Fcloudstack
Code https://github.com/apache/cloudstack
Issues 536 https://github.com/apache/cloudstack/issues
Pull requests 268 https://github.com/apache/cloudstack/pulls
Discussions https://github.com/apache/cloudstack/discussions
Actions https://github.com/apache/cloudstack/actions
Projects https://github.com/apache/cloudstack/projects
Wiki https://github.com/apache/cloudstack/wiki
Security and quality 0 https://github.com/apache/cloudstack/security
Insights https://github.com/apache/cloudstack/pulse
Code https://github.com/apache/cloudstack
Issues https://github.com/apache/cloudstack/issues
Pull requests https://github.com/apache/cloudstack/pulls
Discussions https://github.com/apache/cloudstack/discussions
Actions https://github.com/apache/cloudstack/actions
Projects https://github.com/apache/cloudstack/projects
Wiki https://github.com/apache/cloudstack/wiki
Security and quality https://github.com/apache/cloudstack/security
Insights https://github.com/apache/cloudstack/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fapache%2Fcloudstack%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fapache%2Fcloudstack%2Fissues%2Fnew%2Fchoose
DaanHooglandhttps://github.com/DaanHoogland
apache:mainhttps://github.com/apache/cloudstack/tree/main
scclouds:handle-console-session-in-multiple-management-servershttps://github.com/scclouds/cloudstack/tree/handle-console-session-in-multiple-management-servers
Conversation 56 https://github.com/apache/cloudstack/pull/7094
Commits 8 https://github.com/apache/cloudstack/pull/7094/commits
Checks 0 https://github.com/apache/cloudstack/pull/7094/checks
Files changed https://github.com/apache/cloudstack/pull/7094/files
Please reload this pagehttps://github.com/apache/cloudstack/pull/7094/files
Handle console session in multiple management servers https://github.com/apache/cloudstack/pull/7094/files#top
Show all changes 8 commits https://github.com/apache/cloudstack/pull/7094/files
11e445e Create table to store available console sessions Jan 13, 2023 https://github.com/apache/cloudstack/pull/7094/commits/11e445e2acf000f57db17ce9719f85ddcd48b184
eb58bf8 Handle the new table in Java (VO and DAO) Jan 13, 2023 https://github.com/apache/cloudstack/pull/7094/commits/eb58bf8890fc9f11eb9bcb188ec6b2453ec1b988
8670fd1 Manage console sessions via database Jan 13, 2023 https://github.com/apache/cloudstack/pull/7094/commits/8670fd112f357d3d7bdcb0c0cb46edaa5d3c7c22
dec6e3f Fix cherry-pick: verify in database if the session exist Jan 16, 2023 https://github.com/apache/cloudstack/pull/7094/commits/dec6e3fb461763605ca6be34013d7e2c2438827a
9225163 Address reviews: rename table to console_session and rename java obje… Jan 16, 2023 https://github.com/apache/cloudstack/pull/7094/commits/9225163879107bbebe8c97b4b8a1bfcafe5e5bc7
9e66078 Redesign console_session to store more data Jan 17, 2023 https://github.com/apache/cloudstack/pull/7094/commits/9e66078415d3f013c469fc7dbdc898a7198bf2e1
d0293c4 Remove unnecessary constructor Jan 17, 2023 https://github.com/apache/cloudstack/pull/7094/commits/d0293c4532602f63d445d9c56539ee4f9f51409e
6173aa0 Use create table syntax previous to mariadb 10.5 Jan 17, 2023 https://github.com/apache/cloudstack/pull/7094/commits/6173aa0896e42df81fcae5e4c806c9f56ad54b08
Clear filters https://github.com/apache/cloudstack/pull/7094/files
Please reload this pagehttps://github.com/apache/cloudstack/pull/7094/files
Please reload this pagehttps://github.com/apache/cloudstack/pull/7094/files
ConsoleAccessManager.java https://github.com/apache/cloudstack/pull/7094/files#diff-85d1bc0cf7e8ed8d64bba4667b93d5d46066da06e4c61d2b57b0a96add4c53a3
ConsoleSessionVO.java https://github.com/apache/cloudstack/pull/7094/files#diff-f77e825108dd2f069d0a6cae292534af61f2a6228a195566f42ae6e83d9189a3
ConsoleSessionDao.java https://github.com/apache/cloudstack/pull/7094/files#diff-917557e37aca13941cf41758b45f4b11c88fcbbf68ab3087507e6a3d73709035
ConsoleSessionDaoImpl.java https://github.com/apache/cloudstack/pull/7094/files#diff-737ea7af56d1d71e29aa4be9681139164e3347266666d62c33c8287ab11707df
spring-engine-schema-core-daos-context.xml https://github.com/apache/cloudstack/pull/7094/files#diff-49ea966489d2196b62abdf1dd137b39ababb951136abd0f695f666fd83bcead8
schema-41720to41800.sql https://github.com/apache/cloudstack/pull/7094/files#diff-2b0c3a7559ddc79c27ae42e7889d17d05eba731e8fc908c3a29bb89ee91fc746
AgentHookBase.java https://github.com/apache/cloudstack/pull/7094/files#diff-aec50c7b5c9fb95c7434aadea652e16682b5c0004ad93e00b6f027f5cffc57e1
ConsoleAccessManagerImpl.java https://github.com/apache/cloudstack/pull/7094/files#diff-e6e0cd9a71ade1016b16d23999daf68b8bc323d612af0fd3482a0037f3b64b34
api/src/main/java/org/apache/cloudstack/consoleproxy/ConsoleAccessManager.javahttps://github.com/apache/cloudstack/pull/7094/files#diff-85d1bc0cf7e8ed8d64bba4667b93d5d46066da06e4c61d2b57b0a96add4c53a3
View file https://github.com/scclouds/cloudstack/blob/6173aa0896e42df81fcae5e4c806c9f56ad54b08/api/src/main/java/org/apache/cloudstack/consoleproxy/ConsoleAccessManager.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/7094/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/7094/files#diff-85d1bc0cf7e8ed8d64bba4667b93d5d46066da06e4c61d2b57b0a96add4c53a3
engine/schema/src/main/java/com/cloud/vm/ConsoleSessionVO.javahttps://github.com/apache/cloudstack/pull/7094/files#diff-f77e825108dd2f069d0a6cae292534af61f2a6228a195566f42ae6e83d9189a3
View file https://github.com/scclouds/cloudstack/blob/6173aa0896e42df81fcae5e4c806c9f56ad54b08/engine/schema/src/main/java/com/cloud/vm/ConsoleSessionVO.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/7094/{{ revealButtonHref }}
engine/schema/src/main/java/com/cloud/vm/dao/ConsoleSessionDao.javahttps://github.com/apache/cloudstack/pull/7094/files#diff-917557e37aca13941cf41758b45f4b11c88fcbbf68ab3087507e6a3d73709035
View file https://github.com/scclouds/cloudstack/blob/6173aa0896e42df81fcae5e4c806c9f56ad54b08/engine/schema/src/main/java/com/cloud/vm/dao/ConsoleSessionDao.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/7094/{{ revealButtonHref }}
engine/schema/src/main/java/com/cloud/vm/dao/ConsoleSessionDaoImpl.javahttps://github.com/apache/cloudstack/pull/7094/files#diff-737ea7af56d1d71e29aa4be9681139164e3347266666d62c33c8287ab11707df
View file https://github.com/scclouds/cloudstack/blob/6173aa0896e42df81fcae5e4c806c9f56ad54b08/engine/schema/src/main/java/com/cloud/vm/dao/ConsoleSessionDaoImpl.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/7094/{{ revealButtonHref }}
...ma/src/main/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xmlhttps://github.com/apache/cloudstack/pull/7094/files#diff-49ea966489d2196b62abdf1dd137b39ababb951136abd0f695f666fd83bcead8
View file https://github.com/scclouds/cloudstack/blob/6173aa0896e42df81fcae5e4c806c9f56ad54b08/engine/schema/src/main/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/7094/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/7094/files#diff-49ea966489d2196b62abdf1dd137b39ababb951136abd0f695f666fd83bcead8
https://github.com/apache/cloudstack/pull/7094/files#diff-49ea966489d2196b62abdf1dd137b39ababb951136abd0f695f666fd83bcead8
engine/schema/src/main/resources/META-INF/db/schema-41720to41800.sqlhttps://github.com/apache/cloudstack/pull/7094/files#diff-2b0c3a7559ddc79c27ae42e7889d17d05eba731e8fc908c3a29bb89ee91fc746
View file https://github.com/scclouds/cloudstack/blob/6173aa0896e42df81fcae5e4c806c9f56ad54b08/engine/schema/src/main/resources/META-INF/db/schema-41720to41800.sql
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/7094/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/7094/files#diff-2b0c3a7559ddc79c27ae42e7889d17d05eba731e8fc908c3a29bb89ee91fc746
Please reload this pagehttps://github.com/apache/cloudstack/pull/7094/files
Please reload this pagehttps://github.com/apache/cloudstack/pull/7094/files
server/src/main/java/com/cloud/consoleproxy/AgentHookBase.javahttps://github.com/apache/cloudstack/pull/7094/files#diff-aec50c7b5c9fb95c7434aadea652e16682b5c0004ad93e00b6f027f5cffc57e1
View file https://github.com/scclouds/cloudstack/blob/6173aa0896e42df81fcae5e4c806c9f56ad54b08/server/src/main/java/com/cloud/consoleproxy/AgentHookBase.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/7094/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/7094/files#diff-aec50c7b5c9fb95c7434aadea652e16682b5c0004ad93e00b6f027f5cffc57e1
https://github.com/apache/cloudstack/pull/7094/files#diff-aec50c7b5c9fb95c7434aadea652e16682b5c0004ad93e00b6f027f5cffc57e1
server/src/main/java/org/apache/cloudstack/consoleproxy/ConsoleAccessManagerImpl.javahttps://github.com/apache/cloudstack/pull/7094/files#diff-e6e0cd9a71ade1016b16d23999daf68b8bc323d612af0fd3482a0037f3b64b34
View file https://github.com/scclouds/cloudstack/blob/6173aa0896e42df81fcae5e4c806c9f56ad54b08/server/src/main/java/org/apache/cloudstack/consoleproxy/ConsoleAccessManagerImpl.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/7094/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/7094/files#diff-e6e0cd9a71ade1016b16d23999daf68b8bc323d612af0fd3482a0037f3b64b34
https://github.com/apache/cloudstack/pull/7094/files#diff-e6e0cd9a71ade1016b16d23999daf68b8bc323d612af0fd3482a0037f3b64b34
https://github.com/apache/cloudstack/pull/7094/files#diff-e6e0cd9a71ade1016b16d23999daf68b8bc323d612af0fd3482a0037f3b64b34
https://github.com/apache/cloudstack/pull/7094/files#diff-e6e0cd9a71ade1016b16d23999daf68b8bc323d612af0fd3482a0037f3b64b34
https://github.com/apache/cloudstack/pull/7094/files#diff-e6e0cd9a71ade1016b16d23999daf68b8bc323d612af0fd3482a0037f3b64b34
https://github.com/apache/cloudstack/pull/7094/files#diff-e6e0cd9a71ade1016b16d23999daf68b8bc323d612af0fd3482a0037f3b64b34
nvazquezhttps://github.com/nvazquez
Jan 17, 2023https://github.com/apache/cloudstack/pull/7094/files#r1071697570
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
@GutoVeronezihttps://github.com/GutoVeronezi
Please reload this pagehttps://github.com/apache/cloudstack/pull/7094/files
GutoVeronezihttps://github.com/GutoVeronezi
Jan 17, 2023https://github.com/apache/cloudstack/pull/7094/files#r1071704746
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
@nvazquezhttps://github.com/nvazquez
dec6e3fhttps://github.com/apache/cloudstack/commit/dec6e3fb461763605ca6be34013d7e2c2438827a
Please reload this pagehttps://github.com/apache/cloudstack/pull/7094/files
https://github.com/apache/cloudstack/pull/7094/files#diff-e6e0cd9a71ade1016b16d23999daf68b8bc323d612af0fd3482a0037f3b64b34
https://github.com/apache/cloudstack/pull/7094/files#diff-e6e0cd9a71ade1016b16d23999daf68b8bc323d612af0fd3482a0037f3b64b34
https://github.com/apache/cloudstack/pull/7094/files#diff-e6e0cd9a71ade1016b16d23999daf68b8bc323d612af0fd3482a0037f3b64b34
weizhouapachehttps://github.com/weizhouapache
Jan 17, 2023https://github.com/apache/cloudstack/pull/7094/files#r1072527559
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/apache/cloudstack/pull/7094/files
GutoVeronezihttps://github.com/GutoVeronezi
Jan 17, 2023https://github.com/apache/cloudstack/pull/7094/files#r1072786938
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/apache/cloudstack/pull/7094/files
https://github.com/apache/cloudstack/pull/7094/files#diff-e6e0cd9a71ade1016b16d23999daf68b8bc323d612af0fd3482a0037f3b64b34
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.