CDR Tickets

Issue Number 4275
Summary Modify CDR Loader software to recognize IP addresses and display CDR server/tier names
Created 2017-06-13 16:18:05
Issue Type New Feature
Submitted By Osei-Poku, William (NIH/NCI) [C]
Assigned To Kline, Bob (NIH/NCI) [C]
Status Closed
Resolved 2018-03-30 08:14:17
Resolution Fixed
Path /home/bkline/backups/jira/ocecdr/issue.210013
Description

This is a request to help CIAT overcome a technical hurdle when connecting to the CDR. I am pasting below email thread with Bob regarding this issue.

*****Begin*****

From: Osei-Poku, William
Sent: Thursday, May 04, 2017 4:45 PM
To: 'Bob Kline' <bkline@rksystems.com>
Subject: RE: Display of tier name in title bar

Thanks, Bob! That is right, when wen connect by the IP address we get the UNKNOW TIER. However, we can connect with the hostnames but have to deal with the third party software. I wish I had asked this question several years ago. Since this will require a release, I am going to talk with our network team here to see if they can resolve it. If they are not able to do it, I will create a ticket for the next CDR release. Thanks again, Bob!

William

From: Bob Kline bkline@rksystems.com
Sent: Thursday, May 04, 2017 4:31 PM
To: Osei-Poku, William <William.Osei-Poku@icf.com>
Subject: Re: Display of tier name in title bar

So you're putting IP addresses in the Server Settings dialog box? If so, that's why you're getting UNKNOWN TIER, because the code is looking for the known server names. It would be possible to modify the dialog box and the DLL so that we could display the tier even if you don't enter the server names, but that would require a release-dependent code change.

Bob

On Thu, May 4, 2017 at 4:02 PM, Osei-Poku, William <William.Osei-Poku@icf.com> wrote:
Hi Bob,
I am wondering how you are determining the tier we have connected to in XMetal and displaying the tier name in the title bar of XMetal and whether you can help us with our unique problem? We(CIAT) have a long annoying problem of having to list all the CDR IP addresses and names in our hosts file because for some strange reasons, ICF has not been able to handle them in their DNS servers. If they handle them in the DNS servers, we have to connect to XMetal using the IP addresses instead of the hostnames. So, the IP addresses are displayed in the address bar instead of the name of the tier. We have been using a workaround by managing the hosts file using a third party software called Hostsman instead users actually editing the hosts file (We have to do this because, we don’t have such problems when working remotely in which case, the hosts file needs to be disabled).

Now to my question: Is it possible to modify your program that displays the tier name in the title bar so that when we connect to the tiers using CDR server IP address instead of the hostnames, the tier names will display appropriately (PROD, QA, etc) instead of displaying “UNKNOWN TIER”? If this is possible, I will create a ticket for you to look into it. If not, I will bug our network folks again to see if they can handle all these using the DNS servers.

Thanks,
William


Bob Kline
http://www.rksystems.com
mailto:bkline@rksystems.com
*****End****

Comment entered 2018-03-13 07:26:34 by Kline, Bob (NIH/NCI) [C]

: Could you please provide screen shots of the host settings dialog box and for a successfully retrieved document in XMetaL following a logon (on DEV) using the settings shown in the first screen shot? Thanks!

Comment entered 2018-03-15 12:43:10 by Osei-Poku, William (NIH/NCI) [C]

I have attached a screenshot of the hosts file. It is located at C:\Windows\System32\drivers\etc. There is no dialog box for updating the hosts file. We update it manually using notepad.

Comment entered 2018-03-15 12:47:25 by Kline, Bob (NIH/NCI) [C]

When you launch the CDR loader, you get a dialog box with a button at the bottom to choose which tier you want to talk to. When you click that button you can choose the tier, as well as enter the host names for that tier. That's what I want to see.

Comment entered 2018-03-15 12:52:03 by Osei-Poku, William (NIH/NCI) [C]

I have attached it to the ticket.

Comment entered 2018-03-16 07:28:01 by Osei-Poku, William (NIH/NCI) [C]

Adding API host names to the hosts file did not work. Would you know why when on the CISCO AnyConnect VPN, I can access the cdr servers using the host names (for example cdr.cancer.gov) from the browser or command line but not the IP address? The IP address always times out. Is this the same for you?

Comment entered 2018-03-16 09:48:19 by Kline, Bob (NIH/NCI) [C]

Adding API host names to the hosts file did not work.

I'm not surprised, after looking more closely at the IP addresses you've got in your host file. Where did they come from? The IP address you've got for cdr.cancer.gov is 128.231.245.213, but that's nothing like what I get (10.133.204.90) from looking up the DNS name:

$ dig cdr.cancer.gov ALL

; <<>> DiG 9.8.3-P1 <<>> cdr.cancer.gov ALL
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16571
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;cdr.cancer.gov.                        IN      A

;; ANSWER SECTION:
cdr.cancer.gov.         2105    IN      CNAME   cdr.ha2.cancer.gov.
cdr.ha2.cancer.gov.     30      IN      A       10.133.204.90

;; Query time: 22 msec
;; SERVER: 156.40.70.10#53(156.40.70.10)
;; WHEN: Fri Mar 16 09:29:47 2018
;; MSG SIZE  rcvd: 70

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 10161
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ALL.                           IN      A

;; Query time: 9 msec
;; SERVER: 156.40.70.10#53(156.40.70.10)
;; WHEN: Fri Mar 16 09:29:47 2018
;; MSG SIZE  rcvd: 21

Didn't we have a discussion recently in which we asked you to have your network staff use the IP addresses which they got back from looking up the host names in DNS?

Would you know why when on the CISCO AnyConnect VPN, I can access the cdr servers using the host names (for example cdr.cancer.gov) from the browser or command line but not the IP address? The IP address always times out. Is this the same for you?

