)]}'
{"OpenStack/OpenStack/Compute/ComputeFlavor.cs":[{"author":{"_account_id":9274,"name":"Travis Plummer","email":"travis.plummer@hp.com","username":"Paybackman"},"change_message_id":"13aab2a63de18ca47ed09aba210bfa885007a81d","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    /// \u003csummary\u003e"},{"line_number":25,"context_line":"    /// Represents a Flavor on a remote OpenStack instance."},{"line_number":26,"context_line":"    /// \u003c/summary\u003e"},{"line_number":27,"context_line":"    public class ComputeFlavor : ComputeItem"},{"line_number":28,"context_line":"    {"},{"line_number":29,"context_line":"        /// \u003csummary\u003e"},{"line_number":30,"context_line":"        /// Gets the amount of RAM for the Flavor."}],"source_content_type":"text/x-csharp","patch_set":1,"id":"1ae5cdf2_6762463f","line":27,"updated":"2014-06-13 14:22:54.000000000","message":"The use of Compute in the name. Is this not implied by the Namespace? Just a thought..","commit_id":"a952269947869288235444928e98dc9e04e7d38c"},{"author":{"_account_id":10523,"name":"Wayne Foley","email":"wayne.foley@hp.com","username":"wfoley"},"change_message_id":"607e19a9f488636cb51e1a7be77dddaaf036fe49","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    /// \u003csummary\u003e"},{"line_number":25,"context_line":"    /// Represents a Flavor on a remote OpenStack instance."},{"line_number":26,"context_line":"    /// \u003c/summary\u003e"},{"line_number":27,"context_line":"    public class ComputeFlavor : ComputeItem"},{"line_number":28,"context_line":"    {"},{"line_number":29,"context_line":"        /// \u003csummary\u003e"},{"line_number":30,"context_line":"        /// Gets the amount of RAM for the Flavor."}],"source_content_type":"text/x-csharp","patch_set":1,"id":"1ae5cdf2_9f4917ba","line":27,"in_reply_to":"1ae5cdf2_6762463f","updated":"2014-06-16 15:52:55.000000000","message":"I\u0027ve gone back and forth on this one...I think your right and it applies not only to flavors but images and servers. I will take this as a separate refactor/changeset","commit_id":"a952269947869288235444928e98dc9e04e7d38c"}],"OpenStack/OpenStack/Compute/ComputeServer.cs":[{"author":{"_account_id":9274,"name":"Travis Plummer","email":"travis.plummer@hp.com","username":"Paybackman"},"change_message_id":"13aab2a63de18ca47ed09aba210bfa885007a81d","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"namespace OpenStack.Compute"},{"line_number":21,"context_line":"{"},{"line_number":22,"context_line":"    public class ComputeServer : MetadataComputeItem"},{"line_number":23,"context_line":"    {"},{"line_number":24,"context_line":"        public ComputeServer(string id, string name, Uri publicUri, Uri permanentUri,"},{"line_number":25,"context_line":"            IDictionary\u003cstring, string\u003e metadata) : base(id, name, publicUri, permanentUri, metadata)"}],"source_content_type":"text/x-csharp","patch_set":1,"id":"1ae5cdf2_0f9b7018","line":22,"updated":"2014-06-13 14:22:54.000000000","message":"So a ComputeServer IS-A MetadataComputeItem ?\n\nThe relation seems really abstract as meta-data items are  usually contained by the type and not derived. What are the responsibilities of this base type?","commit_id":"a952269947869288235444928e98dc9e04e7d38c"},{"author":{"_account_id":10523,"name":"Wayne Foley","email":"wayne.foley@hp.com","username":"wfoley"},"change_message_id":"607e19a9f488636cb51e1a7be77dddaaf036fe49","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"namespace OpenStack.Compute"},{"line_number":21,"context_line":"{"},{"line_number":22,"context_line":"    public class ComputeServer : MetadataComputeItem"},{"line_number":23,"context_line":"    {"},{"line_number":24,"context_line":"        public ComputeServer(string id, string name, Uri publicUri, Uri permanentUri,"},{"line_number":25,"context_line":"            IDictionary\u003cstring, string\u003e metadata) : base(id, name, publicUri, permanentUri, metadata)"}],"source_content_type":"text/x-csharp","patch_set":1,"id":"1ae5cdf2_1fba676e","line":22,"in_reply_to":"1ae5cdf2_0f9b7018","updated":"2014-06-16 15:52:55.000000000","message":"I agree the naming is a little off here. The base compute item contains properties and fields that all compute related items have name, id, etc). The MetadataComputeItem builds on the ComputeItem base, and adds properties/fields for items that have (or can have) metadata associated with them (right now this is only images and servers). I am open to suggestions on the name. I couldn\u0027t settle on a better name, so I went with this.","commit_id":"a952269947869288235444928e98dc9e04e7d38c"}],"OpenStack/OpenStack/Compute/ComputeServiceClient.cs":[{"author":{"_account_id":9274,"name":"Travis Plummer","email":"travis.plummer@hp.com","username":"Paybackman"},"change_message_id":"13aab2a63de18ca47ed09aba210bfa885007a81d","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        }"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        /// \u003cinheritdoc/\u003e"},{"line_number":57,"context_line":"        public async Task\u003cComputeFlavor\u003e GetFlavor(string flavorId)"},{"line_number":58,"context_line":"        {"},{"line_number":59,"context_line":"            flavorId.AssertIsNotNullOrEmpty(\"flavorId\", \"Cannot get a compute flavor with a null or empty id.\");"},{"line_number":60,"context_line":"            "}],"source_content_type":"text/x-csharp","patch_set":1,"id":"1ae5cdf2_07f50282","line":57,"updated":"2014-06-13 14:22:54.000000000","message":"You may want to consider naming each async method with a \u0027async\u0027 suffix. This convention is used everywhere by MS.","commit_id":"a952269947869288235444928e98dc9e04e7d38c"},{"author":{"_account_id":10523,"name":"Wayne Foley","email":"wayne.foley@hp.com","username":"wfoley"},"change_message_id":"607e19a9f488636cb51e1a7be77dddaaf036fe49","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        }"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        /// \u003cinheritdoc/\u003e"},{"line_number":57,"context_line":"        public async Task\u003cComputeFlavor\u003e GetFlavor(string flavorId)"},{"line_number":58,"context_line":"        {"},{"line_number":59,"context_line":"            flavorId.AssertIsNotNullOrEmpty(\"flavorId\", \"Cannot get a compute flavor with a null or empty id.\");"},{"line_number":60,"context_line":"            "}],"source_content_type":"text/x-csharp","patch_set":1,"id":"1ae5cdf2_9f2af78e","line":57,"in_reply_to":"1ae5cdf2_07f50282","updated":"2014-06-16 15:52:55.000000000","message":"I\u0027ve gotten this feedback from others. I will take this as a separate work item.","commit_id":"a952269947869288235444928e98dc9e04e7d38c"},{"author":{"_account_id":9274,"name":"Travis Plummer","email":"travis.plummer@hp.com","username":"Paybackman"},"change_message_id":"13aab2a63de18ca47ed09aba210bfa885007a81d","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        /// \u003cinheritdoc/\u003e"},{"line_number":85,"context_line":"        public async Task DeleteServerMetadata(string flavorId, string key)"},{"line_number":86,"context_line":"        {"},{"line_number":87,"context_line":"            flavorId.AssertIsNotNullOrEmpty(\"flavorId\", \"Cannot delete a compute flavor metadata item with a null or empty id.\");"},{"line_number":88,"context_line":"            key.AssertIsNotNullOrEmpty(\"key\", \"Cannot delete a compute flavor metadata item with a null or empty key.\");"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"            var client \u003d this.GetPocoClient();"}],"source_content_type":"text/x-csharp","patch_set":1,"id":"1ae5cdf2_45d399d4","line":87,"updated":"2014-06-13 14:22:54.000000000","message":"Check out .net Code Contracts.. You might like them...","commit_id":"a952269947869288235444928e98dc9e04e7d38c"},{"author":{"_account_id":10523,"name":"Wayne Foley","email":"wayne.foley@hp.com","username":"wfoley"},"change_message_id":"607e19a9f488636cb51e1a7be77dddaaf036fe49","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        /// \u003cinheritdoc/\u003e"},{"line_number":85,"context_line":"        public async Task DeleteServerMetadata(string flavorId, string key)"},{"line_number":86,"context_line":"        {"},{"line_number":87,"context_line":"            flavorId.AssertIsNotNullOrEmpty(\"flavorId\", \"Cannot delete a compute flavor metadata item with a null or empty id.\");"},{"line_number":88,"context_line":"            key.AssertIsNotNullOrEmpty(\"key\", \"Cannot delete a compute flavor metadata item with a null or empty key.\");"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"            var client \u003d this.GetPocoClient();"}],"source_content_type":"text/x-csharp","patch_set":1,"id":"1ae5cdf2_1f48a786","line":87,"in_reply_to":"1ae5cdf2_45d399d4","updated":"2014-06-16 15:52:55.000000000","message":"I\u0027ve actually used them before, and had mixed results. That was a while ago, so I\u0027ll check them out again and see if it would  work for us here.","commit_id":"a952269947869288235444928e98dc9e04e7d38c"}]}
