Merge ~tcuthbert/charm-k8s-wordpress:update_charm into charm-k8s-wordpress:master

Proposed by Thomas Cuthbert
Status: Merged
Approved by: Thomas Cuthbert
Approved revision: 0638a4510f26bb4a505f2c8aa2050fa05749f632
Merged at revision: 72bdf580e1bd8db7f0195066eedb4a0392707c53
Proposed branch: ~tcuthbert/charm-k8s-wordpress:update_charm
Merge into: charm-k8s-wordpress:master
Diff against target: 214 lines (+25/-20)
10 files modified
.gitignore (+2/-0)
.jujuignore (+5/-0)
Makefile (+5/-0)
dev/null (+0/-1)
requirements.txt (+1/-0)
src/charm.py (+0/-3)
tests/unit/requirements.txt (+1/-0)
tests/unit/test_charm.py (+10/-12)
tests/unit/test_wordpress.py (+0/-3)
tox.ini (+1/-1)
Reviewer Review Type Date Requested Status
Tom Haddon Approve
Canonical IS Reviewers Pending
Review via email: mp+393537@code.launchpad.net

Commit message

Get charm up to date with latest operator framework paradigms

To post a comment you must log in.
Revision history for this message
🤖 Canonical IS Merge Bot (canonical-is-mergebot) wrote :

This merge proposal is being monitored by mergebot. Change the status to Approved to merge.

Revision history for this message
🤖 Canonical IS Merge Bot (canonical-is-mergebot) wrote :

Unable to determine commit message from repository - please click "Set commit message" and enter the commit message manually.

Revision history for this message
Tom Haddon (mthaddon) wrote :

Two small comments inline, otherwise looks good.

Revision history for this message
Tom Haddon (mthaddon) wrote :

LGTM, thx

review: Approve
Revision history for this message
🤖 Canonical IS Merge Bot (canonical-is-mergebot) wrote :

