Skip to content

Commit f1358fb

Browse files
author
Patrick J. McNerthney
committed
Configure logging after pip install is run
1 parent 2a0e3b2 commit f1358fb

File tree

5 files changed

+17
-37
lines changed

5 files changed

+17
-37
lines changed

crossplane/pythonic/composite.py

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def __init__(self, request, logger):
4141
self.kind = self.observed.kind
4242
self.metadata = self.observed.metadata
4343
self.spec = self.observed.spec
44-
self.status = Status(self.observed.status, self.desired.status)
44+
self.status = self.desired.status
4545
self.conditions = Conditions(observed, self.response)
4646
self.connection = Connection(observed, desired)
4747
self.events = Events(self.response)
@@ -217,10 +217,9 @@ def kind(self, kind):
217217

218218
@property
219219
def externalName(self):
220-
name = self.metadata.annotations['crossplane.io/external-name']
221-
if not name:
222-
name = self.observed.metadata.annotations['crossplane.io/external-name']
223-
return name
220+
if 'crossplane.io/external-name' in self.metadata.annotations:
221+
return self.metadata.annotations['crossplane.io/external-name']
222+
return self.observed.metadata.annotations['crossplane.io/external-name']
224223

225224
@externalName.setter
226225
def externalName(self, name):
@@ -409,27 +408,6 @@ def __bool__(self):
409408
return bool(self.observed)
410409

411410

412-
class Status:
413-
def __init__(self, observed, desired):
414-
self.__dict__['_observed'] = observed
415-
self.__dict__['_desired'] = desired
416-
417-
def __getattr__(self, key):
418-
return self[key]
419-
420-
def __getitem__(self, key):
421-
value = self._desired[key]
422-
if value is None:
423-
value = self._observed[key]
424-
return value
425-
426-
def __setattr__(self, key, value):
427-
self[key] = value
428-
429-
def __setitem__(self, key, value):
430-
self._desired[key] = value
431-
432-
433411
class Conditions:
434412
def __init__(self, observed, response=None):
435413
self._observed = observed

crossplane/pythonic/main.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,20 +102,20 @@ async def main(self):
102102
print('Either --tls-certs-dir or --insecure must be specified', file=sys.stderr)
103103
sys.exit(1)
104104

105-
self.configure_logging(args)
106-
# enables read only volumes or mismatched uid volumes
107-
sys.dont_write_bytecode = True
108-
await self.run(args)
109-
110-
# Allow for independent running of function-pythonic
111-
async def run(self, args):
112105
if args.pip_install:
113106
import pip._internal.cli.main
114107
pip._internal.cli.main.main(['install', '--user', *shlex.split(args.pip_install)])
115108

116109
for path in reversed(args.python_path):
117110
sys.path.insert(0, str(pathlib.Path(path).expanduser().resolve()))
118111

112+
self.configure_logging(args)
113+
# enables read only volumes or mismatched uid volumes
114+
sys.dont_write_bytecode = True
115+
await self.run(args)
116+
117+
# Allow for independent running of function-pythonic
118+
async def run(self, args):
119119
if args.allow_oversize_protos:
120120
from google.protobuf.internal import api_implementation
121121
if api_implementation._c_module:
@@ -166,7 +166,7 @@ def configure_logging(self, args):
166166
handler = logging.StreamHandler()
167167
handler.setFormatter(formatter)
168168
logger = logging.getLogger()
169-
logger.addHandler(handler)
169+
logger.handlers = [handler]
170170
logger.setLevel(logging.DEBUG if args.debug else logging.INFO)
171171

172172

examples/import-existing-vpc/composition.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ spec:
4848
vpc.externalName = vpcs[0]['VpcId']
4949
else:
5050
self.events.fatal('MultipleResources', f"More than one vpc found for: {self.metadata.name}")
51-
self.status.vpcId = vpc.status.atProvider.vpcId
51+
self.status.vpcId = vpc.status.atProvider.id
5252
return vpc
5353
5454
def aws_client(self, service):

examples/single-purpose/xr.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ spec:
66
composite: |
77
class Composite(BaseComposite):
88
def compose(self):
9+
self.logger.info('Debug World!')
910
self.status.composite = 'Hello, World!'

scripts/setup-local.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,15 +193,16 @@ spec:
193193
EOF
194194

195195
# package: ghcr.io/fortra/function-pythonic:v0.0.0-20250819201108-49cfb066579f
196-
# package: ghcr.io/iciclespider/function-pythonic:v0.0.0-20251007211722-f132f8e3d368
196+
# package: ghcr.io/iciclespider/function-pythonic:v0.0.0-20251014192239-4779a870d7fd
197+
# package: ghcr.io/fortra/function-pythonic:v0.1.1
197198

198199
kubectl apply -f - <<EOF
199200
apiVersion: pkg.crossplane.io/v1
200201
kind: Function
201202
metadata:
202203
name: function-pythonic
203204
spec:
204-
package: ghcr.io/fortra/function-pythonic:v0.1.1
205+
package: ghcr.io/iciclespider/function-pythonic:v0.0.0-20251014192239-4779a870d7fd
205206
runtimeConfigRef:
206207
apiVersion: pkg.crossplane.io/v1beta1
207208
kind: DeploymentRuntimeConfig

0 commit comments

Comments
 (0)