public static DataTransferMethodExt ConvertIntToExt(this DataTransferMethod obj)
        {
            var convert = new DataTransferMethodExt()
            {
                SubmittedTaskId = obj.SubmittedTaskId,
                Port            = obj.Port,
                NodeIPAddress   = obj.NodeIPAddress,
                NodePort        = obj.NodePort
            };

            return(convert);
        }
        private string ValidateDataTransferMethodExt(DataTransferMethodExt dataTransferMethodExt)
        {
            if (string.IsNullOrEmpty(dataTransferMethodExt.NodeIPAddress))
            {
                _messageBuilder.AppendLine("IpAddress must be set");
            }
            else if (!IsIpAddress(dataTransferMethodExt.NodeIPAddress))
            {
                _messageBuilder.AppendLine("Ip address has unknown format. If using ipv6, please try to specify 'full address' without shortening.");
            }

            ValidatePort(dataTransferMethodExt.NodePort);

            ValidateId(dataTransferMethodExt.SubmittedTaskId, nameof(dataTransferMethodExt.SubmittedTaskId));

            return(_messageBuilder.ToString());
        }
Exemple #3
0
        public async Task <IActionResult> OnPostCreateSshTunnelASBJobAsync()
        {
            try
            {
                string username = "******";
                string password = "******";

                //AuthenticateUserPassword
                sb.AppendLine(String.Format("username: {0}, password: {1}", username, password));
                string sessionCode = await AuthenticateUserPasswordAsync(username, password);

                //string sessionCode = AuthenticateUserKeycloakOpenId(openIdToken);
                sb.AppendLine(String.Format("sessionCode: {0}", sessionCode));

                //GetAllocatedNodesIps
                var client  = new RestClient(baseUrl);
                var request = new RestRequest("JobManagement/GetAllocatedNodesIPs", Method.Post)
                {
                    RequestFormat = DataFormat.Json
                }.AddJsonBody(
                    new GetAllocatedNodesIPsModel
                {
                    SubmittedTaskInfoId = AsbSubmittedJob,
                    SessionCode         = sessionCode
                });
                var response = await client.ExecuteAsync(request);

                if (response.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    throw new Exception(response.Content.ToString());
                }
                string[] nodeIps = JsonConvert.DeserializeObject <string[]>(response.Content.ToString());
                sb.AppendLine(String.Format("Returned allocated node IPs"));

                //GetDataTransferMethod
                client  = new RestClient(baseUrl);
                request = new RestRequest("DataTransfer/GetDataTransferMethod", Method.Post)
                {
                    RequestFormat = DataFormat.Json
                }.AddJsonBody(
                    new GetDataTransferMethodModel
                {
                    IpAddress          = nodeIps[0],
                    Port               = 8080,
                    SubmittedJobInfoId = AsbSubmittedJob,
                    SessionCode        = sessionCode
                });
                response = await client.ExecuteAsync(request);

                if (response.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    throw new Exception(response.Content.ToString());
                }
                DataTransferMethodExt dt = JsonConvert.DeserializeObject <DataTransferMethodExt>(response.Content.ToString());
                AsbDataTransfer = dt;
                sb.AppendLine(String.Format("DataTransfer ssh tunnel created"));

                ResponseContent = sb.ToString();
            }
            catch (Exception e)
            {
                ResponseContent = e.Message;
            }
            return(Page());
        }