chore: merge expsync migration files

Secure Coding Practices Checklist GitHub Link

https://github.com/RedHatInsights/secure-coding-checklist

Secure Coding Checklist

[x] Input Validation
[x] Output Encoding
[x] Authentication and Password Management
[x] Session Management
[x] Access Control
[x] Cryptographic Practices
[x] Error Handling and Logging
[x] Data Protection
[x] Communication Security
[x] System Configuration
[x] Database Security
[x] File Management
[x] Memory Management
[x] General Coding Practices

Codecov Report
Base: 58.44% // Head: 58.44% // No change to project coverage :thumbsup:

Coverage data is based on head (651042d) compared to base (03fd112).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #158   +/-   ##
=======================================
  Coverage   58.44%   58.44%
=======================================
  Files          44       44
  Lines        2580     2580
=======================================
  Hits         1508     1508
  Misses        891      891
  Partials      181      181

Flag
Coverage Δ

unittests
58.44% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Upgrade edgedb-python to v0.7.0a3

Note: https://github.com/edgedb/edgedb-python/pull/57 should be merged first.

Wait, what. How did the tests pass now?

Oh, https://pypi.org/project/edgedb/0.7.0a3/ is actually published, it just failed on the pull request.

I also ran this locally and everything's fine.


Running on fastR

Would it be possible to use another R backend, for instance, fastR instead of Renjin?

No not out of the box. I think it should be possible to add support for fastR but to support another R implementation except Renjin has not been considered from the start so it would take some refactoring to make that work.

Added to roadmap but will not work on this in the near future.


Logging information

Hey, after running it I get at first a list which do not have any description:
]javax.swing.WindowConstants
]javax.swing.JFrame
]javax.swing.JRootPane
]org.slf4j.Logger
]org.slf4j.LoggerFactory
]sun.misc.Unsafe

optional dependencies?

Dependencies listed that way are ones JarShrink has no further information on. These should be classes that aren't included in your JAR either due to being part of the standard Java packages (already discarding the "java." packages) or because they are found somewhere else like in an external JAR file.

Should be probably stated since the next list has the dependencies: description.

True that, changed in the latest version.


[wip] Feature/yousong multicloud proxyfunc

这个 PR 实现什么功能/修复什么问题:
cloudaccount, objectstore添加代理访问支持

[x] 单元测试
[ ] cloudevent支持
[x] s3gateway支持
[ ] region测试

是否需要 backport 到之前的 release 分支:
NONE
/area region
/cc @ioito @tb365 @zexi @swordqiu

Codecov Report

Merging #5554 into master will not change coverage by %.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #5554   +/-   ##
=======================================
  Coverage    6.85%    6.85%
=======================================
  Files         613      613
  Lines      103445   103445
=======================================
  Hits         7092     7092
  Misses      95781    95781
  Partials      572      572

Flag
Coverage Δ

#aFlag
6.85% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0597384...0597384. Read the comment docs.

/lgtm

/lgtm


Is this project still maintained?

I recently found this project at https://shinesolutions.com and I am excited with it.
But checking the Commits I have founded that the last one was  ~2 years ago.
Are you guys still using/working on it or you have found some better approach?

To be honest we haven't had enough of a need for this stuff in our real-world projects. For us, stateless services have been sufficient for encapsulating business logic.
Sometimes the stateless-services approach may be a little bit more verbose than decorating data structures and then calling methods on them. However, stateless services often have the benefit of being more straightforward to understand because they give you the opportunity to make the flow of data very clear.
That's not to say there isn't any scenario where decorated objects might be more powerful (I can think of a couple of hypothetical ones). It's just that we haven't come across enough of those scenarios in our real-world usage to justify taking this project any further forward.


Get oneview_ipv4_range by Name

Current implementation is to get first the Subnet Id, to get the range_uris and then get the ipv4 range by Id.
Since the ipv4 range name is unique accross all Subnet Ids, it would be great to retrieve the ipv4 range by its name
Proposed implementation :
data "oneview_ipv4_range" "iprange" {
  name = "POOLMGMT"
}

This defect is added to our backlog and will be fixed once it is prioritized.Closing it here


enhancement do not coredump when be can not start

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


autocommit is not working

In my Vertica ML Python library, I am creating flex tables to parse CSV files. Unfortunately, the connection with the vertica_python cursor is lost because it is not committing the queries. I tried the autocommit parameter but it didn't work (with pyodbc, it worked when I used autocommit=True).

Hi @oualib There's no API in vertica-python to set the autocommit parameter (like autocommit=True). You can set it by executing a query. Please see #232 for more discussions.

Hi @sitingren, I tried and it doesn't work with the vertica-python cursor... This will remain a mystery for me...

@oualib Could you please provide a reproducer and the DEBUG level log? Which version of vertica-python are you using?

Download the titanic dataset and then run the following code:
query  = "CREATE TABLE titanic(\"pclass\" Integer, \"survived\" Integer, \"name\" Varchar(164), \"sex\" Varchar(20), \"age\" Numeric(6,3), \"sibsp\" Integer, \"parch\" Integer, \"ticket\" Varchar(36), \"fare\" Numeric(10,5), \"cabin\" Varchar(30), \"embarked\" Varchar(20), \"boat\" Varchar(100), \"body\" Integer, \"home.dest\" Varchar(100));"
query += "COPY titanic(\"pclass\", \"survived\", \"name\", \"sex\", \"age\", \"sibsp\", \"parch\", \"ticket\", \"fare\", \"cabin\", \"embarked\", \"boat\", \"body\", \"home.dest\") FROM LOCAL 'titanic.csv' DELIMITER ',' NULL '' ENCLOSED BY '\"' ESCAPE AS '\\' SKIP 1;"
cursor.execute(query)

You can also SET THE SESSION AUTOCOMMIT TO TRUE with the cursor. The connection will be lost and the command will run indefinitely (so I can not give more info). This problem is solved with pyodbc parameter 'autocommit = True'
I am using the last version of vertica_python.

https://www.vertica.com/docs/9.3.x/HTML/Content/Authoring/SQLReferenceManual/Statements/SET/SETSESSIONAUTOCOMMIT.htm?zoom_highlight=AUTOCOMMIT
To set the autocommit parameter, the value must be either ON or OFF, not TRUE.
You can check the current session value by calling .parameters["auto_commit"] on the connection:
cursor.execute("SET SESSION AUTOCOMMIT TO ON")
print(conn.parameters["auto_commit"])
cursor.execute(query)

Try to do it, it will not work. It was just a mistake from my side in the previous comment, I clearly wrote ON.

Another thing is vertica-python does not support COPY FROM LOCAL, you need to rewrite your program to use Cursor.copy().
with open("titanic.csv", "r") as fs:
    cursor.copy("COPY titanic(...) FROM STDIN DELIMITER ',' NULL '' ...", fs)

https://www.vertica.com/docs/9.3.x/HTML/Content/Authoring/AdministratorsGuide/BulkLoadCOPY/OverrideCOPYAutoCommit.htm?zoom_highlight=copy commit
By default, COPY automatically commits itself and other current transactions except when loading temporary tables. So I suspect the problem is not the autocommit setting, but your "COPY FROM LOCAL" query itself.

Closing due to inactivity.


Bug OCPBUGS-3827: Allow deleting LBs in ERROR status

In practice Octavia is quite an unreliable system. We should expect that
load balancers will occasionally go into ERROR state for reasons as
elaborate as race conditions and as simple as lack of resources to spawn
a new Amphora VM.
This commit makes sure that we allow deleting LBs in ERROR state, so
that Services served by such LBs could be deleted and their creation
retried.
Obviously there's room for improvement, as we should probably detect LBs
going into ERROR and attempt to delete and recreate them ourselves, but
this patch is a low hanging fruit fix for the issue.

/jira refresh

@stephenfin, you did /lgtm on this one upstream, care to take a look here too?

Straightforward merge of a straightforward upstream fix
/lgtm

/cherry-pick release-4.12


RefTS updating the files

When the resource landing page is loaded HydroShare should access the reference url to get the latest data

Be careful about this.  If the web service is not responding you may build in a vulnerability.  Avoid anything that would prevent landing page opening.  Consider options that either use a static visualization or a visualization that does not block and perhaps gradually fills in.

@jsadler2 what are your plans for resolving this?

this issue does not exist any longer. current refts only retrieves latest data upon user request.
closing


Allow building of Schnet and e3nn inference tensors directly from OpenEye Mol

          I was thinking last night that writing all these temporaries is probably quite inefficient, this is fine for a 0.1.0 but if we could go straight from a OpenEye molecule to the `pose_dict` tensors that would be good.

Originally posted by @hmacdope in https://github.com/choderalab/asapdiscovery/pull/250#discussion_r1183664688

@kaminow do you think you could have a crack at this? This is coming back up for #461 and making the scorers within, be great to avoid a tempfile.
I am thinking taking an oemol as the starting point would probably be best, although we can work through a PDB string if needed.


✨ Do not show :waiting health checks (database replication)

#241  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @RTLS and the rest of your teammates on  Graphite


manifest-list: add back annotations

PR #533 removed annotations by accident. (489e00e specifically).
This adds that definition back.
Signed-off-by: Vincent Batts<EMAIL_ADDRESS>

reported-by: @qianzhangxa

LGTM

LGTM

LGTM


11/17 AM Publish

Learn Build status updates of commit 30f4cb9:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

api/index.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


UMA get resource does not works properly

(Refer https://github.com/wso2/product-is/issues/4788 for corrected request\responses)

Obtain PAT referring: https://docs.wso2.com/display/IS570/User+Managed+Access+with+WSO2+Identity+Server#UserManagedAccesswithWSO2IdentityServer-ObtaintheProtectionAPIAccesstoken(PAT)

Register a resource referring: https://docs.wso2.com/display/IS570/User+Managed+Access+with+WSO2+Identity+Server#UserManagedAccesswithWSO2IdentityServer-Registertheresource

Note down the resource id.

Repeat 1 & 2 using different client id and username.

Invoke resources list API with the latest PAT,

curl -X GET \
  https://localhost:9443/api/identity/oauth2/uma/resourceregistration/v1.0/resource \
  -H 'Authorization: Bearer 58eedce6-73ad-3034-b339-c6080b085f8d'

It returns only the list of resources that belong to that client+user.

Get resources API with the latest PAT referring the resource that noted in step 2 with the latest PAT,

curl -X GET \
  https://localhost:9443/api/identity/oauth2/uma/resourceregistration/v1.0/resource/08e69621-e418-4914-b85f-164e127c20de \
  -H 'Authorization: Bearer 58eedce6-73ad-3034-b339-c6080b085f8d'

It returns the resource description, even that resource does not belong to that user nor to the client.

Try to update the resource with the PAT which does not belong to the resource owner,

curl -X PUT \
  https://localhost:9443/api/identity/oauth2/uma/resourceregistration/v1.0/resource/08e69621-e418-4914-b85f-164e127c20de \
  -H 'Authorization: Bearer 58eedce6-73ad-3034-b339-c6080b085f8d' \
  -H 'Content-Type: application/json' \
  -d '{
    "resource_scopes": [
        "view"
    ],
    "name": "Photo Album 2",
    "type": "http://www.example.com/rsrcs/photoalbum",
    "icon_uri": "http://www.example.com/icons/flower.png",
    "description": "Collection of digital photographs",
    "_id": "ceaa6506-1da9-456b-88d8-027797d2e081"
}'

resource does not get updated, yet the response code is 500. It should have return 401.

Try to delete the resource with the PAT which does not belong to the resource owner,

curl -X DELETE \
  https://localhost:9443/api/identity/oauth2/uma/resourceregistration/v1.0/resource/08e69621-e418-4914-b85f-164e127c20de \
  -H 'Authorization: Bearer 58eedce6-73ad-3034-b339-c6080b085f8d'

