:book: Add the document to adjust the log level

Summary
Related issue(s)
https://github.com/stolostron/multicluster-global-hub/issues/1178
https://github.com/stolostron/multicluster-global-hub/pull/1184
https://github.com/stolostron/multicluster-global-hub/pull/1185
Fixes #
Tests

[ ] Unit/function tests have been added and incorporated into make unit-tests.
[ ] Integration tests have been added and incorporated into make integration-test.
[ ] E2E tests have been added and incorporated into make e2e-test-all.
[ ] List other manual tests you have done.

/retest

/retest


[WIP] inactive groups and users

Can one of the admins verify this patch?

@alvacouch I have made some changes to hs_access_control app as it relates to inactive groups. Can you do a review of these changes? Then I can add unit tests to account for the changes.

@pkdash This looks fine to me. I presume that you've searched for all Group.objects.filter instances? Every one you changed looks correct.
(I had asked whether this feature was needed and everyone said no :)

@alvacouch Thanks for the quick feedback. Couple of places I am not filtering out inactive groups. For example, user.uaccess.owned_groups thinking that we want to be able to get all owned groups so that the owner can make the inactive group active. Looking at what @mauriel133 is in the process of implementing for groups at the front-end, I think this change is needed at the backend.

@pkdash Your changes are parallel to my access control decisions. So I fully support them. +1.

@alvacouch You are probably right that no one needed this feature where a group can be set to inactive state. I just checked with @mauriel133 and he is not providing functionality at the UI level to set the 'active' flag for groups. Just to address this issue, I am thinking to rollback the changes that I made to the access control app and make those changes in a separate issue. This PR will then have  only changes that prevents seeing the inactive users or groups in the access control UI panel. If I keep the changes I have made to the access control then I need to write unit tests to account for those changes before the PR can be merged. Your thoughts?

no one needed this feature where a group can be set to inactive state

This will depend on provenance and whether or not a group can be deleted.
If there is a possibility of a reference to a group ever being embedded into metadata anywhere then we'll want to persist the notion of that group whether it's active or not.
Perhaps the question should be, how is the notion of delete handled for groups?

@pkdash @hyi @mjstealey @horsburgh @mauriel133
The question has been asked as to whether we really need to be able to set a group to inactive. The answer last time was 'no'.
Well, let me think about this out loud and relay how we thought about this last time: :

there is no way to embed the concept of a group into a resource, and
no concept at present of having a group change a resource (that's always an individual), so that
deleting a group can't change a resource, but
we do embed the group into the discovery document for a resource, so
we really should trap group deletion and update the discovery records.
(This will of course be corrected during the overnight harvests).

System wide, groups give change privileges to individuals but there is no way at present for a change to be attributed to a group; just to individuals in a group. This is mostly a security feature; it is unwise to log a change that can't be attributed to an individual.
Accordingly, it is my judgement that there will never be a reason to reference a group from a resource..
Thus, there is no reason we can't just delete a group we don't want.
Thus, there is no real use case for an inactive group.
This was our thinking last time.

access_control app allows deleting of groups. The group functionality UI that Mauriel is working on has that feature. Deleting a group deletes all membership information and sharing information.

The only real use case for making a group inactive is if you want to make it active again later. For example, you might want to "punish" a group for doing something shady and then re-enable the group when that's fixed. Or, you might want to disable all group privileges while doing forensics on who did what when to ruin a resource....

@mjstealey @pkdash @hyi
Access control 3.0 (that I worked on in Jan until classes started) has the notion of group provenance and keeps that provenance even if you delete the group. Thus one can do forensics on access control even after deleting a group.
That means that even when you delete a group, there is still a concept somewhere in the system of what that group was and who its members and resources were. Thus one could write code to reconstruct a group from its provenance. No such code exists yet.
.

I hope this does not muddy the waters.  In my thinking, and in some of our earlier writing about the party model (the HIC paper for example), a group could be named as a creator (author) or contributor to a resource.  This is similar to an organization being named as a creator or contributor.  This is a way that a group can be embedded in a resource.  However I do not see any inconsistency between this and the group later becoming inactive or deleted.  People and organizations who are resource authors become inactive (deceased, bankrupt etc).  Them being a creator is simply a matter of record and does not require that they be entities in HydroShare.  There may however be broken links to the URL landing pages of such entities as part of the resource (a problem I think we should ignore).  It simply reflects that there was a group named X that created or contributed to resource Y at the time it was made, but that group may no longer exist.

I think we should somehow handle broken links. There's nothing worse in browsing the web than hitting dead ends - and we will lose confidence from users if we don't handle them in some way.
In the case that a user or group ceases to exist, is there a way to either remove the links, park them somehow so they point at a "Group or user deleted" page, or evaluate to a custom error page that handles this?

@horsburgh I am worried that this line of thinking takes one down a rabbit hole.  Much is possible.  Removing links could be done, but that would mean someone without permissions perhaps (the group deleter may not have permissions on the resource) changing the resource.  Also what if it is published and immutable.  We could make a policy decision that such changes are not tangible changes so are allowed, but checksums on bags get altered.  We could park the links to a custom error page.  We probably need a custom page not found error page in HydroShare in any event, but that is only very slightly better than not found at all.  I suspect it is going to be rare for groups to be deleted, and rare for groups that are authors or creators to be deleted so it is not an imminent problem.  I'd put much higher priority on just getting group functionality into existence.

@horsburgh @dtarb
All other things aside, just figure out what you want. I myself am fairly glad we are ignoring most of the party model.
If we want to have a group as creator of a resource, then we need to keep the group around forever. Thus we need active/inactive and cannot safely delete a group.
If we can do without having a group as creator of a resource, then it Is reasonable to just delete a group.

@dtarb - Inactivating groups rather than deleting would solve the problem of potentially broken links as @alvacouch suggests. So, if we want to support the use case of HydroShare Groups being creators or contributors for resources, then that's the route we should go.

@horsburgh @dtarb @pkdash

(The reason that I am keeping group privilege and membership around is to enable forensics in case things go wrong. We are allowing a fairly flexible group model and I presume that it will come up that people will want to know what the heck happened to a resource.)

@mjstealey Any idea why this PR build is failing?


No devices detected when switched to the official integration

Describe the bug
Removed the integration from HACS and unconfigured it and replaced it with the official one. No devices were detected there.
Expected behavior
I should be able to use the devices which were present in the HACS version of the integration.
Screenshots

Home Assistant Version
core-2021.10.0
Device info (please complete the following information, which can be found in log):
Two mcs door switches.
Additional context
Add any other context or logs about the problem here.
In the official version there's no choice to pick which app was used to set the devices, I suspect it might be picking Smart life instead of Tuya.

I'm also suffering from this issue, none of my dimmer switches are listed.

I too have difficulties, have gone from 39 devices down to 33 after upgrading. Also changed all the entities ID

Same here but i can't login into Developpers console, it's busy and my log say :
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 304, in async_setup
result = await component.async_setup_entry(hass, self)  # type: ignore
File "/usr/src/homeassistant/homeassistant/components/tuya/init.py", line 59, in async_setup_entry
success = await _init_tuya_sdk(hass, entry)
File "/usr/src/homeassistant/homeassistant/components/tuya/init.py", line 71, in _init_tuya_sdk
auth_type = AuthType(entry.data[CONF_AUTH_TYPE])
KeyError: 'auth_type'

I just found out that just cause the devices are listed on the cloud page does NOT neccessarily mean that the correct region is used for the cloud setup. My devices show under "Central Europe", but Tuya v2 only sees them when I set it to "Western Europe".

Guys you need to add authorizations in IOT Platform... Only then devices will be seen by HA.

Of course I have added authorizations in IOT platform, but integration recognizes only one of my two tuya devices - 1ch switch. The second one - 2ch switch - just not found. :( On Tuya IOT platform there are both devices recognized and both shown as "online".

Exactly what I was thinking. Tuya definitely made some changes. Two days ago every scene I created in the Tuya app showed up in HA after a restart. Now zero. Hope they will fix it asap.

Guys you need to add authorizations in IOT Platform... Only then devices will be seen by HA.

Of course I have added authorizations in IOT platform, but integration recognizes only one of my two tuya devices - 1ch switch. The second one - 2ch switch - just not found. :( On Tuya IOT platform there are both devices recognized and both shown as "online".

Same here. My IOT already had that authorization but I still can't see any of my devices. Hope for a quick fix...

Same in my HA. Tuya integration added to Home Assistant but without devices/entities. From the project on iot.tuya.com all devices are visible and active. No errors in log files.

Mine is the same - it puts down the Tuya Scenes but not the devices/entities...

I too have the same similar problem. I have these light switches that was the most recent addition to my Tuya collection and they don't show up in HA using the new Tuya integration.
https://community.home-assistant.io/t/tuya-integration-issue-since-2021-10-new-version/345200
I have 27 devices, light bulbs, switches and dimmer switches. The only 3 that failed to show up in the new integration was my new dimmer light switches. I know for a fact the original integration worked like a charm and showed all 27 devices instead of 24 with the new integration.
I think the new Tuya integration needs a bit more polishing.

Same in my HA. Tuya integration added to Home Assistant but without devices/entities. From the project on iot.tuya.com all devices are visible and active. No errors in log files.

I've just added 4 API's to the project on iot.tuya.com ("Smart Home Devices Management", "Authorization", "General Equipment Management", "Device Log Query") and my integration is working now (with all devices and entities). I don't know which of API's has fixed the problem but I have no time to check it now :-)

Same in my HA. Tuya integration added to Home Assistant but without devices/entities. From the project on iot.tuya.com all devices are visible and active. No errors in log files.

I've just added 4 API's to the project on iot.tuya.com ("Smart Home Devices Management", "Authorization", "General Equipment Management", "Device Log Query") and my integration is working now (with all devices and entities). I don't know which of added API's has fixed the problem but I have no time to check it now :-) If somebody recognizes the proper one - please report.

The only one I didnt have was Device Log Query but did fix the issue. Do you have any dimmer switches?

Same in my HA. Tuya integration added to Home Assistant but without devices/entities. From the project on iot.tuya.com all devices are visible and active. No errors in log files.

I've just added 4 API's to the project on iot.tuya.com ("Smart Home Devices Management", "Authorization", "General Equipment Management", "Device Log Query") and my integration is working now (with all devices and entities). I don't know which of added API's has fixed the problem but I have no time to check it now :-) If somebody recognizes the proper one - please report.

