Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Unable to LogIn into Azure Artifact Server #135

Closed
ThatsFokus opened this issue Jul 29, 2024 · 18 comments
Closed

Unable to LogIn into Azure Artifact Server #135

ThatsFokus opened this issue Jul 29, 2024 · 18 comments
Assignees
Labels
bug Something isn't working

Comments

@ThatsFokus
Copy link

When adding a NuGet Source from an Azure Repository it seems to be impossible to Log In, Security Dialog just closes and open again wether the credentials are correct or not. Also besides killing the Shell with Taskmanager it is impossible to stop the dialog from opening again

@iadonkey
Copy link
Contributor

iadonkey commented Jul 29, 2024

Can you post the detailed log messages from %LOCALAPPDATA%\Zeugwerk\logs\Twinpack

The credentials are verified by checking the feed for packages, are there any in the feed?

public async Task<LoginPostResponse> LoginAsync(string username = null, string password = null, CancellationToken cancellationToken = default)

edit: fixed log location, fyi @ThatsFokus

@iadonkey
Copy link
Contributor

Also besides killing the Shell with Taskmanager it is impossible to stop the dialog from opening again

will be fixed, #136

@ThatsFokus
Copy link
Author

Twinpack.debug.log
Countdown.nuspec.txt

@iadonkey Here is the Log and and a nuspec for one of the uploaded packages

@iadonkey
Copy link
Contributor

iadonkey commented Jul 30, 2024

This is a parsing error coming from NuGet.Packaging.Core, are you sure that the URL for your feed is correct and returning a valid xml for NuGet? Is there something reasonable visible in the browser when you navigate to the feed's URL?

Just tried it before and our nuget feed works just fine, it's not in azure but in a docker container though

@ThatsFokus
Copy link
Author

checking the source with nugetCLI it has the package listed as avaiable, the same happenes in the web interface. Could there be other reasons why it has said Parsing error?

@iadonkey
Copy link
Contributor

could you post the xml it returns if you go to the feed? maybe try to disable authentication on the feed for testing? is there an API key, which is need to access the feed?

@ThatsFokus
Copy link
Author

ThatsFokus commented Jul 30, 2024

Hey, managed to connect the feed after some more trouble Shooting including manually editing the index.json.

Sadly I am currently unable to see the Package in the Twincat Extensions feed.

could you post the xml it returns if you go to the feed? maybe try to disable authentication on the feed for testing? is there an API key, which is need to access the feed?

how should I go about reading said xml?

2024-07-30 12:20:06.8235|INFO|Twinpack.Dialogs.CatalogWindow|Reloading catalog 2024-07-30 12:20:06.8557|INFO|Twinpack.Dialogs.CatalogWindow|Package TwinCAT.XAE.PLC.Lib.Tc2_Standard (version: , distributor: Beckhoff Automation) located on https://public.tcpkg.beckhoff-cloud.com/api/v1/feeds/stable 2024-07-30 12:20:06.8557|INFO|Twinpack.Dialogs.CatalogWindow|Package TwinCAT.XAE.PLC.Lib.Tc2_System (version: , distributor: Beckhoff Automation) located on https://public.tcpkg.beckhoff-cloud.com/api/v1/feeds/stable 2024-07-30 12:20:06.8557|INFO|Twinpack.Dialogs.CatalogWindow|Package TwinCAT.XAE.PLC.Lib.Tc2_Utilities (version: , distributor: Beckhoff Automation) located on https://public.tcpkg.beckhoff-cloud.com/api/v1/feeds/stable 2024-07-30 12:20:06.8687|INFO|Twinpack.Dialogs.CatalogWindow|Package TwinCAT.XAE.PLC.Lib.Tc3_EventLogger (version: 3.3.8.0, distributor: Beckhoff Automation) located on https://public.tcpkg.beckhoff-cloud.com/api/v1/feeds/stable 2024-07-30 12:20:06.8687|INFO|Twinpack.Dialogs.CatalogWindow|Package TwinCAT.XAE.PLC.Lib.Tc3_Module (version: , distributor: Beckhoff Automation) located on https://public.tcpkg.beckhoff-cloud.com/api/v1/feeds/stable 2024-07-30 12:20:07.0687|TRACE|Twinpack.Dialogs.CatalogWindow|System.OperationCanceledException: The operation was canceled. at System.Threading.CancellationToken.ThrowOperationCanceledException() at Twinpack.Dialogs.CatalogWindow.<LoadNextCatalogPageAsync>d__173.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Twinpack.Dialogs.CatalogWindow.<LoadAvailablePackagesAsync>d__172.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Twinpack.Dialogs.CatalogWindow.<Reload>d__183.MoveNext() 2024-07-30 12:20:07.0717|ERROR|Twinpack.Dialogs.CatalogWindow|The operation was canceled.

Edit: The changed Exception in the log

@iadonkey
Copy link
Contributor

If login now works then there is no need for doing anyhting with the xml. The exception you posted indicate that the operation for getting the packages was canceled, usually this happens when you press the "X" button while the query is running. Is there some different exception if you just let it run? is it timing out or anything like that?

@iadonkey
Copy link
Contributor

what did you change in the index.json bzw? there shouldn't be any need to changes this, we are using the official nuget package to connect to nuget servers, as long as version 3 is supported by the server everything should be fine. We don't have an azure instance to test, but it works with nexus and https://github.com/idoop/docker-nuget-server

@ThatsFokus
Copy link
Author