The resource get deleted.

Should block 5 & 7. Should fix the status code in 6.

Created a migration issue to track the index addition: https://github.com/wso2/product-is/issues/4996


Add multiple management server support

Fixes #895

@blueorangutan package

@utchoang a Jenkins job has been kicked to build primate packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark:centos :heavy_check_mark:debian :heavy_check_mark:archive.
QA: http://primate-qa.cloudstack.cloud:8080/client/pr/898 (JID-3746)

@blueorangutan package

@utchoang a Jenkins job has been kicked to build primate packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark:centos :heavy_check_mark:debian :heavy_check_mark:archive.
QA: http://primate-qa.cloudstack.cloud:8080/client/pr/898 (JID-3764)

@blueorangutan package

@utchoang a Jenkins job has been kicked to build primate packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark:centos :heavy_check_mark:debian :heavy_check_mark:archive.
QA: http://primate-qa.cloudstack.cloud:8080/client/pr/898 (JID-3766)

@utchoang can you add screenshots if possible?

@utchoang can you add screenshots if possible?

@ravening

@ravening

I don't think it'll work due to CORS issues esp if website is served under https.
What do you think @wido @GabrielBrascher @weizhouapache @utchoang @svenvogel @ravening @davidjumani ?

I don't think it'll work due to CORS issues esp if website is served under https.
What do you think @wido @GabrielBrascher @weizhouapache @utchoang @svenvogel @ravening @davidjumani ?

I don't think it'll work due to CORS issues esp if website is served under https.
What do you think @wido @GabrielBrascher @weizhouapache @utchoang @svenvogel @ravening @davidjumani ?

Will test it and let you know

I don't think it'll work due to CORS issues esp if website is served under https.
What do you think @wido @GabrielBrascher @weizhouapache @utchoang @svenvogel @ravening @davidjumani ?

Will test it and let you know

I don't think it'll work due to CORS issues esp if website is served under https.
What do you think @wido @GabrielBrascher @weizhouapache @utchoang @svenvogel @ravening @davidjumani ?

Why not? The URL stays the same. And on the proxy server you can add, remove and/or modify CORS headers if needed.

I don't think it'll work due to CORS issues esp if website is served under https.
What do you think @wido @GabrielBrascher @weizhouapache @utchoang @svenvogel @ravening @davidjumani ?

Why not? The URL stays the same. And on the proxy server you can add, remove and/or modify CORS headers if needed.

I don't think it'll work due to CORS issues esp if website is served under https.
What do you think @wido @GabrielBrascher @weizhouapache @utchoang @svenvogel @ravening @davidjumani ?

Why not? The URL stays the same. And on the proxy server you can add, remove and/or modify CORS headers if needed.

@wido @rhtyd @utchoang
The request is getting blocked. Not sure if im missing but I just added the entire endpoint in config.json

I don't think it'll work due to CORS issues esp if website is served under https.
What do you think @wido @GabrielBrascher @weizhouapache @utchoang @svenvogel @ravening @davidjumani ?

Why not? The URL stays the same. And on the proxy server you can add, remove and/or modify CORS headers if needed.

@wido @rhtyd @utchoang
The request is getting blocked. Not sure if im missing but I just added the entire endpoint in config.json

@wido I think it should be the reverse proxy/lb config doing the LB for available/up mgmt servers than provide option in UI. But I see your use-case.

@wido I think it should be the reverse proxy/lb config doing the LB for available/up mgmt servers than provide option in UI. But I see your use-case.

@ravening If we using http or domain it'll not work due to CORS issues

@ravening If we using http or domain it'll not work due to CORS issues

@ravening Yes. If we using domain with http it'll not work due to CORS issues :(. But if using https, It'll works

@utchoang both http/https do not work for me, even if I install browser extension to unblock CORS.
it is not an issue with this PR.
the official release 1.0 does not work either. @rhtyd

@ravening Yes. If we using domain with http it'll not work due to CORS issues :(. But if using https, It'll works

@utchoang both http/https do not work for me, even if I install browser extension to unblock CORS.
it is not an issue with this PR.
the official release 1.0 does not work either. @rhtyd

@ravening @weizhouapache @rhtyd @ravening I have tested it a few times with http and https but it both doesn't work due to CORS. This PR doesn't solve the problem.
Do you have a better way?

@ravening @weizhouapache @rhtyd @ravening I have tested it a few times with http and https but it both doesn't work due to CORS. This PR doesn't solve the problem.
Do you have a better way?

I tried this with two management servers from the PCextreme cloud.

server {
    listen       80;
    server_name  localhost;
    location / {
        root   /usr/share/nginx/html;
        index  index.html;
    }
    location /api/ams {
        # http://<IP_ADDRESS>:8080 should be replaced your CloudStack management
        # Server's actual URI
        proxy_pass   https://api.XXXXX.eu/ams3;
    }
    location /api/haa {
        # http://<IP_ADDRESS>:8080 should be replaced your CloudStack management
        # Server's actual URI
        proxy_pass   https://api.XXXXX.eu/zone01_haa01;
    }
}

{
  "servers": [
    {
      "name": "Amsterdam",
      "apiBase": "/api/ams"
    },
    {
      "name": "Haarlem",
      "apiBase": "/api/haa"
    }
  ],

I see the requests go to the proper Management server, but my Firefox console complains that sessionkey cookie expires right away.
 Still unclear to me what is breaking it here.

I tried this with two management servers from the PCextreme cloud.

server {
    listen       80;
    server_name  localhost;
    location / {
        root   /usr/share/nginx/html;
        index  index.html;
    }
    location /api/ams {
        # http://<IP_ADDRESS>:8080 should be replaced your CloudStack management
        # Server's actual URI
        proxy_pass   https://api.XXXXX.eu/ams3;
    }
    location /api/haa {
        # http://<IP_ADDRESS>:8080 should be replaced your CloudStack management
        # Server's actual URI
        proxy_pass   https://api.XXXXX.eu/zone01_haa01;
    }
}

{
  "servers": [
    {
      "name": "Amsterdam",
      "apiBase": "/api/ams"
    },
    {
      "name": "Haarlem",
      "apiBase": "/api/haa"
    }
  ],

I see the requests go to the proper Management server, but my Firefox console complains that sessionkey cookie expires right away.
 Still unclear to me what is breaking it here.

I tried this with two management servers from the PCextreme cloud.
server {
listen       80;
server_name  localhost;
location / {
root   /usr/share/nginx/html;
index  index.html;
}
location /api/ams {
# http://<IP_ADDRESS>:8080 should be replaced your CloudStack management
# Server's actual URI
proxy_pass   https://api.XXXXX.eu/ams3;
}
location /api/haa {
# http://<IP_ADDRESS>:8080 should be replaced your CloudStack management
# Server's actual URI
proxy_pass   https://api.XXXXX.eu/zone01_haa01;
}
}
{
"servers": [
{
"name": "Amsterdam",
"apiBase": "/api/ams"
},
{
"name": "Haarlem",
"apiBase": "/api/haa"
}
],
I see the requests go to the proper Management server, but my Firefox console complains that sessionkey cookie expires right away.
 Still unclear to me what is breaking it here.
Both API endpoints and up at the management servers:
wido@wido-laptop:~$ curl -I http://localhost:8181/api/ams
HTTP/1.1 401 Unauthorized
Server: nginx/1.19.6
Date: Wed, 13 Jan 2021 13:22:08 GMT
Content-Type: text/xml;charset=utf-8
Content-Length: 211
Connection: keep-alive
X-Content-Type-Options: nosniff
X-XSS-Protection: 1;mode=block
content-security-policy: 1
content-security-policy: default-src=none
content-security-policy: script-src=self
content-security-policy: connect-src=self
content-security-policy: img-src=self
content-security-policy: style-src=self
X-Xss-Protection: 1; mode=block
wido@wido-laptop:~$ curl -I http://localhost:8181/api/haa
HTTP/1.1 401 Unauthorized
Server: nginx/1.19.6
Date: Wed, 13 Jan 2021 13:22:11 GMT
Content-Type: text/xml;charset=utf-8
Content-Length: 211
Connection: keep-alive
X-Content-Type-Options: nosniff
X-XSS-Protection: 1;mode=block
content-security-policy: 1
content-security-policy: default-src=none
content-security-policy: script-src=self
content-security-policy: connect-src=self
content-security-policy: img-src=self
content-security-policy: style-src=self
X-Xss-Protection: 1; mode=block
X-Xss-Protection: 1; mode=block
wido@wido-laptop:~$
I also checked the management server logs:
2021-01-13 14:26:34,987 DEBUG [c.c.a.ApiServlet] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) ===START===  92.XXX.170.138 -- POST
2021-01-13 14:26:34,988 DEBUG [c.c.a.ApiServlet] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Session cookie is marked secure!
2021-01-13 14:26:34,993 DEBUG [c.c.u.AccountManagerImpl] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Attempting to log in user: admin in domain 1
2021-01-13 14:26:34,995 DEBUG [o.a.c.s.a.PBKDF2UserAuthenticator] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Retrieving user: admin
2021-01-13 14:26:35,316 DEBUG [c.c.u.AccountManagerImpl] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) CIDRs from which account 'Acct[ae43e7cb-abe2-11ea-8f22-d8252d74bd58-admin]' is allowed to perform API calls: <IP_ADDRESS>/0,::/0
2021-01-13 14:26:35,316 DEBUG [c.c.u.AccountManagerImpl] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) User: admin in domain 1 has successfully logged in
2021-01-13 14:26:35,329 INFO  [c.c.a.ApiServer] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Current user logged in under UTC timezone
2021-01-13 14:26:35,329 INFO  [c.c.a.ApiServer] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Timezone offset from UTC is: 0.0
2021-01-13 14:26:35,333 DEBUG [c.c.a.ApiServlet] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) ===END===  92.XXX.170.138 -- POST
2021-01-13 14:26:35,387 DEBUG [c.c.a.ApiServlet] (qtp979294118-64148:ctx-2355cc41) (logid:343a1d0e) ===START===  92.XXX.170.138 -- GET  listall=true&command=listZones&response=json
2021-01-13 14:26:35,387 DEBUG [c.c.a.ApiServer] (qtp979294118-64148:ctx-2355cc41 ctx-c0c8312c) (logid:343a1d0e) Expired session, missing signature, or missing apiKey -- ignoring request. Signature: null, apiKey: null
2021-01-13 14:26:35,389 DEBUG [c.c.a.ApiServlet] (qtp979294118-64148:ctx-2355cc41 ctx-c0c8312c) (logid:343a1d0e) ===END===  92.xxx.170.138 -- GET  listall=true&command=listZones&response=json
Noticed how these values are null:

apiKey
signature

@wido this is a good way to avoid CORS. thanks for sharing.
To set cookie of other domains, you need to enable 3rd-party cookie on server side.
Set-Cookie: SiteSite=None; Secure
if you use nginx, add proxy_cookie_path / "/; Secure; SameSite=None;";
it also means both server and client side must be secure (https)

