class StateManager: def __init__(self, auth_token): self.auth_token = auth_token self.rest_states_api = REST_states(auth_token) self.rest_statetypes_api = REST_statetypes(auth_token) def setRepeatableStateDone(self, state): repeatable_state = state['repeatable_state'] print(repeatable_state) repeatable_state['last_successfull_run'] = datetime.datetime.now( ).isoformat() self.rest_states_api.putRepeatableState(state['repeatable_state']) def isComplexState(self, state): return state['complex_state'] is not None def isRepeatableState(self, state): return state['simple_state'] is not None def setSimpleStateInstalled(self, state): simple_state = state['simple_state'] print(simple_state) simple_state['installed'] = True self.rest_states_api.putSimpleState(state['simple_state']) def setComplexStateStatus(self, state, status): complex_state = state['complex_state'] print(complex_state) complex_state['status'] = status self.rest_states_api.putComplexState(state['complex_state'])
localuser = LocalSettings.localuser remoteuser = RemoteSettings.remoteuser # retrieve the authentication token token_result = REST_authentication().postCredentials(ApiUserSettings.username, ApiUserSettings.password) auth_token = token_result['token'] inputmapping = InputMapper().getInputFromCLI(auth_token) data = json.loads(inputmapping.getKeyvalList()) client = SSHWrapper.with_keys(data['remoteuser'], inputmapping.getIpAddress(), data['sshport']) if data['os'] == "CentOS": # first remove salt, if it was already installed client.send_blocking_command('sudo yum install -y wget') client.send_blocking_command('sudo yum install -y unzip') client.send_blocking_command( 'wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm' ) client.send_blocking_command( 'sudo rpm -ivh epel-release-latest-7.noarch.rpm') reststates_api = REST_states(auth_token) state = reststates_api.getStateByHostAndStateId( inputmapping.getGetHostId(), inputmapping.getStateId()) state = state[0] statemanager = StateManager(auth_token) statemanager.setSimpleStateInstalled(state)
def __init__(self, auth_token): self.auth_token = auth_token self.rest_states_api = REST_states(auth_token) self.rest_statetypes_api = REST_statetypes(auth_token)