The only one I didnt have was Device Log Query but did fix the issue. Do you have any dimmer switches?

My only tuya devices are dimmer switches, and this API trick did not work for me.

I have created a new project. I've been seeing my devices ever since. I can also switch it on, but Tuya does not reply that the device is switched on. With that I can no longer turn it off. Are all sockets.

Seeing this issue as well, 4/5 devices imported, but the newest one in tuya is not imported.

So according to @zlinoliver the sensor platform is not supported in Tuya integration(core-2021.10.0) yet
https://github.com/home-assistant/core/issues/57251#issuecomment-939391002
Guess we'll have to stick with core-2021.9.7 for now.

Same in my HA. Tuya integration added to Home Assistant but without devices/entities. From the project on iot.tuya.com all devices are visible and active. No errors in log files.

I've just added 4 API's to the project on iot.tuya.com ("Smart Home Devices Management", "Authorization", "General Equipment Management", "Device Log Query") and my integration is working now (with all devices and entities). I don't know which of added API's has fixed the problem but I have no time to check it now :-) If somebody recognizes the proper one - please report.

The only one I didnt have was Device Log Query but did fix the issue. Do you have any dimmer switches?

No, I don't.

Just for the sake of things, I've submitted a ticket with the Tuya IoT site and see if they can shed any light on our issue

With TUYA v2 I had all the door sensors and motion sensors, with this official integration everything disappeared, only the switches remain.
There are only 32 sensors...
All devices are there in the IoT, but they don't pass the sensors to the Home Assistant
It's too early to install, I had to go back to TUYA v2

Hi All,
Surprisingly Tuya support replied to me with an answer about the integration, below is the link for supported devices on the current integration:
https://github.com/tuya/tuya-home-assistant/wiki/Supported-Device-Category?_source=f5f782752be3c4a9157ec47514d6091b
I am now waiting to see if they plan to add more devices in the future.