I tried this with two management servers from the PCextreme cloud.
server {
listen       80;
server_name  localhost;
location / {
root   /usr/share/nginx/html;
index  index.html;
}
location /api/ams {
# http://<IP_ADDRESS>:8080 should be replaced your CloudStack management
# Server's actual URI
proxy_pass   https://api.XXXXX.eu/ams3;
}
location /api/haa {
# http://<IP_ADDRESS>:8080 should be replaced your CloudStack management
# Server's actual URI
proxy_pass   https://api.XXXXX.eu/zone01_haa01;
}
}
{
"servers": [
{
"name": "Amsterdam",
"apiBase": "/api/ams"
},
{
"name": "Haarlem",
"apiBase": "/api/haa"
}
],
I see the requests go to the proper Management server, but my Firefox console complains that sessionkey cookie expires right away.
 Still unclear to me what is breaking it here.
Both API endpoints and up at the management servers:
wido@wido-laptop:~$ curl -I http://localhost:8181/api/ams
HTTP/1.1 401 Unauthorized
Server: nginx/1.19.6
Date: Wed, 13 Jan 2021 13:22:08 GMT
Content-Type: text/xml;charset=utf-8
Content-Length: 211
Connection: keep-alive
X-Content-Type-Options: nosniff
X-XSS-Protection: 1;mode=block
content-security-policy: 1
content-security-policy: default-src=none
content-security-policy: script-src=self
content-security-policy: connect-src=self
content-security-policy: img-src=self
content-security-policy: style-src=self
X-Xss-Protection: 1; mode=block
wido@wido-laptop:~$ curl -I http://localhost:8181/api/haa
HTTP/1.1 401 Unauthorized
Server: nginx/1.19.6
Date: Wed, 13 Jan 2021 13:22:11 GMT
Content-Type: text/xml;charset=utf-8
Content-Length: 211
Connection: keep-alive
X-Content-Type-Options: nosniff
X-XSS-Protection: 1;mode=block
content-security-policy: 1
content-security-policy: default-src=none
content-security-policy: script-src=self
content-security-policy: connect-src=self
content-security-policy: img-src=self
content-security-policy: style-src=self
X-Xss-Protection: 1; mode=block
X-Xss-Protection: 1; mode=block
wido@wido-laptop:~$
I also checked the management server logs:
2021-01-13 14:26:34,987 DEBUG [c.c.a.ApiServlet] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) ===START===  92.XXX.170.138 -- POST
2021-01-13 14:26:34,988 DEBUG [c.c.a.ApiServlet] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Session cookie is marked secure!
2021-01-13 14:26:34,993 DEBUG [c.c.u.AccountManagerImpl] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Attempting to log in user: admin in domain 1
2021-01-13 14:26:34,995 DEBUG [o.a.c.s.a.PBKDF2UserAuthenticator] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Retrieving user: admin
2021-01-13 14:26:35,316 DEBUG [c.c.u.AccountManagerImpl] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) CIDRs from which account 'Acct[ae43e7cb-abe2-11ea-8f22-d8252d74bd58-admin]' is allowed to perform API calls: <IP_ADDRESS>/0,::/0
2021-01-13 14:26:35,316 DEBUG [c.c.u.AccountManagerImpl] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) User: admin in domain 1 has successfully logged in
2021-01-13 14:26:35,329 INFO  [c.c.a.ApiServer] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Current user logged in under UTC timezone
2021-01-13 14:26:35,329 INFO  [c.c.a.ApiServer] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Timezone offset from UTC is: 0.0
2021-01-13 14:26:35,333 DEBUG [c.c.a.ApiServlet] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) ===END===  92.XXX.170.138 -- POST
2021-01-13 14:26:35,387 DEBUG [c.c.a.ApiServlet] (qtp979294118-64148:ctx-2355cc41) (logid:343a1d0e) ===START===  92.XXX.170.138 -- GET  listall=true&command=listZones&response=json
2021-01-13 14:26:35,387 DEBUG [c.c.a.ApiServer] (qtp979294118-64148:ctx-2355cc41 ctx-c0c8312c) (logid:343a1d0e) Expired session, missing signature, or missing apiKey -- ignoring request. Signature: null, apiKey: null
2021-01-13 14:26:35,389 DEBUG [c.c.a.ApiServlet] (qtp979294118-64148:ctx-2355cc41 ctx-c0c8312c) (logid:343a1d0e) ===END===  92.xxx.170.138 -- GET  listall=true&command=listZones&response=json
Noticed how these values are null:

apiKey
signature

@wido this is a good way to avoid CORS. thanks for sharing.
To set cookie of other domains, you need to enable 3rd-party cookie on server side.
Set-Cookie: SiteSite=None; Secure
if you use nginx, add proxy_cookie_path / "/; Secure; SameSite=None;";
it also means both server and client side must be secure (https)

I tried this with two management servers from the PCextreme cloud.
server {
listen       80;
server_name  localhost;
location / {
root   /usr/share/nginx/html;
index  index.html;
}
location /api/ams {
http://<IP_ADDRESS>:8080 should be replaced your CloudStack management
Server's actual URI
proxy_pass   https://api.XXXXX.eu/ams3;
}
location /api/haa {
http://<IP_ADDRESS>:8080 should be replaced your CloudStack management
Server's actual URI
proxy_pass   https://api.XXXXX.eu/zone01_haa01;
}
}
{
"servers": [
{
"name": "Amsterdam",
"apiBase": "/api/ams"
},
{
"name": "Haarlem",
"apiBase": "/api/haa"
}
],
I see the requests go to the proper Management server, but my Firefox console complains that sessionkey cookie expires right away.
 Still unclear to me what is breaking it here.
Both API endpoints and up at the management servers:
wido@wido-laptop:~$ curl -I http://localhost:8181/api/ams
HTTP/1.1 401 Unauthorized
Server: nginx/1.19.6
Date: Wed, 13 Jan 2021 13:22:08 GMT
Content-Type: text/xml;charset=utf-8
Content-Length: 211
Connection: keep-alive
X-Content-Type-Options: nosniff
X-XSS-Protection: 1;mode=block
content-security-policy: 1
content-security-policy: default-src=none
content-security-policy: script-src=self
content-security-policy: connect-src=self
content-security-policy: img-src=self
content-security-policy: style-src=self
X-Xss-Protection: 1; mode=block
wido@wido-laptop:~$ curl -I http://localhost:8181/api/haa
HTTP/1.1 401 Unauthorized
Server: nginx/1.19.6
Date: Wed, 13 Jan 2021 13:22:11 GMT
Content-Type: text/xml;charset=utf-8
Content-Length: 211
Connection: keep-alive
X-Content-Type-Options: nosniff
X-XSS-Protection: 1;mode=block
content-security-policy: 1
content-security-policy: default-src=none
content-security-policy: script-src=self
content-security-policy: connect-src=self
content-security-policy: img-src=self
content-security-policy: style-src=self
X-Xss-Protection: 1; mode=block
X-Xss-Protection: 1; mode=block
wido@wido-laptop:~$
I also checked the management server logs:
2021-01-13 14:26:34,987 DEBUG [c.c.a.ApiServlet] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) ===START===  92.XXX.170.138 -- POST
2021-01-13 14:26:34,988 DEBUG [c.c.a.ApiServlet] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Session cookie is marked secure!
2021-01-13 14:26:34,993 DEBUG [c.c.u.AccountManagerImpl] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Attempting to log in user: admin in domain 1
2021-01-13 14:26:34,995 DEBUG [o.a.c.s.a.PBKDF2UserAuthenticator] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Retrieving user: admin
2021-01-13 14:26:35,316 DEBUG [c.c.u.AccountManagerImpl] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) CIDRs from which account 'Acct[ae43e7cb-abe2-11ea-8f22-d8252d74bd58-admin]' is allowed to perform API calls: <IP_ADDRESS>/0,::/0
2021-01-13 14:26:35,316 DEBUG [c.c.u.AccountManagerImpl] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) User: admin in domain 1 has successfully logged in
2021-01-13 14:26:35,329 INFO  [c.c.a.ApiServer] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Current user logged in under UTC timezone
2021-01-13 14:26:35,329 INFO  [c.c.a.ApiServer] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Timezone offset from UTC is: 0.0
2021-01-13 14:26:35,333 DEBUG [c.c.a.ApiServlet] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) ===END===  92.XXX.170.138 -- POST
2021-01-13 14:26:35,387 DEBUG [c.c.a.ApiServlet] (qtp979294118-64148:ctx-2355cc41) (logid:343a1d0e) ===START===  92.XXX.170.138 -- GET  listall=true&command=listZones&response=json
2021-01-13 14:26:35,387 DEBUG [c.c.a.ApiServer] (qtp979294118-64148:ctx-2355cc41 ctx-c0c8312c) (logid:343a1d0e) Expired session, missing signature, or missing apiKey -- ignoring request. Signature: null, apiKey: null
2021-01-13 14:26:35,389 DEBUG [c.c.a.ApiServlet] (qtp979294118-64148:ctx-2355cc41 ctx-c0c8312c) (logid:343a1d0e) ===END===  92.xxx.170.138 -- GET  listall=true&command=listZones&response=json
Noticed how these values are null:

apiKey
signature

@wido this is a good way to avoid CORS. thanks for sharing.
To set cookie of other domains, you need to enable 3rd-party cookie on server side.
Set-Cookie: SiteSite=None; Secure
if you use nginx, add proxy_cookie_path / "/; Secure; SameSite=None;";
it also means both server and client side must be secure (https)

This is something I would need to investigate. Haven't been able to do so yet.

I tried this with two management servers from the PCextreme cloud.
server {
listen       80;
server_name  localhost;
location / {
root   /usr/share/nginx/html;
index  index.html;
}
location /api/ams {
http://<IP_ADDRESS>:8080 should be replaced your CloudStack management
Server's actual URI
proxy_pass   https://api.XXXXX.eu/ams3;
}
location /api/haa {
http://<IP_ADDRESS>:8080 should be replaced your CloudStack management
Server's actual URI
proxy_pass   https://api.XXXXX.eu/zone01_haa01;
}
}
{
"servers": [
{
"name": "Amsterdam",
"apiBase": "/api/ams"
},
{
"name": "Haarlem",
"apiBase": "/api/haa"
}
],
I see the requests go to the proper Management server, but my Firefox console complains that sessionkey cookie expires right away.
 Still unclear to me what is breaking it here.
Both API endpoints and up at the management servers:
wido@wido-laptop:~$ curl -I http://localhost:8181/api/ams
HTTP/1.1 401 Unauthorized
Server: nginx/1.19.6
Date: Wed, 13 Jan 2021 13:22:08 GMT
Content-Type: text/xml;charset=utf-8
Content-Length: 211
Connection: keep-alive
X-Content-Type-Options: nosniff
X-XSS-Protection: 1;mode=block
content-security-policy: 1
content-security-policy: default-src=none
content-security-policy: script-src=self
content-security-policy: connect-src=self
content-security-policy: img-src=self
content-security-policy: style-src=self
X-Xss-Protection: 1; mode=block
wido@wido-laptop:~$ curl -I http://localhost:8181/api/haa
HTTP/1.1 401 Unauthorized
Server: nginx/1.19.6
Date: Wed, 13 Jan 2021 13:22:11 GMT
Content-Type: text/xml;charset=utf-8
Content-Length: 211
Connection: keep-alive
X-Content-Type-Options: nosniff
X-XSS-Protection: 1;mode=block
content-security-policy: 1
content-security-policy: default-src=none
content-security-policy: script-src=self
content-security-policy: connect-src=self
content-security-policy: img-src=self
content-security-policy: style-src=self
X-Xss-Protection: 1; mode=block
X-Xss-Protection: 1; mode=block
wido@wido-laptop:~$
I also checked the management server logs:
2021-01-13 14:26:34,987 DEBUG [c.c.a.ApiServlet] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) ===START===  92.XXX.170.138 -- POST
2021-01-13 14:26:34,988 DEBUG [c.c.a.ApiServlet] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Session cookie is marked secure!
2021-01-13 14:26:34,993 DEBUG [c.c.u.AccountManagerImpl] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Attempting to log in user: admin in domain 1
2021-01-13 14:26:34,995 DEBUG [o.a.c.s.a.PBKDF2UserAuthenticator] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Retrieving user: admin
2021-01-13 14:26:35,316 DEBUG [c.c.u.AccountManagerImpl] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) CIDRs from which account 'Acct[ae43e7cb-abe2-11ea-8f22-d8252d74bd58-admin]' is allowed to perform API calls: <IP_ADDRESS>/0,::/0
2021-01-13 14:26:35,316 DEBUG [c.c.u.AccountManagerImpl] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) User: admin in domain 1 has successfully logged in
2021-01-13 14:26:35,329 INFO  [c.c.a.ApiServer] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Current user logged in under UTC timezone
2021-01-13 14:26:35,329 INFO  [c.c.a.ApiServer] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) Timezone offset from UTC is: 0.0
2021-01-13 14:26:35,333 DEBUG [c.c.a.ApiServlet] (qtp979294118-71298:ctx-a4c4892a) (logid:a706fe0b) ===END===  92.XXX.170.138 -- POST
2021-01-13 14:26:35,387 DEBUG [c.c.a.ApiServlet] (qtp979294118-64148:ctx-2355cc41) (logid:343a1d0e) ===START===  92.XXX.170.138 -- GET  listall=true&command=listZones&response=json
2021-01-13 14:26:35,387 DEBUG [c.c.a.ApiServer] (qtp979294118-64148:ctx-2355cc41 ctx-c0c8312c) (logid:343a1d0e) Expired session, missing signature, or missing apiKey -- ignoring request. Signature: null, apiKey: null
2021-01-13 14:26:35,389 DEBUG [c.c.a.ApiServlet] (qtp979294118-64148:ctx-2355cc41 ctx-c0c8312c) (logid:343a1d0e) ===END===  92.xxx.170.138 -- GET  listall=true&command=listZones&response=json
Noticed how these values are null:

