~1chb1n/charms/trusty/cinder/15.10-stable-flip-tests-helper-syncs

« back to all changes in this revision

Viewing changes to hooks/charmhelpers/contrib/openstack/templating.py

  • Committer: James Page
  • Date: 2015-10-22 13:19:13 UTC
  • Revision ID: james.page@ubuntu.com-20151022131913-02u2l9s2fa0xtbio
Tags: 15.10
15.10 Charm release

Show diffs side-by-side

added added

removed removed

Lines of Context:
113
113
 
114
114
    def complete_contexts(self):
115
115
        '''
116
 
        Return a list of interfaces that have atisfied contexts.
 
116
        Return a list of interfaces that have satisfied contexts.
117
117
        '''
118
118
        if self._complete_contexts:
119
119
            return self._complete_contexts
294
294
        [interfaces.extend(i.complete_contexts())
295
295
         for i in six.itervalues(self.templates)]
296
296
        return interfaces
 
297
 
 
298
    def get_incomplete_context_data(self, interfaces):
 
299
        '''
 
300
        Return dictionary of relation status of interfaces and any missing
 
301
        required context data. Example:
 
302
            {'amqp': {'missing_data': ['rabbitmq_password'], 'related': True},
 
303
             'zeromq-configuration': {'related': False}}
 
304
        '''
 
305
        incomplete_context_data = {}
 
306
 
 
307
        for i in six.itervalues(self.templates):
 
308
            for context in i.contexts:
 
309
                for interface in interfaces:
 
310
                    related = False
 
311
                    if interface in context.interfaces:
 
312
                        related = context.get_related()
 
313
                        missing_data = context.missing_data
 
314
                        if missing_data:
 
315
                            incomplete_context_data[interface] = {'missing_data': missing_data}
 
316
                        if related:
 
317
                            if incomplete_context_data.get(interface):
 
318
                                incomplete_context_data[interface].update({'related': True})
 
319
                            else:
 
320
                                incomplete_context_data[interface] = {'related': True}
 
321
                        else:
 
322
                            incomplete_context_data[interface] = {'related': False}
 
323
        return incomplete_context_data