Hi there! I live in Moscow, my region in Tuya IoT Platform - Central Europe. I have 28 Tuya devices, all of them showing in IoT Tuya.  after update skill in HA I see only 12 devices. Half of my lights switches not supported.. it’s bad(

Hi there! I live in Moscow, my region in Tuya IoT Platform - Central Europe. I have 28 Tuya devices, all of them showing in IoT Tuya. after update skill in HA I see only 12 devices. Half of my lights switches not supported.. it’s bad(

hey you have to wait for the 2021.11 update which should be releasing soon by the look of things

2021.11 has fixed this for me (just updated docker).

2021.11 has fixed this for me (just updated docker).

ditto, they just removed it from beta, and updated to the latest version, it shows up in HA, hooray!. Thanks frenck for updating the code and the other developers!

My mcs sensors showed up after updating to core-2021.11.0 . Thanks a lot!

Sorry to bump this old thread, but it is still not working for me. I add the Tuya integration and account data, but no devices get detected, I have tried choosing different countries near Spain.
localtuya works fine with many devices, but it lacks camera support.
Here is a debug from tuya-iot component:
2022-09-12 10:50:30.826 INFO (MainThread) [homeassistant.setup] Setting up tuya
2022-09-12 10:50:30.826 INFO (MainThread) [homeassistant.setup] Setup of domain tuya took 0.0 seconds
2022-09-12 10:50:30.853 DEBUG (SyncWorker_9) [tuya_iot] Request: method = POST,                 url = https://openapi.tuyaeu.com/v1.0/iot-03/users/login,                params = None,                body = {'username'<EMAIL_ADDRESS>'password': ''},                t =<PHONE_NUMBER>853
2022-09-12 10:50:31.656 DEBUG (SyncWorker_9) [tuya_iot] Response: {
2022-09-12 10:50:31.754 DEBUG (MainThread) [tuya_iot] start
2022-09-12 10:50:31.760 DEBUG (Thread-3) [tuya_iot] Request: method = POST,                 url = https://openapi.tuyaeu.com/v1.0/iot-03/open-hub/access-config,                params = None,                body = {'uid': '', 'link_id': '***', 'link_type': 'mqtt', 'topics': 'device', 'msg_encrypted_version': '2.0'},                t =<PHONE_NUMBER>760
2022-09-12 10:50:31.765 DEBUG (SyncWorker_0) [tuya_iot] Request: method = GET,                 url = https://openapi.tuyaeu.com/v1.0/iot-02/assets/-1/sub-assets,                params = {'asset_id': '-1', 'last_row_key': '', 'page_size': 100},                body = None,                t =<PHONE_NUMBER>765
2022-09-12 10:50:31.908 DEBUG (SyncWorker_0) [tuya_iot] Response: {
2022-09-12 10:50:31.972 DEBUG (SyncWorker_0) [tuya_iot] Request: method = GET,                 url = https://openapi.tuyaeu.com/v1.0/iot-02/assets/1522414273347845/devices,                params = {'last_row_key': '', 'page_size': 100},                body = None,                t =<PHONE_NUMBER>972
2022-09-12 10:50:32.066 DEBUG (Thread-3) [tuya_iot] Response: {
"url": "ssl://m1.tuyaeu.com:8883",
2022-09-12 10:50:32.067 DEBUG (Thread-3) [tuya_iot] connecting ssl://m1.tuyaeu.com:8883
2022-09-12 10:50:32.135 DEBUG (SyncWorker_0) [tuya_iot] Response: {
2022-09-12 10:50:32.148 DEBUG (SyncWorker_0) [tuya_iot] Request: method = GET,                 url = https://openapi.tuyaeu.com/v1.0/iot-02/assets/1522414273347845/sub-assets,                params = {'asset_id': '1522414273347845', 'last_row_key': '', 'page_size': 100},                body = None,                t =<PHONE_NUMBER>148
2022-09-12 10:50:32.290 DEBUG (Thread-3) [tuya_iot] _on_log: Sending CONNECT (u1, p1, wr0, wq0, wf0, c1, k60) client_id=b'cloud_8e37500d86d77440cb5ae34f832b2aff'
2022-09-12 10:50:32.319 DEBUG (SyncWorker_0) [tuya_iot] Response: {
2022-09-12 10:50:32.336 DEBUG (Thread-4 (_thread_main)) [tuya_iot] _on_log: Received CONNACK (0, 0)
2022-09-12 10:50:32.359 DEBUG (Thread-4 (_thread_main)) [tuya_iot] connect flags->{'session present': 0}, rc->0
2022-09-12 10:50:32.382 DEBUG (Thread-4 (_thread_main)) [tuya_iot] _on_log: Sending SUBSCRIBE (d0, m1) [(b'cloud/token/in/67231c8fa59e77daa8d38af330e56ca9', 0)]
2022-09-12 10:50:32.438 INFO (MainThread) [homeassistant.components.alarm_control_panel] Setting up alarm_control_panel.tuya
2022-09-12 10:50:32.444 INFO (MainThread) [homeassistant.components.binary_sensor] Setting up binary_sensor.tuya
2022-09-12 10:50:32.445 DEBUG (Thread-4 (_thread_main)) [tuya_iot] _on_log: Received SUBACK
2022-09-12 10:50:32.446 DEBUG (Thread-4 (_thread_main)) [tuya_iot] _on_subscribe: 1
2022-09-12 10:50:32.447 INFO (MainThread) [homeassistant.components.button] Setting up button.tuya
2022-09-12 10:50:32.451 INFO (MainThread) [homeassistant.components.camera] Setting up camera.tuya
2022-09-12 10:50:32.457 INFO (MainThread) [homeassistant.components.climate] Setting up climate.tuya
2022-09-12 10:50:32.463 INFO (MainThread) [homeassistant.components.cover] Setting up cover.tuya
2022-09-12 10:50:32.466 INFO (MainThread) [homeassistant.components.fan] Setting up fan.tuya
2022-09-12 10:50:32.472 INFO (MainThread) [homeassistant.components.humidifier] Setting up humidifier.tuya
2022-09-12 10:50:32.481 INFO (MainThread) [homeassistant.components.light] Setting up light.tuya
2022-09-12 10:50:32.484 INFO (MainThread) [homeassistant.components.number] Setting up number.tuya
2022-09-12 10:50:32.487 INFO (MainThread) [homeassistant.components.scene] Setting up scene.tuya
2022-09-12 10:50:32.491 INFO (MainThread) [homeassistant.components.select] Setting up select.tuya
2022-09-12 10:50:32.498 INFO (MainThread) [homeassistant.components.sensor] Setting up sensor.tuya
2022-09-12 10:50:32.502 INFO (MainThread) [homeassistant.components.siren] Setting up siren.tuya
2022-09-12 10:50:32.506 INFO (MainThread) [homeassistant.components.switch] Setting up switch.tuya
2022-09-12 10:50:32.509 INFO (MainThread) [homeassistant.components.vacuum] Setting up vacuum.tuya
2022-09-12 10:51:32.967 DEBUG (Thread-4 (_thread_main)) [tuya_iot] _on_log: Sending PINGREQ
2022-09-12 10:51:33.009 DEBUG (Thread-4 (_thread_main)) [tuya_iot] _on_log: Received PINGRESP
My diagnostics:
{
"home_assistant": {
"installation_type": "Home Assistant Supervised",
"version": "2022.9.2",
"dev": false,
"hassio": true,
"virtualenv": false,
"python_version": "3.10.5",
"docker": true,
"arch": "aarch64",
"timezone": "Europe/Madrid",
"os_name": "Linux",
"os_version": "4.9.269",
"supervisor": "2022.08.6",
"host_os": "CoreELEC (official): 19.5-Matrix_rc2",
"docker_version": "19.03.15",
"chassis": "",
"run_as_root": true
},
"custom_components": {
"meross_lan": {
"version": "2.6.1",
"requirements": []
},
"localtuya": {
"version": "4.1.0",
"requirements": []
},
"hacs": {
"version": "1.27.2",
"requirements": [
"aiogithubapi>=22.2.4"
]
}
},
"integration_manifest": {
"domain": "tuya",
"name": "Tuya",
"documentation": "https://www.home-assistant.io/integrations/tuya",
"requirements": [
"tuya-iot-py-sdk==0.6.6"
],
"dependencies": [
"ffmpeg"
],
"codeowners": [
"@Tuya",
"@zlinoliver",
"@frenck"
],
"config_flow": true,
"iot_class": "cloud_push",
"dhcp": [
{
"macaddress": "105A17*"
},
{
"macaddress": "10D561*"
},
{
"macaddress": "1869D8*"
},
{
"macaddress": "381F8D*"
},
{
"macaddress": "508A06*"
},
{
"macaddress": "68572D*"
},
{
"macaddress": "708976*"
},
{
"macaddress": "7CF666*"
},
{
"macaddress": "84E342*"
},
{
"macaddress": "D4A651*"
},
{
"macaddress": "D81F12*"
}
],
"loggers": [
"tuya_iot"
],
"is_built_in": true
},
"data": {
"endpoint": "https://openapi.tuyaeu.com",
"auth_type": 1,
"country_code": "34",
"app_type": "",
"mqtt_connected": true,
"disabled_by": null,
"disabled_polling": false,
"devices": []
}
}
Is this component supposed to be working properly with latest homeassistant? Does it work with Tuya cameras?
Thank you!


Moving between pages

Hi there,
Could you please advise how to correct switch two dashboards every X seconds.
My way:
I made simple datasourcePlugin, whitch is switching pages.
`
(function () {
var pageSwitcher = function (settings, updateCallback) {
var self = this;
var init = false;
var updateTimer = null;
var currentSettings = settings;
	function updateRefresh(refreshTime) {
		if (updateTimer) {
			clearInterval(updateTimer);
		}

		updateTimer = setInterval(function () {
			self.updateNow();
		}, refreshTime);
	}

	updateRefresh(currentSettings.switchTime * 1000);

	this.updateNow = function () {
        if(!init){
            init = true;
            return;
        }
        const pages = freeboard.pagesData();
        const currentPage = freeboard.currentPage();
        const pageKeys =Object.keys(pages);
        let indx = pageKeys.findIndex(p => p === currentPage);
        indx++;
        if(indx == pageKeys.length)indx=0;
        console.log(`Going to page \"${pageKeys[indx]}\"...`)
        freeboard.gotoPage(pageKeys[indx]);
        updateCallback(pageKeys[indx]);
	}

	this.onDispose = function () {
		clearInterval(updateTimer);
		updateTimer = null;
	}

	this.onSettingsChanged = function (newSettings) {
		currentSettings = newSettings;
		updateRefresh(currentSettings.refresh * 1000);
		self.updateNow();
	}
};

freeboard.loadDatasourcePlugin({
    "type_name": "pageSwitcher",
    "display_name": "pageSwitcher",
    "settings": [
        {
            "name": "switchTime",
            "display_name": "Switch Every",
            "type": "number",
            "suffix": "seconds",
            "default_value": 10
        }
    ],
    newInstance: function (settings, newInstanceCallback, updateCallback) {
        newInstanceCallback(new pageSwitcher(settings, updateCallback));
    }
});

}());
`
But the problem is that after few hours running freeboard not rendering any widget any more. And I have empty panels.
I realized that after each freeboard.gotoPage() are created new instances of widgets. I dont know what happens with old instances. Maybe soem memory problem occures., test PC has 4GB ram and only chrome opened with this page.
Thanks,
Kuan.

Not sure why I didn't get an issue notification for this before,  but it does seem to be a memory leak.  A lot of stuff looks to be allocated in knockout.js, and may have to do with one of these issues: http://www.knockmeout.net/2014/10/knockout-cleaning-up.html


support Windows

Previously, development and testing have taken place on Unix-like operating systems, in particular Ubuntu and Debian GNU/Linux.
The task of this issue is to add Microsoft Windows as a build target.

Consider using a CI service that provides Windows hosts, e.g., AppVeyor.


Prepare for CakePHP 3.6: Remove deprecations

Fix Tests and Helpers to remove deprecation warnings introduced in CakePHP 3.6

Merging directly into master since it is compatible with CakePHP 3.4, will merge to v3.2.1 as soon as possible.


WIP - Fix bug in state handling in Vera Switch and Light

Description:
Fixes a long standing bug in Vera switch and Light state handling.
@bwmcin could you check this fixes your bug.
@dpembo this may also be the solution to the weird bug you and I failed to track down in January. Could you try?
I'm not in the same place as my Vera - so need to do some more testing before this is merged (hence WIP).
Related issue (if applicable): fixes https://github.com/home-assistant/home-assistant/issues/6650
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#<home-assistant.github.io PR number goes here>
Example entry for configuration.yaml (if applicable):

Checklist:
If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] Tests have been added to verify that the new code works.

The changes proposed are consistent with the change I made to my source when I originally diagnosed the problem.  Thank you for the update.

Thanks, I'll give this a test!
On 4 Apr 2017, 10:09, at 10:09, Greg Dowling<EMAIL_ADDRESS>wrote:

Description:
Fixes a long standing bug in Vera switch and Light state handling.
@bwmcin could you check this fixes your bug.
@dpembo this may also be the solution to the weird bug you and I failed
to track down in January. Could you try?
I'm not in the same place as my Vera - so need to do some more texting
before this is merged (hence WIP).
Related issue (if applicable): fixes
https://github.com/home-assistant/home-assistant/issues/6650
Pull request in
home-assistant.github.io
with documentation (if applicable):
home-assistant/home-assistant.github.io#<home-assistant.github.io PR
number goes here>
Example entry for configuration.yaml (if applicable):

Checklist:
If user exposed functionality or configuration variables are
added/changed:

[ ] Documentation added/updated in
home-assistant.github.io

If the code communicates with devices, web services, or third-party
tools:

[ ] Local tests with tox run successfully. Your PR cannot be
merged unless tests pass
[ ] New dependencies have been added to the REQUIREMENTS variable
(example).
[ ] New dependencies are only imported inside functions that use them
(example).
[ ] New dependencies have been added to requirements_all.txt by
running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Local tests with tox run successfully. Your PR cannot be
merged unless tests pass
[ ] Tests have been added to verify that the new code works.

You can view, comment on, or merge this pull request online at:
https://github.com/home-assistant/home-assistant/pull/6931
-- Commit Summary --

Fix bug in state handling.

-- File Changes --
M homeassistant/components/light/vera.py (4)
M homeassistant/components/switch/vera.py (4)
-- Patch Links --
https://github.com/home-assistant/home-assistant/pull/6931.patch
https://github.com/home-assistant/home-assistant/pull/6931.diff
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/home-assistant/home-assistant/pull/6931


[WIP] proto-build: format prost/tonic output

Closes #15.
Enables the format option of tonic-build in hopes of addressing the reproducibility problems noted in #15.

Note: 55c02b5 contains the changes to proto-build in isolation.

I dumb, misread the force push lines didn't see the second commit.


More error updates

@vitaly-t I had already deleted the file you changed as part of a bigger refactor when you opened #149 :frowning:
I tried to cherry-pick that commit in, but couldn't get it to work. Normally I wouldn't do this, but I took the idea you proposed and added it into this refactored system; the commit was lost. Sorry about that! I did add your name to one of the code comments though.
The two ideas from you are

using the name rather than the code internally (i.e. noData versus hardcoding 0)
check to make sure that it's a pgp QueryResponseError before doing the code check

I won't merge this one til I get a :+1: from ya :stuck_out_tongue:
Thanks for continuing to code review this!

Are you asking for approval for changing your own code? That is funny :)
Or do you need my help in restoring the code you lost? :)
A little confusing, sorry :)

Are you asking for approval for changing your own code? That is funny :)
Or do you need my help in restoring the code you lost? :)

haha, nah – neither of those. I thought your ideas were good, and I just wanted to know if you felt that this captured the spirit of your changes.

Cool, man! :)
I have looked through your new code - it seems fine, as long as you are not using some internal numbers or error text, because those things can get refactored, and then your code breaks ;)


replace TSC signal handler with Dispatch's

motivation: DispatchSignalSource is a supported cross platform signal handing API, we do not need a custom one in TSC
changes:

replace use TSC's InterruptHandler with DispatchSignalSource
fix an issue where some git processes did not get registered with the ProcessSet for termination candidates

@swift-ci please smoke test

I think that this might work:
diff --git a/Sources/Commands/SwiftTool.swift b/Sources/Commands/SwiftTool.swift
index 184d117d..17baf7e6 100644
--- a/Sources/Commands/SwiftTool.swift
+++ b/Sources/Commands/SwiftTool.swift
@@ -26,6 +26,10 @@ import TSCUtility
 import Workspace
 import XCBuildSupport

+#if os(Windows)
+import WinSDK
+#endif
+
 typealias Diagnostic = TSCBasic.Diagnostic

 private class ToolWorkspaceDelegate: WorkspaceDelegate {
@@ -297,6 +301,10 @@ public class SwiftTool {
     /// The current build system reference. The actual reference is present only during an active build.
     let buildSystemRef: BuildSystemRef

+#if os(Windows)
+    static var storage: (ProcessSet, BuildSystemRef)?
+#endif
+
     /// The execution status of the tool.
     var executionStatus: ExecutionStatus = .success

@@ -341,6 +349,22 @@ public class SwiftTool {
             let buildSystemRef = BuildSystemRef()

             // trap SIGINT to terminate sub-processes, etc
+#if os(Windows)
+            _ = SetConsoleCtrlHandler({ _ in
+                // Terminate all processes on receiving an interrupt signal.
+                SwiftTool.storage?.0.terminate()
+                SwiftTool.storage?.1.buildSystem?.cancel()
+
+                // Reset the handler.
+                _ = SetConsoleCtrlHandler(nil, false)
+
+                // Exit as if by signal()
+                TerminateProcess(GetCurrentProcess(), 3)
+
+                return true
+            }, true)
+            SwiftTool.storage = (processSet, buildSystemRef)
+#else
             signal(SIGINT, SIG_IGN)
             let interruptSignalSource = DispatchSource.makeSignalSource(signal: SIGINT)
             interruptSignalSource.setEventHandler {
@@ -351,10 +375,7 @@ public class SwiftTool {
                 processSet.terminate()
                 buildSystemRef.buildSystem?.cancel()

-#if os(Windows)
-                // Exit as if by signal()
-                TerminateProcess(GetCurrentProcess(), 3)
-#elseif os(macOS) || os(OpenBSD)
+#if os(macOS) || os(OpenBSD)
                 // Install the default signal handler.
                 var action = sigaction()
                 action.__sigaction_u.__sa_handler = SIG_DFL
@@ -376,6 +397,7 @@ public class SwiftTool {
 #endif
             }
             interruptSignalSource.resume()
+#endif

             self.processSet = processSet
             self.buildSystemRef = buildSystemRef


Fixed typo in README

Changed from:

You can get the time of the sunset on a specific date by passing in instance of Carbon\Carbon to sunrise

to:

You can get the time of the sunset on a specific date by passing in instance of Carbon\Carbon to sunset

Thanks!


vgTracks uses reference check instead of angular.equals

I am having issues when changing the subtitle track. I have a dropdown that contains a list of cc's and when one is selected I need to swap out the tracks. doing
self.config.tracks = [{ 					src: $sce.trustAsResourceUrl(vTTUrl + '/' + newVal), 					default: true, 					type: 'text/vtt' 				}];
doesn't trigger the watch function. Was this meant to watch the reference only? Can this be changed to be configurable? If so I could submit a PR.
Thanks.

This issue is actually caused by not setting a label on the track object. It is very weird that cc/subtitles work when loading but not when switching cc/sub due to not having a label. This should be better documented.


please give a openai.api_base = URL input way for demo in https://chat.xlang.ai/

Due to some reason，someone only use openai key from unofficial website，please give a openai.api_base = URL input way for demo in https://chat.xlang.ai/

https://github.com/xlang-ai/OpenAgents/blob/c6a0e4e84374bdc064fe61d9c89ba10ff3a898b4/frontend/utils/app/const.ts#L5-L6
set OPENAI_API_HOST env will replace

Hi, do you request an extension for api base to use other LLMs? We have a tutorial for extension of LLM/agents/tools in the README, could you whether that helps you?

Thanks for for your reply, I only hope that the project‘s author can add a input item for this project demo of https://chat.xlang.ai/ ,that is  openai.api_base = URL besides  openai.api_key = "my key". I want use the demo by my unofficial gpt4 key that use openai.api_base because I have not install the project in local and the openai ban the gpt4 in china


Question : Controllers standby test

https://github.com/apache/openwhisk/blob/ba871e59f7b77f02689a13e4e24e438645d67a47/tests/src/test/scala/ha/ShootComponentsTests.scala#L142-L145
'use controller1 if controller0 goes down' test in  ShootComponentsTests.scala does following procedures.

restart controller0 container
/ping controller0 until it’s down
/ping controller1 to check it’s still up
( Invoke Action(POST) + Get Action(GET) ) * 96 to nginx

Isn't there a case when nginx will forward the first POST request to controller0 that is not ready to take requests? ( in state  container up, but the backend in the container not)
Such behaivor will result in connection reset by peer which is not in Swagger Spec, failing the test.

I believe the test case does not guarantee no request is sent to the failed controller.
It allows some level of unsuccessful requests.
https://github.com/apache/openwhisk/blob/ba871e59f7b77f02689a13e4e24e438645d67a47/tests/src/test/scala/ha/ShootComponentsTests.scala#L172

@style95
Thanks for the response!
As far as I understood this test case allows unsuccessful invokes only if their response matched the swagger spec.
https://github.com/apache/openwhisk/blob/ba871e59f7b77f02689a13e4e24e438645d67a47/tests/src/test/scala/common/rest/WskRestOperations.scala#L1191-L1198
And Connection reset by peer is not one of them which will make the test fail.

Do you see any test failures?
In my recent build, it was successful.
https://github.com/apache/openwhisk/actions/runs/5029161559/jobs/9020540100#step:4:8830
I am curious about in which condition it failed.

It looks like OW system test does not use multiple controllers.
https://github.com/apache/openwhisk/blob/ba871e59f7b77f02689a13e4e24e438645d67a47/ansible/environments/local/hosts.j2.ini#L9-L13
Therefore, the test case should be ignored.
https://github.com/apache/openwhisk/blob/ba871e59f7b77f02689a13e4e24e438645d67a47/tests/src/test/scala/ha/ShootComponentsTests.scala#L143-L148

Indeed.
We are setting up the environment with the HA mode.
https://github.com/apache/openwhisk/blob/ba871e59f7b77f02689a13e4e24e438645d67a47/tools/travis/setupPrereq.sh#L29
But it seems controller1 is always disabled.
According to the PR, it looks this is not intended.
I think we need to enable controller1 in the CI environment and fix the system test if required.
@p-jonghyun Thank you for reporting this.

It seems the test passed after enabling the second controller.
https://github.com/apache/openwhisk/actions/runs/5132045151/jobs/9233975717#step:4:8941


usb: Read ints rather than sie_status in poll

If the latency is too high, there is a risk that the status reverts to a previous state while keeping the interrupt flag up. This fixes that by relying on ints instead of sie_status to process the events.
This should fix the issue reported by @jhillyerd in #492.

I tested this on my device, and can confirm it resolves the interrupt storm I was seeing.

Could this sequence of events happen?

USB is in suspended state
resume is signaled by the hardware, ints.dev_resume_from_host is set
before the interrupt is handled (eg. because interrupts were temporary disabled), suspend is signaled by the hardware, ints.dev_suspend is set
interrupt handler runs, poll is called
poll first checks ints.dev_suspend, sees that it is set, clears the flag, and returns PollResult::Suspend. This is ignored by usb-device as the device is already in suspended state.
interrupt handler runs again, because ints.dev_resume_from_host is still set, poll is called
as ints.dev_suspend is no longer set, poll now reacts to ints.dev_resume_from_host, clears that flag, and returns PollResult::Resume

If this happened, the order of PollResult::Suspend and PollResult::Resume would be wrong. This would cause the suspend event to get lost. The software stack would think the device state was Configured (or whatever the state was before the initial suspend event) even though it should be Suspend.

I wonder if the old handling of SIE_STATUS had the same (perhaps theoretical) issue. At least according to the documentation, the flags in SIE_STATUS are WC bits (set by hardware, cleared by writing a 1 bit from the CPU).
If that's true, in the example given above, SIE_STATUS.RESUME and SIE_STATUS.SUSPENDED would both be set, and we also would not know the current hardware state.

Yes, I'd need some time to figure a sensible way to handle that (if there is one).

So shall we just merge this PR as it is, to solve the irq storm issue from #492?
Especially as it looks like this is not a regression and the undefined situation where two events are signaled at once can already happen when reading SIE_STATUS?

@ithinuel I guess this can be merged, right?

Yes I think so.


Absolute path not found and removed

Issue is a bug in Open XML SDK, which I have reported on their repo: https://github.com/OfficeDev/Open-XML-SDK/issues/1208

Workaround provided by Mike Bowen, is now implemented in CLISC, whilst awaiting a full fix to the external bug in Open XML SDK.

Real solution has been found by Mike Bowen. There was no bug, it was related to intricate implementation usage of the Open XML SDK.


Fine grain access (column filtering)

From a header parameter with a list of allowed (coma-separated) fields, filter the rest responses to use and return only these fields, if the header is provided. The collection's id, timestamp, geometry and centroid fields are always allowed.
The following endpoints are impacted in /explore :

[X] /_aggregate
[X] /_count
[X] /_describe
[X] /_list
[X] /_geoaggregate
[X] /_geosearch
[X] /_range
[X] /_search
[X] /_tile

If a request contains, in its filter, a forbidden field, then a code 403 should be returned. The following parameters are impacted:

[X] f
[X] q; moreover if a 'q' parameter contains no target field but the column filter header is present, an exception should be thrown
[X] sort
[X] include
[X] agggregations (main field, fetch_geometry, metrics and fetch_hits).

In search requests, only allowed fields should be returned.
In /explore/_describe & /explore/_list:

[X] the returned properties should be filtered. If a node has no allowed property, then it is hidden.

In ogc-wfs project:

[x] DescribeFeatureType: the returned properties should be filtered
[x] GetFeature: the returned properties should be filtered. Return 403 if a filter field is forbidden
[x] GetPropertyValue: return a 403 if a requested property isn't allowed. Return 403 if a filter field is forbidden

In opensearch project:

[X] only return templates with available fields.

At the end,

[x] update the documentation

FGA should also be applied to v12


Fix(tooltip): width and overflow not working

Brief Information
This pull request is in the type of:

[x] bug fixing
[ ] new feature
[ ] others

What does this PR do?
Add back missing tooltip opotions
Fixed issues
Close #14211
Details
Before: What was the problem?

After: How is it fixed in this PR?
Usage
Are there any API changes?

[ ] The API has been changed.

Related test cases or examples to use the new APIs
new-tooltip.html
Others
Merging options

[x] Please squash the commits into a single one when merge.

Other information

@plainheart Hi, Could you take a look again.

@plainheart @pissang Hi, please review it.

It seems there are some conflicting files. Perhaps, we could go ahead to fix them in 5.1.1 or 5.2.0.

in which version is it fixed?


How to use GitBook Editor to create an AsciiDoc-formatted book

Here's what I've tried:

From the GitBook Editor File menu, choose New Book
Specify book name
Click on book name in the Local Library

In the lower left corner, the Files Tree contains this:

chapter1.md
README.md
SUMMARY.md

These three files are in markdown format. What's the most efficient way to convert them to AsciiDoc (.adoc) and have all future chapters and files within this book be .adoc files?
Please update the docs with this info. Thank you!

Seems like when you create a new book, there should be a format setting. MD or ADOC.

@GitbookIO , any comment on this 1 year old issue ?

I managed to switch to adoc by deleting all the default files and setting up the structure described here:
https://toolchain.gitbook.com/syntax/asciidoc.html
After this the new sections I made were automatically created with .adoc extension.

Where exactly did you make this change? I use OSX, found the 3 md files the gitbook editor created and changed them as you suggested. When I restarted the gitbook editor, it renamed them with a .md extension.
Apparently there is a way to use asciidoc, but I have not found it.


An impl of adafactor as per big vision (scaling vit) changes

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


Uno now sets up metrics for Accumulo

Uses grafana dashboard provided by Accumulo
Users should use 'uno setup accumuo --with-metrics'

@ctubbsii, I can move it conf/grafana

I moved the json file to conf/grafana.  Let me know if everything looks good.


Moves apiserver port to bindPort when using controlPlaneEndpoint

Hi! when using an external loadBalancer, adding port to controlPlaneEndpoint causes kubeadm to fail regex validation. this mends that.

Hi.
Kubeadm 1.10.7 emits the following:
error parsing `ControlPlaneEndpoint to valid dns subdomain with errors: [a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')

what is the domain you are using that fails the check?

api.dev.k8s.foo.bar:6443

/lgtm
/approve


Sign Commits

I have GitHub Vigilant Mode enabled for my signed commits (https://docs.github.com/en/authentication/managing-commit-signature-verification/displaying-verification-statuses-for-all-of-your-commits), so my commits are signed.
@alanvardy would you be able to sign your commits? Otherwise I can disable - commits will be marked as partially validated/unvalidated otherwise.

You may want to consider enabling signed commit branch protection

I double checked and my commits are currently signed

My initial instinct is to check off the Required signed commits box, but then I wonder if it would create an unreasonable barrier to contributors. I read this article and think this feature may have only marginal benefits.
Unless you’re really worried about the impersonation angle, I don’t really recommend signing git commits for most people. Take care of your basic account hygiene with MFA and hardware tokens, and that’s plenty for most people.

You have more knowledge in this area, can you convince me that the benefits are worth the drawbacks?

Thx for your comments. I was investigating this because my commits to the repo were showing up as "Unverified" in the release commit history

This is because I have both signed commits and vigilant mode enabled. I think this is because after my PR was merged, I clicked the button to sync the commits, but then it was left ahead; I clicked the "discard commits" since they had already been merged and now they are unverified.
-> I think I've figured out how I was supposed to rebase (I should have done a "hard reset" instead); Would you make a temp branch I can test commit against and validate?
Doesn't look like I can do anything about that notice for now (other than possibly disable vigilant mode).

One last comment - you may want to consider creating a "dev" and a "release" branch, with all code being pushed to dev and releases going to the release.
That way you can require code signing for the "release" branch, and require all PRs go to the "dev" branch where it isn't required.
In any case this can be closed once you make a decision on what to do - My preferred recommendation would be to require codesigning on a production branch with vigilant mode enabled (particularly one that releases are generated from), but I'll leave that up to you since it's a github wide setting that would affect all repos you own/manage and other external ones you commit to.

Validated that this is good - thx


Fix docs for ReadCsv.inferRows

In the documentation it says that if inferRows is not specified, then all rows will be scanned whereas in the source code, the default is to scan only 100 rows - see the link below for source code.
https://github.com/fslaborg/Deedle/blob/bdf460d851964bef5bbaa37814e8128e12aa9aab/src/Deedle/FrameUtils.fs#L420
I got bitten by this one, because my dataset had only ones and zeros in the first 100 lines so it deduced that the column would be bool instead of int.
In my code, specifically stating inferRows=0 fixed the problem. If the inferRows parameter was omitted, then values other than 0 or 1 were treated as missing.
Similar bug was reported in #271

Travis CI is reporting failing checks, however this pull request is not touching any code whatsoever:
it is only a documentation change.

Thanks for the fix. I'll generate new docs in a few days.


Orientation of text within textboxes

Attach (recommended) or Link to PDF file Untitled.pdf
Configuration:

Google Chrome Version 97.0.4692.71 (Official Build) (64-bit)
Operating system and its version: Windows 10 Pro 21H1
PDF.js version: Demo (https://mozilla.github.io/pdf.js/web/viewer.html)
Is a browser extension:

Steps to reproduce the problem:

Open the attached pdf file that contain two textboxes.
The content of the second textbox (BBB..) should be displayed vertically but is displayed horizontally.

What is the expected behavior?

What went wrong?

Duplicate of #9596


Accessibility: Provide better user interface for the settings screen

@isidorn , @roblourens Screen reader users find it difficult to understand how the settings TOC and the settings tree relate to each other. In a typical application that has settings, each settings TOC entry has its own page of settings. Once those settings are visible on the screen, the user must change to a different category in the settings TOC to view another group of settings. Visual Studio 2019 is a prime example of how settings with a treeview of categories should work. For a web-based UI for settings, take a look at Firefox and Chrome. Chrome has the better methodology because it consistantly keeps each group of settings a concern of its own. In other words, vscode needs to ensure users can understand where they are positioned in the settings hierarchy. Unfortunately, vscode does not. To reproduce, do the following:

Start Orca, JAWS, VoiceOver, or NVDA.
Start vscode.
open settings.
Put focus on the settings TOC.
Navigate to a settings group such as commonly used or editor>cursor.
With a keyboard, navigate to the list of settings on the right side of the screen.
Navigate the settings tree with the TAB key.
Try putting focus on the settings TOC and settings tree throughout your experiment.

Actual results: A screen reader can access the settings, but the user quickly loses the ability to understand where they are positioned in the settings hierarchy. It is impossible to find out what settings TOC entry I am navigating settings for, and it is impossible to tell when I arrived at the end of the settings for a TOC group.
Expected results: It should be easy to understand what group of settings I am working with at the time.

@ajborka thanks for providing feedback.
This is somehwat aligned with the other feedback we already got for the Settings UX. We should definetly try to improve this. Here are the other issues
https://github.com/microsoft/vscode/issues?q=is%3Aopen+label%3Aaccessibility+label%3Asettings-editor
However I am not sure if this issue brings something new to the table or should we close it as a duplicate. Leaving this to @roblourens

I think this could be considered a dupe of https://github.com/microsoft/vscode/issues/92485 which I remember now but had forgotten we already had a similar discussion.


expose Prom Metrics also when getting ScaledObject State

Signed-off-by: Zbynek Roubalik<EMAIL_ADDRESS>
I have also taken the chance and refactored the code a little bit, to be more consistent and move the ScaledObject scaling related logic to scaler_handler.go and keep the scalers_cache.go just around the cache.
Checklist

[x] I have verified that my change is according to the deprecations & breaking changes policy
[x] Changelog has been updated and is aligned with our changelog requirements
[x] Commits are signed with Developer Certificate of Origin (DCO - learn more)

Fixes #4075

/run-e2e internals*


Help with the backward kernel trace_ray_cuvol_backward

Was just curious about how the backward kernel for trace_ray_cuvol was generated. Was the kernel generated through another application or were was the rendering function hand differentiated and implemented in the backward kernel?
Any recommendations for how this backward kernel has to be implemented for an arbitrary rendering function?

This was hand-differentiated. To swap out the rendering function I think you'll need to either hand-differentiate it yourself and implement the kernel, or use a higher-level implementation with automatic differentiation (e.g. you can start with our JAX version linked from the readme, but note it is much slower and is feature-limited, recommended for experimentation but not for production).

Will look into it! Thank you!


No definition found for referenced assemblies

Issue Description
After updating to 1.21.4, Go to Definition for referenced assembly types does not work
Steps to reproduce
Update to 1.21.4
List test = new List();
Press F12 (Or choose Go to Definition from context menu)
Expected  behavior
Open the [metadata] csharp file and go to the definition
Actual behavior
No definition found for 'List'## Logs ##
Work-around (Verification that 1.21.4 is the culprit)
Go to the Extensions pane
Choose Install Another Version from the C# extension
Choose 1.21.3
Restart VSCode
Repeat the ## Steps to reproduce
Note:
Upon restarting VSCode after updating to C# 1.21.4 the Output window is blank
Upon restarting VSCode after Install Another Version to C# 1.21.3
The Output window reports:
Installing C# dependencies...
Platform: linux, x86_64, name=ubuntu, version=18.04
Downloading package 'OmniSharp for Linux (x64)' (43722 KB).................... Done!
Validating download...
Integrity Check succeeded.
Installing package 'OmniSharp for Linux (x64)'
Downloading package '.NET Core Debugger (linux / x64)' (64045 KB).................... Done!
Validating download...
Integrity Check succeeded.
Installing package '.NET Core Debugger (linux / x64)'
Downloading package 'Razor Language Server (Linux / x64)' (57828 KB).................... Done!
Installing package 'Razor Language Server (Linux / x64)'
Finished
OmniSharp log
Post the output from Output-->OmniSharp log here
C# log
Post the output from Output-->C# here
Environment information
VSCode version: 1.38.1
C# Extension: 1.21.4
Mono Information
        OmniSharp using global mono :6.4.0
Dotnet Information
.NET Core SDK (reflecting any global.json):
 Version:   3.0.100
 Commit:    04339c3a26
Runtime Environment:
OS Name:     ubuntu
OS Version:  18.04
OS Platform: Linux
RID:         ubuntu.18.04-x64
Base Path:   /usr/share/dotnet/sdk/3.0.100/
Host (useful for support):
Version: 3.0.0
Commit:  95a0a61858
.NET Core SDKs installed:
2.1.802 [/usr/share/dotnet/sdk]
2.2.402 [/usr/share/dotnet/sdk]
3.0.100 [/usr/share/dotnet/sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.13 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.7 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.13 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.7 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.0.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.13 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.7 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 3.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download

Visual Studio Code Extensions

Extension
Author
Version

csharp
ms-vscode
1.21.4

csharpextensions
jchannon
1.3.0

gitignore
codezombiech
0.6.0

indent-rainbow
oderwat
7.4.0

json-tools
eriklynd
1.0.2

rainbow-brackets
2gua
0.0.6

shader
slevesque
1.1.4

vscode-glsllint
CADENAS
0.0.5

vscode-nuget-package-manager
jmrog
1.1.6

whitespace
sandcastle
0.0.5

xml
DotJoshJohnson
2.5.0

This is a duplicate of https://github.com/OmniSharp/omnisharp-roslyn/issues/1624
There is already a PR with a fix here https://github.com/OmniSharp/omnisharp-roslyn/pull/1625
As soon as the PR is merged, there will be a pre-release OmniSharp that can be used as workaround.


fix: actually use the ccache tarball

I made so many mistakes in these changes. In hindsight I should
have broken this down in a change to create the ccache tarball
(without using it), and then a change to use it. As it was my local
testing failed because:

I expected the docker cache to not work as the devtools changed
to include ccache, but then it did not work for other reasons too.
I expected the local tests to fail (expect when I manually did the
steps) because the cache tarballs had not been populated.

So all the testing was ad-hoc and did not catch the problems.
This time it will work, for realsies, really :fearful:

This change is

This was a comedy of errors, but finally, the kokoro/install builds in this PR took about 5m, from around 15m.

Ping


drive --help is useless

$ drive --help
Usage of drive:

version         0.0.5

$ drive help all
Name
init - initializes a directory and authenticates user
Description
Requests for access to your Google Drive
Creating a folder that contains your credentials
Note: init in an already initialized drive will erase the old credentials
Name
pull - pulls remote changes from Google Drive
Description
Downloads content from the remote drive or modifies
local content to match that on your Google Drive
Name
pub - publishes a file and prints its publicly available url
Description
Accepts multiple paths
Name
trash - moves files to trash
Description
Accepts multiple paths
Name
diff - compares local files with their remote equivalent
Description
Accepts multiple remote paths for line by line comparison
Name
list - lists the contents of remote path
Description
List the information related a remote path not necessarily present locally
Allows printing of long options and by default does minimal printing
Name
touch - updates a remote file's modification time to that currently on the server
Name
unpub - revokes public access to a file
Description
Accepts multiple paths
Name
features - returns information about the features of your drive
Name
push - push local changes to Google Drive
Description
Uploads content to your Google Drive from your local path
Push comes in a couple of flavors
* Ordinary push: drive push path1 path2 path3
* Mounted push: drive push -m path1 [path2 path3] drive_context_path
Name
quota - prints out information related to your quota space
Name
untrash - restores files from trash to their original locations
Description
Accepts multiple paths
Name
about - print out information about your Google drive
Name
emptytrash - permanently cleans out your trash
...

Sorry, my comment was maybe a bit brief. What I mean is, when I type drive --help it gives the message reported above, which seems a bit useless. An absolutely minor issue, but I though I'd report it in case it's a bug.

I see: --help comes from the command line arguments parser https://github.com/rakyll/command. Drive's help is used as in the examples above.

@odeke-em Can we re-visit this item? From my experience, most, if not all, experienced linux users will use:
$PROGRAM --help
$PROGRAM -help
$PROGRAM -h
the first time they run an unfamiliar program to see its options. Not knocking your logic or ability, but I can't think of many linux commandline programs that show the runnable options from the command of the program itself ('drive'). I think the output of the above command(s) should be the same as what you currently have drive show..? What are your thoughts?

@ikwyl6 thank you for this reminder. Great points. I'll need to either add support to the commands package or rig some internally for drive in order to get the help working. I am going to re-open the issue. I can't work on it today because of essays but surely after tomorrow I can.

The
$ drive --help

could be an alias to raw
$ drive

If you are interested I can try to create a pull request for that.
By the way, thank you for maintaining this magnificent piece of software

Thank you @dolohow for the offer, for sure sounds like a plan. Also thank you for the kind words and for using drive :)

Addressed by PR https://github.com/odeke-em/drive/pull/219. Thank you @arnuschky @ikwyl6 @dolohow for reporting this issue, keeping vigilant and keeping me on task :)


Automated cherry pick of #4177: fix: 增强host-list --usable限制

Cherry pick of #4177 on release/2.13.
#4177: fix: 增强host-list --usable限制

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.13@97643f5). Click here to learn what that means.
The diff coverage is 0%.

@@              Coverage Diff               @@
##             release/2.13   #4178   +/-   ##
==============================================
  Coverage                ?   6.89%
==============================================
  Files                   ?     519
  Lines                   ?   87767
  Branches                ?       0
==============================================
  Hits                    ?    6049
  Misses                  ?   81219
  Partials                ?     499

Flag
Coverage Δ

#aFlag
6.89% <0%> (?)

Impacted Files
Coverage Δ

pkg/compute/models/hosts.go
0.33% <0%> (ø)

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 97643f5...6c2fe03. Read the comment docs.

/lgtm

/approve


fail building tensorflow. Error is error trying to exec 'cc1plus'

I try to build tensorflow from the source code, as https://www.tensorflow.org/install/install_sources shows. But it fails at basel building like following.
commands: bazel build --config=opt --config=cuda --verbose_failures //tensorflow/tools/pip_package:build_pip_package
WARNING: Sandboxed execution is not supported on your system and thus hermeticity of actions cannot be guaranteed. See http://bazel.build/docs/bazel-user-manual.html#sandboxing for more information. You can turn off this warning via --ignore_unsupported_sandboxing.
INFO: Found 1 target...
ERROR: /local/xian_titan/.cache/bazel/bazel_xian_titan/d96b63d3ff03346cfbf37aac2a75fe2c/external/protobuf/BUILD:230:1: C++ compilation of rule '@protobuf//:js_embed' failed: crosstool_wrapper_driver_is_not_gcc failed: error executing command
(cd /local/xian_titan/.cache/bazel/bazel_xian_titan/d96b63d3ff03346cfbf37aac2a75fe2c/execroot/tensorflow &&
exec env -
LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/cuda-8.0/lib64
PATH=/usr/local/cuda-8.0/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/local/xian_titan/bin
external/local_config_cuda/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc -U_FORTIFY_SOURCE '-D_FORTIFY_SOURCE=1' -fstack-protector -fPIE -Wall -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -g0 -O2 -DNDEBUG -ffunction-sections -fdata-sections -g0 '-std=c++11' -MD -MF bazel-out/host/bin/external/protobuf/objs/js_embed/external/protobuf/src/google/protobuf/compiler/js/embed.d '-frandom-seed=bazel-out/host/bin/external/protobuf/objs/js_embed/external/protobuf/src/google/protobuf/compiler/js/embed.o' -iquote external/protobuf -iquote bazel-out/host/genfiles/external/protobuf -iquote external/bazel_tools -iquote bazel-out/host/genfiles/external/bazel_tools -isystem external/bazel_tools/tools/cpp/gcc3 -no-canonical-prefixes -Wno-builtin-macro-redefined '-D__DATE="redacted"' '-D__TIMESTAMP="redacted"' '-D__TIME__="redacted"' -fno-canonical-system-headers -c external/protobuf/src/google/protobuf/compiler/js/embed.cc -o bazel-out/host/bin/external/protobuf/_objs/js_embed/external/protobuf/src/google/protobuf/compiler/js/embed.o): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1.
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
Target //tensorflow/tools/pip_package:build_pip_package failed to build
INFO: Elapsed time: 2.283s, Critical Path: 1.68s
I found some other people also had similar problems before. But I cannot successfully address the problem from previous threads.
I tried bazel 0.4.4 and 0.4.2 releases, they have the same issues.
My system is Red Hat Enterprise Linux Workstation release 6.7 (Santiago),
java version "1.8.0_121",
gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)
g++ (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)
Hope someone can figure out where's wrong

This looks like the same problem as #7543; here, bazel is not the issue, but the compiler wrapper script resets PATH.

closing as duplicate of #7543


Add a unit test suite for Animation

This adds unit tests for the Animation resource.
Method call, audio and animation playback tracks could be added, but I feel this is a good start already.

There's a test failure.

Thanks!


New path filtering logic excluding large number of unintended paths

What happened:
#2644 introduced new logic to prevent scanning of unixSystemRuntimePrefixes even if those paths are not at the root, for example remounted root file systems. The solution however prevents scanning any paths that include a /proc, /dev or /sys within them. For example:
folder/syslog-scan.sbom.json
source_code/system/files
source_code/dev/other_files
are all skipped after this change.
What you expected to happen:
Only /proc, /dev and /sys that are part of fs roots should be excluded, not anything including those strings.
Steps to reproduce the issue:
Attempt to scan an sbom file that starts with the string sys
Anything else we need to know?:
Environment:

Output of syft version: 0.105.0
OS (e.g: cat /etc/os-release or similar): Any

I wonder if a better way to handle this sort of exclusion would be to (when initializing/starting the scan) find filesystem paths that have devtmpfs, sysfs, and proc types and exclude those paths and their children, rather than assuming that any directory named sys or proc or dev MUST contain a kernel-managed pseudo-filesystem that's okay to exclude from scans.

I like the suggestion to look for forbidden mounts instead of leaning on mount naming conventions. We can't revert this PR since we have had other users that are mounting these filesystems within nested directories. That doesn't explain away the reason for reverting this though... I think there are unintended consequences.
@jpalermo / @klakin-pivotal would either of you be interested in implementing the suggestion within the file resolver for finding forbidden filesystems first?

It seems like the "correct fix" for the original problem is incredibly difficult, so somebody who wants it should work on it. An alternative is people who are scanning mounted images can exclude the paths they don't want scanned.
As far as not reverting, the current syft is in a very bad state because of the original PR. Large chunks of code bases are currently being excluded accidentally, meaning the generated sboms are incorrect.

No worries! I wanted to offer it up in case there was interest --I can take a stab at this later this week.


Update json4s-ext, json4s-native to 3.6.10

Updates

org.json4s:json4s-ext
org.json4s:json4s-native

from 3.6.9 to 3.6.10.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.json4s" } ]

labels: library-update, semver-patch

Codecov Report

Merging #436 into develop will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop     #436   +/-   ##
========================================
  Coverage    77.25%   77.25%
========================================
  Files           46       46
  Lines         1051     1051
  Branches        30       30
========================================
  Hits           812      812
  Misses         239      239

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 bcc4971...9019aea. Read the comment docs.


http2 module is not experimental anymore in node 8

As of node 8.13, http2 module is not experimental anymore https://github.com/nodejs/node/pull/22466
Maybe the 3.0.0 can now be released as non alpha?

@florianreinhart, I would really appreciate this update as well


WSL reports environment session uptime, not system uptime

A brief description

Function calls requesting system uptime return the uptime for the current environment session, and not the uptime for the system.

Expected results

System uptime

Actual results (with terminal output if applicable)

Uptime of current WSL environment session, for example from a newly-spawned WSL session:

Your Windows build number

14379

Steps / commands required to reproduce the error:

Open a WSL environment session using bash.exe or similar.

Launch a new WSL session.
Immediately run /bin/uptime

Required packages and commands to install

Nothing additional that isn't provided by running LxRun /install
If this is actually the intended behaviour, then feel free to close this IR, but please document it as the intended behaviour (as it is currently undocumented.)

Out of curiosity, is there something that is broken due to this behavior?

From the subsystem's perspective we do not "boot" until you launch bash.exe for the first time.  Marking this as "by design."  If you have a scenario that is broken because of this please let us know.

No broken scenario (yet), but I'm glad to see this clarified as a design
decision.
On 25 Jul 2016 10:26 am, "Ben Hillis"<EMAIL_ADDRESS>wrote:

From the subsystem's perspective we do not "boot" until you launch
bash.exe for the first time. Marking this as "by design." If you have a
scenario that is broken because of this please let us know.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/BashOnWindows/issues/657#issuecomment-234987317,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAdVxX-ygrSDdQuOh13GYZ4v9M5_KbWNks5qZNWngaJpZM4JNBuX
.

Closing this out.

I realized you closed this out, but this is an issue for me. I really want to use WSL, but am forced to go with cygwin because of this.
While I understand why it responds this way, it really is quite astonishing of a response. Is there no way we can expose the system uptime for this?

Can you describe your scenario in more detail? You should be able to use interop (running .exes) to query Windows state.

We have a handful of windows machines in a mostly linux environment. We have a system that remotely sshs in and checks a number of things, one of which is uptime. Rewriting the system to have a special code-path for the windows machines adds additional complexity incurring both immediate and future costs.
Not to mention, it's straight-up unexpected behavior to not have uptime show the time the system has been up. I don't think anyone who's used any linux or unix based system would ever expect that.


Documentation Update - VS2019 & README

The build documentation in README is out of date for VS 2019.
The current documentation causes this issue:
CMake Error: Could not create named generator Visual Studio 16 2019 Win64

Generators
* Visual Studio 16 2019        = Generates Visual Studio 2019 project files.
                                 Use -A option to specify architecture.
  Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
                                 Optional [arch] can be "Win64" or "ARM".
...

I attempted to fix this originally by switching from cmake -G"Visual Studio 15 2017 Win64" to cmake -G"Visual Studio 1 2019" -A Win64, but that caused another error.
I discovered the fix of using -A x64 instead from here.
My commit for 32 bit may not be correct. Opening WinAFL.sln seems to show only x64.
Specifying -A x86, however, does not work either. It gives me the error:
error MSB8013: This project doesn't contain the Configuration and Platform combination of Debug|Win32. [C:\Users\gdynamics\source\repos\winafl\build32\CMakeFiles\3.17.20032601-MSVC_2\VCTargetsPath.vcxproj]
I am not sure if this because some build file is out of date, I am doing it wrong, or if x64 is being generated because cmake is defaulting to the arch of the system.
In conclusion
I can confirm the x64 documentation update is correct, but the x86 documentation update may not be, and someone may want to confirm or deny that part.

I believe I am good in terms of the CLA, as well.

I believe that, without specifying the architecture, it will default to whatever is specified in the environment, e.g. if you open VS command prompt for 32-bit apps (or run vcvars32.bat from a clean command prompt). So I think it will work, but I'll test and confirm later (or, if you do it, let me know).

It seems that, for 32-bit build, -A Win32 should be specified


[Issue] Issue with new docker output

[x] Make sure you've installed the latest version using instructions in the wiki

Output from azd version
Run azd version and copy and paste the output here: azd version 1.6.1 (commit eba2c978b5443fdb002c95add4011d9e63c2e76f)
Describe the bug
Docker output freezes and azd up never completes.
The last time I used azd up this "Docker output" wasn't present and this issue never presented itself. What's weird is that the output seems to freeze at different points, I've left this running for over an hour and nothing happens.
In contrast, building the docker file (a simple docker build . -f ./Dockerfile) completes the build in 2 minutes.
Example freeze point:
  ────────────────────────────────── Docker Output ─────────────────────────────────

  #9 10.67 Progress: resolved 217, reused 0, downloaded 198, added 0
  #9 11.67 Progress: resolved 264, reused 0, downloaded 234, added 0
  #9 12.67 Progress: resolved 330, reused 0, downloaded 289, added 0
  #9 13.67 Progress: resolved 356, reused 0, downloaded 306, added 0
  #9 14.67 Progress: resolved 384, reused 0, downloaded 324, added 0
  #9 15.67 Progress: resolved 428, reused 0, downloaded 347, added 0
  #9 16.67 Progress: resolved 511, reused 0, downloaded 402, added 0
  #9 17.64 Progress: resolved 565, reused 0, downloaded 450, added 0

  ─────────────────────────────────

and another:
  ────────────────────────────────── Docker Output ──────────────────

  #5 [builder 2/7] WORKDIR /app
  #5 CACHED

  #6 [internal] load build context
  #6 transferring context: 238.03MB 4.2s
  #6 transferring context: 369.02MB 5.3s done
  #6 DONE 5.4s

  ────────────────────

I've attempted to clear builder cache, a system prune, everything at the docker side that could be causing the issues. They're simply not present when using docker directly.
To Reproduce
azd up
Obviously it's hard to give reproduction steps, just that this is a long running nodejs docker build (in comparison to say, a .NET container).
Expected behavior
It doesn't freeze and actually builds / deploys the image.
Environment
This is a NodeJS 20 docker file building on OSX (M1 Ultra).
Additional context
Add any other context about the problem here.

@vhvb1989 can you triage this?

I'm closing this off, things are working now so appeared to (somehow) be an environment issue.


New version: GlobalSearchRegression v1.0.4

Registering package: GlobalSearchRegression
Repository: https://github.com/ParallelGSReg/GlobalSearchRegression.jl
Created by: @vmari
Version: v1.0.4
Commit: 84896fc8b92d86966303ce72b115943e9087bd59
Git reference: master

Your new version pull request does not meet all of the guidelines for automatic merging.
Specifically, your pull request does not meet the following guidelines:

The following dependencies do not have a compat entry that has an upper bound: julia, Distributions, DataFrames

It is important to note that if your pull request does not meet the guidelines for automatic merging, this does not mean that your pull request will never be merged. It just means that your pull request will require manual review by a human.

These guidelines are intended not as requirements for packages but as very conservative guidelines, which, if your new package or new version of a package meets them, it may be automatically merged.

[noblock]

Please add compat bounds to at least Julia. Preferably to all deps since then it will be automatically merged.

Bump @vmari

Please add compat bounds to at least Julia. Preferably to all deps since then it will be automatically merged.

[noblock]

Your new version pull request does not meet the following guidelines for auto-merging:

The following dependencies do not have a compat entry that has an upper bound: DataFrames, Distributions, julia

Note that the guidelines are only required for the pull request to be merged automatically. However, it is strongly recommended to follow them, since otherwise the pull request needs to be manually reviewed and merged by a human.

If you want to prevent this pull request from being auto-merged, simply leave a comment. If you want to post a comment without blocking auto-merging, you must include the text [noblock] in your comment.


When a text input is empty with a custom widget, the field in form data is set to empty string

Prerequisites

[ ] I have read the documentation;
[ ] In the case of a bug report, I understand that providing a SSCCE example is tremendously useful to the maintainers.

Description
When using a custom widget on a text input and is empty, the field in form data is set to empty string.
Steps to Reproduce
I follow the custom widget example of the documentation.
Ideally, I'm providing a sample JSFiddle
Expected behavior
When a text input is empty, the field in form data is set to undefined
Actual behavior
When a text input is empty, the field in form data is set to empty string.
Version
1.0.3

I'm actually having the same problem. I'd expect that, if a field is empty, the json formData wouldn't bring the key at all, but it's giving an empty string, which after brings conflict on the server side, since it's an optional field, but doesn't allow empty strings.
I find myself obliged to iterate over every formData object to remove key value pairs when value is empty.
Can't this be changed?

Yep. same here. Is there a workaround for this?

Closing as a duplicate of #1052.


Wip/mehrad/kubeflow

Most changes in this PR are for SPL pipelines: fixing things and adding new features.
Some of the images for thingtalk2 come with preinstalled genie-toolkit and thingtalk, and running rebuild fails. I changed Dockerfile to account for that but not sure if there is a better way instead of if else.

I'm not sure I understand what the problem is with the existing docker file. Are you trying to use an existing image as base image for a rebuild? That doesn't make sense.

I'm not sure I understand what the problem is with the existing docker file. Are you trying to use an existing image as base image for a rebuild? That doesn't make sense.

Yes. If we are always supposed to start from the base image then we won't need to change. But if you just wanna bump the hash for one repo it's faster to rebuild on top of an existing image. It's just for speed but it's not needed so I can drop it.

Yes. If we are always supposed to start from the base image then we won't need to change. But if you just wanna bump the hash for one repo it's faster to rebuild on top of an existing image. It's just for speed but it's not needed so I can drop it.

Yeah it's better not confuse things by doing rebuilds on top of rebuilds, please drop.

Yeah it's better not confuse things by doing rebuilds on top of rebuilds, please drop.


Generalize topology entity ids

queued behind #6661
@miq-bot add_label providers/containers
@Fryguy this is per our discussion yesterday on different ids.

Nice...you may want to use compressed ids instead...This is particularly important on regions, where the id will be<PHONE_NUMBER>001 as opposed to 1, thus sending down 12x as much data to the browser.  The compressed id for<PHONE_NUMBER>001 would appear like 1r1 instead.  To call it just call .compressed_id instead of id

Nice...you may want to use compressed ids instead...This is particularly important on regions, where the id will be<PHONE_NUMBER>001 as opposed to 1, thus sending down 12x as much data to the browser. The compressed id for<PHONE_NUMBER>001 would appear like 1r1 instead. To call it just call .compressed_id instead of id

thanks, will do

Nice...you may want to use compressed ids instead...This is particularly important on regions, where the id will be<PHONE_NUMBER>001 as opposed to 1, thus sending down 12x as much data to the browser. The compressed id for<PHONE_NUMBER>001 would appear like 1r1 instead. To call it just call .compressed_id instead of id

@Fryguy
btw, should compressed ids be used when constructing urls as well? (for example, when navigating to an entity, currently the navigation is entityType/show/id, should it become entityType/show/compressed_id?

@Fryguy , imo this patch is ready, except for this https://github.com/ManageIQ/manageiq/pull/6685#issuecomment-186823426, I tend to say that in urls ids shouldn't be touched, but you are more familiar with the topic and the regions, so please let me know.

@Fryguy @chessbyte can we please proceed somehow with this patch?

@abonas agree that URLs should have the full ID.

@miq-bot add_label topology