apiKey
signature

@wido this is a good way to avoid CORS. thanks for sharing.
To set cookie of other domains, you need to enable 3rd-party cookie on server side.
Set-Cookie: SiteSite=None; Secure
if you use nginx, add proxy_cookie_path / "/; Secure; SameSite=None;";
it also means both server and client side must be secure (https)

This is something I would need to investigate. Haven't been able to do so yet.

@wido this is a good way to avoid CORS. thanks for sharing.
To set cookie of other domains, you need to enable 3rd-party cookie on server side.
Set-Cookie: SiteSite=None; Secure
if you use nginx, add proxy_cookie_path / "/; Secure; SameSite=None;";
it also means both server and client side must be secure (https)

This is something I would need to investigate. Haven't been able to do so yet.

@wido I have tested it with nginx. it works well.
setting cookie header is supported by haproxy 1.8+

@wido this is a good way to avoid CORS. thanks for sharing.
To set cookie of other domains, you need to enable 3rd-party cookie on server side.
Set-Cookie: SiteSite=None; Secure
if you use nginx, add proxy_cookie_path / "/; Secure; SameSite=None;";
it also means both server and client side must be secure (https)

This is something I would need to investigate. Haven't been able to do so yet.

@wido I have tested it with nginx. it works well.
setting cookie header is supported by haproxy 1.8+

@utchoang
The only issue is that vm console is not working.
the console always uses /client/console on localhost.
https://github.com/apache/cloudstack-primate/blob/master/src/components/widgets/Console.vue#L21

@utchoang
The only issue is that vm console is not working.
the console always uses /client/console on localhost.
https://github.com/apache/cloudstack-primate/blob/master/src/components/widgets/Console.vue#L21

@wido this is a good way to avoid CORS. thanks for sharing.
To set cookie of other domains, you need to enable 3rd-party cookie on server side.
Set-Cookie: SiteSite=None; Secure
if you use nginx, add proxy_cookie_path / "/; Secure; SameSite=None;";
it also means both server and client side must be secure (https)

This is something I would need to investigate. Haven't been able to do so yet.

@wido I have tested it with nginx. it works well.
setting cookie header is supported by haproxy 1.8+

Would you be so kind to share your Nginx configuration? This could then also go into the docs of the UI

@wido this is a good way to avoid CORS. thanks for sharing.
To set cookie of other domains, you need to enable 3rd-party cookie on server side.
Set-Cookie: SiteSite=None; Secure
if you use nginx, add proxy_cookie_path / "/; Secure; SameSite=None;";
it also means both server and client side must be secure (https)

This is something I would need to investigate. Haven't been able to do so yet.

@wido I have tested it with nginx. it works well.
setting cookie header is supported by haproxy 1.8+

Would you be so kind to share your Nginx configuration? This could then also go into the docs of the UI

Given the complexity and that it won't be turnkey (work out the box) - should this be made hidden/pluggable or let the LB handled by the nginx (instead of UI)?

Given the complexity and that it won't be turnkey (work out the box) - should this be made hidden/pluggable or let the LB handled by the nginx (instead of UI)?

Given the complexity and that it won't be turnkey (work out the box) - should this be made hidden/pluggable or let the LB handled by the nginx (instead of UI)?

I don't see how the LB can handle this without doing anything in the UI.
If users don't touch the config.json it works as expected. This feature only requires some additions to the Nginx configuration.
It would make presenting the UI to users with multiple management servers much easier.
I haven't tested the latest code yet. @utchoang can you resolve the conflict to make testing easier?

Given the complexity and that it won't be turnkey (work out the box) - should this be made hidden/pluggable or let the LB handled by the nginx (instead of UI)?

I don't see how the LB can handle this without doing anything in the UI.
If users don't touch the config.json it works as expected. This feature only requires some additions to the Nginx configuration.
It would make presenting the UI to users with multiple management servers much easier.
I haven't tested the latest code yet. @utchoang can you resolve the conflict to make testing easier?

@wido this is a good way to avoid CORS. thanks for sharing.
To set cookie of other domains, you need to enable 3rd-party cookie on server side.
Set-Cookie: SiteSite=None; Secure
if you use nginx, add proxy_cookie_path / "/; Secure; SameSite=None;";
it also means both server and client side must be secure (https)

This is something I would need to investigate. Haven't been able to do so yet.

@wido I have tested it with nginx. it works well.
setting cookie header is supported by haproxy 1.8+

Would you be so kind to share your Nginx configuration? This could then also go into the docs of the UI

