)]}'
{"pkg/config/.testairship/\\":[{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"apiVersion: airshipit.org/v1alpha1"},{"line_number":2,"context_line":"clusters:"},{"line_number":3,"context_line":"  def:"},{"line_number":4,"context_line":"    cluster-type:"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"3fa7e38b_9c4cd23f","line":1,"updated":"2019-10-31 12:54:45.000000000","message":"that\u0027s wired filename","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":1,"context_line":"apiVersion: airshipit.org/v1alpha1"},{"line_number":2,"context_line":"clusters:"},{"line_number":3,"context_line":"  def:"},{"line_number":4,"context_line":"    cluster-type:"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"3fa7e38b_ee2e6941","line":1,"in_reply_to":"3fa7e38b_9c4cd23f","updated":"2019-10-31 16:23:04.000000000","message":"Done","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"f058c7d90d28ba345bb6518ebcf1e6b736af9b53","unresolved":false,"context_lines":[{"line_number":1,"context_line":"apiVersion: airshipit.org/v1alpha1"},{"line_number":2,"context_line":"clusters:"},{"line_number":3,"context_line":"  def:"},{"line_number":4,"context_line":"    cluster-type:"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"3fa7e38b_373b77ea","line":1,"in_reply_to":"3fa7e38b_9c4cd23f","updated":"2019-10-31 14:26:05.000000000","message":"This is leftover from config module,it will be cleaned when config module is merged,and has proper clean up,stated this in commit comments for now","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"}],"pkg/k8sdeps/apply.go":[{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"package k8sdeps"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"import ("},{"line_number":4,"context_line":"\t\"os\""}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_9c65b2b1","line":1,"range":{"start_line":1,"start_character":8,"end_line":1,"end_character":15},"updated":"2019-10-31 12:54:45.000000000","message":"why don\u0027t we call it just \u0027k8s\u0027 ?","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":1,"context_line":"package k8sdeps"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"import ("},{"line_number":4,"context_line":"\t\"os\""}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_4ee8dddd","line":1,"range":{"start_line":1,"start_character":8,"end_line":1,"end_character":15},"in_reply_to":"3fa7e38b_9c65b2b1","updated":"2019-10-31 16:23:04.000000000","message":"i took the idea from kustomize package. I will change this if needed later, when config module is merged","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":46,"context_line":"}"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"// SetDryRun populates ApplyOptions of kubectl module with dry-run option"},{"line_number":49,"context_line":"func (aa *ApplyAdapter) SetDryRun(dryRun bool) {"},{"line_number":50,"context_line":"\taa.DryRun \u003d dryRun"},{"line_number":51,"context_line":"}"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"// SetOutputFormat populates ApplyOptions of kubectl module with output options"},{"line_number":54,"context_line":"func (aa *ApplyAdapter) SetOutputFormat(format string) {"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_773b2f9b","line":51,"range":{"start_line":49,"start_character":0,"end_line":51,"end_character":1},"updated":"2019-10-31 12:54:45.000000000","message":"1. Do not think that we need a setter for public property\n2. If it\u0027s required than re move function argument since name implies DryRun\u003dtrue","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"f058c7d90d28ba345bb6518ebcf1e6b736af9b53","unresolved":false,"context_lines":[{"line_number":46,"context_line":"}"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"// SetDryRun populates ApplyOptions of kubectl module with dry-run option"},{"line_number":49,"context_line":"func (aa *ApplyAdapter) SetDryRun(dryRun bool) {"},{"line_number":50,"context_line":"\taa.DryRun \u003d dryRun"},{"line_number":51,"context_line":"}"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"// SetOutputFormat populates ApplyOptions of kubectl module with output options"},{"line_number":54,"context_line":"func (aa *ApplyAdapter) SetOutputFormat(format string) {"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_52a2c1af","line":51,"range":{"start_line":49,"start_character":0,"end_line":51,"end_character":1},"in_reply_to":"3fa7e38b_773b2f9b","updated":"2019-10-31 14:26:05.000000000","message":"1. I think it is a good way in this case to use a unified setter pattern when interacting with this object, some of setters do have some logic in them, and it maybe developed further. However, i don\u0027t want to limit it to this pattern, that is why fields are left public, this corresponds with `effective go`.\n\n2. I see problems using this approach, for example if i want to make sure that DryRun is set to false (we cant use default value false, because we do not know if it was changed or not by someone before), i dont see the way to use the function. Another example, if the dryrun value will be transparently passed from command line flags, without knowing what this value actually is\n\nAs a side note, because we are using composition here, DryRun field here, belongs to underlying ApplyOptions struct from kubectl module, so I would rather do changes to do via setters, than directly interacting with it.","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":75,"context_line":"\t\t}"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"\t}"},{"line_number":78,"context_line":"\taa.ApplyOptions.DeleteOptions.Filenames \u003d []string{tf.Name()}"},{"line_number":79,"context_line":"\treturn aa.Run()"},{"line_number":80,"context_line":"}"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_7ced56ee","line":78,"range":{"start_line":78,"start_character":0,"end_line":78,"end_character":62},"updated":"2019-10-31 12:54:45.000000000","message":"Can we have comment why do we need this","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":75,"context_line":"\t\t}"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"\t}"},{"line_number":78,"context_line":"\taa.ApplyOptions.DeleteOptions.Filenames \u003d []string{tf.Name()}"},{"line_number":79,"context_line":"\treturn aa.Run()"},{"line_number":80,"context_line":"}"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_0ec0a54f","line":78,"range":{"start_line":78,"start_character":0,"end_line":78,"end_character":62},"in_reply_to":"3fa7e38b_7ced56ee","updated":"2019-10-31 16:23:04.000000000","message":"Done","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"f058c7d90d28ba345bb6518ebcf1e6b736af9b53","unresolved":false,"context_lines":[{"line_number":75,"context_line":"\t\t}"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"\t}"},{"line_number":78,"context_line":"\taa.ApplyOptions.DeleteOptions.Filenames \u003d []string{tf.Name()}"},{"line_number":79,"context_line":"\treturn aa.Run()"},{"line_number":80,"context_line":"}"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_728edd2e","line":78,"range":{"start_line":78,"start_character":0,"end_line":78,"end_character":62},"in_reply_to":"3fa7e38b_7ced56ee","updated":"2019-10-31 14:26:05.000000000","message":"will add in upcoming patchset","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":84,"context_line":"// need `kubectl apply` functionality without calling executing command in shell"},{"line_number":85,"context_line":"// To function properly, you may need to specify files from where to read the resources:"},{"line_number":86,"context_line":"// DeleteOptions.Filenames of returned object has to be set for that"},{"line_number":87,"context_line":"func NewApplyOptions(f cmdutil.Factory, streams genericclioptions.IOStreams) (*apply.ApplyOptions, error) {"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"\to :\u003d apply.NewApplyOptions(streams)"},{"line_number":90,"context_line":"\to.ServerSideApply \u003d false"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_bca3ce9d","line":87,"range":{"start_line":87,"start_character":5,"end_line":87,"end_character":20},"updated":"2019-10-31 12:54:45.000000000","message":"Can we decompose this function to smaller pieces?","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"f058c7d90d28ba345bb6518ebcf1e6b736af9b53","unresolved":false,"context_lines":[{"line_number":84,"context_line":"// need `kubectl apply` functionality without calling executing command in shell"},{"line_number":85,"context_line":"// To function properly, you may need to specify files from where to read the resources:"},{"line_number":86,"context_line":"// DeleteOptions.Filenames of returned object has to be set for that"},{"line_number":87,"context_line":"func NewApplyOptions(f cmdutil.Factory, streams genericclioptions.IOStreams) (*apply.ApplyOptions, error) {"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"\to :\u003d apply.NewApplyOptions(streams)"},{"line_number":90,"context_line":"\to.ServerSideApply \u003d false"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_72cb3d1d","line":87,"range":{"start_line":87,"start_character":5,"end_line":87,"end_character":20},"in_reply_to":"3fa7e38b_bca3ce9d","updated":"2019-10-31 14:26:05.000000000","message":"This is minimal part that needs to be done to get a working instance of ApplyOptions from kubectl, decomposing this, in my eyes will have no sense, because any part of it by itself will give a not working instance of the ApplyOptions struct.\nThis function is a version of kubectl/apply.complete() function, but designed to work outside the command line: https://github.com/kubernetes/kubectl/blob/master/pkg/cmd/apply/apply.go#L199-L273","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":96,"context_line":"\t\tif o.DryRun {"},{"line_number":97,"context_line":"\t\t\to.PrintFlags.Complete(\"%s (dry run)\")"},{"line_number":98,"context_line":"\t\t}"},{"line_number":99,"context_line":"\t\tif o.ServerDryRun {"},{"line_number":100,"context_line":"\t\t\to.PrintFlags.Complete(\"%s (server dry run)\")"},{"line_number":101,"context_line":"\t\t}"},{"line_number":102,"context_line":"\t\treturn o.PrintFlags.ToPrinter()"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_dc900a51","line":99,"range":{"start_line":99,"start_character":0,"end_line":99,"end_character":21},"updated":"2019-10-31 12:54:45.000000000","message":"Why di we need this if o.ServerSideApply \u003d false ?","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"f058c7d90d28ba345bb6518ebcf1e6b736af9b53","unresolved":false,"context_lines":[{"line_number":96,"context_line":"\t\tif o.DryRun {"},{"line_number":97,"context_line":"\t\t\to.PrintFlags.Complete(\"%s (dry run)\")"},{"line_number":98,"context_line":"\t\t}"},{"line_number":99,"context_line":"\t\tif o.ServerDryRun {"},{"line_number":100,"context_line":"\t\t\to.PrintFlags.Complete(\"%s (server dry run)\")"},{"line_number":101,"context_line":"\t\t}"},{"line_number":102,"context_line":"\t\treturn o.PrintFlags.ToPrinter()"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_f29e4d52","line":99,"range":{"start_line":99,"start_character":0,"end_line":99,"end_character":21},"in_reply_to":"3fa7e38b_dc900a51","updated":"2019-10-31 14:26:05.000000000","message":"this value can be overridden later, after the function is used. we want to make sure that this is set in any case","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"\to.Validator, err \u003d f.Validator(false)"},{"line_number":127,"context_line":"\tif err !\u003d nil {"},{"line_number":128,"context_line":"\t\treturn \u0026apply.ApplyOptions{}, err"},{"line_number":129,"context_line":"\t}"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"\to.Builder \u003d f.NewBuilder()"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_1c99c26b","line":128,"range":{"start_line":128,"start_character":9,"end_line":128,"end_character":30},"updated":"2019-10-31 12:54:45.000000000","message":"Should we just return nil here?","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"\to.Validator, err \u003d f.Validator(false)"},{"line_number":127,"context_line":"\tif err !\u003d nil {"},{"line_number":128,"context_line":"\t\treturn \u0026apply.ApplyOptions{}, err"},{"line_number":129,"context_line":"\t}"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"\to.Builder \u003d f.NewBuilder()"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_ceb5adee","line":128,"range":{"start_line":128,"start_character":9,"end_line":128,"end_character":30},"in_reply_to":"3fa7e38b_1c99c26b","updated":"2019-10-31 16:23:04.000000000","message":"Done","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"f058c7d90d28ba345bb6518ebcf1e6b736af9b53","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"\to.Validator, err \u003d f.Validator(false)"},{"line_number":127,"context_line":"\tif err !\u003d nil {"},{"line_number":128,"context_line":"\t\treturn \u0026apply.ApplyOptions{}, err"},{"line_number":129,"context_line":"\t}"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"\to.Builder \u003d f.NewBuilder()"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_72f49d5b","line":128,"range":{"start_line":128,"start_character":9,"end_line":128,"end_character":30},"in_reply_to":"3fa7e38b_1c99c26b","updated":"2019-10-31 14:26:05.000000000","message":"will fix","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"}],"pkg/k8sdeps/apply_test.go":[{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"var ("},{"line_number":18,"context_line":"\tcodec                   \u003d scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...)"},{"line_number":19,"context_line":"\tfilenameRC              \u003d \"../../testdata/k8s/rc.yaml\""},{"line_number":20,"context_line":"\tkubeconfigPath          \u003d \"../../testdata/k8s/kubeconfig.yaml\""},{"line_number":21,"context_line":"\tmalformedKubeconfigPath \u003d \"../../testdata/k8s/malformedkubeconfig.yaml\""},{"line_number":22,"context_line":"\twrongKubeconfigPath     \u003d \"random/kubeconfig/path\""}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_fcae267f","line":19,"range":{"start_line":19,"start_character":47,"end_line":19,"end_character":54},"updated":"2019-10-31 12:54:45.000000000","message":"use more meaningful name. It\u0027s not clear what \u0027rc\u0027 suppose to mean","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"var ("},{"line_number":18,"context_line":"\tcodec                   \u003d scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...)"},{"line_number":19,"context_line":"\tfilenameRC              \u003d \"../../testdata/k8s/rc.yaml\""},{"line_number":20,"context_line":"\tkubeconfigPath          \u003d \"../../testdata/k8s/kubeconfig.yaml\""},{"line_number":21,"context_line":"\tmalformedKubeconfigPath \u003d \"../../testdata/k8s/malformedkubeconfig.yaml\""},{"line_number":22,"context_line":"\twrongKubeconfigPath     \u003d \"random/kubeconfig/path\""}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_6ed03920","line":19,"range":{"start_line":19,"start_character":47,"end_line":19,"end_character":54},"in_reply_to":"3fa7e38b_fcae267f","updated":"2019-10-31 16:23:04.000000000","message":"Done","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"f058c7d90d28ba345bb6518ebcf1e6b736af9b53","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"var ("},{"line_number":18,"context_line":"\tcodec                   \u003d scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...)"},{"line_number":19,"context_line":"\tfilenameRC              \u003d \"../../testdata/k8s/rc.yaml\""},{"line_number":20,"context_line":"\tkubeconfigPath          \u003d \"../../testdata/k8s/kubeconfig.yaml\""},{"line_number":21,"context_line":"\tmalformedKubeconfigPath \u003d \"../../testdata/k8s/malformedkubeconfig.yaml\""},{"line_number":22,"context_line":"\twrongKubeconfigPath     \u003d \"random/kubeconfig/path\""}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_6d64c2b9","line":19,"range":{"start_line":19,"start_character":47,"end_line":19,"end_character":54},"in_reply_to":"3fa7e38b_fcae267f","updated":"2019-10-31 14:26:05.000000000","message":"will fix","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":22,"context_line":"\twrongKubeconfigPath     \u003d \"random/kubeconfig/path\""},{"line_number":23,"context_line":"\tfixtureDir              \u003d \"../../testdata/k8s/\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"\ts                  \u003d genericclioptions.NewTestIOStreamsDiscard()"},{"line_number":26,"context_line":"\tToDiscoveryError   \u003d errors.New(\"ToDiscoveryError\")"},{"line_number":27,"context_line":"\tDynamicClientError \u003d errors.New(\"DynamicClientError\")"},{"line_number":28,"context_line":"\tValidateError      \u003d errors.New(\"ValidateError\")"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_9cbdb2b2","line":25,"range":{"start_line":25,"start_character":1,"end_line":25,"end_character":2},"updated":"2019-10-31 12:54:45.000000000","message":"i\u0027d like to have more meaningful name for variable","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":22,"context_line":"\twrongKubeconfigPath     \u003d \"random/kubeconfig/path\""},{"line_number":23,"context_line":"\tfixtureDir              \u003d \"../../testdata/k8s/\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"\ts                  \u003d genericclioptions.NewTestIOStreamsDiscard()"},{"line_number":26,"context_line":"\tToDiscoveryError   \u003d errors.New(\"ToDiscoveryError\")"},{"line_number":27,"context_line":"\tDynamicClientError \u003d errors.New(\"DynamicClientError\")"},{"line_number":28,"context_line":"\tValidateError      \u003d errors.New(\"ValidateError\")"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_2ec6c169","line":25,"range":{"start_line":25,"start_character":1,"end_line":25,"end_character":2},"in_reply_to":"3fa7e38b_9cbdb2b2","updated":"2019-10-31 16:23:04.000000000","message":"Done","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"f058c7d90d28ba345bb6518ebcf1e6b736af9b53","unresolved":false,"context_lines":[{"line_number":22,"context_line":"\twrongKubeconfigPath     \u003d \"random/kubeconfig/path\""},{"line_number":23,"context_line":"\tfixtureDir              \u003d \"../../testdata/k8s/\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"\ts                  \u003d genericclioptions.NewTestIOStreamsDiscard()"},{"line_number":26,"context_line":"\tToDiscoveryError   \u003d errors.New(\"ToDiscoveryError\")"},{"line_number":27,"context_line":"\tDynamicClientError \u003d errors.New(\"DynamicClientError\")"},{"line_number":28,"context_line":"\tValidateError      \u003d errors.New(\"ValidateError\")"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_0d574ecc","line":25,"range":{"start_line":25,"start_character":1,"end_line":25,"end_character":2},"in_reply_to":"3fa7e38b_9cbdb2b2","updated":"2019-10-31 14:26:05.000000000","message":"will fix next patchset","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":35,"context_line":"func TestApply(t *testing.T) {"},{"line_number":36,"context_line":"\t// Create kubectl fake factory that will return fake kubernetes clients"},{"line_number":37,"context_line":"\tf :\u003d k8stest.NewFakeFactoryForRC(t, filenameRC)"},{"line_number":38,"context_line":"\tdefer f.Cleanup()"},{"line_number":39,"context_line":"\t// Create test bundle to hold fixture documents"},{"line_number":40,"context_line":"\tb :\u003d testutil.NewTestBundle(t, fixtureDir)"},{"line_number":41,"context_line":"\t// Create filesystem that will return files in fixture directory,"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_377e176a","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":18},"updated":"2019-10-31 12:54:45.000000000","message":"I think it\u0027s not good idea to use defer in tests","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"f058c7d90d28ba345bb6518ebcf1e6b736af9b53","unresolved":false,"context_lines":[{"line_number":35,"context_line":"func TestApply(t *testing.T) {"},{"line_number":36,"context_line":"\t// Create kubectl fake factory that will return fake kubernetes clients"},{"line_number":37,"context_line":"\tf :\u003d k8stest.NewFakeFactoryForRC(t, filenameRC)"},{"line_number":38,"context_line":"\tdefer f.Cleanup()"},{"line_number":39,"context_line":"\t// Create test bundle to hold fixture documents"},{"line_number":40,"context_line":"\tb :\u003d testutil.NewTestBundle(t, fixtureDir)"},{"line_number":41,"context_line":"\t// Create filesystem that will return files in fixture directory,"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_0d250e5c","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":18},"in_reply_to":"3fa7e38b_377e176a","updated":"2019-10-31 14:26:05.000000000","message":"i think we do need to cleanup after the tests even if they fail, this the way it is used in testing kubernetes core projects: https://github.com/kubernetes/kubectl/blob/2ba9448df4cc27d2b99b28f5011856cfb2eda232/pkg/cmd/testing/fake.go#L342\n\nWe dont want the machine on which tests are run(developer/gate or any other) to have leftovers are tests","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":56,"context_line":"\taa.SetDryRun(true)"},{"line_number":57,"context_line":"\t// Get documents by annotation"},{"line_number":58,"context_line":"\tdocs, err :\u003d b.GetByAnnotation(\"airshipit.org/initinfra\")"},{"line_number":59,"context_line":"\tif err !\u003d nil {"},{"line_number":60,"context_line":"\t\tt.Fatal(err)"},{"line_number":61,"context_line":"\t}"},{"line_number":62,"context_line":"\ttests :\u003d []struct {"},{"line_number":63,"context_line":"\t\tname         string"},{"line_number":64,"context_line":"\t\texpectedErr  error"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_3741370b","line":61,"range":{"start_line":59,"start_character":0,"end_line":61,"end_character":2},"updated":"2019-10-31 12:54:45.000000000","message":"require.NoError is better","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"f058c7d90d28ba345bb6518ebcf1e6b736af9b53","unresolved":false,"context_lines":[{"line_number":56,"context_line":"\taa.SetDryRun(true)"},{"line_number":57,"context_line":"\t// Get documents by annotation"},{"line_number":58,"context_line":"\tdocs, err :\u003d b.GetByAnnotation(\"airshipit.org/initinfra\")"},{"line_number":59,"context_line":"\tif err !\u003d nil {"},{"line_number":60,"context_line":"\t\tt.Fatal(err)"},{"line_number":61,"context_line":"\t}"},{"line_number":62,"context_line":"\ttests :\u003d []struct {"},{"line_number":63,"context_line":"\t\tname         string"},{"line_number":64,"context_line":"\t\texpectedErr  error"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_ed1d120f","line":61,"range":{"start_line":59,"start_character":0,"end_line":61,"end_character":2},"in_reply_to":"3fa7e38b_3741370b","updated":"2019-10-31 14:26:05.000000000","message":"will fix next patch set","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":56,"context_line":"\taa.SetDryRun(true)"},{"line_number":57,"context_line":"\t// Get documents by annotation"},{"line_number":58,"context_line":"\tdocs, err :\u003d b.GetByAnnotation(\"airshipit.org/initinfra\")"},{"line_number":59,"context_line":"\tif err !\u003d nil {"},{"line_number":60,"context_line":"\t\tt.Fatal(err)"},{"line_number":61,"context_line":"\t}"},{"line_number":62,"context_line":"\ttests :\u003d []struct {"},{"line_number":63,"context_line":"\t\tname         string"},{"line_number":64,"context_line":"\t\texpectedErr  error"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_4ec1bd4d","line":61,"range":{"start_line":59,"start_character":0,"end_line":61,"end_character":2},"in_reply_to":"3fa7e38b_ed1d120f","updated":"2019-10-31 16:23:04.000000000","message":"Done","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":66,"context_line":"\t\tfs           k8sdeps.FileSystem"},{"line_number":67,"context_line":"\t}{"},{"line_number":68,"context_line":"\t\t{"},{"line_number":69,"context_line":"\t\t\tapplyAdapter: aa,"},{"line_number":70,"context_line":"\t\t\texpectedErr:  nil,"},{"line_number":71,"context_line":"\t\t\tfs:           fSys,"},{"line_number":72,"context_line":"\t\t},"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_77324fa9","line":69,"range":{"start_line":69,"start_character":3,"end_line":69,"end_character":20},"updated":"2019-10-31 12:54:45.000000000","message":"this property is common for all test cases. Use just aa.Apply() in assert","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":66,"context_line":"\t\tfs           k8sdeps.FileSystem"},{"line_number":67,"context_line":"\t}{"},{"line_number":68,"context_line":"\t\t{"},{"line_number":69,"context_line":"\t\t\tapplyAdapter: aa,"},{"line_number":70,"context_line":"\t\t\texpectedErr:  nil,"},{"line_number":71,"context_line":"\t\t\tfs:           fSys,"},{"line_number":72,"context_line":"\t\t},"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_0ea505b5","line":69,"range":{"start_line":69,"start_character":3,"end_line":69,"end_character":20},"in_reply_to":"3fa7e38b_2d280a31","updated":"2019-10-31 16:23:04.000000000","message":"Done","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"f058c7d90d28ba345bb6518ebcf1e6b736af9b53","unresolved":false,"context_lines":[{"line_number":66,"context_line":"\t\tfs           k8sdeps.FileSystem"},{"line_number":67,"context_line":"\t}{"},{"line_number":68,"context_line":"\t\t{"},{"line_number":69,"context_line":"\t\t\tapplyAdapter: aa,"},{"line_number":70,"context_line":"\t\t\texpectedErr:  nil,"},{"line_number":71,"context_line":"\t\t\tfs:           fSys,"},{"line_number":72,"context_line":"\t\t},"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_2d280a31","line":69,"range":{"start_line":69,"start_character":3,"end_line":69,"end_character":20},"in_reply_to":"3fa7e38b_77324fa9","updated":"2019-10-31 14:26:05.000000000","message":"will fix","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":141,"context_line":"\t\tMockToFileSystem: k8sdeps.NewBuffer,"},{"line_number":142,"context_line":"\t}"},{"line_number":143,"context_line":"\taa, err :\u003d k8sdeps.NewApplyAdapter(fi)"},{"line_number":144,"context_line":"\tif err !\u003d nil {"},{"line_number":145,"context_line":"\t\tt.Fatalf(\"could not create new ApplyAdaptor, origal error: %v\", err)"},{"line_number":146,"context_line":"\t}"},{"line_number":147,"context_line":"\taa.SetDryRun(true)"},{"line_number":148,"context_line":"\tassert.True(t, aa.DryRun)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_778ecf2e","line":146,"range":{"start_line":144,"start_character":0,"end_line":146,"end_character":2},"updated":"2019-10-31 12:54:45.000000000","message":"require.NoError","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"f058c7d90d28ba345bb6518ebcf1e6b736af9b53","unresolved":false,"context_lines":[{"line_number":141,"context_line":"\t\tMockToFileSystem: k8sdeps.NewBuffer,"},{"line_number":142,"context_line":"\t}"},{"line_number":143,"context_line":"\taa, err :\u003d k8sdeps.NewApplyAdapter(fi)"},{"line_number":144,"context_line":"\tif err !\u003d nil {"},{"line_number":145,"context_line":"\t\tt.Fatalf(\"could not create new ApplyAdaptor, origal error: %v\", err)"},{"line_number":146,"context_line":"\t}"},{"line_number":147,"context_line":"\taa.SetDryRun(true)"},{"line_number":148,"context_line":"\tassert.True(t, aa.DryRun)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_ad139a00","line":146,"range":{"start_line":144,"start_character":0,"end_line":146,"end_character":2},"in_reply_to":"3fa7e38b_778ecf2e","updated":"2019-10-31 14:26:05.000000000","message":"will fix","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":141,"context_line":"\t\tMockToFileSystem: k8sdeps.NewBuffer,"},{"line_number":142,"context_line":"\t}"},{"line_number":143,"context_line":"\taa, err :\u003d k8sdeps.NewApplyAdapter(fi)"},{"line_number":144,"context_line":"\tif err !\u003d nil {"},{"line_number":145,"context_line":"\t\tt.Fatalf(\"could not create new ApplyAdaptor, origal error: %v\", err)"},{"line_number":146,"context_line":"\t}"},{"line_number":147,"context_line":"\taa.SetDryRun(true)"},{"line_number":148,"context_line":"\tassert.True(t, aa.DryRun)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_ceaa8d82","line":146,"range":{"start_line":144,"start_character":0,"end_line":146,"end_character":2},"in_reply_to":"3fa7e38b_ad139a00","updated":"2019-10-31 16:23:04.000000000","message":"Done","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"// TODO better define function requirements, to create appropriate test"},{"line_number":170,"context_line":"func TestSetPruneOptions(t *testing.T) {"},{"line_number":171,"context_line":"\tprune :\u003d true"},{"line_number":172,"context_line":"\tlabel :\u003d \"airshipit.org/deployed\u003dinitinfra\""},{"line_number":173,"context_line":"\ttf :\u003d k8stest.NewFakeFactoryForRC(t, filenameRC)"},{"line_number":174,"context_line":"\tdefer tf.Cleanup()"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_f79e3f52","line":171,"range":{"start_line":171,"start_character":1,"end_line":171,"end_character":14},"updated":"2019-10-31 12:54:45.000000000","message":"remove this","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"// TODO better define function requirements, to create appropriate test"},{"line_number":170,"context_line":"func TestSetPruneOptions(t *testing.T) {"},{"line_number":171,"context_line":"\tprune :\u003d true"},{"line_number":172,"context_line":"\tlabel :\u003d \"airshipit.org/deployed\u003dinitinfra\""},{"line_number":173,"context_line":"\ttf :\u003d k8stest.NewFakeFactoryForRC(t, filenameRC)"},{"line_number":174,"context_line":"\tdefer tf.Cleanup()"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_6e95993f","line":171,"range":{"start_line":171,"start_character":1,"end_line":171,"end_character":14},"in_reply_to":"3fa7e38b_f79e3f52","updated":"2019-10-31 16:23:04.000000000","message":"Done","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":182,"context_line":"\t}"},{"line_number":183,"context_line":"\taa.SetPruneOptions(true, label)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"\tassert.True(t, aa.Prune, prune)"},{"line_number":186,"context_line":"\tassert.Equal(t, aa.Selector, label)"},{"line_number":187,"context_line":"}"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_b7a447a4","line":185,"range":{"start_line":185,"start_character":1,"end_line":185,"end_character":32},"updated":"2019-10-31 12:54:45.000000000","message":"assert.True(t, aa.Prune) third parameter is not needed","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":182,"context_line":"\t}"},{"line_number":183,"context_line":"\taa.SetPruneOptions(true, label)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"\tassert.True(t, aa.Prune, prune)"},{"line_number":186,"context_line":"\tassert.Equal(t, aa.Selector, label)"},{"line_number":187,"context_line":"}"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_8e901550","line":185,"range":{"start_line":185,"start_character":1,"end_line":185,"end_character":32},"in_reply_to":"3fa7e38b_6dd7e224","updated":"2019-10-31 16:23:04.000000000","message":"Done","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"f058c7d90d28ba345bb6518ebcf1e6b736af9b53","unresolved":false,"context_lines":[{"line_number":182,"context_line":"\t}"},{"line_number":183,"context_line":"\taa.SetPruneOptions(true, label)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"\tassert.True(t, aa.Prune, prune)"},{"line_number":186,"context_line":"\tassert.Equal(t, aa.Selector, label)"},{"line_number":187,"context_line":"}"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_6dd7e224","line":185,"range":{"start_line":185,"start_character":1,"end_line":185,"end_character":32},"in_reply_to":"3fa7e38b_b7a447a4","updated":"2019-10-31 14:26:05.000000000","message":"will fix","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"}],"pkg/k8sdeps/factory_test.go":[{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"func TestToFactory(t *testing.T) {"},{"line_number":18,"context_line":"\trs, err :\u003d MakeNewFakeRootSettings(kubeconfigPath, airshipConfigPath)"},{"line_number":19,"context_line":"\tif err !\u003d nil {"},{"line_number":20,"context_line":"\t\tt.Fatalf(\"TestToFactory has failed %v\", err)"},{"line_number":21,"context_line":"\t}"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"\tfi :\u003d k8sdeps.NewFactoryImpl(rs)"},{"line_number":24,"context_line":"\tassert.NotNil(t, fi.ToFactory())"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_37e7f7e5","line":21,"range":{"start_line":19,"start_character":0,"end_line":21,"end_character":2},"updated":"2019-10-31 12:54:45.000000000","message":"require.NoError","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"func TestToFactory(t *testing.T) {"},{"line_number":18,"context_line":"\trs, err :\u003d MakeNewFakeRootSettings(kubeconfigPath, airshipConfigPath)"},{"line_number":19,"context_line":"\tif err !\u003d nil {"},{"line_number":20,"context_line":"\t\tt.Fatalf(\"TestToFactory has failed %v\", err)"},{"line_number":21,"context_line":"\t}"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"\tfi :\u003d k8sdeps.NewFactoryImpl(rs)"},{"line_number":24,"context_line":"\tassert.NotNil(t, fi.ToFactory())"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_6e227954","line":21,"range":{"start_line":19,"start_character":0,"end_line":21,"end_character":2},"in_reply_to":"3fa7e38b_2ddd6a40","updated":"2019-10-31 16:23:04.000000000","message":"Done","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"f058c7d90d28ba345bb6518ebcf1e6b736af9b53","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"func TestToFactory(t *testing.T) {"},{"line_number":18,"context_line":"\trs, err :\u003d MakeNewFakeRootSettings(kubeconfigPath, airshipConfigPath)"},{"line_number":19,"context_line":"\tif err !\u003d nil {"},{"line_number":20,"context_line":"\t\tt.Fatalf(\"TestToFactory has failed %v\", err)"},{"line_number":21,"context_line":"\t}"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"\tfi :\u003d k8sdeps.NewFactoryImpl(rs)"},{"line_number":24,"context_line":"\tassert.NotNil(t, fi.ToFactory())"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_2ddd6a40","line":21,"range":{"start_line":19,"start_character":0,"end_line":21,"end_character":2},"in_reply_to":"3fa7e38b_37e7f7e5","updated":"2019-10-31 14:26:05.000000000","message":"will fix next patch","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":30,"context_line":"}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"// MakeNewFakeRootSettings takes kp and dir as argument."},{"line_number":33,"context_line":"func MakeNewFakeRootSettings(kp string, dir string) (*environment.AirshipCTLSettings, error) {"},{"line_number":34,"context_line":"\trs :\u003d \u0026environment.AirshipCTLSettings{}"},{"line_number":35,"context_line":"\takp, err :\u003d filepath.Abs(kp)"},{"line_number":36,"context_line":"\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_f7ccff61","line":33,"range":{"start_line":33,"start_character":5,"end_line":33,"end_character":28},"updated":"2019-10-31 12:54:45.000000000","message":"looks like this is helper function. Do we need it public ?","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":30,"context_line":"}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"// MakeNewFakeRootSettings takes kp and dir as argument."},{"line_number":33,"context_line":"func MakeNewFakeRootSettings(kp string, dir string) (*environment.AirshipCTLSettings, error) {"},{"line_number":34,"context_line":"\trs :\u003d \u0026environment.AirshipCTLSettings{}"},{"line_number":35,"context_line":"\takp, err :\u003d filepath.Abs(kp)"},{"line_number":36,"context_line":"\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_8e1d7510","line":33,"range":{"start_line":33,"start_character":5,"end_line":33,"end_character":28},"in_reply_to":"3fa7e38b_cde7f611","updated":"2019-10-31 16:23:04.000000000","message":"Done","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"f058c7d90d28ba345bb6518ebcf1e6b736af9b53","unresolved":false,"context_lines":[{"line_number":30,"context_line":"}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"// MakeNewFakeRootSettings takes kp and dir as argument."},{"line_number":33,"context_line":"func MakeNewFakeRootSettings(kp string, dir string) (*environment.AirshipCTLSettings, error) {"},{"line_number":34,"context_line":"\trs :\u003d \u0026environment.AirshipCTLSettings{}"},{"line_number":35,"context_line":"\takp, err :\u003d filepath.Abs(kp)"},{"line_number":36,"context_line":"\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_cde7f611","line":33,"range":{"start_line":33,"start_character":5,"end_line":33,"end_character":28},"in_reply_to":"3fa7e38b_f7ccff61","updated":"2019-10-31 14:26:05.000000000","message":"will fix next patch","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"}],"testutil/k8sutils/mock_kubectl_factory.go":[{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":184,"context_line":""},{"line_number":185,"context_line":"// Below functions are taken from Kubectl library."},{"line_number":186,"context_line":"// https://github.com/kubernetes/kubectl/blob/master/pkg/cmd/apply/apply_test.go"},{"line_number":187,"context_line":"func readReplicationController(t *testing.T, filenameRC string, c runtime.Codec) (string, []byte) {"},{"line_number":188,"context_line":"\trcObj :\u003d readReplicationControllerFromFile(t, filenameRC, c)"},{"line_number":189,"context_line":"\tmetaAccessor, err :\u003d meta.Accessor(rcObj)"},{"line_number":190,"context_line":"\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_170bdb7c","line":187,"range":{"start_line":187,"start_character":5,"end_line":187,"end_character":30},"updated":"2019-10-31 12:54:45.000000000","message":"use t.Helper() since this is helper function","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":184,"context_line":""},{"line_number":185,"context_line":"// Below functions are taken from Kubectl library."},{"line_number":186,"context_line":"// https://github.com/kubernetes/kubectl/blob/master/pkg/cmd/apply/apply_test.go"},{"line_number":187,"context_line":"func readReplicationController(t *testing.T, filenameRC string, c runtime.Codec) (string, []byte) {"},{"line_number":188,"context_line":"\trcObj :\u003d readReplicationControllerFromFile(t, filenameRC, c)"},{"line_number":189,"context_line":"\tmetaAccessor, err :\u003d meta.Accessor(rcObj)"},{"line_number":190,"context_line":"\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_ae8071f8","line":187,"range":{"start_line":187,"start_character":5,"end_line":187,"end_character":30},"in_reply_to":"3fa7e38b_170bdb7c","updated":"2019-10-31 16:23:04.000000000","message":"Done","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":187,"context_line":"func readReplicationController(t *testing.T, filenameRC string, c runtime.Codec) (string, []byte) {"},{"line_number":188,"context_line":"\trcObj :\u003d readReplicationControllerFromFile(t, filenameRC, c)"},{"line_number":189,"context_line":"\tmetaAccessor, err :\u003d meta.Accessor(rcObj)"},{"line_number":190,"context_line":"\tif err !\u003d nil {"},{"line_number":191,"context_line":"\t\tt.Fatal(err)"},{"line_number":192,"context_line":"\t}"},{"line_number":193,"context_line":"\trcBytes, err :\u003d runtime.Encode(c, rcObj)"},{"line_number":194,"context_line":"\tif err !\u003d nil {"},{"line_number":195,"context_line":"\t\tt.Fatal(err)"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_77180fd2","line":192,"range":{"start_line":190,"start_character":0,"end_line":192,"end_character":2},"updated":"2019-10-31 12:54:45.000000000","message":"require.NoError","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":187,"context_line":"func readReplicationController(t *testing.T, filenameRC string, c runtime.Codec) (string, []byte) {"},{"line_number":188,"context_line":"\trcObj :\u003d readReplicationControllerFromFile(t, filenameRC, c)"},{"line_number":189,"context_line":"\tmetaAccessor, err :\u003d meta.Accessor(rcObj)"},{"line_number":190,"context_line":"\tif err !\u003d nil {"},{"line_number":191,"context_line":"\t\tt.Fatal(err)"},{"line_number":192,"context_line":"\t}"},{"line_number":193,"context_line":"\trcBytes, err :\u003d runtime.Encode(c, rcObj)"},{"line_number":194,"context_line":"\tif err !\u003d nil {"},{"line_number":195,"context_line":"\t\tt.Fatal(err)"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_ce836d02","line":192,"range":{"start_line":190,"start_character":0,"end_line":192,"end_character":2},"in_reply_to":"3fa7e38b_77180fd2","updated":"2019-10-31 16:23:04.000000000","message":"Done","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":198,"context_line":"\treturn metaAccessor.GetName(), rcBytes"},{"line_number":199,"context_line":"}"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"func readReplicationControllerFromFile(t *testing.T,"},{"line_number":202,"context_line":"\tfilename string, c runtime.Decoder) *corev1.ReplicationController {"},{"line_number":203,"context_line":"\tdata :\u003d readBytesFromFile(t, filename)"},{"line_number":204,"context_line":"\trc :\u003d corev1.ReplicationController{}"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_d728e3e2","line":201,"range":{"start_line":201,"start_character":5,"end_line":201,"end_character":38},"updated":"2019-10-31 12:54:45.000000000","message":"ditto","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":198,"context_line":"\treturn metaAccessor.GetName(), rcBytes"},{"line_number":199,"context_line":"}"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"func readReplicationControllerFromFile(t *testing.T,"},{"line_number":202,"context_line":"\tfilename string, c runtime.Decoder) *corev1.ReplicationController {"},{"line_number":203,"context_line":"\tdata :\u003d readBytesFromFile(t, filename)"},{"line_number":204,"context_line":"\trc :\u003d corev1.ReplicationController{}"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_6e7ef919","line":201,"range":{"start_line":201,"start_character":5,"end_line":201,"end_character":38},"in_reply_to":"3fa7e38b_d728e3e2","updated":"2019-10-31 16:23:04.000000000","message":"Done","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":217,"context_line":"\tdefer file.Close()"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"\tdata, err :\u003d ioutil.ReadAll(file)"},{"line_number":220,"context_line":"\tif err !\u003d nil {"},{"line_number":221,"context_line":"\t\tt.Fatal(err)"},{"line_number":222,"context_line":"\t}"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"\treturn data"},{"line_number":225,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_971eebb8","line":222,"range":{"start_line":220,"start_character":0,"end_line":222,"end_character":2},"updated":"2019-10-31 12:54:45.000000000","message":"NoError","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":217,"context_line":"\tdefer file.Close()"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"\tdata, err :\u003d ioutil.ReadAll(file)"},{"line_number":220,"context_line":"\tif err !\u003d nil {"},{"line_number":221,"context_line":"\t\tt.Fatal(err)"},{"line_number":222,"context_line":"\t}"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"\treturn data"},{"line_number":225,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_2e748135","line":222,"range":{"start_line":220,"start_character":0,"end_line":222,"end_character":2},"in_reply_to":"3fa7e38b_971eebb8","updated":"2019-10-31 16:23:04.000000000","message":"Done","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"104300db585eda0e5d28b8f6ddfbed87f3b2362e","unresolved":false,"context_lines":[{"line_number":225,"context_line":"}"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"func GetBrokenPathFactory() cmdutil.Factory {"},{"line_number":228,"context_line":"\tkp :\u003d \"path/that/does/not/exist\""},{"line_number":229,"context_line":"\tkf :\u003d genericclioptions.NewConfigFlags(false)"},{"line_number":230,"context_line":"\tkf.KubeConfig \u003d \u0026kp"},{"line_number":231,"context_line":"\treturn cmdutil.NewFactory(kf)"},{"line_number":232,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_1780bbbe","line":231,"range":{"start_line":228,"start_character":0,"end_line":231,"end_character":30},"updated":"2019-10-31 12:54:45.000000000","message":"this code duplicates ToFactory method of FactoryImpl. I guess we need to refactor it somehow","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"f058c7d90d28ba345bb6518ebcf1e6b736af9b53","unresolved":false,"context_lines":[{"line_number":225,"context_line":"}"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"func GetBrokenPathFactory() cmdutil.Factory {"},{"line_number":228,"context_line":"\tkp :\u003d \"path/that/does/not/exist\""},{"line_number":229,"context_line":"\tkf :\u003d genericclioptions.NewConfigFlags(false)"},{"line_number":230,"context_line":"\tkf.KubeConfig \u003d \u0026kp"},{"line_number":231,"context_line":"\treturn cmdutil.NewFactory(kf)"},{"line_number":232,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_4dbd46d6","line":231,"range":{"start_line":228,"start_character":0,"end_line":231,"end_character":30},"in_reply_to":"3fa7e38b_1780bbbe","updated":"2019-10-31 14:26:05.000000000","message":"this is leftover, will fix next patch","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"bcd62286f2077a1905ef0952d4f394bbaba3e976","unresolved":false,"context_lines":[{"line_number":225,"context_line":"}"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"func GetBrokenPathFactory() cmdutil.Factory {"},{"line_number":228,"context_line":"\tkp :\u003d \"path/that/does/not/exist\""},{"line_number":229,"context_line":"\tkf :\u003d genericclioptions.NewConfigFlags(false)"},{"line_number":230,"context_line":"\tkf.KubeConfig \u003d \u0026kp"},{"line_number":231,"context_line":"\treturn cmdutil.NewFactory(kf)"},{"line_number":232,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":2,"id":"3fa7e38b_8e79f52f","line":231,"range":{"start_line":228,"start_character":0,"end_line":231,"end_character":30},"in_reply_to":"3fa7e38b_4dbd46d6","updated":"2019-10-31 16:23:04.000000000","message":"Done","commit_id":"dfc4ea9c99a6712c0b7957efed6ec45532066525"}]}