Aside from the puzzle over the IP addresses you're using (I can ping both the DNS names and the correct IP addresses from the command line successfully), there are multiple problems with trying to test using IP addresses from a web browser. First of all, as I tried to explain yesterday, we are using a single web server to serve up more than one web site. The web server cannot know which site a request should be routed to without the DNS name to which that site has been bound. Also, the cdrapi sites are not built to work with a web browser. They are used for tunneling the CDR client/server commands between XMetaL and the CDR code.

: Would you know who William's networking staff should talk to at NIH? My networking expertise is not deep enough to understand what they're trying to do. Thanks.

Comment entered 2018-03-16 11:11:36 by Osei-Poku, William (NIH/NCI) [C]

Thanks, Bob!
The IP addresses are what they call NATed addresses for the site-to-site VPN and they were provided by NIH. It is supposed to be used only when we are in the office. So, when we come home, we turn them off and use the 10.x.... addresses. The site to site VPN only allows traffic to the CDR servers through these IP addresses from the ICF Rockville location. We provided NIH the 10.x.... addresses and they NATed these addresses and provided us with what the 128.... addresses. I am able to successfully ping 10.133.204.90 from home but I am not able to login to XMetal. I get a "HTTP status code from login request:404" error which appears to indicate that my password is wrong but I have verified that my password is right. I will talk with our network team here to see if I can get some help.

Comment entered 2018-03-16 11:33:25 by Dugan, Amy (NIH/NCI) [C]

Hi , talking to your network team sounds like a good next step. As we discussed yesterday, this issue isn't something to be solved within the CDR. I know this is frustrating – you and your team just want to do your work! Let me know if you would like for me to try reaching out to NIH Networking through our CBIIT contacts. It sounds like you have already gotten some support from them already, but not anything that solves all the problems.

Comment entered 2018-03-30 08:14:17 by Kline, Bob (NIH/NCI) [C]

I have modified the loader to be able to display the tier in the title bar even if the user provides an IP address instead of the DNS name in the Server Settings dialog box, in the unlikely event that IIS is able to route the requests to the correct site without the DNS name. I don't expect that to happen, but I've implemented the requested modification so we can mark this ticket as resolved. You will still need to work out network permissions problems with the appropriate IT staffs.

https://github.com/NCIOCPL/cdr-client/commit/a13fd7c

Comment entered 2018-04-03 14:37:04 by Osei-Poku, William (NIH/NCI) [C]

Thanks Bob! I will be talking with our network engineering team manager today.

Comment entered 2018-04-03 17:42:44 by Osei-Poku, William (NIH/NCI) [C]

I assume the loader has been updated for DEV and QA? I will be doing some tests with our network team tomorrow so I want to be sure that it is okay to test.

Comment entered 2018-04-03 17:48:20 by Kline, Bob (NIH/NCI) [C]

The change to the loader and DLL are on DEV and QA, but again let me remind you that it won't make it possible for you to connect to the API web service without the DNS name.

Comment entered 2018-04-03 18:02:25 by Osei-Poku, William (NIH/NCI) [C]

Yes, I understand that. I tried connecting from home and I was able to connect with the DNS name in the CDR Server field and the IP address in the API server field (and not the other way around) but I couldn't retrieve any document in XMetal. What I am trying to convince our network team here is to add these settings in our DNS server so that we can connect using the DNS names and avoid updating the hosts file. I am not very hopeful but I want to explore all my options before giving up.

Comment entered 2018-04-04 10:29:34 by Kline, Bob (NIH/NCI) [C]

I was able to connect with the DNS name in the CDR Server field and the IP address in the API server field (and not the other way around) ...

Right. The CDR Server is responsible for verifying your credentials, obtaining a session ID for you, and refreshing the client files on your local system. That succeeded because you provided the DNS name for that server. The API server is not used by the loader at all.

... but I couldn't retrieve any document in XMetal.

Again correct. The DLL does all of its client/server using the API tunneling site. Since you provided an IP address instead of the DNS name, the DLL can't find the API site, and therefore cannot handle any request which requires communicating with the repository.

Comment entered 2018-04-04 12:14:45 by Osei-Poku, William (NIH/NCI) [C]

Right. The CDR Server is responsible for verifying your credentials, obtaining a session ID for you, and refreshing the client files on your local system. That succeeded because you provided the DNS name for that server. The API server is not used by the loader at all.

Does it mean that the server name will always require the DNS name? I thought you modified the loader to be able to accept either IP address or DNS name for the server name? I understand that the API server name requires the DNS name.

Comment entered 2018-04-04 12:23:11 by Kline, Bob (NIH/NCI) [C]

Please read again very carefully what I wrote above:

I have modified the loader to be able to display the tier in the title bar even if the user provides an IP address instead of the DNS name in the Server Settings dialog box, in the unlikely event that IIS is able to route the requests to the correct site without the DNS name. I don't expect that to happen, but I've implemented the requested modification so we can mark this ticket as resolved. You will still need to work out network permissions problems with the appropriate IT staffs.

I tried to make it very clear that the modification does NOT address the fact that IIS is unable to route the requests to the correct sites without the DNS names.

Comment entered 2018-04-04 20:49:53 by Osei-Poku, William (NIH/NCI) [C]

Okay. Thanks! Seems there is nothing to test so I am marking this as QA verified and maybe we can mark it as closed.

Attachments
File Name Posted User
hostsfile.png 2018-03-15 12:43:07 Osei-Poku, William (NIH/NCI) [C]
hostswindow.png 2018-03-15 12:51:44 Osei-Poku, William (NIH/NCI) [C]

Elapsed: 0:00:00.001343