@wido
here are my nginx configurations
(1) config.json on primate server
{
  "servers": [
    {
      "name": "mgt01",
      "apiBase": "/mgt01/client/api"
    },
    {
      "name": "mgt02",
      "apiBase": "/mgt02/client/api"
    },
    {
      "name": "mgt03",
      "apiBase": "/mgt03/client/api"
    }
  ],

(2) nginx config on primate server
server {
    listen                      443 ssl http2;
    server_name                 *.cloud.your.domain;
......
    location / {
......
        location ^~ /mgt01/client {
            rewrite ^/mgt01/(.*)$ /$1 break;
            proxy_pass   https://mgt01.cloud.your.domain;
        }

        location ^~ /mgt02/client {
            rewrite ^/mgt02/(.*)$ /$1 break;
            proxy_pass   https://mgt02.cloud.your.domain;
        }

        location ^~ /mgt03/client {
            rewrite ^/mgt03/(.*)$ /$1 break;
            proxy_pass   https://mgt03.cloud.your.domain;
        }
    }
}

(3) nginx on cloudstack management server
upstream mgtservers {
    hash $request_uri consistent;
    server <IP_ADDRESS>:8080;
}

server {
    listen                      443 ssl http2;
    server_name                 *.cloud.your.domain;
......
    location / {
......
        proxy_pass http://mgtservers;
        proxy_cookie_path / "/; Secure; SameSite=None;";
    }
}

@wido this is a good way to avoid CORS. thanks for sharing.
To set cookie of other domains, you need to enable 3rd-party cookie on server side.
Set-Cookie: SiteSite=None; Secure
if you use nginx, add proxy_cookie_path / "/; Secure; SameSite=None;";
it also means both server and client side must be secure (https)

This is something I would need to investigate. Haven't been able to do so yet.

@wido I have tested it with nginx. it works well.
setting cookie header is supported by haproxy 1.8+

Would you be so kind to share your Nginx configuration? This could then also go into the docs of the UI

@wido
here are my nginx configurations
(1) config.json on primate server
{
  "servers": [
    {
      "name": "mgt01",
      "apiBase": "/mgt01/client/api"
    },
    {
      "name": "mgt02",
      "apiBase": "/mgt02/client/api"
    },
    {
      "name": "mgt03",
      "apiBase": "/mgt03/client/api"
    }
  ],

(2) nginx config on primate server
server {
    listen                      443 ssl http2;
    server_name                 *.cloud.your.domain;
......
    location / {
......
        location ^~ /mgt01/client {
            rewrite ^/mgt01/(.*)$ /$1 break;
            proxy_pass   https://mgt01.cloud.your.domain;
        }

        location ^~ /mgt02/client {
            rewrite ^/mgt02/(.*)$ /$1 break;
            proxy_pass   https://mgt02.cloud.your.domain;
        }

        location ^~ /mgt03/client {
            rewrite ^/mgt03/(.*)$ /$1 break;
            proxy_pass   https://mgt03.cloud.your.domain;
        }
    }
}

(3) nginx on cloudstack management server
upstream mgtservers {
    hash $request_uri consistent;
    server <IP_ADDRESS>:8080;
}

server {
    listen                      443 ssl http2;
    server_name                 *.cloud.your.domain;
......
    location / {
......
        proxy_pass http://mgtservers;
        proxy_cookie_path / "/; Secure; SameSite=None;";
    }
}

@wido the above config does not work with latest commit by @utchoang
even if I change the config.json to the following
  "servers": [
    {
      "name": "mgt01",
      "apiHost": "/mgt01",
      "apiBase": "/client/api"
    },
    {
      "name": "mgt02",
      "apiHost": "/mgt02",
      "apiBase": "/client/api"
    },
    {
      "name": "mgt03",
      "apiHost": "/mgt03",
      "apiBase": "/client/api"
    }
  ],

the url shows primate/undefined/mgt01/, not the correct primate/mgt01/. @utchoang

@wido the above config does not work with latest commit by @utchoang
even if I change the config.json to the following
  "servers": [
    {
      "name": "mgt01",
      "apiHost": "/mgt01",
      "apiBase": "/client/api"
    },
    {
      "name": "mgt02",
      "apiHost": "/mgt02",
      "apiBase": "/client/api"
    },
    {
      "name": "mgt03",
      "apiHost": "/mgt03",
      "apiBase": "/client/api"
    }
  ],

the url shows primate/undefined/mgt01/, not the correct primate/mgt01/. @utchoang

Given the complexity and that it won't be turnkey (work out the box) - should this be made hidden/pluggable or let the LB handled by the nginx (instead of UI)?

I don't see how the LB can handle this without doing anything in the UI.
If users don't touch the config.json it works as expected. This feature only requires some additions to the Nginx configuration.
It would make presenting the UI to users with multiple management servers much easier.
I haven't tested the latest code yet. @utchoang can you resolve the conflict to make testing easier?

agree with @wido
it is a very useful for users who have multiple cloudstack platforms and want to have a centralized management on all platforms.

Given the complexity and that it won't be turnkey (work out the box) - should this be made hidden/pluggable or let the LB handled by the nginx (instead of UI)?

I don't see how the LB can handle this without doing anything in the UI.
If users don't touch the config.json it works as expected. This feature only requires some additions to the Nginx configuration.
It would make presenting the UI to users with multiple management servers much easier.
I haven't tested the latest code yet. @utchoang can you resolve the conflict to make testing easier?

agree with @wido
it is a very useful for users who have multiple cloudstack platforms and want to have a centralized management on all platforms.

@wido Can you run test again? Thank you.

@wido Can you run test again? Thank you.

@utchoang tested good.
one concern, to keep backwards compatibility, apiHost should be set to "" if it is not found in config.json  (there is no apiHost in config.json in primate 1.0.0 or cloudstack <IP_ADDRESS>).

@utchoang tested good.
one concern, to keep backwards compatibility, apiHost should be set to "" if it is not found in config.json  (there is no apiHost in config.json in primate 1.0.0 or cloudstack <IP_ADDRESS>).

@utchoang it seems......
config.servers[0].apiHost || '' + config.servers[0].apiBase is equals to
config.servers[0].apiHost || ('' + config.servers[0].apiBase)

@utchoang it seems......
config.servers[0].apiHost || '' + config.servers[0].apiBase is equals to
config.servers[0].apiHost || ('' + config.servers[0].apiBase)

@weizhouapache This is not true because baseUrl needs a combination of apiHost and apiBase. In your way, if apiHost exists in config.json then baseUrl is only equal to apiHost. I will edit it again to see better

@weizhouapache This is not true because baseUrl needs a combination of apiHost and apiBase. In your way, if apiHost exists in config.json then baseUrl is only equal to apiHost. I will edit it again to see better

@utchoang it works with commit "Fix for clear code."

@utchoang it works with commit "Fix for clear code."


Cleanup and code deletion (negative edits)

Currently copilot is completely useless when cleaning up a project or deleting code fragments that are loosely related.
Like having a project that has similar (but not completely identical) code for different versions or cases (like debian 8, 9, 10, fedora 36, 37, 38) and now starting to delete the sections related to older out of support versions/cases.
Copilot doesn't help with this at all.
Example project structure:
Root
| --> scripts/foo-debian8-bar.sh
| --> html/debian8/foo
| --> tests.sh
and test.sh contains sections for each version/case.
Even after doing it once for e.g. debian 8 it is not possible to tell copilot to "learn the structure" and repeat it for debian9 and so on.

I do not understand how this uses copilot (inline or panel chat), what queries used, what files are open when you make the request. Please, provide a more complete flow. A screencast can help.

I wanted inline copilot to suggest the same change on the other sections as I did before. So "moneky see, monkey do" kind of suggestion for the negative edit.
I also tried to use the panel chat with a query like "remove distroX" and it didn't work either, but I'd have to try it again to be able to tell how exactly that one went wrong.


Add TCPGen in Conformer RNN-T

This is a cleaned up version of https://github.com/pytorch/audio/pull/2890

This pull request contains the implementation of
the tree-constrained pointer generator (TCPGen) for contextual biasing.
An example for Librispeech can be found in
audio/examples/asr/librispeech_biasing.

Hi @mthrok @xiaohui-zhang @nateanl . I have addressed all the comments and pushed them to #2890. Please let me know if I should create a new clean PR, or could @mthrok move things here to continue the code review? Thank you!

congrats @BriansIDP! looking forward to the tutorial and/or follow-up improvements. Thanks @mthrok for facilitating the merging process!


How to fix the bar rating when clicked by user?

The recent demos at http://antenna.io/demo/jquery-bar-rating/examples/ show only the changes of values when the user moves his mouse on the fields.
The "normal" user case that s/he clicks on the selected item and then moves out the mouse cannot be found. But it is needed. Reason: When the user clicks on 3 / 5 he expects the value to be fixed, but when he moves the mouse outside, the value is changing.

So how can I fix the value of the bar as soon as a click appears?

And how to reapply another value when another click appears?

Woraround could be to only react on clicks.

Thanks for your help.

I added a new option hoverState that will let you achieve what you want by setting it to false.

$('.barratings').barrating({ hoverState:false });
works. Thanks a lot.


MultiBrowserImpl's DocumentObserver's traverseRules can crash on sheet.href

I noticed this in our fork when testing this site with MultiBrowserLiveDev: http://templated.co/retrospect.  The problem is that sheet can be null, so sheet.href throws.  I've fixed it, but Brackets needs the fix too:
https://github.com/humphd/brackets/commit/439b3944d99d1abefbfd7557acfd88c0c7a33072
cc @busykai

I did this a bit differently in the end to catch another failing case: https://github.com/humphd/brackets/commit/787acb3eb78d06615b64d9889f8bb5360f473218


[T3A4][W11-A2] Zhi Jiang

Ready for Review

Okay, functionalitywise looks good! But should pay attention to coding style. We are aiming to become quality s/w devs which is not the same as freelance s/w dev.

noted


v7.4 Release

Supportbot v7.4
New & Improvements:

Addons now support multiple commands and events
/close can be set to staff only
Maximum Open Tickets a user can have (set in config)
Warns you of missing roles, channels, and categories from your config during startup
Tickets are closed if a user does not select a category in time (set in config)
Added more information to ticket logs and transcripts
Only admins can archive tickets
Ticket Panel now supports emojis
Simplified Bot Starting console logs

Bug Fixes:

Bot would crash if a ticket is closed, but no department was selected.
/close error message would could the bot to crash
Added more missing roles & channels checks
Bot would crash if channel and category had the same name
Bot can only be in one server to fix issues.

approved


x/term: Please remove the empty x/term repo

The x/term repo was added in Nov 2015 after proposal #13104 was accepted.
Unfortunately the interest in contributing to this repo did not materialise and I have not had the bandwidth to push CL 17611 and will likely continue to not have the bw for the foreseeable future.
As the repo remains effectively empty, I think it is appropriate to remove this repository to stop it blocking #11811.
/cc @adg  @bradfitz

We can also just ignore x/term for the purposes of #11811.

How about moving https://godoc.org/golang.org/x/crypto/ssh/terminal#IsTerminal here?

@davecheney are you sure about CL number, 17611 is about compress/bzip2 - https://go-review.googlesource.com/#/c/17611

Submitted https://go-review.googlesource.com/c/38050/ and can work on https://github.com/golang/go/issues/19503

Dealing with seemingly disparate phenomena?

Try dialectics!
http://ericlindblad.blogspot.com/2010/08/terrorism-factor-not-phenomena.html#conspectus
http://edb-terminaler.blogspot.com/
P.S. It would be nice to see Heimdal, SSH, and SSL implemented for K95.
http://nurmi-labs.blogspot.com/2017/08/k95.html
Regarding the mentioned Kerberos and SSL, K95's use with serial ports and modems, this seems a very small niche in the XXI Century.

@techtonik the CL you linked above got some reviews, but it seems like you didn't reply. Are you still interested in continuing work here?
I'm interested in this subrepo, so I can help with reviews and some of the work. It would be good for someone who's paid full-time to work on Go to take ownership, but if noone steps up, I can take that job with the free time I can find.
Out of curiosity, who is interested and/or would like to spend time on this subrepo in the future?

@mvdan thanks for the heads up. I've lost control over my emails and missed the notification. Looking at the CL right now.
No paid job and no expertise from my side, so don't expect me to take the responsibility. Since I wrote this code, some things happen. I lost hope in the terminal model with single input stream and single output stream. Not sure it is extensible. In Windows it was called console or cmd window and it was able to process text events much faster, because it didn't require parsing event stream from stream symbols and then converting the output the same way through complicated state machine into onscreen text. It was almost as simple as DOS video memory buffers in text mode, and thanks to that real-time TUI (text user interface) applications were much more responsive.
I am a very fan boy of https://www.farmanager.com/ but over two years I am completely on Linux and don't use Far anymore. In Linux TUI applications I can not chain key presses and go grab some coffee until all commands that spawned by keypresses finish execution. TUI interfaces based of parsing and visualizing every character instead of directly manipulating with the video buffer are very very slow. No OpenGL or Vulcan would fix that. I can not save events buffer before starting another process and restore it later, I can not use memory copy operations for showing animations in text mode with 100 FPS on 200x100 character matrix. It will be too slow.
Unfortunately, I don't have a link to a list of all problems with terminal model that is being the core of every and each terminal emulator. There are too many modes in these terminal emulator, options and cryptic keyboard shortcuts that just block user output. with no feedback. Still I really liked plugging just two wires into RaspberryPi and getting access to system console. It when I realized why it is so easy to connect to other Linux over the network or any other connection where you stdin and stdout. But as a former hardcore TUI user who believes in UX power of mouseless and blind interfaces over the GUI, I would say that terminal model is not perspective. Moreover, I think it is evil as it is giving so much hard time to new Linux users. Of course, over the time you learn it, but for now I am not sure that x/term module is able to fulfill the potential that TUI tools can bring to users.
For me, the terminal model is a serial console and I would investigate projects like https://mosh.org/ who can potentially reinvent it to something more useful.

@techtonik thanks - it's fine if you've lost interest or don't have the time. I think the rest is a bit off-topic :) If you're not going to work on your CL, please abandon it.
I'll see if I can get this rolling again with others in the next couple of months. If that fails, I think we should remove the repository for the time being, as Dave suggested.

I still couldn't find an way to checkout my CL locally from Gerrit. Started editing it online, but then I can not run tests. Well, at least the fixes are just comments.

@mvdan updated online - https://go-review.googlesource.com/c/term/+/38050

CC @dmitshur @toothrot
Ironically, the term repo currently has a test flake on the android-amd64-emu builder:
https://build.golang.org/log/f3ca1fcb2170a38216ffbafb598bbc008616aac8
(Doubly-ironic, given that the repo has no code and that the Android platform has no terminal.)

/cc @matloob

Another package that cound be useful for x/term is https://github.com/yakshaveinc/go-keycodes - common agreement which numbers to assign to which keys in keyboard where is necessary to operate on keys rather than chars, such as in games.
I am not sure that x/term is a good name for it. Terminal is the most popular input/output interface, but not the best architecture with single stdin+stdout pair and many hacks on top of it. Now for keypresses for sure.

Closing in favor of #31044. The repo is not empty anymore anyway, so can't be removed. Adding things should be tracked in independent proposals.


incoming message length unexpected<PHONE_NUMBER>)

I see in log many strings like this:
maybe some p2p node need to delete fro config?
How about - incoming message length unexpected<PHONE_NUMBER>) ?
Thanks.
Jul 18 14:26:28 eos eos[17592]: 2018-07-18T14:26:28.775 thread-0   net_plugin.cpp:1962           connect              ] host: bp.superone.io port: 57576
Jul 18 14:26:28 eos eos[17592]: 2018-07-18T14:26:28.775 thread-0   net_plugin.cpp:1962           connect              ] host: node0.eosblocksmith.io port: 9876
Jul 18 14:26:28 eos eos[17592]: 2018-07-18T14:26:28.775 thread-0   net_plugin.cpp:1962           connect              ] host: node.eosmeso.io port: 9876
Jul 18 14:26:29 eos eos[17592]: 2018-07-18T14:26:29.069 thread-0   net_plugin.cpp:2182           operator()           ] Peer node.eosmeso.io:9876 closed connection
Jul 18 14:26:29 eos eos[17592]: 2018-07-18T14:26:29.090 thread-0   net_plugin.cpp:2152           operator()           ] incoming message length unexpected<PHONE_NUMBER>)
Jul 18 14:26:29 eos eos[17592]: 2018-07-18T14:26:29.126 thread-0   net_plugin.cpp:2152           operator()           ] incoming message length unexpected<PHONE_NUMBER>)
Jul 18 14:26:32 eos eos[17592]: 2018-07-18T14:26:32.784 thread-0   bnet_plugin.cpp:1245          on_reconnect_peers   ] attempt to connect to bp.cryptolions.io:9875
Jul 18 14:26:32 eos eos[17592]: 2018-07-18T14:26:32.784 thread-0   bnet_plugin.cpp:349           session              ] open session 44
Jul 18 14:26:32 eos eos[17592]: 2018-07-18T14:26:32.785 thread-0   bnet_plugin.cpp:1245          on_reconnect_peers   ] attempt to connect to br.eosrio.io:4321
Jul 18 14:26:32 eos eos[17592]: 2018-07-18T14:26:32.785 thread-0   bnet_plugin.cpp:349           session              ] open session 45
Jul 18 14:26:32 eos eos[17592]: 2018-07-18T14:26:32.819 thread-1   bnet_plugin.cpp:857           on_fail              ] write: Bad file descriptor
Jul 18 14:26:32 eos eos[17592]: 2018-07-18T14:26:32.819 thread-1   bnet_plugin.cpp:857           on_fail              ] read: Operation canceled
Jul 18 14:26:32 eos eos[17592]: 2018-07-18T14:26:32.820 thread-1   bnet_plugin.cpp:1439          ~session             ] close session 44
Jul 18 14:26:33 eos eos[17592]: 2018-07-18T14:26:33.012 thread-1   bnet_plugin.cpp:857           on_fail              ] connect: Connection refused
Jul 18 14:26:33 eos eos[17592]: 2018-07-18T14:26:33.012 thread-1   bnet_plugin.cpp:1439          ~session             ] close session 45
Jul 18 14:26:45 eos eos[17592]: 2018-07-18T14:26:45.786 thread-0   bnet_plugin.cpp:1245          on_reconnect_peers   ] attempt to connect to bp.cryptolions.io:9875
Jul 18 14:26:45 eos eos[17592]: 2018-07-18T14:26:45.786 thread-0   bnet_plugin.cpp:349           session              ] open session 46
Jul 18 14:26:45 eos eos[17592]: 2018-07-18T14:26:45.786 thread-0   bnet_plugin.cpp:1245          on_reconnect_peers   ] attempt to connect to br.eosrio.io:4321
Jul 18 14:26:45 eos eos[17592]: 2018-07-18T14:26:45.786 thread-0   bnet_plugin.cpp:349           session              ] open session 47
Jul 18 14:26:45 eos eos[17592]: 2018-07-18T14:26:45.907 thread-1   bnet_plugin.cpp:857           on_fail              ] write: Bad file descriptor
Jul 18 14:26:45 eos eos[17592]: 2018-07-18T14:26:45.907 thread-1   bnet_plugin.cpp:857           on_fail              ] read: Operation canceled
Jul 18 14:26:45 eos eos[17592]: 2018-07-18T14:26:45.907 thread-1   bnet_plugin.cpp:1439          ~session             ] close session 46
Jul 18 14:26:46 eos eos[17592]: 2018-07-18T14:26:46.008 thread-1   bnet_plugin.cpp:857           on_fail              ] connect: Connection refused
Jul 18 14:26:46 eos eos[17592]: 2018-07-18T14:26:46.008 thread-1   bnet_plugin.cpp:1439          ~session             ] close session 47
Jul 18 14:26:49 eos eos[17592]: 2018-07-18T14:26:49.435 thread-1   bnet_plugin.cpp:857           on_fail              ] connect: Network is unreachable
Jul 18 14:26:49 eos eos[17592]: 2018-07-18T14:26:49.435 thread-1   bnet_plugin.cpp:1439          ~session             ] close session 2
Jul 18 14:26:57 eos eos[17592]: 2018-07-18T14:26:57.787 thread-0   bnet_plugin.cpp:1245          on_reconnect_peers   ] attempt to connect to bp.cryptolions.io:9875
Jul 18 14:26:57 eos eos[17592]: 2018-07-18T14:26:57.787 thread-0   bnet_plugin.cpp:349           session              ] open session 48
Jul 18 14:26:57 eos eos[17592]: 2018-07-18T14:26:57.787 thread-0   bnet_plugin.cpp:1245          on_reconnect_peers   ] attempt to connect to eosbp.atticlab.net:4321
Jul 18 14:26:57 eos eos[17592]: 2018-07-18T14:26:57.787 thread-0   bnet_plugin.cpp:349           session              ] open session 49
Jul 18 14:26:57 eos eos[17592]: 2018-07-18T14:26:57.787 thread-0   bnet_plugin.cpp:1245          on_reconnect_peers   ] attempt to connect to br.eosrio.io:4321
Jul 18 14:26:57 eos eos[17592]: 2018-07-18T14:26:57.787 thread-0   bnet_plugin.cpp:349           session              ] open session 50
Jul 18 14:26:57 eos eos[17592]: 2018-07-18T14:26:57.808 thread-1   bnet_plugin.cpp:857           on_fail              ] write: Bad file descriptor
Jul 18 14:26:57 eos eos[17592]: 2018-07-18T14:26:57.808 thread-1   bnet_plugin.cpp:857           on_fail              ] read: Operation canceled
Jul 18 14:26:57 eos eos[17592]: 2018-07-18T14:26:57.808 thread-1   bnet_plugin.cpp:1439          ~session             ] close session 48
Jul 18 14:26:58 eos eos[17592]: 2018-07-18T14:26:58.006 thread-1   bnet_plugin.cpp:857           on_fail              ] connect: Connection refused
Jul 18 14:26:58 eos eos[17592]: 2018-07-18T14:26:58.007 thread-1   bnet_plugin.cpp:1439          ~session             ] close session 50
Jul 18 14:26:58 eos eos[17592]: 2018-07-18T14:26:58.775 thread-0   net_plugin.cpp:1962           connect              ] host: bp.superone.io port: 57576
Jul 18 14:26:58 eos eos[17592]: 2018-07-18T14:26:58.775 thread-0   net_plugin.cpp:1962           connect              ] host: node0.eosblocksmith.io port: 9876
Jul 18 14:26:58 eos eos[17592]: 2018-07-18T14:26:58.775 thread-0   net_plugin.cpp:1962           connect              ] host: node.eosmeso.io port: 9876
Jul 18 14:26:59 eos eos[17592]: 2018-07-18T14:26:59.055 thread-0   net_plugin.cpp:2182           operator()           ] Peer node.eosmeso.io:9876 closed connection
Jul 18 14:26:59 eos eos[17592]: 2018-07-18T14:26:59.098 thread-0   net_plugin.cpp:2152           operator()           ] incoming message length unexpected<PHONE_NUMBER>)
Jul 18 14:26:59 eos eos[17592]: 2018-07-18T14:26:59.144 thread-0   net_plugin.cpp:2152           operator()           ] incoming message length unexpected<PHONE_NUMBER>)
Jul 18 14:27:01 eos eos[17592]: 2018-07-18T14:27:01.573 thread-0   net_plugin.cpp:2182           operator()           ] Peer p2p.mainnet.eospace.io:88 closed connection

