def compute_changed(rid=None, unit=None): for r_id in relation_ids('nova-api'): nova_api_relation_joined(rid=r_id) rel_settings = relation_get(rid=rid, unit=unit) if not rel_settings.get('region', None) == config('region'): relation_set(relation_id=rid, region=config('region')) if 'migration_auth_type' not in rel_settings: return if rel_settings['migration_auth_type'] == 'ssh': status_set('maintenance', 'configuring live migration') key = rel_settings.get('ssh_public_key') if not key: log('SSH migration set but peer did not publish key.') return ssh_compute_add(key, rid=rid, unit=unit) index = 0 for line in ssh_known_hosts_lines(unit=unit): relation_set( relation_id=rid, relation_settings={'known_hosts_{}'.format(index): line}) index += 1 relation_set(relation_id=rid, known_hosts_max_index=index) index = 0 for line in ssh_authorized_keys_lines(unit=unit): relation_set( relation_id=rid, relation_settings={'authorized_keys_{}'.format(index): line}) index += 1 relation_set(relation_id=rid, authorized_keys_max_index=index) if 'nova_ssh_public_key' not in rel_settings: return if rel_settings['nova_ssh_public_key']: ssh_compute_add(rel_settings['nova_ssh_public_key'], rid=rid, unit=unit, user='******') index = 0 for line in ssh_known_hosts_lines(unit=unit, user='******'): relation_set(relation_id=rid, relation_settings={ '{}_known_hosts_{}'.format('nova', index): line }) index += 1 relation_set(relation_id=rid, relation_settings={ '{}_known_hosts_max_index'.format('nova'): index }) index = 0 for line in ssh_authorized_keys_lines(unit=unit, user='******'): relation_set(relation_id=rid, relation_settings={ '{}_authorized_keys_{}'.format('nova', index): line }) index += 1 relation_set(relation_id=rid, relation_settings={ '{}_authorized_keys_max_index'.format('nova'): index })
def compute_changed(rid=None, unit=None): rel_settings = relation_get(rid=rid, unit=unit) if 'migration_auth_type' not in rel_settings: return if rel_settings['migration_auth_type'] == 'ssh': status_set('maintenance', 'configuring live migration') key = rel_settings.get('ssh_public_key') if not key: log('SSH migration set but peer did not publish key.') return ssh_compute_add(key, rid=rid, unit=unit) index = 0 for line in ssh_known_hosts_lines(unit=unit): relation_set( relation_id=rid, relation_settings={ 'known_hosts_{}'.format(index): line}) index += 1 relation_set(relation_id=rid, known_hosts_max_index=index) index = 0 for line in ssh_authorized_keys_lines(unit=unit): relation_set( relation_id=rid, relation_settings={ 'authorized_keys_{}'.format(index): line}) index += 1 relation_set(relation_id=rid, authorized_keys_max_index=index) if 'nova_ssh_public_key' not in rel_settings: return if rel_settings['nova_ssh_public_key']: ssh_compute_add(rel_settings['nova_ssh_public_key'], rid=rid, unit=unit, user='******') index = 0 for line in ssh_known_hosts_lines(unit=unit, user='******'): relation_set( relation_id=rid, relation_settings={ '{}_known_hosts_{}'.format( 'nova', index): line}) index += 1 relation_set( relation_id=rid, relation_settings={ '{}_known_hosts_max_index'.format('nova'): index}) index = 0 for line in ssh_authorized_keys_lines(unit=unit, user='******'): relation_set( relation_id=rid, relation_settings={ '{}_authorized_keys_{}'.format( 'nova', index): line}) index += 1 relation_set( relation_id=rid, relation_settings={ '{}_authorized_keys_max_index'.format('nova'): index})
def compute_changed(): migration_auth = relation_get('migration_auth_type') if migration_auth == 'ssh': key = relation_get('ssh_public_key') if not key: log('SSH migration set but peer did not publish key.') return ssh_compute_add(key) relation_set(known_hosts=ssh_known_hosts_b64(), authorized_keys=ssh_authorized_keys_b64())