2

I have downloaded the Amazon AWS SDK for C#, I have no problem accessing the EC2 part of our private cloud running Eucalyptus, I can list, Images, Instances, Zones ...

This is working fine :

AmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client("abcdefghijklmnopqrstuvwxyz1234567890", "abcdefghijklmnopqrstuvwxyz1234567890", new AmazonEC2Config().WithServiceURL("http://10.140.54.12:8773/services/Eucalyptus"));

DescribeInstancesRequest ec2Request = new DescribeInstancesRequest();
try
{
    DescribeInstancesResponse ec2Response = ec2.DescribeInstances(ec2Request);
    int numInstances = 0;
    numInstances = ec2Response.DescribeInstancesResult.Reservation.Count;
    textBoxInstancesLog.AppendText("You have " + numInstances + " running instances");
    textBoxInstancesLog.AppendText(ec2Response.ToString());
}
catch (Exception ex)
{
    MessageBox.Show(ex.ToString());
}

But I need to access the Walrus (S3) part of our Cloud. This is how I try to access the Walrus, the code is almost identical, but with this call I will get an exception.

This is not working:

AmazonS3 s3 = AWSClientFactory.CreateAmazonS3Client("abcdefghijklmnopqrstuvwxyz1234567890", "abcdefghijklmnopqrstuvwxyz1234567890", new AmazonS3Config().WithServiceURL("http://10.140.54.12:8773/services/Walrus"));
ListBucketsRequest s3Request = new ListBucketsRequest();
try
{
    ListBucketsResponse s3Response = s3.ListBuckets(s3Request);
    textBoxS3Log.AppendText(s3Response.ToString());
}
catch (Exception ex)
{
    MessageBox.Show(ex.ToString());
}

I will receive this exception :

System.Net.WebException: The remote name could not be resolved: 'http'
   at Amazon.S3.AmazonS3Client.processRequestError(String actionName, HttpWebRequest request, WebException we, HttpWebResponse errorResponse, String requestAddr, WebHeaderCollection& respHdrs, Type t, Exception& cause)
   at Amazon.S3.AmazonS3Client.handleHttpWebErrorResponse(S3Request userRequest, WebException we, HttpWebRequest request, HttpWebResponse httpResponse, Exception& cause, HttpStatusCode& statusCode)
   at Amazon.S3.AmazonS3Client.getResponseCallback[T](IAsyncResult result)
   at Amazon.S3.AmazonS3Client.endOperation[T](IAsyncResult result)
   at Amazon.S3.AmazonS3Client.ListBuckets(ListBucketsRequest request)
   at IAASClient.FormMain.buttonS3Test_Click(Object sender, EventArgs e) in X:\work\IAASClient\FormMain.cs:line 107

From Eucalyptus site :

Eucalyptus implements an IaaS (Infrastructure as a Service) private cloud that is accessible via an API compatible with Amazon EC2 and Amazon S3

What am I missing ?

Note: The same code work flawlessly with Amazon S3, the problem is to access Eucalyptus Walrus.

pallaire
  • 110
  • 7
  • It's reccomended that you don't cross post between different sites, pick on and if it is incorrect it will get migrated. http://stackoverflow.com/questions/6280919/how-to-access-an-eucalyptus-walruss3-using-amazon-aws-sdk-for-c-sharp – Sam Cogan Jan 15 '12 at 19:10

1 Answers1

0

In the zip file AWS_Console_App1 (AWS_Console_App1_1_0_3699_15931.zip) you'll find a reference to the Walrus support in the Readme.txt file. I found it in this article of The Scientific Cloud.

It mentions the following: "Amazon.S3\AmazonS3Config.cs: Added privateServiceUrl property and field in support of Walrus compatibility".

It looks like this could be a good lead.

pcantin
  • 248
  • 4
  • 13