That specific error is caused by a protocol mismatch.  net_plugin emits it when it see bnet protocol.  Be sure bnet_plugin and net_plugin settings align properly with the protocol available on the specified ports of the hosts in question.  Note that static lists of hosts may be out of date or incorrect, so you may need to use your own discretion in choosing the correct protocol for a given host and port.


DBW node working on the simulator

I have followed the instructions of the walkthrough video to implement the dbw node.
The car follows the waypoints around the track successfully.
Changing between manual/autonomous mode in the simulator works as expected.
In the future, I will be necessary to adjust some of the parameters according to Carla's requirements.

To test:

Drive car around the Test Lot environment - Follow instructions described in the classroom
At the beginning (with the code from the walkthrough video), the car was steering poorly. I have decided to add a steering pid controller to improve it.

The CarND-Capstone /ros/src/waypoint_loader/launch/waypoint_loader.launch file is set up to load the waypoints for the first track. To test using the second track, you will need to change <param name="path" value="$(find styx)../../../data/wp_yaw_const.csv" /> to use the churchlot_with_cars.csv as follows:  <param name="path" value="$(find styx)../../../data/churchlot_with_cars.csv"/>.

Use ROSBAG files
To get things working, follow the instructions described in the forum
As result, you will get thee .csv files inside ros/src/twist_controller/. The commands obtained (proposed commands) are quite similar to the commands provided by Udacity running on Carla.

Drive car along the Highway environment - it should follow the waypoints smoothly


Validate privateFrom before executing private transaction

As a member of a privacy group, I only want to execute private transactions sent from a member of the privacy group.  To ensure a non-member isn't sending a transaction with a privateFrom of an actual member, I need to check the sender (ie, the privateFrom) is who they say they are.
Options to consider:

Validate the privateFrom in Orion -> drawback of adding logic to Orion
Have Orion pass the public key, that was used to decrypt the private Tx, back with the private transaction so Besu can validate the privateFrom
Option we haven't thought of yet

We're going with Option 2.
This change was made in https://github.com/PegaSysEng/orion/pull/317 and then reverted in https://github.com/PegaSysEng/orion/pull/318 because older versions of Besu did not allow the additional value.
So before re-instating we need to resolve how we're going to handle versioning - do we allow users to update Orion only?  Can we expect users of Besu to use a certain version of Orion?

Are we going to enforce specific versions being used together.
API to get version.

Need to include after last 1.4.x release but before 1.5 RC.

Here are three scenarios:
Scenario 1: Besu 1.5+ connected to an incompatible Orion version (< 1.6)

Besu WARN log message: Missing sender key from Orion response. Upgrade Orion to 1.6 to enforce privateFrom check.
Consequence: Node stops syncing with network
How to fix: Upgrade Orion to 1.6+ and Besu should be back syncing the network

Scenario 2: Besu 1.5+ (and Orion 1.6+) processing transaction with invalid privateFrom (not matching payload sender key)

Besu WARN log message: Private transaction privateFrom doesn't match payload sender key
Consequence: private tx fails (result = 0). PMT is processed successfully)
How to fix: Don't send payloads with invalid privateFrom :)

Scenario 3: Besu 1.5+ (and Orion 1.6+) processing transaction with invalid RLP (not containing privateFrom)

Besu WARN log message: Private transaction is missing privateFrom
Consequence: private tx fails (result = 0). PMT is processed successfully)
How to fix: Don't send payloads with invalid tx RLP :)

Both PRs are ready. Now we just need to wait for the right time to merge it!
Orion: https://github.com/PegaSysEng/orion/pull/374
Besu: https://github.com/hyperledger/besu/pull/976

Now is the time for merging!

Once merged, this will need to be backported into the 1.5 release branch.


GIT support

From<EMAIL_ADDRESS>on 2011-03-13T12:16:58Z
Please add simple GIT support (similar to QTDevelop).
This would be a real advantage over MATLAB and could help me, to convince my collegues to use Spyder. What version of the product are you using? On what operating system? Version 2.0.8 on Ubuntu 10.10.
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=584

From<EMAIL_ADDRESS>on 2011-03-29T12:13:26Z
Uwe, maybe you can start by sketching out what you mean by 'simple' GIT support. - should this be another plugin or a fork from the file explorer. What you suggest sounds interesting in principle but possibly a lot of work.

From ccordoba12 on 2011-03-19T13:38:10Z
Hi,
I've checked the main python libraries to work with Git and Mercurial (anyvc and pyvcs), but it seems to me they need to be developed further. Another option would be to use tortoisehg as a library, since v2.0 it's based on PyQt4.
But to be honest an integration of this kind is not an easy task, so I think it'll have to wait to be developed from an outside contributor.
Status: Accepted
Labels: -Type-Defect -Priority-Medium Type-Enhancement Priority-Low

From<EMAIL_ADDRESS>on 2011-03-13T10:19:19Z
Sorry, the Type should be "Enhancment", but I cannot change the type.
Regards:
Uwe Fechner

From pierre.raybaut on 2011-05-18T00:31:41Z
Status: ContributorNeeded

From pierre.raybaut on 2011-05-16T01:29:24Z
Labels: Cat-ProjectExplorer

From pierre.raybaut on 2011-09-14T10:03:17Z
This issue was closed by revision 5899c8112251 .
Status: Fixed

From pierre.raybaut on 2011-06-04T15:23:27Z
After careful consideration, we have decided to not take action on this issue mainly because GUI-based alternative software already exist out there and it would be a lot of work to implement such features for Spyder to be completely independent from these alternatives.
Status: WontFix


Added validator for rule 199.

Closes #64