image
image
image

If login now works then there is no need for doing anyhting with the xml. The exception you posted indicate that the operation for getting the packages was canceled, usually this happens when you press the "X" button while the query is running. Is there some different exception if you just let it run? is it timing out or anything like that?

Seemingly it just doesn't find anything, there isn't any exception but as shown in the first screenshot the package is published on the feed.

Should you be able to tell any problem with the nuget itself I would be happy about an idea

@iadonkey
Copy link
Contributor

if there is "Library" with a capital "L" in the tags, we had to include some heuristics for Beckhoff. Could you try to add an additional Tag after Library with the name of the library, so it looks like "Small CountDown Library CountDown"?
We accidently use the heuristics for the normal nuget servers as well, so this might be the problem

@ThatsFokus
Copy link
Author

Countdown.nuspec.txt

if there is "Library" with a capital "L" in the tags, we had to include some heuristics for Beckhoff. Could you try to add an additional Tag after Library with the name of the library, so it looks like "Small CountDown Library CountDown"? We accidently use the heuristics for the normal nuget servers as well, so this might be the problem

Hey sorry for coming back to you this late. As shared somewhere above here is my nuspec once again.

I didn't really follow what I would have to change so it conforms with Beckhoffs heuristics.

@iadonkey
Copy link
Contributor

Not sure where the „Small“ and „Library“ tag in your screenshot are coming from with this nuspec

anyway, we‘ll write some documentation how to publish a nuget package which is useable with Twinpack. Just a bit busy at the moment

@iadonkey
Copy link
Contributor

btw. this is what beckhoff nuspecs look like

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>
    <id>TwinCAT.XAE.PLC.Lib.Tc2_Math</id>
    <version>3.4.4</version>
    <title>Beckhoff TwinCAT XAE PLC Library Tc2_Math</title>
    <authors>Beckhoff Automation</authors>
    <owners>Beckhoff Automation</owners>
    <projectUrl>https://www.beckhoff.com/en-us/products/automation/twincat/</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Contains Beckhoff TwinCAT XAE PLC Library Tc2_Math version 3.4.4.0</description>
    <summary>TwinCAT-XAE-PLC-Lib-Tc2_Math package</summary>
    <releaseNotes>Artifact Information
  TwinCAT-XAE-PLC-Lib-Tc2_Math 3.4.4+76e0a95d
  Setup 1.0.1.10+0b47908d</releaseNotes>
    <copyright>(c) Beckhoff Automation GmbH &amp; Co. KG</copyright>
    <tags>Beckhoff TwinCAT XAE PLC Library Tc2_Math Setup InstallationLevel1 AllowMultipleVersions</tags>
    <docsUrl>https://infosys.beckhoff.com/</docsUrl>
    <dependencies>
      <dependency id="TwinCAT.Prep" version="0.0.0" />
    </dependencies>
  </metadata>
</package>

using this and adapting to your needs should work as the NuGet Server implementation is basically the same as the Beckhoff Server implementation in Twinpack.

Just make sure that the Tag after "Library" (in and <title>) is the title of your library (as in your .library file) - this little annoyance will be removed in one of the next patches of Twinpack, since for .library files we can actually get the title directly from the file.

@ThatsFokus
Copy link
Author

Not sure where the „Small“ and „Library“ tag in your screenshot are coming from with this nuspec

anyway, we‘ll write some documentation how to publish a nuget package which is useable with Twinpack. Just a bit busy at the moment

After revision I've seen "Small CountDown Library" is the description in tags there is only "plc-library"

@iadonkey
Copy link
Contributor

iadonkey commented Aug 1, 2024

Anyway use

Library <Title of your library> in the tags and the title and it should work

@dfreiberger
Copy link

dfreiberger commented Aug 2, 2024

@ThatsFokus regarding logging in to Azure DevOps artifacts server, I was able to do so by using my email and a PAT (personal authentication token) which I generated in Azure DevOps. I did not modify any configuration files in Twinpack and just logged in when prompted.

I also ran into an issue after connecting where I couldn't see packages that I had published. After troubleshooting it looks like the Published field is not populated by Azure DevOps Artifact feeds, but is used in Twinpack.

I modified
https://github.com/Zeugwerk/Twinpack/blob/main/TwinpackShared/Protocol/Nuget/NugetServer.cs#L122 to the below and the packages showed up.

new Tuple<IEnumerable<CatalogItemGetResponse>, bool>(
results.Select(x =>
    new CatalogItemGetResponse()
    {
        PackageId = null,
        Name = x.Identity.Id,
        DistributorName = x.Authors,
        // Description = x.Description, Beckhoff's descriptions are meh
        IconUrl = x.IconUrl?.ToString() ?? IconUrl,
        RuntimeLicense = 1,
        DisplayName = x.Identity.Id,
        Downloads = x.DownloadCount.HasValue ? (int)x.DownloadCount.Value : 0,  // Added null check
        Created = x.Published?.ToString() ?? "Unknown",  // Added null check
        Modified = x.Published?.ToString() ?? "Unknown"  // Added null check
    }).ToList(),
results.Any());                                     

@iadonkey
Copy link
Contributor

iadonkey commented Aug 2, 2024

fixed with release 1.0.8

@iadonkey iadonkey closed this as completed Aug 2, 2024
@iadonkey iadonkey self-assigned this Aug 2, 2024
@iadonkey iadonkey added the bug Something isn't working label Aug 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants