github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/caas/kubernetes/provider/resources_test.go (about) 1 // Copyright 2018 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package provider_test 5 6 import ( 7 "github.com/golang/mock/gomock" 8 jc "github.com/juju/testing/checkers" 9 "github.com/juju/version" 10 gc "gopkg.in/check.v1" 11 apps "k8s.io/api/apps/v1" 12 core "k8s.io/api/core/v1" 13 "k8s.io/apimachinery/pkg/apis/meta/v1" 14 15 "github.com/juju/juju/environs/context" 16 "github.com/juju/juju/testing" 17 ) 18 19 var _ = gc.Suite(&ResourcesSuite{}) 20 21 type ResourcesSuite struct { 22 BaseSuite 23 } 24 25 func (s *ResourcesSuite) TestAdoptResources(c *gc.C) { 26 ctrl := s.setupBroker(c) 27 defer ctrl.Finish() 28 29 modelSelector := "juju-model-uuid==" + testing.ModelTag.Id() 30 31 gomock.InOrder( 32 s.mockPods.EXPECT().List(v1.ListOptions{LabelSelector: modelSelector}).Times(1). 33 Return(&core.PodList{Items: []core.Pod{ 34 {ObjectMeta: v1.ObjectMeta{Labels: map[string]string{}}}, 35 }}, nil), 36 s.mockPods.EXPECT().Update(&core.Pod{ObjectMeta: v1.ObjectMeta{ 37 Labels: map[string]string{"juju-controller-uuid": "uuid"}}}).Times(1). 38 Return(nil, nil), 39 40 s.mockPersistentVolumeClaims.EXPECT().List(v1.ListOptions{LabelSelector: modelSelector}).Times(1). 41 Return(&core.PersistentVolumeClaimList{Items: []core.PersistentVolumeClaim{ 42 {ObjectMeta: v1.ObjectMeta{Labels: map[string]string{}}}, 43 }}, nil), 44 s.mockPersistentVolumeClaims.EXPECT().Update(&core.PersistentVolumeClaim{ObjectMeta: v1.ObjectMeta{ 45 Labels: map[string]string{"juju-controller-uuid": "uuid"}}}).Times(1). 46 Return(nil, nil), 47 48 s.mockPersistentVolumes.EXPECT().List(v1.ListOptions{LabelSelector: modelSelector}).Times(1). 49 Return(&core.PersistentVolumeList{Items: []core.PersistentVolume{ 50 {ObjectMeta: v1.ObjectMeta{Labels: map[string]string{}}}, 51 }}, nil), 52 s.mockPersistentVolumes.EXPECT().Update(&core.PersistentVolume{ObjectMeta: v1.ObjectMeta{ 53 Labels: map[string]string{"juju-controller-uuid": "uuid"}}}).Times(1). 54 Return(nil, nil), 55 56 s.mockStatefulSets.EXPECT().List(v1.ListOptions{LabelSelector: modelSelector}).Times(1). 57 Return(&apps.StatefulSetList{Items: []apps.StatefulSet{ 58 {ObjectMeta: v1.ObjectMeta{Labels: map[string]string{}}}, 59 }}, nil), 60 s.mockStatefulSets.EXPECT().Update(&apps.StatefulSet{ObjectMeta: v1.ObjectMeta{ 61 Labels: map[string]string{"juju-controller-uuid": "uuid"}}}).Times(1). 62 Return(nil, nil), 63 64 s.mockDeployments.EXPECT().List(v1.ListOptions{LabelSelector: modelSelector}).Times(1). 65 Return(&apps.DeploymentList{Items: []apps.Deployment{ 66 {ObjectMeta: v1.ObjectMeta{Labels: map[string]string{}}}, 67 }}, nil), 68 s.mockDeployments.EXPECT().Update(&apps.Deployment{ObjectMeta: v1.ObjectMeta{ 69 Labels: map[string]string{"juju-controller-uuid": "uuid"}}}).Times(1). 70 Return(nil, nil), 71 ) 72 73 err := s.broker.AdoptResources(context.NewCloudCallContext(), "uuid", version.MustParse("1.2.3")) 74 c.Assert(err, jc.ErrorIsNil) 75 }