Don't worry, it always turns out there was a simpler way in hindsight!


Allocating a new EIP not recorded

Describe the bug
allocating a new EIP is not recorded, neither in CF, nor in CLI or Boto3; hove not checked the others.
Problem exists also when creating a new NATGW and selecting "Create New EIP" during creation process
Related Mapping
missing: AWS::EC2::EIP / aws ec2 allocate-address
Related Language
If applicable to a specific language output, e.g. JavaScript
To Reproduce
Steps to reproduce the behavior:
Start recording

Go to 'VPC'
Click on 'Elastic IPs'
Click on 'Allocate new address'
Stop recording
check Recorder Dashboard; no entry under CF, only describe entries under Boto3

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

Thanks as always for raising!
Fixed in 0.3.21


Failure to update within vscode.  Needed to download and install.

Issue Type: Bug
vscode-inno-updater.log
(I clicked on the popup that appeared in the lower right corner)
Please note that the version shown below is the new version that I needed to install manually after seeing a popup error message (also attached).
Manually downloading and installing worked just fine so no need to act on this issue, but I wanted to report it in any case.

VS Code version: Code 1.24.1 (24f62626b222e9a8313213fb64b10d741a326288, 2018-06-13T17:51:32.889Z)
OS version: Windows_NT x64 6.1.7601

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz (4 x 2594)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: disabled_softwarevideo_decode: enabledvideo_encode: enabledvpx_decode: unavailable_softwarewebgl: enabledwebgl2: enabled

Memory (System)
7.89GB (2.55GB free)

Process Argv
C:\Program Files\Microsoft VS Code\Code.exe

Screen Reader
no

VM
0%

Extensions (14)

Extension
Author (truncated)
Version

better-comments
aar
1.2.6

path-intellisense
chr
1.4.2

bracket-pair-colorizer
Coe
1.0.58

xml
Dot
2.3.1

sort-lines-by-selection
ear
0.0.3

rainbow-csv
mec
0.4.2

python
ms-
2018.6.0

unicode-latex
oij
1.1.1

progen-mtp
rob
0.0.1

tcl
ras
0.1.0

vscode-icons
rob
7.24.0

rust
rus
0.4.5

partial-diff
ryu
1.1.0

bash-beautify
sha
0.1.1

(3 theme extensions excluded)

Dupe of #47841 - Cause is unknown atm, so no idea how long it is until a fix, in the meantime you can update without issue by clicking 'Install Update' in vscode, then once it pops up the 'Restart VSCode to load update' message (I'm paraphrasing), just close the application
The next time you start it, the update will have been applied.

vscode-inno-updater.log
As instructed by installer

You seem to have #47841.
Please read this comment if you can provide more detail: https://github.com/Microsoft/vscode/issues/47841#issuecomment-393101777
Please read this one to disable background updates: https://github.com/Microsoft/vscode/issues/47841#issuecomment-395017687
Also read this one to try out our user setup: https://github.com/Microsoft/vscode/issues/47841#issuecomment-399941682


can support vue3

import { createApp } from 'vue'
import App from './App.vue'
import SimpleWebWorker from 'simple-web-worker'

const app = createApp(App)
app.config.globalProperties.$worker = SimpleWebWorker;

app.mount('#app')


Feature/conversation backport to 2.x

Description
Bring RAG pipeline and Conversation memory API into 2.x
Issues Resolved
#1150
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

#1288 will fix jarhell (should I just add those changes here independently too?)


gitbook/compass does not point to the correct docs

Describe the bug
odpf.gitbook.io/compass/ not showing the correct compass docs but redirect request to https://odpf.gitbook.io/raccoon/compass instead.
To Reproduce
Steps to reproduce the behavior:

Go to compass
Click on gitbook link below About section

Expected behavior
The link https://odpf.gitbook.io/compass/ should show the correct gitbook compass docs
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Need @ravisuhag help to check this 🙏🏼

This is fixed now.

This is fixed now.

thanks @ravisuhag 🙏🏼


XPathNSResolver interface tests broken in analyzer

The co19 tests that try to implement the XPathNSResolver interface now fail, because the interface contains new blink js_object methods after revision 4947e570d47bb72a057a2069e83b4e80f48468a3.
https://github.com/dart-lang/sdk/commit/4947e570d47bb72a057a2069e83b4e80f48468a3.
Either the tests are wrong (and createXPathNSResolver should be used), or these methods should not be on the interface.
The problem may be in sdk/lib/html/dartium/html_dartium.dart?
Marking the co19 tests as fail in tests/co19/co19-analyzer2.status.
Here is an example failure message:
FAILED: dart2analyzer-none-checked release_ia32 co19/LayoutTests/fast/xpath/attr-namespace_t02
Expected: Pass
Actual: StaticWarning
CommandOutput[dart2analyzer]:
stderr:
WARNING|STATIC_WARNING|NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_TWO|/mnt/data/b/build/slave/analyzer_experimental-linux-release-be/build/sdk/tests/co19/src/LayoutTests/fast/xpath/attr-namespace_t02.dart|14|7|17|Missing concrete implementation of setter 'XPathNSResolver.blink_jsObject' and getter 'XPathNSResolver.blink_jsObject'
Command[dart2analyzer]: DART_CONFIGURATION=ReleaseIA32 sdk/bin/dartanalyzer_developer --ignore-unrecognized-flags --enable_asserts --enable_type_checks --show-package-warnings --enable-async --package-root=out/ReleaseIA32/packages/ --machine --no-hints /mnt/data/b/build/slave/analyzer_experimental-linux-release-be/build/sdk/tests/co19/src/LayoutTests/fast/xpath/attr-namespace_t02.dart
Took 0:00:00.014000

Besides the 8 tests that implement the XPathNSResolver interface, there is another failing test that tries to implement the Rect interface.  Apparently , svg::Rect used to only implement x, y, width, and height, but now it also has  blink_jsObject:
FAILED: dart2analyzer-none-checked release_ia32 co19/LayoutTests/fast/svg/getbbox_t01
Expected: Pass
Actual: StaticWarning
CommandOutput[dart2analyzer]:
stderr:
WARNING|STATIC_WARNING|NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_TWO|/mnt/data/b/build/slave/analyzer_experimental-linux-release-be/build/sdk/tests/co19/src/LayoutTests/fast/svg/getbbox_t01.dart|63|7|6|Missing concrete implementation of setter 'Rect.blink_jsObject' and getter 'Rect.blink_jsObject'
Command[dart2analyzer]: DART_CONFIGURATION=ReleaseIA32 sdk/bin/dartanalyzer_developer --ignore-unrecognized-flags --enable_asserts --enable_type_checks --show-package-warnings --enable-async --package-root=out/ReleaseIA32/packages/ --machine --no-hints /mnt/data/b/build/slave/analyzer_experimental-linux-release-be/build/sdk/tests/co19/src/LayoutTests/fast/svg/getbbox_t01.dart
Took 0:00:00.010000

XPathNSResolver failures resolved a while ago.  These tests are now passing.  There is another bug mentioned in here which getbbox_t01 this tests fails on all non-chrome tests (FF, safari, IE).  Created new issue to track this issue https://github.com/dart-lang/sdk/issues/30014


ARROW-14739: [JS] ensure docs point to right source

@github-actions crossbow submit test-ubuntu-default-docs

@github-actions crossbow submit test-ubuntu-default-docs

@kuo @kszucs, it looks like the remote in the CI isn't set as described in https://cwiki.apache.org/confluence/display/ARROW/Release+Management+Guide. Can you help with that?

Could you try this?
diff --git a/dev/tasks/docker-tests/azure.linux.yml b/dev/tasks/docker-tests/azure.linux.yml
index b8f1151f7..dfa07a0d5 100644
--- a/dev/tasks/docker-tests/azure.linux.yml
+++ b/dev/tasks/docker-tests/azure.linux.yml
@@ -43,6 +43,7 @@ jobs:
       git -C arrow fetch -t {{ arrow.remote }} {{ arrow.branch }}
       git -C arrow checkout FETCH_HEAD
       git -C arrow submodule update --init --recursive
+      git -C arrow remote add upstream https://github.com/apache/arrow.git
     displayName: Clone arrow

   - script: pip install -e arrow/dev/archery[docker]

@github-actions crossbow submit test-ubuntu-default-docs


alerts/cluster-etcd-operator/etcdGRPCRequestsSlow.md: Improve

Add CPU resource exhaustion to the runbook.
Query that is used is the same console uses and you can clearly see which is the main at fault:

@hexfusion @hasbro17 @RiRa12621 please take a look, thanks!

/lgtm
/hold
super small nit, hence lgtm anyway, up to you if you want to change that, otherwise unhold to merge


The link to the pypi page is broken

In the readme file, the python package link is pointing to https://github.com/avallbona/Impostor/workflows/Python package/badge.svg?branch=master instead of https://pypi.org/project/Impostor/.

thanks, merged your pr. 🌹


