While building a tool to automate the creation and publishing of projects to GroupShare, I've found that I'm unable to publish projects to GroupShare.
The process first of all creates an organisation to which it will upload the project; then it does the project upload.
Log.Info($"{nameof(UploadPackageToGroupShare)}: organisation \"{order.Id}\" created on GroupShare.");
project.PublishProject(
new Uri(@"groupshare-srvr.our-website.com/"),
false,
"--username--",
"--password--",
$"/Projects/{order.Id}",
(obj, evt) =>
{
Log.Info($"{nameof(UploadPackageToGroupShare)}: {evt.StatusMessage} {evt.PercentComplete}% complete");
});
You can see that the goings-on are being logged, and from this I can tell that the organisation is being created - I can verify this by looking in the SDLSystem DB and finding sts.ResourceGroup.resourceGroupPath matching the new organisation's name, and the corresponding resourceGroupGuid matching the returned GUID. So the call to CreateGroupShareOrg is operating as expected.
But the call to FileBasedProject.PublishProject is unsuccessful - it returns a 404, and I can't figure out why. I've tried variations of the URL (with and without "/groupshare" on the end of the URL, and with/without adding ":80" on the end).
Also, the same URL and login details are used in CreateGroupShareOrg, although that method goes via GroupShareKit.
The event in the final parameter always records simply
"UploadPackageToGroupShare: 0% complete"
We've had this working in the past and I've seen it record maybe 10 entries, each with an incrementing percentage. As far as I'm aware, none of this code has been changed since it was last seen working.
Here's a Fiddler trace which might explain something that I've missed. Row #9 is the request to publish the project.
# | Result | Protocol | Host | URL | Body | Content-Type | RequestMethod |
---|---|---|---|---|---|---|---|
2 | 200 | HTTPS | www.our-website.com | /filedownloads/file/619596/TEST-UPLOAD.txt | 135 | application/octet-stream | GET |
3 | 200 | HTTP | groupshare-srvr.our-website.com | /management/api/1.0/organizations?flatten=true | 1,967 | application/json; charset=utf-8 | GET |
4 | 200 | HTTP | Tunnel to | www.our-website.com:443 | 0 | CONNECT | |
5 | 200 | HTTPS | www.our-website.com | /api/v1/Order/termbases/103054/Company%20Website | 0 | PUT | |
6 | 200 | HTTP | groupshare-srvr.our-website.com | /management/api/1.0/organizations?flatten=true | 1,967 | application/json; charset=utf-8 | GET |
7 | 200 | HTTP | groupshare-srvr.our-website.com | /management/api/1.0/organizations?flatten=true | 1,967 | application/json; charset=utf-8 | GET |
8 | 200 | HTTP | groupshare-srvr.our-website.com | /management/api/1.0/organizations | 38 | application/json; charset=utf-8 | POST |
9 | 404 | HTTP | groupshare-srvr.our-website.com | /platform/sdl/discovery.svc | 0 | POST | |
10 | 200 | HTTP | Tunnel to | www.our-website.com:443 | 0 | CONNECT | |
11 | 204 | HTTPS | www.our-website.com | /api/v1/admin/package/id/103054/1 | 0 | GET | |
14 | 200 | HTTP | Tunnel to | www.our-website.com:443 | 0 | CONNECT | |
15 | 200 | HTTPS | www.our-website.com | /api/v1/admin/package/report/103054/ | 0 | POST |
One last point: I am able to create and upload a project usign Trados; the only difference is that Trados doesn't create the organisation as part of the process.
So what's going wrong? Why am I unable to upload/publish a project?