Change successfully merged at revision 72bdf580e1bd8db7f0195066eedb4a0392707c53

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/.gitignore b/.gitignore
2index 33ab628..ed12673 100644
3--- a/.gitignore
4+++ b/.gitignore
5@@ -1,3 +1,5 @@
6+build
7+*.charm
8 .tox
9 .coverage
10 __pycache__
11diff --git a/.gitmodules b/.gitmodules
12deleted file mode 100644
13index 8c05fa9..0000000
14--- a/.gitmodules
15+++ /dev/null
16@@ -1,3 +0,0 @@
17-[submodule "mod/operator"]
18- path = mod/operator
19- url = https://github.com/canonical/operator
20diff --git a/.jujuignore b/.jujuignore
21new file mode 100644
22index 0000000..739b280
23--- /dev/null
24+++ b/.jujuignore
25@@ -0,0 +1,5 @@
26+/env
27+/image
28+*.py[cod]
29+*.charm
30+Makefile
31diff --git a/Makefile b/Makefile
32index 14d1b2e..c46ed23 100644
33--- a/Makefile
34+++ b/Makefile
35@@ -1,3 +1,7 @@
36+wordpress.charm: src/*.py requirements.txt
37+ @echo "Building Kubernetes WordPress Charm."
38+ @charmcraft build
39+
40 format:
41 @echo "Normalising python layout with black."
42 @tox -e black
43@@ -20,5 +24,6 @@ clean:
44 @echo "Cleaning files"
45 @git clean -fXd || true
46 @rm -r /tmp/charm-k8s-wordpress/.tox
47+ @rm -r ./build || true
48
49 .PHONY: format lint test unittest integration clean
50diff --git a/dispatch b/dispatch
51deleted file mode 120000
52index ac5c45c..0000000
53--- a/dispatch
54+++ /dev/null
55@@ -1 +0,0 @@
56-src/charm.py
57\ No newline at end of file
58diff --git a/hooks/start b/hooks/start
59deleted file mode 120000
60index 25b1f68..0000000
61--- a/hooks/start
62+++ /dev/null
63@@ -1 +0,0 @@
64-../src/charm.py
65\ No newline at end of file
66diff --git a/lib/ops b/lib/ops
67deleted file mode 120000
68index d934193..0000000
69--- a/lib/ops
70+++ /dev/null
71@@ -1 +0,0 @@
72-../mod/operator/ops
73\ No newline at end of file
74diff --git a/mod/operator b/mod/operator
75deleted file mode 160000
76index 63e7d9e..0000000
77--- a/mod/operator
78+++ /dev/null
79@@ -1 +0,0 @@
80-Subproject commit 63e7d9e4dc2a38a3fbc5623ff504eb18173e3f41
81diff --git a/requirements.txt b/requirements.txt
82index 888e37a..875fb9a 100644
83--- a/requirements.txt
84+++ b/requirements.txt
85@@ -1,2 +1,3 @@
86 # Include python requirements here
87+ops
88 requests
89diff --git a/src/charm.py b/src/charm.py
90index a7f87fc..68d3b60 100755
91--- a/src/charm.py
92+++ b/src/charm.py
93@@ -3,14 +3,11 @@
94 import io
95 import logging
96 import subprocess
97-import sys
98 from pprint import pprint
99 from yaml import safe_load
100
101 from wordpress import Wordpress, password_generator, WORDPRESS_SECRETS
102
103-sys.path.append("lib")
104-
105 from ops.charm import CharmBase, CharmEvents
106 from ops.framework import EventBase, EventSource, StoredState
107 from ops.main import main
108diff --git a/tests/unit/requirements.txt b/tests/unit/requirements.txt
109index c2bd57a..460a692 100644
110--- a/tests/unit/requirements.txt
111+++ b/tests/unit/requirements.txt
112@@ -1,6 +1,7 @@
113 requests
114 charmhelpers
115 charms.reactive
116+flake8
117 freezegun
118 mock
119 pytest
120diff --git a/tests/unit/test_charm.py b/tests/unit/test_charm.py
121index c72e1d5..795b0fa 100644
122--- a/tests/unit/test_charm.py
123+++ b/tests/unit/test_charm.py
124@@ -3,10 +3,6 @@
125 import copy
126 import mock
127 import unittest
128-import sys
129-
130-sys.path.append('lib')
131-sys.path.append('src')
132
133 from charm import WordpressK8sCharm, create_wordpress_secrets, gather_wordpress_secrets
134 from wordpress import WORDPRESS_SECRETS
135@@ -34,7 +30,7 @@ class TestWordpressK8sCharm(unittest.TestCase):
136 self.harness = testing.Harness(WordpressK8sCharm)
137
138 self.harness.begin()
139- self.harness.charm.model.config = copy.deepcopy(self.test_model_config)
140+ self.harness.update_config(copy.deepcopy(self.test_model_config))
141
142 def test_is_config_valid(self):
143 # Test a valid model config.
144@@ -45,22 +41,22 @@ class TestWordpressK8sCharm(unittest.TestCase):
145 want_msg_fmt = "Missing required config: {}"
146 want_keys = ("image", "db_host", "db_name", "db_user", "db_password", "tls_secret_name")
147 for wanted_key in want_keys:
148- self.harness.charm.model.config[wanted_key] = ""
149+ self.harness.update_config({wanted_key: ""})
150 want_false = self.harness.charm.is_valid_config()
151 self.assertFalse(want_false)
152 self.assertLogs(want_msg_fmt.format(wanted_key), level="INFO")
153- self.harness.charm.model.config = copy.deepcopy(self.test_model_config)
154+ self.harness.update_config(copy.deepcopy(self.test_model_config))
155
156 # Test for missing initial_settings in model config.
157- self.harness.charm.model.config["initial_settings"] = ""
158+ self.harness.update_config({"initial_settings": ""})
159 want_false = self.harness.charm.is_valid_config()
160 self.assertFalse(want_false)
161 self.assertLogs("No initial_setting provided. Skipping first install.", level="INFO")
162- self.harness.charm.model.config = copy.deepcopy(self.test_model_config)
163+ self.harness.update_config(copy.deepcopy(self.test_model_config))
164
165 # Test unit status msg.
166 for wanted_key in want_keys:
167- self.harness.charm.model.config[wanted_key] = ""
168+ self.harness.update_config({wanted_key: ""})
169 expected_msg = want_msg_fmt.format(" ".join(want_keys))
170 self.harness.charm.is_valid_config()
171 self.assertIsInstance(self.harness.charm.unit.status, BlockedStatus)
172@@ -90,8 +86,10 @@ class TestWordpressK8sCharm(unittest.TestCase):
173 self.assertEqual(len(wp_secrets[key]), 64)
174
175 def test_make_pod_resources(self):
176- self.harness.charm.model.config["blog_hostname"] = "blog.example.com"
177- self.harness.charm.model.config["tls_secret_name"] = "blog-example-com-tls"
178+ self.harness.update_config({
179+ "blog_hostname": "blog.example.com",
180+ "tls_secret_name": "blog-example-com-tls"
181+ })
182 # Test for https://bugs.launchpad.net/juju/+bug/1884674
183 ingress_name = 'wordpress-k8s-ingress'
184 self.assertNotEqual(ingress_name, self.harness.charm.app.name)
185diff --git a/tests/unit/test_wordpress.py b/tests/unit/test_wordpress.py
186index 5ebc90a..f204cac 100644
187--- a/tests/unit/test_wordpress.py
188+++ b/tests/unit/test_wordpress.py
189@@ -2,12 +2,9 @@ import copy
190 import mock
191 import requests
192 import string
193-import sys
194 import unittest
195 import yaml
196
197-sys.path.append("src")
198-
199 import charm
200 import wordpress
201
202diff --git a/tox.ini b/tox.ini
203index 4f55f1b..6b43ea1 100644
204--- a/tox.ini
205+++ b/tox.ini
206@@ -19,7 +19,7 @@ commands =
207 deps = -r{toxinidir}/tests/unit/requirements.txt
208 -r{toxinidir}/requirements.txt
209 setenv =
210- PYTHONPATH={toxinidir}/lib
211+ PYTHONPATH={toxinidir}/src:{toxinidir}/build/lib:{toxinidir}/build/venv
212 TZ=UTC
213
214 [testenv:integration]

Subscribers

People subscribed via source and target branches