Implementing a cloud-controller-manager without golang (i.e. as an REST API server or in another language

This is more of a question, not an issue. I'm looking for ways to implement a cloud controller manager for my cloud provider, but without using golang, since I'm building other parts of the infrastructure in other languages (i.e. C#).
Is it possible to expose CCM as a REST API server for other k8s components, or using the go language and cloud-provider package is a strict dependency?
Thanks.

CCM is effectively just a set of controllers. I.e. no Kubernetes component calls CCM, instead CCM reacts. To share the logic of those controllers, they call an interfaces in Go that can be implemented by each cloud provider. If you don't want to use Go you can't use that approach. However, technically, you could implement the controllers from scratch in any language.


./hack/verify-gendocs.sh verify failures

Shippable is failing on master and PRs.
Locally on master:
$ ./hack/verify-gendocs.sh
docs/api-conventions.md
----
table-of-contents:
contents were modified

docs/application-troubleshooting.md
----
table-of-contents:
contents were modified

docs/getting-started-guides/scratch.md
----
table-of-contents:
contents were modified

docs/high-availability.md
----
table-of-contents:
contents were modified

FAIL: changes needed but not made due to --verify
!!! Error in ./hack/verify-gendocs.sh:52
  '"${mungedocs}" "--verify=true" "--root-dir=${DOCROOT}"' exited with status 1
Call stack:
  1: ./hack/verify-gendocs.sh:52 main(...)
Exiting with status 1

Examples:

https://app.shippable.com/builds/55a425f0bd047d0c00e52b92
https://app.shippable.com/builds/55a44aaebd047d0c00e5c79b

Looks like failures to mungedocs --verify now explodes on https://github.com/GoogleCloudPlatform/kubernetes/blob/master/hack/verify-gendocs.sh#L52 without telling the user to run hack/run-gendocs.sh. Likely due to set -o errexit.

hack/run-gendocs.sh on master doesn't actually make any changes, but yet mungedocs --verify fails:
$ ./hack/verify-gendocs.sh
diffing /Users/karl/workspace/k8s/src/github.com/GoogleCloudPlatform/kubernetes/docs/ against freshly generated docs
/Users/karl/workspace/k8s/src/github.com/GoogleCloudPlatform/kubernetes/docs/ up to date.
/Users/karl/workspace/k8s/src/github.com/GoogleCloudPlatform/kubernetes/contrib/completions up to date.

_output/local/bin/darwin/amd64/mungedocs --verify=true --root-dir=$PWD/docs/ passes on master.

False alarm. Recent master changes are causing PRs that aren't rebased to fail ./hack/verify-gendocs.sh. They pass once rebased.

I synced to head and have no such problem.  Please resync
On Mon, Jul 13, 2015 at 6:39 PM, Karl Isenberg<EMAIL_ADDRESS>wrote:

Shippable is failing on master and PRs.
Locally on master:
$ ./hack/verify-gendocs.sh
docs/api-conventions.md
table-of-contents:
contents were modified
docs/application-troubleshooting.md
table-of-contents:
contents were modified
docs/getting-started-guides/scratch.md
table-of-contents:
contents were modified
docs/high-availability.md
table-of-contents:
contents were modified
FAIL: changes needed but not made due to --verify
!!! Error in ./hack/verify-gendocs.sh:52
'"${mungedocs}" "--verify=true" "--root-dir=${DOCROOT}"' exited with status 1
Call stack:
1: ./hack/verify-gendocs.sh:52 main(...)
Exiting with status 1
Examples:

https://app.shippable.com/builds/55a425f0bd047d0c00e52b92
https://app.shippable.com/builds/55a44aaebd047d0c00e5c79b

—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/11199.

Sorry, I responded by email before reading it all :)


Bug: Sorting by affected assets doesn't work

Sorting by affected assets on the vulnerabilities page doesn't work. That's a bummer, but sorting preferences are unfortunately stored in the user profile. Upon refreshing or visiting the page again, the user gets greeted by the following error page:
<class 'django.core.exceptions.FieldError'>

Cannot resolve keyword 'affected_assets' into field. Choices are: created, custom_field_data, cve, cvssaccessComplexity, cvssaccessVector, cvssauthentication, cvssavailabilityImpact, cvssbaseScore, cvssconfidentialityImpact, cvssintegrityImpact, description, id, journal_entries, last_updated, name, notes, tagged_items, tags, vulnerability_assignments

Python version: 3.10.6
NetBox version: 3.4.10

The user has to clear the table preferences manually in this case.

@alegru  Thank you for the report.
Please update for 34.0.1 if you are in Netbox 3.4.x or 35.0.2 if in 3.5.x


Budget Allocation: budget constraint not hold

Project Robyn
As suggested by @kyletgoldberg, I create this issue below, which is likely to be caused by some bug of allocator.
Describe issue
I’ve tried both scenarios of history-based optimization and future optimization with given budget.
My constraint over channels is (0.8,1.5) for each channel.
I found

in both of these cases, the optmResponseUnitTotalLift is negative. Meaning the uplift is negative after optimization.
in the future optimization case, I believe expSpendUnitTotal >= optmSpendUnitTotal  should always hold, but the result shows differently.

Provide dummy data & model configuration
I've check the model result, it has a R2 above 0.75, and no coefficients of our interest is zero.
So I've detected no abnormality in the model.
Environment & Robyn version
R version (R --version): 4.1.2
Robyn version: latest version

@kyletgoldberg
I think I found some clues. It turns out the order of model channels, and order of channels in allocator are different. And I think in budge allocator the spend share is matching to wrong channels names.
I've checked input of my model, and found nothing wrong there. paid_media_spends, paid_media_vars and hyperparamters assignment are in the same order.

X-ref: Possibly connected with the same issue

@laresbernardo
Hi thanks for your reply! I've tested using the branch you shared.
Part of problem is solved: Now the spend share are matching to the right channel names.
But two problems persist:

in the max_history case, after optimization, we increase spend share on channel 1, but the mean response of channel 1 decreased. This visualization is still confusing as some points are not lying on the response curve.
in the max future expense case, still the optimizationUnitTotal > expenseUnitTotal. I wonder is it because my expenseUnitTotal is much smaller than Initial Spend unit Total?

Hi @JiaMeihong
0. Glad to know we at list fixed that first issue :)

I can't seem to replicate those cases where the values are plotted outside the curves. I even set channel_constr_low = runif(5, 0, 1) and channel_constr_up = runif(5, 1, 5) and ran 10 random simulations and none plotted values outside the curve. I've also re-checked the code if we are sorting the variables and constraints before optimizing. I've slightly changed some code in that branch, maybe try updating the branch version again and retry, please. If not, let me know how can I replicate your case.
What do you mean? optmSpendUnitTotal values and expSpendUnitTotal (exp for expected, not expense) right? So the first one mentioned is the sum of the optimized results (optimal spend) and the second the sum of the expected spend for the period specified. They both depend on your expected_spend and expected_spend_days inputs. Do they make sense?

Hi @laresbernardo
Thanks for your reply!

I've tried with case of max_history, but still in my data, the dot is outside the line. I've tried with test data provided by Robyn, and for test data, it seems to work fine. Would it be possible I share with you my data, and you test with it?
Yes, I give the expected spend and expected inputs, and expect the optimized budget <= total budget give, and in my understanding,  expSpendUnitTotal >= optmSpendUnitTotal should always hold, but the result shows differently. Is it a bug or it's designed to be so?

Yes, I think sharing your data will def help me debug this. You can send it to me and I'll do my best to understand what's happening there. Share the data file and script you are running so I can replicate it exactly, please.

Feel free to re-open if the error or issue persists @JiaMeihong


Update main.py

Fixes "TypeError: use() got an unexpected keyword argument 'warn'"
Description
Please include a description of the change, and why it was needed.
Linked issues
Please link any issues this pull request related to. Using the word "closes" before the
link will mean the issue is automatically closed by this Pull Request.
Testing
Please describe how your changes have been tested.
Checklist

[ ] I have provided a good description of the change above
[ ] I have added any necessary tests
[ ] I have added all necessary type hints
[ ] I have checked my linting (docker-compose run --rm lint)
[ ] I have added/updated all necessary documentation
[ ] I have updated CHANGELOG.md, following the format from
Keep a Changelog.

Hey @ETretyakov, thanks for submitting the PR.
This error started in a newer version of matplotlib, so I wanted to get that upgraded too. There were also some additional issues with tests which needed fixing.
I've just merged https://github.com/jstockwin/py-pdf-parser/pull/191 which fixes everything, and includes your change. Apologies that it's not properly attributed to you in the commit history.

Superseeded by https://github.com/jstockwin/py-pdf-parser/pull/191


Post Agent : Post XMLwithout xml version

I have post agent as follows
{
"post_url": "https://api.api/api",
"expected_receive_period_in_days": "1",
"content_type": "xml",
"method": "post",
"xml_root": "root",
"payload": {
"sub-root": {
"Title": "Title",
"Date": "09/09/2009",
"Description": "Description"
}
},
"emit_events": "true",
"no_merge": "true",
"output_mode": "clean"
}
Response is
<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<response uri=\"/api"><error>null<message>null</message></error></response>\n"
The issue seems to be "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" which is sent as a first line of the XML Post.
Is it possible to send the post request without sending the version and encoding?
<root>           <Title>Title</Title>       <Date>09/09/2009</Date>      <Description>Description</Description>     </root>

That is a funny API, they don't accept the xml header but send it as part of their own response? 😄
The only way to to it is to set content_type: "application/xml" and the payload to a manually constructed XML string.

I don't know. Some kind of half baked API.
I tested the content_type: "application/xml" in beeceptor.com
Looks like maybe Json instead of xml
{"root"=>{ "sub-root"=>{ "Title"=>"Title", "Date"=>"09/09/2009", "Description"=>"Description"}}}
When I do content_type: "xml" the format is correct except for the xml version being included.

Yep that did it.
I looked at an older issue to figure our the string part. https://github.com/huginn/huginn/issues/2248


Add a Meme Generator Extension. I want to contribute under GSSOC' 24.

Is your feature request related to a problem? Please describe.
No, it is not an addition, not a problem.
Describe the solution you'd like
I would like to add a meme generator extension as I could not find any folder related to meme generator in the repository.
Describe alternatives you've considered
N/A
How do we know when the feature is complete?
I will send a PR and tag you Mam

Kindly add new Issues because this one already added to my repository #564


Dask arrays are not recognized as array in is_ndarray_like

Minimal, reproducible code sample, a copy-pastable example if possible
from numcodecs.ndarray_like import is_ndarray_like
import numpy as np
import dask.array as da
np_array = np.zeros((10,10))
da_array = da.zeros((10,10))
cast_da_array = np.array(da_array)
print(is_ndarray_like(da_array))
print(is_ndarray_like(np_array))
print(is_ndarray_like(cast_da_array))

False
True
True

Problem description
Not supporting compatibility with dask arrays as being array like for especially for Zarr persistence prevents chaining large computations and saving them gradually to zarr.
Version and installation information
Please provide the following:

Value of numcodecs.__version__ : 0.13.1
Version of Python interpreter : 3.12.3 (main, Sep 11 2024, 14:17:37) [GCC 13.2.0]
Operating system (Linux/Windows/Mac) : Linux
How NumCodecs was installed (e.g., "using pip into virtual environment", or "using conda") : using uv into virtualenv

Also, if you think it might be relevant, please provide the output from pip list or
conda list depending on which was used to install NumCodecs.

dask.array is not numpy-like: it generally doesn't have data in memory. However, when you act on the array, the operation is broken up to act on its partitions, so that within a task, you see only a real numpy array. This is exactly how to_zarr works, including partition encoding via numcodecs.
Do you have an actual workflow where you have an issue?


Adding book to Mathematics

Category Theory For Scientists:
http://ocw.mit.edu/courses/mathematics/18-s996-category-theory-for-scientists-spring-2013/textbook/MIT18_S996S13_textbook.pdf

should link to online version http://category-theory.mitpress.mit.edu/ which is newer.

And, we've made epub of the online version for unglue.it https://unglue.it/work/160275/

Any associated PR? Or is this issue open for work?

@switchhax PR welcome!

Good. Doing it tommorow

Could also be closed, i think ;)


Yoast SEO Integration for Metadata

Original discovery ampproject/amp-wp#3179

[x] Contribute upstream pull request to Yoast SEO.
[ ] Test integration with Yoast
[ ] Add Yoast SEO to testing environment

@spacedmonkey perhaps time to update that upstream PR?

https://github.com/Yoast/wordpress-seo/pull/15532 has been merged!
Follow-up tickets will be created to improve the integration.


FUTURE - Hotkey and keyboard navigation

Much longer term, but I'd like to be able to better navigate everything on the cont3xt page from the keyboard.
Along the lines of:
Ctrl-Q: Jump to the query bar
Ctrl-S: Share link
Ctrl-R: Generate Report
Ctrl-D: Jump to Date field
Something to trigger/navigate between the side panels.
The result boxes should be arrow key navigable, and right/left cursors move between integration results, basically reproducing the act of hovering with a mouse.

I guess make them Ctrl-Shift commands if Ctrl is already bound.


Message: Incorrect background color in tailwind-light theme

The Message and InlineMessage component background color for severity="error" messages is the same with the warning background in tailwind-light theme.

Tailwind Light theme is not maintained anymore due to actual Tailwind integraton with unstyled mode


Screen reader announces table header twice.

Reproduction
Use StackBlitz to reproduce your issue: [https://stackblitz.com/angular/xekbmvlqeqj?file=src%2Fapp%2Ftable-sorting-example.html]
Steps to reproduce:

Create a table with sorting as dpcumented here: https://material.angular.io/components/sort/overview

or - click the Stackblitz example on the same page

Ensure NVDA Reader is installed and enabled (https://www.nvaccess.org/)
Use the provided example for a sorting table on the same page and watch the NVDA speech output when you click a header name. [https://stackblitz.com/angular/xekbmvlqeqj?file=src%2Fapp%2Ftable-sorting-example.html]

Expected Behavior
What behavior were you expecting to see?
It announce the column once like "Change sorting for name  column 2  clickable"
Actual Behavior
NVDA reader announces the element twice as "Change sorting for name  column 2  clickable  Change sorting for name  button"
What behavior did you actually see?
See above for actual nehavior
Environment

Angular:
CDK/Material: 9.1.0
Browser(s): Chrome
Operating System (e.g. Windows, macOS, Ubuntu): Windows

Duplicate of #13012


Bring mutation coverage above 90 %

This PR increases mutation coverage, fixing some hidden bugs in the process.

I merged this, since Appveyor passed and Travis is having an outage.